用途:制作一次性的交互式地图,用于快速查看和校验 Earth Engine 结果,例如覆盖空洞、分类掩膜、两个产品不一致之处,以及 AOI 是否与实际相符。
主要能力:使用 folium 加 Earth Engine getMapId 瓦片图层构建地图,每个 EE 图层作为瓦片图层叠加在卫星底图上;支持逐图层透明度滑块、清除全部/显示全部按钮、默认关闭的“Pick coords”坐标拾取开关(开启后光标变十字,点击弹出经纬度)。图层设计上建议:分类/原始类别图层重映射为连续值并配调色板,类别顺序写入图层名兼作图例;参考边界(湖泊、AOI、行政边界)用无填充描边置于顶层;叠加光学真彩色底图(如 Sentinel-2)提供背景;并提供各产品未掩膜的完整类别图层作为开关,用于验证派生图层。
使用方式:直接构建 folium 地图,将每个 EE 图层以其 map-id URL 添加为瓦片图层;保存为 .html 文件后打开。注意 getMapId 的瓦片 URL 约一天后过期,需重新生成地图。map_id_dict['tile_fetcher'].url_format 可能含未格式化占位符(如 {state.tile_base_url})导致 Folium 出错,应手动构造 URL:url = f"https://earthengine.googleapis.com/v1/{map_id_dict['mapid']}/tiles/{{z}}/{{x}}/{{y}}"。底图作为基础层并在地图控件中隐藏。若“Pick coords”需要显示实际 EE 图层值,可用 Python http.server 后端提供 /value 端点,页面 JavaScript 通过 fetch() 动态查询 EE(如 ee.Image.reduceRegion)。透明度滑块需给每个 EE 图层加 CSS 类,页面加载后为每个叠加行添加 range 滑块;Folium 生成的 TileLayer 在 Leaflet 选项中无 name 属性,不能按名称匹配,应从复选框元素取内部图层 ID(var layerId = input.layerId;),再用 map_instance._layers[layerId].setOpacity(op); 调整。清除/显示全部按钮应通过 Leaflet 自身处理器点击各叠加复选框,保持图层状态一致。自定义控件需禁用点击/滚动传播,避免操作时平移地图。
适用场景:快速检查遥感分类、掩膜、产品差异与 AOI 匹配情况。
限制:瓦片 URL 约一天过期;资料未提供安装命令、收费、平台与效果等更多信息。