You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Earth Engine中从要素集同时筛选两个项目并可视化?

问题分析与解决方案

你原代码里连续调用.filter()是逻辑与(AND)逻辑,只会返回同时满足两个条件的要素,但你实际需要的是逻辑或(OR)——筛选出符合两个条件中任意一个的要素,所以得调整筛选逻辑。

修正代码方案

方案1:用ee.Filter.or()组合条件(推荐,灵活度更高)

如果是筛选同一个字段下的两个项目(比如字段名为PROJ_NAME,要选"PROJECT NAME"和"PROJECT MAME"):

fc = ee.FeatureCollection("File location here") \
    .filter(ee.Filter.or(
        ee.Filter.eq('PROJ_NAME', 'PROJECT NAME'),
        ee.Filter.eq('PROJ_NAME', 'PROJECT MAME')
    ))

如果确实是要筛选两个不同字段的条件(比如PROJ A等于"PROJECT NAME" 或者 PROJ B等于"PROJECT MAME"):

fc = ee.FeatureCollection("File location here") \
    .filter(ee.Filter.or(
        ee.Filter.eq('PROJ A', 'PROJECT NAME'),
        ee.Filter.eq('PROJ B', 'PROJECT MAME')
    ))

方案2:直接用字符串表达式的逻辑或

如果是同一个字段的场景,也可以用更简洁的字符串写法:

fc = ee.FeatureCollection("File location here") \
    .filter('PROJ_NAME == "PROJECT NAME" || PROJ_NAME == "PROJECT MAME"')

完整可视化代码

替换筛选逻辑后的完整代码示例:

import geemap
import ee

# 初始化GEE(未初始化时需要执行)
ee.Initialize()

# 筛选目标要素集合
fc = ee.FeatureCollection("File location here") \
    .filter(ee.Filter.or(
        ee.Filter.eq('PROJ_NAME', 'PROJECT NAME'),
        ee.Filter.eq('PROJ_NAME', 'PROJECT MAME')
    ))

# 初始化地图并可视化
wtmap = geemap.Map(center=[40, -100], zoom=5)
wtmap.add_basemap("SATELLITE")
# 可选:自定义可视化参数,让选中项目更醒目
vis_params = {'color': 'red', 'fillColor': '0000ff33'}
wtmap.addLayer(fc, vis_params, 'Selected Projects')
wtmap.addLayerControl()
wtmap

额外排查说明

如果你的需求确实是同时满足两个条件(逻辑与)但筛选后无结果,说明你的要素集合里没有同时符合两个条件的记录,可以打印单个条件的要素数量确认:

# 统计单个条件的要素数量
count1 = ee.FeatureCollection("File location here").filter('PROJ A == "PROJECT NAME"').size().getInfo()
count2 = ee.FeatureCollection("File location here").filter('PROJ B == "PROJECT MAME"').size().getInfo()
print(f"符合条件1的要素数:{count1}")
print(f"符合条件2的要素数:{count2}")

内容的提问来源于stack exchange,提问作者MedicineMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 10:27:36