Извлечение значения из netCDF для местоположения и во временном диапазоне

Существует ли в netCDF4 эквивалент функции xarray для выбора значений из файла netCDF для широты и определенного диапазона времени:

hndl_nc.sel(time=slice(start_date, end_date)).sel(lon=lon, lat=lat, method='nearest')

Я не хочу использовать cdo или nco


person user308827    schedule 01.04.2017    source источник
comment
почему бы не сделать это в xarray, как вы уже делаете? или используйте .values ​​в конце, чтобы извлечь данные напрямую в виде np.array?   -  person dreab    schedule 03.04.2017


Ответы (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)
person Rick Berg    schedule 03.04.2017