为什么 nc 文件中的纬度和经度尺寸会因组装两个 nc 文件而发生变化?
Why does the lat and lon dimension in nc file change from assembling two nc files?
我有两个 .nc
文件,它们具有相似的纬度和经度尺寸、CRS 和其他所有内容。
Dimensions: (lat: 62, lon: 94)
Coordinates:
* lat (lat) float64 58.46 58.79 59.12 59.44 ... 77.45 77.78 78.11 78.44
* lon (lon) float64 -150.0 -149.4 -148.9 -148.3 ... -98.56 -98.0 -97.43
当我将这两个文件加在一起时,整个维度发生了变化:
dem = xr.open_dataset(path + 'DEM.nc')
dc = xr.open_dataset(path + 'DC.nc')
X = 1 / (1 + np.exp(-(-2.2432e+01 + (dem.Band1 * 1.97521e-06) + (dc.Band1 * 5.97414e-04))))
print(X)
<xarray.DataArray 'Band1' (lat: 11, lon: 94)>
* lat (lat) float64 65.01 65.34 65.67 65.99 ... 73.52 74.18 77.78 78.44
* lon (lon) float64 -150.0 -149.4 -148.9 -148.3 ... -98.56 -98.0 -97.43
会发生什么?为什么这个加法会改变整个维度?
注意。 dc
文件有一些没有数据的网格单元 nan
。有影响吗?
编辑:给出答案后,我仍然不认为这纯粹是因为缺少数据,分别查看数据集的图像和合并的数据集:
你已经给了自己答案
the dc file has some grid cells without data nan. Does that influence it?
是的,因为 xarray 也在寻找坐标,而不仅仅是进行矢量化操作。查看文档以了解更多信息。
解决方法非常简单:让 numpy 为您完成这项工作!
X = 1 / (1 + np.exp(-(-2.2432e+01 + (dem.Band1.values * 1.97521e-06) + (dc.Band1.values * 5.97414e-04))))
data_array = xarray.DataArray(X, coords={'lat': dem.lat, 'lon': dem.lon}, dims=['lat', 'lon'])
dem['combined'] = data_array
我有两个 .nc
文件,它们具有相似的纬度和经度尺寸、CRS 和其他所有内容。
Dimensions: (lat: 62, lon: 94)
Coordinates:
* lat (lat) float64 58.46 58.79 59.12 59.44 ... 77.45 77.78 78.11 78.44
* lon (lon) float64 -150.0 -149.4 -148.9 -148.3 ... -98.56 -98.0 -97.43
当我将这两个文件加在一起时,整个维度发生了变化:
dem = xr.open_dataset(path + 'DEM.nc')
dc = xr.open_dataset(path + 'DC.nc')
X = 1 / (1 + np.exp(-(-2.2432e+01 + (dem.Band1 * 1.97521e-06) + (dc.Band1 * 5.97414e-04))))
print(X)
<xarray.DataArray 'Band1' (lat: 11, lon: 94)>
* lat (lat) float64 65.01 65.34 65.67 65.99 ... 73.52 74.18 77.78 78.44
* lon (lon) float64 -150.0 -149.4 -148.9 -148.3 ... -98.56 -98.0 -97.43
会发生什么?为什么这个加法会改变整个维度?
注意。 dc
文件有一些没有数据的网格单元 nan
。有影响吗?
编辑:给出答案后,我仍然不认为这纯粹是因为缺少数据,分别查看数据集的图像和合并的数据集:
你已经给了自己答案
the dc file has some grid cells without data nan. Does that influence it?
是的,因为 xarray 也在寻找坐标,而不仅仅是进行矢量化操作。查看文档以了解更多信息。
解决方法非常简单:让 numpy 为您完成这项工作!
X = 1 / (1 + np.exp(-(-2.2432e+01 + (dem.Band1.values * 1.97521e-06) + (dc.Band1.values * 5.97414e-04))))
data_array = xarray.DataArray(X, coords={'lat': dem.lat, 'lon': dem.lon}, dims=['lat', 'lon'])
dem['combined'] = data_array