Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从netCDF中提取位置和时间范围的值_Python_Pandas_Netcdf_Netcdf4_Xarray - Fatal编程技术网

Python 从netCDF中提取位置和时间范围的值

Python 从netCDF中提取位置和时间范围的值,python,pandas,netcdf,netcdf4,xarray,Python,Pandas,Netcdf,Netcdf4,Xarray,是否存在xarray函数的netCDF4等价项,用于从netCDF文件中为lat lon和特定时间范围选择值: hndl_nc.sel(time=slice(start_date, end_date)).sel(lon=lon, lat=lat, method='nearest') 我不想使用cdo或nco,根据您的特定数据集会有差异,但这种函数应该在特定坐标和时间片上提取值: def variable_pull(site_lat, site_lon, lat, lon, var, time_

是否存在xarray函数的netCDF4等价项,用于从netCDF文件中为lat lon和特定时间范围选择值:

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

我不想使用cdo或nco,根据您的特定数据集会有差异,但这种函数应该在特定坐标和时间片上提取值:

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)

为什么不像你已经做的那样在xarray做呢?。或者在结尾使用.values直接作为np.array提取数据?