У меня есть пустой массив в python с размером (16 250 186), представляющим время, широту и долготу.
Я хочу преобразовать его в файл netCDF, чтобы в будущем можно было легко читать данные с координатами.
Мой массив numy выглядит так
RZS = np.load("/home/chandra/Data/rootzone_CHIRPS_era5_2003-2015_daily-analysis_annual-result.npy")
RZS.shape
Output: (16, 250, 186)
Как вы можете видеть, мой приведенный выше массив значений представляет годовые значения за 16 лет.
chirps_precip =xarray.open_mfdataset("/home/chandra/Data/CHIRPS/chirps-v2.0.2000.days_p25.nc")
precip = chirps_precip.precip.sel(latitude = slice(-50,12.5), longitude = slice(-81.25,-34.75))
precip[0,:,:]
Output:
<xarray.DataArray 'precip' (latitude: 250, longitude: 186)>
dask.array<shape=(250, 186), dtype=float32, chunksize=(250, 186)>
Coordinates:
* latitude (latitude) float32 -49.875 -49.625 -49.375 ... 12.125 12.375
* longitude (longitude) float32 -81.125 -80.875 -80.625 ... -35.125 -34.875
time datetime64[ns] 2000-01-01
Attributes:
units: mm/day
standard_name: convective precipitation rate
long_name: Climate Hazards group InfraRed Precipitation with St...
time_step: day
geostatial_lat_min: -50.0
geostatial_lat_max: 50.0
geostatial_lon_min: -180.0
geostatial_lon_max: 180.0
Это координаты набора данных chirps_precip
, которые я хочу, чтобы мой массивный массив RZS
имел годы (как 2000, 2001, ..... 2015) на временном шаге
Я пробовал некоторые методы, такие как
# from xarray
array = xarray.DataArray(RZS, latitude = 'precip.latitude')
#from netCDF
Dataset.createVariable('rootzone storage cap', np.float32, ('time','lat','lon'))
Но я ничего не могу сделать. Я также пытался скопировать attrs
и coords
, но это также не сработало.
Кажется, я делаю это неправильно. Может кто-нибудь подсказать, что мне не хватает.
Я хочу, чтобы мой массив numy имел ту же координату, что и файл netcdf, но с измененным атрибутом time
для лет.