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

如何在xarray中将2D坐标转换为GEO2D类型(MODIS数据处理)

解决MODIS数据2D坐标转GEO2D类型问题

用xarray直接标记GEO2D坐标属性

GEO2D是MODIS数据特有的坐标标识,核心是给2D经纬度坐标添加对应元数据。你可以在创建xarray Dataset时,为坐标附加GEO2D相关属性:

# 定义GEO2D格式的经纬度属性
lon_attrs = {
    'units': 'degrees_east',
    'standard_name': 'longitude',
    'grid_mapping': 'GEO2D'
}

lat_attrs = {
    'units': 'degrees_north',
    'standard_name': 'latitude',
    'grid_mapping': 'GEO2D'
}

# 创建Dataset并绑定坐标属性
xr_tmp = xr.Dataset(
    {
        'Gpp_500m': (('XDim', 'YDim', 'time'), Gpp_500m),
        'Npp_500m': (('XDim', 'YDim', 'time'), Npp_500m),
        'Npp_QC_500m': (('XDim', 'YDim', 'time'), Npp_QC_500m),
    },
    coords=dict(
        lon=(['XDim', 'YDim'], lon, lon_attrs),
        lat=(['XDim', 'YDim'], lat, lat_attrs),
        time=_time_
    )
)

# 添加GEO2D网格映射变量(严格匹配MODIS格式要求)
xr_tmp['GEO2D'] = xr.DataArray(
    [],
    attrs={
        'grid_mapping_name': 'latitude_longitude',
        'longitude_of_prime_meridian': 0.0,
        'semi_major_axis': 6378137.0,
        'inverse_flattening': 298.257223563
    }
)

用pyModis读取原生GEO2D坐标

如果你的原始数据是MODIS HDF产品,pyModis可以直接解析自带的GEO2D坐标,无需手动构建:

from pymodis import parseModis

# 读取MODIS HDF文件
modis_hdf = "your_modis_file.hdf"
modis_parser = parseModis.parseModis(modis_hdf)

# 获取原生GEO2D格式的经纬度数组
lon_geo2d, lat_geo2d = modis_parser.getGeoLocation()

# 基于原生坐标创建Dataset
xr_tmp = xr.Dataset(
    {
        'Gpp_500m': (('XDim', 'YDim', 'time'), Gpp_500m),
        'Npp_500m': (('XDim', 'YDim', 'time'), Npp_500m),
        'Npp_QC_500m': (('XDim', 'YDim', 'time'), Npp_QC_500m),
    },
    coords=dict(
        lon=(['XDim', 'YDim'], lon_geo2d),
        lat=(['XDim', 'YDim'], lat_geo2d),
        time=_time_
    )
)

# 保留原始GEO2D属性
xr_tmp.lon.attrs = modis_parser.metadata['longitude'].attrs
xr_tmp.lat.attrs = modis_parser.metadata['latitude'].attrs

验证转换结果

执行以下代码查看坐标属性,确认是否包含GEO2D标识:

print(xr_tmp.lon.attrs)
print(xr_tmp.lat.attrs)

内容的提问来源于stack exchange,提问作者马希仁

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 12:45:47