gpt4 book ai didi

python - lat lon 子集的 netcdf4 提取

转载 作者:太空狗 更新时间:2023-10-30 00:20:12 29 4
gpt4 key购买 nike

我想提取一个相当大的 netcdf 文件的空间子集。来自 Loop through netcdf files and run calculations - Python or R

from pylab import *
import netCDF4

f = netCDF4.MFDataset('/usgs/data2/rsignell/models/ncep/narr/air.2m.1989.nc')
# print variables
f.variables.keys()
atemp = f.variables['air'] # TODO: extract spatial subset

如何只提取对应于某个州(例如爱荷华州)的 netcdf 文件的子集。爱荷华州有以下边界经纬度:

经度:西经 89° 5' 至西经 96° 31'

纬度:北纬 40° 36' 至北纬 43° 30'

最佳答案

这很简单,你必须找到纬度和经度的上下界索引。您可以通过查找最接近您要查找的值的值来实现。

latbounds = [ 40 , 43 ]
lonbounds = [ -96 , -89 ] # degrees east ?
lats = f.variables['latitude'][:]
lons = f.variables['longitude'][:]

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

然后只需对变量数组进行子集化。

# Air (time, latitude, longitude) 
airSubset = f.variables['air'][ : , latli:latui , lonli:lonui ]
  • 请注意,我假设经度维度变量以东度为单位,空气变量具有时间、纬度和经度维度。

关于python - lat lon 子集的 netcdf4 提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29135885/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com