matplotlib / matplotlib/basemap
llcrnrlon vs llcrnrx [-180, 180 vs 0, 360]
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
I was playing with the projections and it took me a while to understand what's going on... I need the `'rotpole'` projection to convert some locations and plot some graphs. I have all the information: `lon_0 = 10, o_lon_p = 10, o_lat_p = 10`, but I don't have the real lat/lon, I have the rotated one so I'm forced to use `llcrnrx, llcrnry...`.
I have a climate model that gives me the output in this rotated pole projection with rotated left lon = -19.5, rotated right lon = 21, rotated bottom lat = -25, rotated top lat = 20.5.
First take:
``` python
import mpl_toolkits.basemap as mb
kwargs = {
'projection': 'rotpole',
'llcrnrx': -19.5,
'llcrnry': -25,
'urcrnrx': 21,
'urcrnry': 20.5,
'o_lon_p': 10,
'o_lat_p': 32.5,
'lat_0': 10
}
m = mb.Basemap(**kwargs)
```
Now `m.drawcoastlines()` will give me a huge map that goes backwards on X axis... After a full day of investigation... I saw that `m.llcrnrx' takes the value of`360-19.5 = 340.5`and`m.urcrnrx = 21` so this clearly dosn't work...

Is this behaviour wanted? I mean, when building `m = mb.Basemap(...)` using `llcrnrlon, llcrnrlat...` you can safely pass negative values to `llcrnrlon` but when using `llcrnrx` you're forced to use `(0, 360)`...
Working version is:
``` python
import mpl_toolkits.basemap as mb
kwargs = {
'projection': 'rotpole',
'llcrnrx': 0,
'llcrnry': -25,
'urcrnrx': 21,
'urcrnry': 40.5,
'o_lon_p': 10,
'o_lat_p': 32.5,
'lat_0': -9.5
}
m = mb.Basemap(**kwargs)
```
So now I'm forced to do:
``` python
# x, y taken from climate model
xoffset = 19.5
lon, lat = m([x + xoffset], [y], inverse=True)
```
Even more confusing is the fact that you can use negative values in convert as in `m(-1, 0, inverse=True)` and you get the correct negative real longitude value...
_Edit_: using version 1.0.7; fixed `'urcrnry'` misspell
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
Comienza reproduciendo los ejemplos proporcionados del constructor de Basemap y de conversión inversa con las coordenadas del polo rotado indicadas. Inspecciona cómo el punto de entrada de Basemap gestiona los rangos llcrnrx y urcrnrx, determina después el comportamiento esperado de las coordenadas y añade cobertura para el caso de longitud rotada negativa. La tarea estará terminada cuando el rango de coordenadas documentado y la orientación resultante del mapa sean coherentes.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- 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
- 35/100