basemap
basemap copied to clipboard
basemap plot the opposite longitudinal section
I'm getting nothing from stackoverflow so I post it here.
The problem is I can't let bluemarble to plot a map showing the Indo-Pacific longitudinal section, covering the longitude band of about [60,190]. Below is my code:
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
lats=[-25,66]
lons=[60,187]
fig=plt.figure();ax=fig.add_subplot(111)
bmap=Basemap(projection='merc',\
llcrnrlat=lats[0],llcrnrlon=lons[0],\
urcrnrlat=lats[1],urcrnrlon=lons[1]-360.,\
lon_0=(lons[0]+lons[1])/2.,\
ax=ax)
bmap.bluemarble()
plt.show()
The result has its x-axis flipped, I guess somehow related to this issue#192
If I swap the llcrnrlon and urcrnrlon:
bmap=Basemap(projection='merc',\
llcrnrlat=lats[0],llcrnrlon=lons[1]-360.,\
urcrnrlat=lats[1],urcrnrlon=lons[0],\
lon_0=(lons[0]+lons[1])/2.,\
ax=ax)
the map shows correct orientation, but the wrong domain. I wanted to show the Indian ocean, Euro-asia and west Pacific, however the map shows the remaining longitudes, covering the central-east Pacific, America continents and Atlantic. The lon_0 argument doesn't seem to do anything.
I am aware that when crossing the dateline things get complicated and sometimes you need to shiftgrid() or shiftdata(), but in this case I have no data yet, just the bluemarble background.
Please help.
Some versions (all in conda with python2.7): basemap=1.0.7=np111py27_0 matplotlib=2.0.0=np111py27_0
I got a reply on stackoverflow providing a workaround which is to plot 2 separate bluemarbles joining at the dateline. It solved my problem, but still I would consider this as a bug, the dateline issue is haunting basemap for so long.