Я хочу взять подмножество набора данных netcdf, ограниченного координатами lat / lon.
<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 ...
Я пробовал несколько методов, основанных на Help1 и Help2, чтобы установить границы, которые должны находиться между широтой [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')
Любые идеи?
latitude
иlongitude
не являются измерениями. Я удивлен, что он не удаляет никаких данных - вы уверены, что есть записи с долготой / широтой за пределами этих границ? - person shoyer   schedule 16.11.2018ds.where((-95 < ds.longitude) & (ds.longitude < -80) & (30 < ds.latitude) & (ds.latitude < 35), drop=True)
. Создаваемый им файл вдвое больше оригинала, поэтому где-то что-то не так. Значения широты все еще там для -75. - person WxJack   schedule 16.11.2018