Skip to main content
 首页 » 编程设计

python之通过 basemap 、matplotlib 在数据的地 block 上绘制 coaSTLines

2025年05月04日25dudu

考虑到其他人的例子,我试图解决这个问题。但是,我仍然得不到我想要的结果。我得到的结果是没有海岸线或没有海岸线并且没有数据图(我使用了 pcolor)

我使用的数据是通过感兴趣区域的温度的 netcdf 文件。因为数据本身没有边界信息,所以我想在这个数字上画出海岸线。 我的代码如下:

Temp_plt =  Temp[18,:,:] 
Lon_plt = Lon[18,:,:] 
Lat_plt = Lat[18,:,:] 
lons       = Lon_plt[0] 
lats       = Lat_plt[0] 
lat_min = min(lats) 
lat_max = max(lats) 
lon_min = min(lons) 
lon_max = max(lons) 
Temp_c = Temp_plt-273.15 
m = Basemap( 
        projection = 'merc', 
        llcrnrlat=lat_min, urcrnrlat=lat_max, 
        llcrnrlon=lon_min, urcrnrlon=lon_max, 
        resolution='h', area_thresh=0.01 
    ) 
 
m.drawcoastlines() 
lon, lat= m.makegrid(Temp_plt.shape[1],Temp_plt.shape[0]) 
x1, y1 = m(lon,lat) 
myPLT = m.pcolor(x1,y1,Temp_c) 

因为我的经度 (Lon_plt) 和纬度 (Lat_plt) 是二维数组,所以我刚刚尝试了 pcolor 的这些值,而不是 makegrid 中的 x1 和 y1。但是,那时我看不到任何海岸线,只能看到温度 pcolor 图。从上面的代码中,我只能看到整个情节都是红色。

任何想法或帮助将不胜感激。

谢谢,

艾萨克

请您参考如下方法:

如评论中所述,应在 pcolor() 函数之后调用 drawcoaSTLines() 函数,以便线条覆盖着色,而不是相反。