Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.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:将显示的温度限制在特定云光学深度(tau)之间_Python_Netcdf - Fatal编程技术网

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))