在基础地图上打印网格(模型栅格)

2024-04-20 13:15:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在底图上绘制模型的网格(这里是一个Lambert共形投影),这样代码就可以从netCDF(.nc)文件中读取每个网格点的坐标,.nc文件只包括这些坐标),然后通过直线将它们连接起来(这是一个C网格)并绘制它们。到目前为止,我已经把这些坐标标在地图上地图散点“但在地图上只有点作为模型网格对我来说没有任何意义!在

以下是我目前为止的书面代码:

from mpl_toolkits.basemap import Basemap
from   netCDF4 import dataset as open_ncfile
import matplotlib.pyplot as plt
import matplotlib.lines as lines
import numpy as np

#-- open netcdf file
nc = open_ncfile('/desktop/grid.nc')

#-- read variable

lat = nc.variables['grid_corner_lat'][:]
lon = nc.variables['grid_corner_lon'][:]

#-- create figure and axes instances
fig = plt.figure(figsize=(15,15))
ax  = fig.add_axes([0.1,0.1,0.8,0.9])

map = Basemap(llcrnrlon=-25,llcrnrlat=70,urcrnrlon=30,urcrnrlat=80,\
        rsphere=(6378137.00,6356752.3142),\
        resolution='l',area_thresh=1000.,projection='lcc',\
        lat_0=85.,lat_1=75.,lon_0=0.,ax=ax)

map.drawcoastlines()
map.fillcontinents(color='0.90',lake_color='0.90')

# draw parallels and meridians.
map.drawparallels(np.arange(70.,90.,5.),labels=[1,1,0,1],fontsize=10)
map.drawmeridians(np.arange(-180.,180.,10.),labels=[1,1,0,1],fontsize=10)
map.drawmapboundary(fill_color='white')

x, y = map(lon,lat)

map.scatter(x,y,0.01,marker='.',color='k')

#-- add plot title

plt.show()

因此,我将非常感谢任何帮助或评论:)


Tags: import网格mapasnp地图绘制plt