2012-09-10 1 views
1

Une question très similaire, résolu de la même manière: how to use 'extent' in matplotlib.pyplot.imshowComment tracer l'image géo-référencée afin qu'il « correspond à » l'intrigue système de coordonnées dans Matplotlib


J'ai une liste de coordonnées géographiques (un " tracklog ") qui décrivent une trajectoire géographique. Aussi, j'ai les moyens d'obtenir une image couvrant la couverture du tracklog, où je connais les "coordonnées géographiques" des coins de l'image.

Mon intrigue ressemble actuellement à ce (avis les tiques - x = longitudes, les latitudes y =, en UTM, WGS84):

enter image description here

Supposons Je sais que les coordonnées du coin de l'image suivante (ou une version de celui-ci sans la piste bleue), et voudrait le tracer de sorte qu'il s'adapte au SYSTÈME COORDONNÉ de l'intrigue.

enter image description here

Comment puis-je faire?

(comme une note de côté, dans le cas qui compte, je prévois d'utiliser des carreaux)


Selon le commentaire de Joe Kington (en attente de sa réponse réelle pour que je puisse l'accepter), la code suivant fonctionne comme prévu, ce qui donne un aspect fixe et zoomable à mouvement panoramique « géoréférencées » tuile sur laquelle je suis en mesure de tracer tracklogs:

import matplotlib.pyplot as plt 
import Image 
import numpy 

imarray = numpy.asarray(Image.open('map.jpg')) 

plt.plot([0,1], [0,1], 'o', c='red', ms=20) ## some reference circles for debugging 
plt.imshow(imarray, extent=[0,1,0,1]) ## some random map whose corners have known coordinates 
plt.axis('equal') 
plt.show() 

enter image description here

+0

Demandez-vous comment le projeter (vous mentionnez UTM et les coordonnées géographiques) ou simplement comment tracer une image avec des extensions spécifiées? (Si c'est le dernier, utilisez simplement le 'extens' kwarg à' imshow'.) –

+0

@JoeKington Je voudrais simplement tracer, puisque l'image est déjà "projetée" (sa grille est la même que la grille de l'intrigue). Je jette un coup d'oeil à 'extents', mais si vous pouviez poster une réponse de travail, je l'accepterais volontiers! – heltonbiker

+0

D'après ce que je vois, 'extents' ajuste les axes à l'image, et non le contraire. J'essaie quelque chose avec OffsetImage comme suggéré ici: http://stackoverflow.com/a/4860777/401828 – heltonbiker

Répondre

0

Il est vraiment pas une réponse ici, mais si vous utilisez matplotlib, et vous geos-tuff, jetez un oeil à matplotlib.basemap.
Par défaut, toutes les opérations sont effectuées sur des cartes UTM, mais vous pouvez choisir votre propre projection. Jetez également un oeil sur la liste des bons tutoriels dans http://www.geophysique.be, for example.

Questions connexes