Извлечение значения из формы netCDF для местоположения и во всем диапазоне времени
Существует ли эквивалент netCDF4 функции xarray для выбора значений из файла netCDF для долготы и для определенного временного диапазона:
hndl_nc.sel(time=slice(start_date, end_date)).sel(lon=lon, lat=lat, method='nearest')
Я не хочу использовать cdo или nco
1 ответ
Решение
Различия будут зависеть от вашего конкретного набора данных, но эта функция, подобная этой, должна извлекать значения в определенных координатах и интервале времени:
def variable_pull(site_lat, site_lon, lat, lon, var, time_slice):
lat_idx = (np.abs(lat-site_lat)).argmin()
lon_idx = (np.abs(lon-site_lon)).argmin()
return var[time_slice, lat_idx, lon_idx]
для набора данных, открытого с помощью netCDF4, аналогично следующему:
f = ncdf.Dataset("filepath","r")
lat = f.variables['lat'][:]
lon = f.variables['lon'][:]
var = f.variables['var'][:]
f.close()
site_lat = your coordinates of interest
site_lon = your coordinates of interest
values = variable_pull(site_lat, site_lon, lat, lon, var, time_slice)