[英]uwnd variable in netCDF file
如何在python的netCDF文件中读取uwnd变量?
from mpl_toolkits.basemap import Basemap
from netCDF4 import Dataset, date2index
import numpy as np
import matplotlib.pyplot as plt
from datetime import datetime
from IPython.display import Image
from IPython.core.display import HTML
import netCDF4 as nc
plt.clf()
nc_file = '042711_V.nc'
nc_file2 = '042711_U.nc'
V = Dataset(nc_file, mode='r')
U = Dataset(nc_file2, mode='r')
print U.variables
这验证了uwnd确实是变量,但是为什么不读?
OrderedDict([(u'lat', <type 'netCDF4._netCDF4.Variable'>
float32 lat(lat)
units: degrees_north
actual_range: [ 90. -90.]
long_name: Latitude
unlimited dimensions:
current shape = (73,)
filling off
), (u'lon', <type 'netCDF4._netCDF4.Variable'>
float32 lon(lon)
units: degrees_east
long_name: Longitude
actual_range: [ 0. 357.5]
unlimited dimensions:
current shape = (144,)
filling off
), (u'time', <type 'netCDF4._netCDF4.Variable'>
float64 time(time)
units: hours since 1800-1-1 00:00:0.0
long_name: Time
actual_range: [ 71870952. 71870952.]
delta_t: 0000-01-00 00:00:00
unlimited dimensions: time
current shape = (1,)
filling off
), (u'uwnd', <type 'netCDF4._netCDF4.Variable'>
float32 uwnd(time, lat, lon)
long_name: u wind
valid_range: [-99999. 99999.]
actual_range: [ -26.84999084 377.20001221]
units: m/s
add_offset: 0.0
scale_factor: 1.0
missing_value: -9.96921e+36
precision: 99
least_significant_digit: 99
var_desc: u wind
dataset: CDC Derived NCEP Reanalysis Products
level_desc: 500mb Pressure Level
statistic: Composite
parent_stat: Other
unlimited dimensions: time
current shape = (1, 73, 144)
filling off
)])
KeyError: 'uwnd'
我正在尝试在地图上绘制一些widnbarbs。 我已成功获取它来读取时间,经度和纬度,但是uwnd是什么意思,我如何将其读取为numpy格式?
这是我找到的有关读取netCDF文件的网站: http ://www.hydro.washington.edu/~jhamman/hydro-logic/blog/2013/10/12/plot-netcdf-data/
编辑经过讨论更详细的,事实证明, uwnd
被称为vwnd
在其他( 042711_U.nc
)文件,导致KeyError
您是否从代码中的最后一个打印语句中得到了KeyError
(或显示的整个输出)? 通常,这样的事情应该将uwnd
读入3D Numpy数组中:
from netCDF4 import Dataset
U = Dataset('042711_U.nc', 'r')
uwnd = U.variables["uwnd"][:,:,:]
例如,对于稍微不同的气象数据集:
import netCDF4 as nc4
nc = nc4.Dataset('drycblles.default.0000000.nc')
u = nc.variables["u"][:,:]
print(type(u), u.shape)
<class 'numpy.ndarray'> (8, 32)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.