繁体   English   中英

netCDF文件中的uwnd变量

[英]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.

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