python和netCDF:将显示的温度限制在特定云光学深度(tau)之间
我试图创建一个特定纬度、经度和云层光学深度之间所有温度的列表。这是我目前的代码:python和netCDF:将显示的温度限制在特定云光学深度(tau)之间,python,netcdf,Python,Netcdf,我试图创建一个特定纬度、经度和云层光学深度之间所有温度的列表。这是我目前的代码: f = MFDataset(filenames) latbounds = [ 32.5 , 48.5 ] lonbounds = [ 235.5 , 245.5 ] lats = f.variables['lat'][:] lons = f.variables['lon'][:] # latitude lower and upper index latli = np.argmin( np.abs( lats
f = MFDataset(filenames)
latbounds = [ 32.5 , 48.5 ]
lonbounds = [ 235.5 , 245.5 ]
lats = f.variables['lat'][:]
lons = f.variables['lon'][:]
# latitude lower and upper index
latli = np.argmin( np.abs( lats - latbounds[0] ) )
latui = np.argmin( np.abs( lats - latbounds[1] ) )
# longitude lower and upper index
lonli = np.argmin( np.abs( lons - lonbounds[0] ) )
lonui = np.argmin( np.abs( lons - lonbounds[1] ) )
temprSubset = f.variables['tc'][ : , latli:latui , lonli:lonui,]
基本上,我希望temprSubset有一个光学深度参数,但我不知道如何实现它您可以根据另一个阵列上的某些条件对温度阵列进行遮罩/切片;有几种方法,但从Numpy使用可能是最简单的:
import netCDF4 as nc4
import numpy as np
f = nc4.Dataset('rico.default.0000000.nc')
ql = f.variables['ql'][:,:]
thl = f.variables['thl'][:,:]
thl_masked = np.ma.masked_where(ql <= 0, thl)
如果您需要去除屏蔽单元,可以使用
thl_masked.compressed()
轻松完成,您可以根据另一个阵列上的某些条件对温度阵列进行屏蔽/切片;有几种方法,但从Numpy使用可能是最简单的:
import netCDF4 as nc4
import numpy as np
f = nc4.Dataset('rico.default.0000000.nc')
ql = f.variables['ql'][:,:]
thl = f.variables['thl'][:,:]
thl_masked = np.ma.masked_where(ql <= 0, thl)
如果您需要清除屏蔽单元格,可以使用
thl\u masked.compressed()
轻松完成此操作,这将有助于识别您试图访问的数据集。您应该检查这类工作。您可以这样做:f=xr.open_mfdataset(filenames)
,然后是f=f.sel(lon=slice(235.5245.5),lat=slice(32.5245.5))
这将有助于识别您试图访问的数据集。您应该检查这类工作。您可以这样做:f=xr.open_mfdataset(filenames)
,然后是f=f.sel(lon=slice(235.5245.5),lat=slice(32.548.5))