ISIS para GDAL para QGIS: georreferenciamento de imagens de Marte

8

Estou tentando usar o QGIS para visualizar algumas imagens da câmera de contexto Mars Reconnaissance Orbiter. Eu uso o ISIS3 para baixar as imagens e convertê-las em arquivos .cub mapeados, seguindo as instruções aqui: http://isis.astrogeology.usgs.gov/IsisWorkshop/index.php/Working_with_Mars_Reconnaissance_Orbiter_CTX_Data

Agora estou tentando exportar esses arquivos de cubo ISIS para arquivos GTiff, para visualizar no QGIS, posso fazer isso, mas o georreferenciamento não parece funcionar. Eu tentei isso de três maneiras diferentes:

  1. Use o comando ISIS isis2std para gerar arquivos tif (e tfw).

    Quando tento abrir o arquivo tif no QGIS, ele me pede para escolher um tipo de projeção (questão secundária, existe uma projeção adequada para Marte? Sempre escolho o WGS 84, estúpido, sei, mas não conheço uma opção mais sensata) . Depois que a varredura é carregada, ela é exibida automaticamente como uma imagem em escala de cinza, mas minhas coordenadas não estão em graus, elas parecem estar em pixels e têm um intervalo de centenas de milhares.

    Este método produz uma imagem tif de ~ 100 Mb a partir de um cub original de aproximadamente 1 Gb.

  2. Use gdal: gdal_translate -de GTiff input_mapped.cub output.tif.

    Desta vez, não me pedem para escolher um tipo de projeção. A projeção assume 'USER: 100002'. Espero que isso signifique que ele está conseguindo ler a projeção apropriada de Marte no cubo ISIS? Desta vez, a imagem é exibida como uma caixa cinza sólida em escala de cinza, mas posso ver detalhes mudando para um esquema de mapeamento de cores diferente. Mais uma vez, apesar de minhas coordenadas não estarem em graus, elas estão nas centenas de milhares novamente.

    Este método produz um GTiff com o mesmo tamanho de ~ 1 Gb da imagem .cub original.

  3. Abra o arquivo ISIS .cub diretamente no QGIS.

    Tem basicamente o mesmo efeito do método 2.

Por causa do tamanho dos arquivos, prefiro uma variação do método 1, mas com um esquema de projeção e georreferenciamento adequado para Marte.

Edit: Aqui está a georreferência e a saída do gdalinfo no arquivo .cub original do ISIS:

georeferência (em 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 (do 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
fonte
Qual é a sequência de parâmetros do Proj para 'USER: 100002'?
nhopton
@nhopton Isso seria o seguinte: "+ proj = eqc + lat_ts = 0 + lat_0 = 0 + lon_0 = 180 + x_0 = 0 + y_0 = 0 + a = 3396190 + b = 3396190 + unidades = m + no_defs" Fui para Configurações> CRS personalizado e isso estava na caixa de parâmetros.
EddyTheB
Acredito que isso seja causado pelo fato de a geotransformação estar em pixels, e não em graus, que estou investigando.
EddyTheB
Eu não pensaria assim, não se as coordenadas estivessem nas centenas de milhares. Parece mais provável que a varredura seja projetada, espera-se que o CRS que você forneceu detalhes acima. Você pode postar a varredura em algum lugar onde possa ser baixada?
N
@hophop Claro, embora seja enorme. Também editei minha pergunta para mostrar a saída de gdalinfo e a georreferência do arquivo. Desculpas por ter demorado a responder aos seus comentários, fui absorvido por outras coisas. O arquivo .cub do ISIS está em Thermal.boulder.swri.edu/images/…
EddyTheB

Respostas:

2

Crie um CRS personalizado usando a seguinte sequência de parâmetros:

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

Você pode chamar esse CRS (digamos) "Mars_Geo". Em seguida, carregue a varredura * .cub, defina o CRS do projeto como "Mars_geo" e ative a transformação do CRS on-the-fly. Isso distorcerá a varredura até certo ponto, mas você receberá as coordenadas long / lat conforme mover o ponteiro pela tela.

Ao verificar as coordenadas de canto da varredura, lembre-se de que os cantos não são os cantos dos dados. A imagem é um retângulo vertical com as extensões mostradas na imagem anexada.

Por favor, tenha em mente que eu não sei nada sobre Marte e quase nada sobre SRCs sinusoidais, então tenha cuidado!

N.

insira a descrição da imagem aqui

Nhopton
fonte