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.