Я пытаюсь построить базовую карту с моим графиком контура/колчана. Мой код ниже не дает ошибок, но изображение отображается неправильно; показаны только колчаны. Любая помощь?Базовая карта Overlay on Contour/Quiver Plot Python
import netCDF4
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import pylab
from mpl_toolkits.basemap import Basemap
ncfile = netCDF4.Dataset('30JUNE2012_0400UTC.cdf', 'r')
dbZ = ncfile.variables['MAXDBZF']
u = ncfile.variables['UNEW']
v = ncfile.variables['VNEW']
print u
print v
print dbZ
data = dbZ[0,0]
data.shape
print data.shape
z_index = 0 # z-level you want to plot (0-19)
U = u[0,z_index, :,:] #[time,z,x,y]
V = v[0,z_index, :,:]
map = Basemap(projection = 'merc',llcrnrlat=36,urcrnrlat=40,\
llcrnrlon=-80,urcrnrlon=-74,lat_ts=20,resolution='i')
x = np.arange(0,150)
y = np.arange(0,150)
X,Y = np.meshgrid(x,y)
lon, lat = map(X,Y, inverse = True)
levels = np.arange(5,60,3)
c = plt.contourf(lon,lat,data, levels, cmap='jet')
plt.colorbar()
plt.hold(True)
q=plt.quiver(U,V,width=0.002, scale_units='xy',scale=10)
qk= plt.quiverkey (q,0.95, 1.02, 20, '20m/s', labelpos='N')
plt.xlim([0,120])
plt.ylim([0,120])
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Reflectivity and Dual-Doppler Winds at 1 KM', fontsize=12)
plt.show()
Here is my data structure:
<type 'netCDF4.Variable'>
float32 UNEW(time, z, y, x)
missing_value: -32768.0
unlimited dimensions: time
current shape = (1, 20, 150, 150)
filling off
<type 'netCDF4.Variable'>
float32 VNEW(time, z, y, x)
missing_value: -32768.0
unlimited dimensions: time
current shape = (1, 20, 150, 150)
filling off
<type 'netCDF4.Variable'>
float32 MAXDBZF(time, z, y, x)
missing_value: -32768.0
unlimited dimensions: time
current shape = (1, 20, 150, 150)
filling off
Изображение выглядит следующим образом:
Вы есть некоторая путаница здесь с широта/долгота, используется диапазон 0-150 для представления у, который не имеет смысла в контексте широты от -90 до 90. Имеется ли в файле netCDF явное объявление lat/lon для размеров x и y? – daryl
Да, он имеет только 1 пункт в файле. Lat = 38,97 и Lon = -77,47 @ daryl –