matplotlib / matplotlib/basemap
Polar Projection PDF Issue
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 817
- Forks
- 395
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Python 3.4
Conda 3.18.3
Matplotlib 1.5.1
basemap 1.0.7
Adobe Reader XI
Trying to plot a polar projection with a custom shapefile results in an error when opening the PDF in Adobe Reader.
I am creating two orthographic projections (a southern and northern hemisphere).
```
basemaps.append(Basemap(projection='ortho', lon_0=270, lat_0=90., resolution='c', ax=axes[0]))
basemaps.append(Basemap(projection='ortho', lon_0=90, lat_0=-90., resolution='c', ax=axes[1]))
```
I then draw a full world shapefile on each projection:
```
basemap.readshapefile('Earth', 'globe')
...
plt.savefig('amaps.pdf')
```
Everything works fine here and both basemaps display with the proper lines and shapes drawn. However, when downloading the PDF and displaying it in Adobe Acrobat, you will get something like this:
[amap.pdf](https://github.com/matplotlib/matplotlib/files/99791/amap.pdf) (which looks fine if you view it in your browser, but try downloading it and opening it with Adobe Reader). We've determined that the problem arises when the coastline includes lon, lat pairs in the opposite hemisphere from the hemisphere that it is to be drawn in. So if you are drawing the southern hemisphere, you cannot read a shapefile that has lon, lat points in the norther hemisphere, and vise-versa.
Our workaround required creating two separate shapefiles, one for the northern hemisphere and one for the southern. So now it looks like this:
```
# drawing northern hemisphere
if polar and idx == 0:
basemap.readshapefile('Earth_north', 'nh')
elif polar and idx == 1:
# drawing southern hemisphere
basemap.readshapefile('Earth_south', 'sh')
# drawing all other projections
else:
basemap.readshapefile('Earth', 'globe')
```
This works fine but shouldn't be necessary.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comience reproduciendo el problema con Basemap.readshapefile y plt.savefig usando los fragmentos proporcionados de la proyección ortográfica y el PDF. Inspeccione el manejo del shapefile y la ruta de salida del PDF en busca de geometrías que crucen hemisferios. Se considera terminado cuando un shapefile de todo el mundo se renderiza correctamente en ambos hemisferios al abrir el PDF en Adobe Reader.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- matplotlib, python
- Área
- data-visualization
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 38/100