matplotlib / matplotlib/basemap

Basemap does not respects False Easting or False Northing

Ouverte
#288 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Python
Étoiles
817
Forks
395
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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)
```

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par le constructeur de Basemap et la recherche EPSG en utilisant l’entrée correspondant à 22181 dans basemap/data/epsg ; reproduisez l’exemple tmerc et examinez comment les paramètres de projection deviennent proj4string. Vérifiez que les x_0 et y_0 fournis par EPSG sont conservés et déterminez comment les arguments de constructeur équivalents doivent être traités. Le travail est terminé lorsque l’exemple conserve les deux décalages faux et que la couverture de régression les vérifie.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
data-visualization
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.