我正在处理大量的温度数据,这些数据是在不同的经纬度下测得的,我可以像下面这样从NetCDF文件中打开它。
<xarray.Dataset>
Dimensions: (altitude: 801, measurement_number: 3180)
Coordinates:
* altitude (altitude) float64 0.0 100.0 200.0 300.0 400.0 500.0 ...
Dimensions without coordinates: measurement_number
Data variables:
temperature (measurement_number, altitude) float32 ...
longitude (measurement_number) float64 ...
latitude (measurement_number) float64 ...
为了更方便地评估结果,我希望将变量“longitude”和“latitude”更改为类似于维度或坐标的形式。
<xarray.Dataset>
Dimensions: (altitude: 801, measurement_number: 3180, longitude: 36, latitude: 18)
Coordinates:
* altitude (altitude) float64 0.0 100.0 200.0 300.0 400.0 500.0 ...
* longitude (longitude) float64 -180, -170, -160 ...
* latitude (latitude) float64 -90, -80, -70, ...
Dimensions without coordinates: measurement_number
Data variables:
temperature (measurement_number, altitude, longitude, latitude) float32 ...
我尝试使用ds.set_coords(['longitude','latitude'])
和许多不同的函数来到这里,但我无法使温度依赖于经度和纬度。您能给我一个提示如何解决这个问题吗?
ds = ds.set_index(n_event=['longitude','latitude'])
ds = ds.unstack('n_event')
我必须对其进行unstack操作,因为我想要在所有经度上取平均值,并将文件保存回netCDF文件中:ds = ds.mean(dim='n_event')
ds.to_netcdf('combinedlatlon.nc')
但是,在文件保存之前,我总是会遇到内存错误。我猜现在我需要更深入地了解dask和分块技术。 - magon