Làm cách nào để tìm giá trị lat / lon cho mỗi pixel trong tệp GeoTIFF?


9

Tôi muốn lưu trữ pixel tệp GeoTIFF theo pixel trong cơ sở dữ liệu. Tôi cần lưu trữ các giá trị pixel cùng với lat / lon của pixel đó trên hình ảnh GeoTIFF. Có thể làm điều đó?


1
Là mục tiêu để có thể truy vấn bằng Lat / Lon? Bạn có thể thực hiện điều này với GDAL bằng thuộc tính geotransform - Tôi có thể cung cấp một ví dụ về python. Việc chuyển đổi có thể được kết xuất trước thành một trình duyệt địa lý 2 băng tần (Band1 - LAT, Band2 - LON), nhưng tôi tự hỏi liệu nó có hiệu quả hơn khi thực hiện việc này một cách nhanh chóng không. Tôi đoán một trường hợp sử dụng sẽ giúp.
Jay Laura

Câu trả lời:


9

Theo nghĩa chung, sử dụng các tham số biến đổi affine , có sẵn với bất kỳ định dạng tệp raster nào. Với GDAL, tính năng này khả dụng với hàm GetGeoTransform () hoặc PostGIS ' ST_GeoReference () . Sau khi tìm thấy sáu tham số này, người ta chỉ cần xác định chúng là tham số nào, sau đó một hàm có thể được thực hiện để biến đổi trong không gian tuyến tính.

Ví dụ: với Python:

from osgeo import gdal
ds = gdal.Open('myfile.tif')

# unravel GDAL affine transform parameters
c, a, b, f, d, e = ds.GetGeoTransform()

def pixel2coord(col, row):
    """Returns global coordinates to pixel center using base-0 raster index"""
    xp = a * col + b * row + a * 0.5 + b * 0.5 + c
    yp = d * col + e * row + d * 0.5 + e * 0.5 + f
    return(xp, yp)

Ví dụ: nếu có một pixel tại col = 10, row = 22, thì tọa độ trong thế giới thực đến trung tâm pixel là:

>>> pixel2coord(10, 22)
(2780000.0, 6162300.0)

Một cái gì đó tương tự có thể được nấu cho PostGIS với ST_Affine () .


1

Đây có thể là một chút cổ xưa: Chuyển đổi các pixel thành các điểm, thêm các trường lat và long và điền vào các giá trị lat và long.


0

Tệp thế giới (.tfw) đi kèm với GeoTIFF chứa:

  • kích thước pixel theo hướng x (và hướng y) theo đơn vị / pixel bản đồ và
  • tọa độ x (và tọa độ y) của tâm của pixel phía trên bên trái. Đây là tất cả những gì bạn cần để tính toán vị trí theo Lat / Lon của mỗi pixel.

2
Ngoài những gì bạn mô tả, tối thiểu bạn cần biết hệ tọa độ! (Một tệp thế giới không bao gồm thông tin đó.)
whuber

1
Ngoài ra, không phải mọi GeoTIFF đều chứa tệp thế giới. Một GeoTIFF đúng có thông tin tọa độ lưu trữ trong tiêu đề, không phải trong một file riêng biệt. Tuy nhiên, thuật ngữ "GeoTIFF" thường được áp dụng cho hình ảnh TIFF với tệp thế giới. Vấn đề là, sẽ không luôn luôn có một TFW.
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.