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

使用xarray导出MODIS正弦格网数据为netCDF文件的方法咨询

MODIS正弦投影xarray Dataset导出netCDF实现方法

你原来的代码是针对WGS84地理坐标系设置的属性,MODIS正弦投影属于投影坐标系,需要按CF-netCDF规范配置投影坐标和投影映射参数,操作如下:

步骤1 配置投影坐标属性

MODIS正弦格网的水平坐标为x/y(单位为米),替换原有经纬度相关的属性配置:

# 配置x坐标(东向投影坐标)属性
stacked.x.attrs['long_name'] = 'x coordinate of projection'
stacked.x.attrs['units'] = 'meters'
stacked.x.attrs['standard_name'] = 'projection_x_coordinate'

# 配置y坐标(北向投影坐标)属性
stacked.y.attrs['long_name'] = 'y coordinate of projection'
stacked.y.attrs['units'] = 'meters'
stacked.y.attrs['standard_name'] = 'projection_y_coordinate'

步骤2 添加投影映射变量

按照CF规范新增投影信息变量,记录MODIS正弦投影的参数:

# 新增投影映射变量
stacked['modis_sinusoidal'] = 0
stacked.modis_sinusoidal.attrs['grid_mapping_name'] = 'sinusoidal'
stacked.modis_sinusoidal.attrs['longitude_of_central_meridian'] = 0.0
stacked.modis_sinusoidal.attrs['false_easting'] = 0.0
stacked.modis_sinusoidal.attrs['false_northing'] = 0.0
stacked.modis_sinusoidal.attrs['semi_major_axis'] = 6378137.0
stacked.modis_sinusoidal.attrs['semi_minor_axis'] = 6356752.314245179
stacked.modis_sinusoidal.attrs['units'] = 'meters'

步骤3 关联数据变量与投影信息

修改你的数据变量属性,关联投影坐标和投影映射:

# variable替换为你实际的数据集变量名
stacked[variable].attrs['coordinates'] = 'time x y'
stacked[variable].attrs['grid_mapping'] = 'modis_sinusoidal'

步骤4 导出netCDF

直接调用xarray原生导出方法即可:

stacked.to_netcdf('modis_merged_output.nc')

快捷实现方案

如果你使用rioxarray读取的原始tif文件,可直接调用内置方法自动写入符合规范的投影信息,无需手动配置属性:

import rioxarray
# 直接写入MODIS正弦投影CRS
stacked.rio.write_crs("+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371007.181 +b=6371007.181 +units=m +no_defs", inplace=True)
# 直接导出
stacked.to_netcdf('modis_merged_output.nc')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:48:03