matplotlib / matplotlib/basemap
basemap plot the opposite longitudinal section
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 817
- Forks
- 395
- PR merge metrics
- No merged PRs in 30d
Description
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](https://github.com/matplotlib/basemap/issues/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
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the reported code with Basemap 1.0.7 and matplotlib 2.0.0, using the longitude bounds [60,190] and the bluemarble background. Start by checking how the Mercator bounds and lon_0 are handled when crossing the dateline; done means the Indo-Pacific section displays in the requested orientation and domain.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data-visualization
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100