Cách sử dụng GDAL để chuyển đổi dữ liệu Int16 sang Byte


8

Tôi có một số dữ liệu với các băng Int16 ở định dạng HDF.

Tôi muốn chuyển đổi nó thành các dải Byte ở định dạng GeoTIFF.

Phạm vi dữ liệu cho Int16 là -2000 đến 12000, vì vậy tôi muốn ánh xạ này tới phạm vi Byte từ 0 đến 255.

Làm thế nào để tôi làm điều này với các công cụ GDAL? (nếu có thể) Nếu không, làm thế nào tôi có thể viết một tập lệnh Python để làm điều này.

Câu trả lời:


8

Tôi không chắc chắn nếu bạn biết về tính năng cấp cao của công cụ gdaltranslate. nó có thể chỉ là những gì bạn đang tìm kiếm. Nó mặc định là 0-255 và tối thiểu và tối đa của các trình quét của bạn. Bạn cũng nên đặt các giá trị null trước khi sử dụng.

Bạn có thể muốn chỉ định đầu ra là loại Byte để đảm bảo -ot "Byte"

hi vọng điêu nay co ich, :)

Chỉnh sửa: Tôi luôn muốn bao gồm các liên kết hữu ích: http://www.gdal.org/gdal_translate.html


Bạn được chào đón.
s_a

6

Những gì bạn muốn làm được gọi là Bình thường hóa và công thức chung là:

Công thức chuẩn hóa

Ở đâu:

  • Trong = Giá trị mới
  • I = Giá trị hiện tại
  • Tối thiểu = Giá trị hiện tại tối thiểu
  • Max = Giá trị hiện tại tối đa
  • newMin / newMax = Min / Man mong muốn (trong trường hợp của bạn là 0 và 255)

Bạn có thể sử dụng kết hợp gdal / python / numpy để mở bộ dữ liệu hdf và thực hiện các phép tính ô dựa trên công thức trên (nhưng nó không hoàn toàn đơn giản như với một tệp ví dụ: tệp địa lý; Bạn có thể tìm thấy tập lệnh bắt đầu ngay bây giờ làm thế nào để tải các tập hợp con ở đây )


Cảm ơn bạn về thông tin. Tôi sẽ xem nếu tôi có thể viết một kịch bản cho việc này.
ljbade
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.