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.

ljbade
sumber

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

s_a
sumber
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 )

Nickes
sumber
Terimakasih atas infonya. Saya akan melihat apakah saya dapat menulis skrip untuk ini.
ljbade