ISIS ke GDAL ke QGIS: Georeferencing Mars Images

8

Saya mencoba menggunakan QGIS untuk melihat beberapa gambar dari Kamera Konteks Mars Reconnaissance Orbiter. Saya menggunakan ISIS3 untuk mengunduh gambar dan mengonversinya menjadi file .cub yang dipetakan, mengikuti instruksi di sini: http://isis.astrogeology.usgs.gov/IsisWorkshop/index.php/Working_with_Mars_Reconnaissance_Orbiter_CTX_Data

Sekarang saya mencoba untuk mengekspor file kubus ISIS ini ke file GTiff, untuk dilihat di QGIS, saya bisa melakukan ini tetapi georeferensi sepertinya tidak berfungsi. Saya sudah mencoba ini dalam 3 cara berbeda:

  1. Gunakan perintah ISIS isis2std untuk menghasilkan file tif (dan tfw).

    Ketika saya mencoba untuk membuka file tif di QGIS ia meminta saya untuk memilih jenis proyeksi (pertanyaan samping, apakah ada proyeksi yang cocok untuk Mars? Saya selalu memilih WGS 84, bodoh saya tahu tetapi saya tidak tahu pilihan yang lebih masuk akal) . Kemudian setelah raster dimuat, secara otomatis ditampilkan sebagai gambar skala abu-abu tetapi koordinat saya tidak dalam derajat, mereka tampak dalam piksel dan memiliki kisaran 100-an ribu.

    Metode ini menghasilkan gambar tif ~ 100 Mb dari .cub asli mendekati 1 Gb.

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

    Kali ini saya tidak diminta untuk memilih jenis proyeksi. Proyeksi mengambil 'USER: 100002'. Semoga ini berarti bahwa ia mengelola untuk membaca proyeksi Mars yang sesuai dari kubus ISIS? Gambar ditampilkan sebagai kotak abu-abu solid dalam skala abu-abu kali ini, tetapi saya dapat melihat detailnya dengan beralih ke skema pemetaan warna yang berbeda. Sekali lagi meskipun koordinat saya tidak dalam derajat, mereka berkisar ratusan ribu lagi.

    Metode ini menghasilkan GTiff dengan ukuran ~ 1 Gb yang sama dengan gambar .cub yang asli.

  3. Buka file .ISub ISIS langsung di QGIS.

    Pada dasarnya memiliki efek yang sama seperti untuk metode 2.

Karena ukuran file saya lebih suka variasi metode 1, tetapi dengan skema proyeksi dan georeferensi yang cocok untuk Mars.

Sunting: Berikut adalah georeferensi, dan output dari gdalinfo pada file .cub ISIS asli:

georeferensi (dalam 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 (dari 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
sumber
Apa string parameter Proj untuk 'USER: 100002'?
nhopton
@nhopton Apakah ini: "+ proj = eqc + lat_ts = 0 + lat_0 = 0 + lon_0 = 180 + x_0 = 0 + y_0 = 0 + a = 3396190 + b = 3396190 + b = 3396190 + unit = m + no_defs" Saya pergi ke Pengaturan> Custom CRS dan ini ada di kotak parameter.
EddyTheB
Saya percaya ini disebabkan oleh geotransform yang berada dalam piksel, bukannya derajat, sedang saya selidiki.
EddyTheB
Saya tidak akan berpikir begitu, tidak jika koordinatnya ada dalam ratusan ribu. Tampaknya lebih mungkin bahwa raster diproyeksikan, kita berharap kepada CRS Anda memberikan rincian di atas. Bisakah Anda memposting raster ke suatu tempat yang dapat diunduh?
nhopton
@ntonton Tentu, meskipun ini luar biasa. Saya juga mengedit pertanyaan saya untuk menunjukkan output dari gdalinfo dan georeferensi untuk file tersebut. Permintaan maaf karena lambat menanggapi komentar Anda, saya sudah asyik dengan hal-hal lain. File .cub ISIS ada di thermal.boulder.swri.edu/images/…
EddyTheB

Jawaban:

2

Buat CRS khusus menggunakan string parameter berikut:

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

Anda mungkin menyebutnya CRS ini (katakanlah) "Mars_Geo". Kemudian muat raster * .cub, atur CRS proyek menjadi "Mars_geo" dan aktifkan transformasi CRS saat terbang. Melakukan hal ini akan mendistorsi raster sampai batas tertentu tetapi Anda akan mendapatkan koordinat lon / lat yang dilaporkan saat Anda menggerakkan pointer di sekitar layar.

Saat memeriksa koordinat sudut raster, ingatlah bahwa sudut bukan sudut data. Gambar adalah persegi panjang tegak memiliki luasan yang ditunjukkan pada gambar terlampir.

Harap diingat bahwa saya tidak tahu apa-apa tentang Mars dan tidak tahu apa-apa tentang CRS Sinusoid, jadi berhati-hatilah!

N.

masukkan deskripsi gambar di sini

nhopton
sumber