matplotlib / matplotlib/basemap

Cannot plot a simple map over Africa if lon_0 is not equal to zero

未关闭
#347 4 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

主要语言
Python
星标
817
派生
395
PR 合并指标
30 天内没有已合并 PR

描述

This might be related to https://github.com/matplotlib/basemap/issues/183
I have a quite simple global 0.1 degree image that I would like to put onto a map. The code for reproducing the problem is the following.
```python
m = Basemap(width=12000000, height=8000000,
resolution='l', projection='stere',
lat_ts=0, lat_0=0, lon_0=21.)
# m = Basemap(width=9000000, height=9000000,
# projection='aeqd', lat_0=0, lon_0=1)
lons = np.arange(-179.95, 180.01, 0.1)
lats = np.arange(-89.95, 90.01, 0.1)
data = np.random.random((1800, 3600))
lons, lats = np.meshgrid(lons, lats)
x, y = m(lons, lats)
m.pcolormesh(x, y, data,
latlon=False, cmap='RdBu')
# m.imshow(np.flipud(anom)[1500:2470,600:1200])
m.drawcoastlines()
m.drawcountries()
plt.show()
```
The result is the following:
![basemap-stere_lon_0 21](https://cloud.githubusercontent.com/assets/380927/24399806/4605b144-13ae-11e7-8917-e4e83936fab5.png)

Changing `lon_0` from 21 to 0 gives the following:
![basemap-stere_lon_0 0](https://cloud.githubusercontent.com/assets/380927/24399847/8124229c-13ae-11e7-997f-890206869023.png)

I've also tried this with `aeqd` and `laea` projections with the same results.

##### conda environment for testing
```
name: test_basemap
channels:
- !!python/unicode
'defaults'
- !!python/unicode
'conda-forge'
dependencies:
- !!python/unicode
'basemap=1.0.7=np112py27_0'
- !!python/unicode
'cairo=1.14.8=0'
- !!python/unicode
'cycler=0.10.0=py27_0'
- !!python/unicode
'dbus=1.10.10=0'
- !!python/unicode
'expat=2.1.0=0'
- !!python/unicode
'fontconfig=2.12.1=3'
- !!python/unicode
'freetype=2.5.5=2'
- !!python/unicode
'functools32=3.2.3.2=py27_0'
- !!python/unicode
'geos=3.5.0=0'
- !!python/unicode
'glib=2.50.2=1'
- !!python/unicode
'gst-plugins-base=1.8.0=0'
- !!python/unicode
'gstreamer=1.8.0=0'
- !!python/unicode
'icu=54.1=0'
- !!python/unicode
'jpeg=9b=0'
- !!python/unicode
'libffi=3.2.1=1'
- !!python/unicode
'libgcc=5.2.0=0'
- !!python/unicode
'libiconv=1.14=0'
- !!python/unicode
'libpng=1.6.27=0'
- !!python/unicode
'libxcb=1.12=1'
- !!python/unicode
'libxml2=2.9.4=0'
- !!python/unicode
'matplotlib=2.0.0=np112py27_0'
- !!python/unicode
'mkl=2017.0.1=0'
- !!python/unicode
'numpy=1.12.1=py27_0'
- !!python/unicode
'openssl=1.0.2k=1'
- !!python/unicode
'pcre=8.39=1'
- !!python/unicode
'pip=9.0.1=py27_1'
- !!python/unicode
'pixman=0.34.0=0'
- !!python/unicode
'pycairo=1.10.0=py27_0'
- !!python/unicode
'pyparsing=2.1.4=py27_0'
- !!python/unicode
'pyqt=5.6.0=py27_2'
- !!python/unicode
'python=2.7.13=0'
- !!python/unicode
'python-dateutil=2.6.0=py27_0'
- !!python/unicode
'pytz=2016.10=py27_0'
- !!python/unicode
'qt=5.6.2=3'
- !!python/unicode
'readline=6.2=2'
- !!python/unicode
'setuptools=27.2.0=py27_0'
- !!python/unicode
'sip=4.18=py27_0'
- !!python/unicode
'six=1.10.0=py27_0'
- !!python/unicode
'sqlite=3.13.0=0'
- !!python/unicode
'subprocess32=3.2.7=py27_0'
- !!python/unicode
'tk=8.5.18=0'
- !!python/unicode
'wheel=0.29.0=py27_0'
- !!python/unicode
'zlib=1.2.8=3'
prefix: !!python/unicode '/home/cpa/.pyenv/versions/miniconda-3.16.0/envs/test_basemap'
```

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

首先,在列出的 Python、matplotlib 和 numpy 环境中运行所提供的 Basemap 复现,并比较 lon_0=21 与 lon_0=0 以及 aeqd 和 laea 示例。未指定源文件或测试;当 lon_0 为非零值时,全局 pcolormesh 能够正确定位在地图上,且不影响其他投影时,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
matplotlib, numpy, python
领域
data-visualization
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。