Я хочу взять подмножество набора данных netcdf, ограниченное координатами широта / долгота.
<xarray.Dataset>
Dimensions: (ICcheckNameLen: 72, ICcheckNum: 55, QCcheckNameLen: 60, QCcheckNum: 10, maxAutoStaLen: 6, maxLocationLen: 24, maxMETARLen: 256, maxRepLen: 6, maxSkyCover: 6, maxSkyLen: 8, maxStaNamLen: 5, maxStaticIds: 10000, maxWeatherLen: 25, nInventoryBins: 24, recNum: 8329, totalIdLen: 6)
Dimensions without coordinates: ICcheckNameLen, ICcheckNum, QCcheckNameLen, QCcheckNum, maxAutoStaLen, maxLocationLen, maxMETARLen, maxRepLen, maxSkyCover, maxSkyLen, maxStaNamLen, maxStaticIds, maxWeatherLen, nInventoryBins, recNum, totalIdLen
Data variables:
nStaticIds int32 ...
staticIds (maxStaticIds, totalIdLen) |S1 ...
lastRecord (maxStaticIds) int32 ...
invTime (recNum) int32 ...
prevRecord (recNum) int32 ...
inventory (maxStaticIds) int32 ...
globalInventory int32 ...
firstOverflow int32 ...
isOverflow (recNum) int32 ...
firstInBin (nInventoryBins) int32 ...
lastInBin (nInventoryBins) int32 ...
secondsStage1_2 (recNum) int32 ...
secondsStage3 (recNum) int32 ...
wmoId (recNum) int32 ...
stationName (recNum, maxStaNamLen) |S1 ...
locationName (recNum, maxLocationLen) |S1 ...
QCT (QCcheckNum, QCcheckNameLen) |S1 ...
ICT (ICcheckNum, ICcheckNameLen) |S1 ...
latitude (recNum) float32 ...
longitude (recNum) float32 ...
elevation (recNum) float32 ...
Я пробовал несколько методов, основанных на Справка1 и Справка2 , чтобы установить границы, которые должны быть между широтой [20,53] и долготой [-131, -62]. Доступ к набору данных можно получить по адресу NetCDF Data .
Когда я использую приведенное ниже, оно говорит: «ValueError: измерения или многоиндексные уровни ['широта', 'долгота'] не существуют"
import xarray as xr
ds = xr.open_dataset('/home/awips/python-awips/ups/20181110_1600.nc',
decode_cf=False)
print(ds)
lat_bnds, lon_bnds = [20, 53], [-131, -62]
ds.sel(latitude=slice(*lat_bnds), longitude=slice(*lon_bnds))
ds.to_netcdf(path='/home/awips/python-awips/ups/subset.nc')
Когда я пробую нижеприведенное, оно работает через данные, но не удаляет данные.
import xarray as xr
ds = xr.open_dataset('/home/awips/python-awips/ups/20181110_1600.nc', decode_cf=True)
ds.where((-131 < ds.longitude) & (ds.longitude < -62)
& (20 < ds.latitude) & (ds.latitude < 53), drop=True)
ds.to_netcdf(path='/home/awips/python-awips/ups/subset.nc')
Есть идеи?