2017-04-01 57 views
1

是那里的xarray功能选择一个纬度经度和特定时间范围从netCDF文件值的netCDF4 equaivalent:提取价值形态的netCDF

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

我不想使用CDO或NCO

+1

为什么不在xarray中做它,因为您已经这样做?或在最后使用.values直接提取数据作为np.array? – dreab

回答

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)