Python Netcfd4 NameError:name';lat#u阵列';没有定义

Python Netcfd4 NameError:name';lat#u阵列';没有定义,python,netcdf4,Python,Netcdf4,我试图启动一个示例python脚本,从NetCDF4(.nc)文件读取数据,但当我试图运行代码时,它给了我一个错误,说没有定义名称lat_数组。 代码是: #!/usr/bin/python #========================================================= from netCDF4 import Dataset import numpy as np import matplotlib.pyplot as plt #===============

我试图启动一个示例python脚本,从NetCDF4(.nc)文件读取数据,但当我试图运行代码时,它给了我一个错误,说没有定义名称lat_数组。 代码是:

#!/usr/bin/python
#=========================================================
from netCDF4 import Dataset
import numpy as np
import matplotlib.pyplot as plt
#=========================================================
#            SET TARGET DATA
#=========================================================
day=1
lat_target=45.0
lon_target=360-117.0
#=========================================================
#             SET OPENDAP PATH
#=========================================================
pathname = 'http://thredds.northwestknowledge.net:8080/thredds/dodsC/agg_macav2metdata_huss_BNU-ESM_r1i1p1_historical_1950_2005_CONUS_daily.nc'
#=========================================================
#             GET DATA HANDLES
#=========================================================
filehandle=Dataset(pathname,'r',format="NETCDF4")
lathandle=filehandle.variables['lat']
lonhandle=filehandle.variables['lon']
timehandle=filehandle.variables['time']
datahandle=filehandle.variables['specific_humidity']
#=========================================================
#             GET DATA
#=========================================================
#get data
time_num=len(timehandle)
timeindex=range(day-1,time_num,365)  #python starts arrays at 0
time=timehandle[timeindex]
lat = lathandle[:]
lon = lonhandle[:]
#=========================================================
#find indices of target lat/lon/day
lat_index = (np.abs(lat-lat_array)).argmin()
lon_index = (np.abs(lon-lon_array)).argmin()
#check final is in right bounds
if(lat[lat_index]>lat_target):
    if(lat_index!=0):
        lat_index = lat_index - 1
if(lat[lat_index]<lat_target):
    if(lat_index!=len(lat)):
        lat_index =lat_index +1
if(lon[lon_index]>lon_target):
    if(lon_index!=0):
        lon_index = lon_index - 1
if(lon[lon_index]<lon_target):
    if(lon_index!=len(lon)):
        lon_index = lon_index + 1
lat=lat[lat_index]
lon=lon[lon_index]
#=========================================================
#get data
data = datahandle[timeindex,lat_index,lon_index]
#=========================================================
#              MAKE A PLOT
#=========================================================
yearref=1950
years = np.arange(yearref,yearref+len(time))
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xlabel(u'Year')
ax.set_ylabel(u'Specific Humidity')
ax.set_title(u'Specific Humidity on Day %d ,\n %4.2f\u00b0N, %4.2f\u00b0W' % (day,lat, abs(360-lon)))
#ax.plot_date(x=time,y=data,fmt="b-")
ax.ticklabel_format(style='plain')
ax.plot(years,data,'b-')
plt.savefig("myPythonGraph.png")
plt.show()

它说没有定义lat_数组,但在示例中,有一个lat_数组从未定义过

原来,原来的程序员忘记将其更改为
lat\u target
。所以它基本上是
lat\u target
,而不是
lat\u array

嗯,你自己回答了这个问题<脚本中未定义代码>横向数组。只是一个猜测,但我认为您需要将
lat\u数组
替换为
lat\u目标
(类似于
lon\u数组
->
lon\u目标
)。
#find indices of target lat/lon/day
lat_index = (np.abs(lat-lat_array)).argmin()