ISIS à GDAL à QGIS: géoréférencement des images de Mars

8

J'essaie d'utiliser QGIS pour afficher certaines images de la caméra de contexte Mars Reconnaissance Orbiter. J'utilise ISIS3 pour télécharger les images et les convertir en fichiers .cub mappés, en suivant les instructions ici: http://isis.astrogeology.usgs.gov/IsisWorkshop/index.php/Working_with_Mars_Reconnaissance_Orbiter_CTX_Data

Maintenant, j'essaie d'exporter ces fichiers de cube ISIS vers des fichiers GTiff, pour les afficher dans QGIS, je peux le faire mais le géoréférencement ne semble pas fonctionner. J'ai essayé cela de 3 manières différentes:

  1. Utilisez la commande ISIS isis2std pour générer des fichiers tif (et tfw).

    Lorsque j'essaie d'ouvrir le fichier tif dans QGIS, il me demande de choisir un type de projection (question secondaire, y a-t-il une projection appropriée pour Mars? Je choisis toujours WGS 84, stupide je sais mais je ne connais pas d'option plus sensée) . Ensuite, une fois le raster chargé, il s'affiche automatiquement sous la forme d'une image en niveaux de gris, mais mes coordonnées ne sont pas en degrés, elles semblent être en pixels et avoir une plage de 100s de milliers.

    Cette méthode produit une image tif d'environ 100 Mo à partir d'un fichier original de près de 1 Go.

  2. Utilisez gdal: gdal_translate -of GTiff input_mapped.cub output.tif.

    Cette fois, on ne me demande pas de choisir un type de projection. La projection prend «USER: 100002». Espérons que cela signifie qu'il parvient à lire la projection appropriée de Mars à partir du petit ISIS? Cette fois, l'image s'affiche sous la forme d'un cadre gris uni dans une échelle de gris, mais je peux voir les détails en passant à un schéma de mappage de couleurs différent. Encore une fois, bien que mes coordonnées ne soient pas en degrés, elles se situent à nouveau par centaines de milliers.

    Cette méthode produit un GTiff avec la même taille ~ 1 Go que l'image .cub d'origine.

  3. Ouvrez le fichier ISIS .cub directement dans QGIS.

    A essentiellement le même effet que pour la méthode 2.

En raison de la taille des fichiers, je préférerais une variante de la méthode 1, mais avec un schéma de projection et de géoréférencement approprié pour Mars.

Edit: Voici la géoréférence et la sortie de gdalinfo sur le fichier ISIS .cub d'origine:

géoréférence (en python):

>>>import gdal
>>>from gdalconst import *
>>>fn = 'P01_001356_1747_XN_05S221W.map.cub'
>>>ds = gdal.Open(fn, GA_ReadOnly)
>>>gt = ds.GetGeoTransform()
>>>gt
(-22085.510544416, 5.1698292472885, 0.0, -234679.22885141, 0.0, -5.1698292472885)

gdalinfo (depuis le terminal):

$gdalinfo file.cub
Driver: ISIS3/USGS Astrogeology ISIS cube (Version 3)
Files: P01_001356_1747_XN_05S221W.map.cub
       P01_001356_1747_XN_05S221W.map.cub.aux.xml
Size is 8526, 30111
Coordinate System is:
PROJCS["Sinusoidal Mars",
    GEOGCS["GCS_Mars",
        DATUM["D_Mars",
            SPHEROID["Mars",3396190,0]],
        PRIMEM["Reference_Meridian",0],
        UNIT["degree",0.0174532925199433]],
    PROJECTION["Sinusoidal"],
    PARAMETER["longitude_of_center",138.45730511261],
    PARAMETER["false_easting",0],
    PARAMETER["false_northing",0]]
Origin = (-22085.510544415999902,-234679.228851410007337)
Pixel Size = (5.169829247288500,-5.169829247288500)
Corner Coordinates:
Upper Left  (  -22085.511, -234679.229) (138d 5' 1.74"E,  3d57'33.05"S)
Lower Left  (  -22085.511, -390347.957) (138d 4'56.04"E,  6d35' 7.46"S)
Upper Right (   21992.454, -234679.229) (138d49'45.19"E,  3d57'33.05"S)
Lower Right (   21992.454, -390347.957) (138d49'50.86"E,  6d35' 7.46"S)
Center      (     -46.528, -312513.593) (138d27'23.46"E,  5d16'20.26"S)
Band 1 Block=406x128 Type=Float32, ColorInterp=Undefined
  Min=0.033 Max=0.150 
  Minimum=0.033, Maximum=0.150, Mean=0.080, StdDev=0.020
  NoData Value=-3.40282265508890445e+38
  Metadata:
    STATISTICS_MAXIMUM=0.15037615597248
    STATISTICS_MEAN=0.080181184414784
    STATISTICS_MINIMUM=0.033307410776615
    STATISTICS_STDDEV=0.020299974127104
EddyTheB
la source
Quelle est la chaîne de paramètres Proj pour 'USER: 100002'?
nhopton
@nhopton Serait-ce ceci: "+ proj = eqc + lat_ts = 0 + lat_0 = 0 + lon_0 = 180 + x_0 = 0 + y_0 = 0 + a = 3396190 + b = 3396190 + units = m + no_defs" je suis allé à Paramètres> CRS personnalisé et c'était dans la zone des paramètres.
EddyTheB
Je crois que cela est causé par la géotransformation en pixels plutôt qu'en degrés, j'enquête.
EddyTheB
Je ne l'aurais pas pensé, pas si les coordonnées sont dans les centaines de milliers. Il semble plus probable que le raster soit projeté, on espère au CRS que vous avez fourni les détails ci-dessus. Pouvez-vous publier le raster dans un endroit où il peut être téléchargé?
nhopton
@nhopton Bien sûr, bien que ce soit énorme. J'ai également modifié ma question pour afficher la sortie de gdalinfo et la géoréférence du fichier. Toutes mes excuses pour avoir été lent à répondre à vos commentaires, j'ai été absorbé par d'autres choses. Le fichier ISIS .cub se trouve à thermal.boulder.swri.edu/images/…
EddyTheB

Réponses:

2

Créez un CRS personnalisé à l'aide de la chaîne de paramètres suivante:

+proj=longlat +a=3396190 +b=3396190 +no_defs

Vous pourriez appeler ce CRS (par exemple) "Mars_Geo". Chargez ensuite le raster * .cub, définissez le projet CRS sur "Mars_geo" et activez la transformation CRS à la volée. Cela déformera le raster dans une certaine mesure, mais vous obtiendrez des coordonnées lon / lat signalées lorsque vous déplacez le pointeur sur l'écran.

Lors de la vérification des coordonnées de coin du raster, gardez à l'esprit que les coins ne sont pas les coins des données. L'image est un rectangle vertical ayant les étendues indiquées dans l'image ci-jointe.

Veuillez garder à l'esprit que je ne sais rien de Mars et à peu près rien des CRS sinusoïdaux, alors faites attention!

N.

entrez la description de l'image ici

nhopton
la source