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

使用Xarray创建的NetCDF温度文件在QGIS中无法正确识别坐标的问题求助

Xarray创建的NetCDF温度文件在QGIS中无法正确识别坐标的问题求助

我用Python的Xarray生成了一个温度数据的NetCDF文件,完整代码如下:

latitude_save = sorted(list(set(copy2_sorted['lat'])))
longitud_save = sorted(list(set(copy2_sorted['lon'])))
time_save = sorted(list(set(copy2_sorted['time'])))

tmp = np.array(copy2_sorted['temp']).reshape(len(time_model), 3, 4)

xrds = xr.Dataset(
    coords=dict(time=time_save,
                lat=latitude_save,
                lon=longitud_save),
    data_vars=dict(tas=(['time', 'lat', 'lon'], tmp)))

xrds = xrds.rio.write_crs("EPSG:4326", inplace=True)

file_save = 'C:/Users/72541988B/Desktop/Copernicus/SSP1-1.9/Tas/{}_tas3.nc'.format(model)
my_enocding = {'time': {'dtype': 'int32', '_FillValue': None},
               'lat': {'dtype': 'float32', '_FillValue': None},
               'lon': {'dtype': 'float32', '_FillValue': None},
               'tas': {'dtype': 'float32', '_FillValue': float('nan'), 'zlib': False}
               }

xrds.to_netcdf(file_save, encoding=my_enocding)

print('Se ha guardado: {}'.format(model))

xrds = xr.open_dataset("C:/Users/72541988B/Desktop/Copernicus/SSP1-1.9/Tas/CAMS_CSM_tas7.nc")

生成文件后,我在Python里重新打开并检查了经纬度值,结果完全正确:

检查纬度:

print(xrds["lat"].values)

输出:

41.1265, 41.9565, 42.8

检查经度:

print(xrds["lon"].values)

输出:

-3.8875, -2.162 , -0.437 ,  1.2875

但把这个温度NetCDF文件导入QGIS时,坐标识别完全错误——软件自动生成的范围是0.0到4.0、0.0到-3.0,就像根本没读取到正确的经纬度信息一样。

之前我用完全相同的代码流程生成降水数据的NetCDF文件时,在QGIS里是可以正常识别坐标的,只有温度文件出现了这个问题。我已经尝试过这些解决方法,但都没有效果:

  • 直接在QGIS里手动修改文件坐标系,结果报错提示"坐标未定义"
  • 保存NetCDF时明确指定EPSG:4326坐标系(既用了Xarray原生方法,也尝试了rioxarray的rio.write_crs)
  • 反复确认Python中读取文件的坐标、数据都完全正常

有没有大佬能帮我排查一下问题出在哪?

备注:内容来源于stack exchange,提问作者Kontraa Kontraa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 11:14:54