В настоящее время я перевожу свой GEE с Javascript на Python API. Одна первоначальная проблема, с которой я столкнулся, связана с пространственными соединениями. По сути, у меня есть шейп-файл и ряд случайных точек, и я пытаюсь создать набор функций, который сообщает значения из шейп-файла для каждой точки. Синтаксис следующий:
#1. A shapefile of sub-Saharan Africa, which I made open for public usage
SSA = ee.FeatureCollection('users/salem043/Africa_Districts')
#2. 100 random points within the SSA shapefile
points = ee.FeatureCollection.randomPoints(SSA, 100)
#3. The properties I want to retain from the SSA shapefile (admin. districts)
properties = ["ADM0","ADM1", "ADM2"]
#4. This spatial filter function which used to work in Javascript
spatialFilter = ee.Filter.intersects({leftField: '.geo', rightField: '.geo'})
#5. Using the spatial filter and the join command I then create a feature var
joinAll = ee.Join.saveAll('matched').apply(points, SSA, spatialFilter)
Для шейп-файла SSA ссылка: https://code.earthengine.google.com/?asset=users/salem043/Africa_Districts.
Ошибка, которую я получаю, происходит на шаге 4: Python сообщает, что «имя 'leftField' не определено». Если вы можете помочь мне понять, как преобразовать Javascript на шаге 4 (и шаге 5, если это тоже будет проблемой) в Python, я был бы очень благодарен!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


С Python вам нужно окружить ключи dict с помощью".
ЗаменитьspatialFilter = ee.Filter.intersects({leftField: '.geo', rightField: '.geo'})
авторspatialFilter = ee.Filter.intersects({"leftField": '.geo', "rightField": '.geo'})