繁体   English   中英

如何从 Python 中的 netCDF 提取经度和纬度范围内的数据?

[英]How can I extract data over a range of longitude and latitude from netCDF in Python?

我已经在 nc 文件中下载了 CMIP5 气候模型 HadGEM2-CC。 我知道如何提取给定经度和纬度的数据,现在我想在经度和纬度范围内进行提取,而不是单独提取数据。

如何分别在 0 到 90 和 50 到 80 的经度范围和纬度范围内执行此操作? 下面是我的代码:

tcmodel = Dataset(path + '/treeFrac_Lmon_HadGEM2-CC_rcp85_r2i1p1_203012-205511.nc')
print(tcmodel.variables.keys())

lon = tcmodel.variables['lon']
lat = tcmodel.variables['lat']
time = tcmodel.variables['time']
tc = tcmodel.variables['treeFrac']

print(tcmodel.dimensions.items())

lon_array = lon[:]
lat_array = lat[:]
time_array = time[:]
date = datetime.datetime(1959, 12, 1)
tc_array = tc[:,:,:]
time = []

for i in time_array:
    time.append(date + datetime.timedelta(i))

time = np.array(time, dtype = 'datetime64')

k = [245:257]
i = np.abs(lon_array - 90).argmin() #This I would like to change to a range
j = np.abs(lat_array - 80).argmin() #This I would like to change to a range

tc_time = tc_array[k,j,i]

我怎样才能在经度和纬度范围内做到这一点?

如果您使用的是 Linux 或 macOS,则可以使用 nctoolkit ( https://nctoolkit.readthedocs.io/en/latest/ ) 执行此操作。

import nctoolkit as nc
data = nc.open_data(path + '/treeFrac_Lmon_HadGEM2-CC_rcp85_r2i1p1_203012-205511.nc')
data.crop(lon = [0,90], lat = [50,90])
# if you want to save the file, just do this
data.to_nc("outfile.nc")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM