在使用Basemap实例化对象时,读取nc文件中的latcorners和loncorners并传入到实例化Basemap的参数中,如再执行绘制海岸线的语句m.drawcoastlines(),则不会显示海岸线。
atcorners = file_obj.variables['lat'][:]
loncorners = file_obj.variables['lon'][:]
# 设置画布
fig = plt.figure(figsize=(8, 4))
# 设置Basemap并对齐经纬度坐标
m = Basemap(lon_0=180, lat_0=0,
llcrnrlat=latcorners[0], urcrnrlat=latcorners[2],
llcrnrlon=loncorners[0], urcrnrlon=loncorners[2])
结果如下图:
可以看出其左下角,右上角都被传入的经纬度参数锁死,图片也进行了拉伸,并且无法显示海岸线。
当将实例化Basemap替换为
m = Basemap(lon_0 = 180, lat_0 = 0)
即避免锁定右上角和左下角的经纬度即可。
替换之后图片未被拉伸,边界也能被正常显示。