matplotlib / matplotlib/basemap

Basemap does not respects False Easting or False Northing

Abierto
#288 2 comentarios 0 reacciones 0 asignados Ver en GitHub

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

While creating a basemap from an EPSG code with the x_0 or y_0 (False Easting and False Northing), the Basemap instance does not respect those values. I tried with 'tmerc' projections only because it's of my interest. I leave an example:

Suppose I want to use this EPSG basemap:

```
# POSGAR 94 / Argentina 1
<22181> +proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <>
```

It can be found in "basemap/data/epsg" file.

Then I create the basemap and print its parameters:

```
from mpl_toolkits.basemap import Basemap

lon_min, lat_min = -75, -45
lon_max, lat_max = -70, -40
bm = Basemap(epsg=22181,
llcrnrlon=lon_min, llcrnrlat=lat_min,
urcrnrlon=lon_max, urcrnrlat=lat_max)

print bm.proj4string
```

I get the following output:
`+a=6378137.0 +b=6356752.31425 +k_0=1.0 +y_0=-5012640.49452 +lon_0=-72.0 +proj=tmerc +x_0=236540.642361 +units=m +lat_0=-90.0`

As we can see, the Basemap overrides the false easting and false northing information:
**`+x_0=236540.642361 +y_0=-5012640.49452`**

It would be great that the Basemap respect those values and even better if they can be passed as arguments while initializing it in the usual way (without using EPSG codes), for example:

```
bm = Basemap(projection='tmerc',
lon_0=lon_0, lat_0=lat_0,
x_0=x_0, y_0=y_0
llcrnrlon=lon_min, llcrnrlat=lat_min,
urcrnrlon=lon_max, urcrnrlat=lat_max)
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza por el constructor de Basemap y la búsqueda de EPSG usando la entrada para 22181 en basemap/data/epsg; reproduce el ejemplo de tmerc e inspecciona cómo los parámetros de proyección se convierten en proj4string. Confirma que se conservan los x_0 y y_0 proporcionados por EPSG y determina cómo deben manejarse los argumentos equivalentes del constructor. Se considera terminado cuando el ejemplo conserva ambos desplazamientos falsos y la cobertura de regresión los verifica.

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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.