我认为我没有见过这个问题,不幸的是,这可能是一个简单的答案,但我却被困住了。
我有一个特征集合,我只是尝试同时从该特征集合中过滤两个属性。特征集合是位于美国各地的项目列表,因此我试图同时直观地显示两个这样的项目。我可以毫无问题地从功能集合中过滤掉其中一个项目并将其显示在 Google Earth Engine 中,但我在尝试过滤第二个项目区域并将其与第一个项目区域同时显示时遇到了麻烦。
我在 Python 3 Jupyter Notebook 中的代码如下所示(当然是在初始化 GEE 等之后)
我尝试使用 Filter.and 根据 GEE 的注释,其中指出使用 and 作为获取多个过滤信息的一种方式,但我一定做错了什么,所以下面是我最初尝试的方法,但这不起作用。
我如何重写它以同时正确地从FeatureCollection中获取两个项目?
提前感谢您的帮助和时间。
fc = (
ee.FeatureCollection("File location here")
.filter('PROJ A == "PROJECT NAME"')
.filter('PROJ B == "PROJECT MAME"')
)
# Draw the visualization
wtmap = geemap.Map()
# set our initial map parameters for USA
center_lat = 40
center_lon = -100
zoomlevel = 5
# Initialize the map
wtmap = geemap.Map(center = [center_lat, center_lon], zoom = zoomlevel)
wtmap.add_basemap("SATELLITE")
wtmap.addLayer(fc)
wtmap.addLayerControl()
wtmap
我会使用这个功能
ee.Filter.And
:
# FeatureCollection
listOfFeatures = [
ee.Feature(None, {'PROJ A': 'PROJECT NAME', 'PROJ B': 'PROJECT NAME'}),
ee.Feature(None, {'PROJ A': 'PROJECT', 'PROJ B': 'NAME'})
]
fc = ee.FeatureCollection(listOfFeatures)
fcsubset = fc.filter(ee.Filter.And(
ee.Filter.eq('PROJ A', 'PROJECT NAME'),
ee.Filter.eq('PROJ B', 'PROJECT NAME')
))
在 GEE Python API 中,正如@Mutewinter 在这篇文章中所说,help(ee.Filter)
显示了
ee.Filter
的可用方法:
此处定义的静态方法:注意And(*args)
使用布尔 AND 组合两个或多个过滤器
Or(*args)
使用布尔 OR 组合两个或多个过滤器。
And
和
Or
中的大写字母。希望这个答案对你有帮助。