Cara menggunakan GDAL untuk mengonversi data Int16 ke Byte


8

Saya punya beberapa data dengan band Int16 dalam format HDF.

Saya ingin mengonversikan ini ke Byte bands dalam format GeoTIFF.

Rentang data untuk Int16 adalah -2000 hingga 12000, jadi saya ingin memetakan ini ke rentang Byte 0 hingga 255.

Bagaimana saya melakukan ini dengan alat GDAL? (jika mungkin) Kalau tidak, bagaimana saya bisa menulis skrip Python untuk melakukan ini.

Jawaban:


8

Saya tidak yakin apakah Anda mengetahui fitur -tingkat alat gdaltranslate. mungkin hanya apa yang Anda cari. Defaultnya adalah 0-255 dan min dan maxx raster Anda. Anda juga harus mengatur nilai nol sebelum menggunakan ini.

Anda mungkin ingin menentukan output sebagai tipe Byte hanya untuk memastikan -ot "Byte"

semoga ini membantu, :)

Sunting: Saya selalu ingin menyertakan tautan bermanfaat: http://www.gdal.org/gdal_translate.html


Sama-sama.
— s_a

6

Apa yang ingin Anda lakukan disebut Normalisasi dan rumus umum adalah:

Formula normalisasi

dimana:

  • In = Nilai Baru
  • I = Nilai Sekarang
  • Min = Nilai sekarang minimum
  • Max = Nilai sekarang maksimum
  • newMin / newMax = Min / Man yang diinginkan (dalam kasus Anda 0 dan 255)

Anda dapat menggunakan kombinasi gdal / python / numpy untuk membuka kumpulan data hdf dan melakukan perhitungan sel berdasarkan rumus di atas (tetapi tidak semudah itu dengan contoh: file geotiff; Anda dapat menemukan skrip awal sekarang cara memuat subdataset di sini )


Terimakasih atas infonya. Saya akan melihat apakah saya dapat menulis skrip untuk ini.
— ljbade
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.