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

使用Google Earth Engine生成带标注GIF时右侧异常边栏修复咨询

修复方案

导致GIF右侧出现异常边栏的核心原因及对应修复方法如下:

1. 修正跨180°经线的区域坐标

你当前定义的rect经度范围-269.648~-168.837超出了标准经度范围[-180,180],属于跨180°经线的俄罗斯远东区域,错误的坐标会导致投影计算异常出现边缘冗余。将经度转换为标准范围即可:

rect = ee.Geometry.Polygon(
  [[[90.3515625, 77.9156690],
    [90.3515625, 46.0122238],
    [191.1621094, 46.0122238],
    [191.1621094, 77.9156690]]],
  geodesic=False,
)

添加geodesic=False避免GEE自动对多边形边缘做测地线弯曲处理。

2. 对整个影像集合做裁剪处理

你当前代码仅对第一帧影像单独做了裁剪,下载用的影像集合未做裁剪, mask外的无值区域渲染为异常边。需先将本地shapefile转为GEE支持的矢量对象,再对所有影像批量裁剪:

mask = gpd.read_file('Data/RUS_adm1.shp')
# 转GEE矢量对象
mask_ee = geemap.gdf_to_ee(mask)
# 批量裁剪所有影像
collection = ee.ImageCollection("MODIS/006/MOD13Q1")\
  .filterDate('2020-01-01', '2020-12-31')\
  .select('NDVI')\
  .map(lambda img: img.clip(mask_ee))

3. 调整导出参数避免自动补边

当前dimensions仅指定了宽度600,GEE会自动按区域宽高比计算高度,比例不匹配时会自动补边。可以指定固定宽高两个值,保证和区域比例完全匹配:

# 先计算区域在3857投影下的宽高比,设置dimensions为[宽, 高],比如按比例设为[600, 520]
args = {'dimensions': [600, 520],
        'crs': 'EPSG:3857',
        'region': rect,
        'min': 0,
        'max': 10000,
        'palette': ['FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163', '99B718', '74A901', '66A000', '529400', '3E8601',
                    '207401', '056201', '004C00', '023B01', '012E01', '011D01', '011301'],
        'framesPerSecond': 1}

4. 兜底裁剪多余边缘

如果修改后仍有少量残留边,可以直接对生成的GIF做裁剪,去掉右侧冗余像素:

# x2根据实际边的宽度调整,比如原始宽度600,右边有20像素的边就设为580
geemap.crop_gif(out_gif, out_gif, x1=0, y1=0, x2=580, y2=520)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 20:03:01