Đọc bộ dữ liệu độ cao quốc gia (ArcGrid / GridFloat / IMG) với các công cụ chỉ Python?


10

Tôi đã tìm thấy dữ liệu độ cao độ chính xác cao (độ phân giải 1/3 - 1/9 giây) từ Bộ dữ liệu Độ cao quốc gia do USGS cung cấp. Nó có các định dạng int IMG, Arcgrid và GridFloat. Tôi biết ArcGrid tương ứng với gói phần mềm trả phí, nhưng tôi đang cố gắng sử dụng các công cụ có sẵn miễn phí.

Tôi có dữ liệu GPS mà tôi đang cố tương quan với mặt đất.

Có thư viện python nào cho phép tôi chuyển đổi dữ liệu gps thành độ cao bằng cách sử dụng một tệp dữ liệu ở các định dạng IMG, ArcGrid hoặc GridFloat không?

Câu trả lời:


7

Làm việc với tệp IMG trực tiếp trong python rất đơn giản với các ràng buộc GDAL. Ví dụ: bạn có thể đọc dữ liệu trực tiếp vào một mảng NumPy:

from osgeo import gdal
geo = gdal.Open('imgn36w100_11.img')
arr = geo.ReadAsArray()
print repr(arr)
array([[ 744.31896973,  743.68762207,  743.1116333 , ...,  550.42498779,
         553.77813721,  556.18640137],
       [ 744.22955322,  743.66082764,  743.05273438, ...,  552.05706787,
         554.81365967,  557.55877686],
       [ 744.0133667 ,  743.49041748,  743.00061035, ...,  553.0123291 ,
         555.78076172,  558.01312256],
       ...,
       [ 568.70880127,  567.33666992,  566.56170654, ...,  447.68035889,
         447.68804932,  447.65426636],
       [ 568.01116943,  566.95739746,  564.23382568, ...,  447.6696167 ,
         447.71224976,  447.62734985],
       [ 565.62896729,  562.65325928,  560.78759766, ...,  447.67129517,
         447.67529297,  447.65179443]], dtype=float32)

Để biết ví dụ đầy đủ hơn về việc vẽ dữ liệu định dạng IMG, hãy xem tập lệnh này tạo ra hình ảnh bên dưới. Để bạn chuyển đổi dữ liệu GPS thành độ cao, bạn sẽ phải lấy mẫu NumPy kết quả.

nhập mô tả hình ảnh ở đây


4

Trình xem bản đồ quốc gia đã từng sử dụng một nền tảng phần mềm khác, cho phép chuyển đổi dữ liệu sang GeoTIFF sau khi chọn các ô xếp. Một số nhà cung cấp dữ liệu khu vực cũng thích GeoTIFF. Nhưng điều đó có thể không giúp ích gì cho bạn.

Tuy nhiên, tin tốt gdallà có thể hoạt động với cả ba định dạng này. ArcGrid là định dạng nhị phân ESRI, định dạng dữ liệu DEM của GridFloat USGS và thuộc quyền sở hữu của IMG đối với Erdas, người tạo ra phần mềm Tưởng tượng. Tôi có thể tải xuống định dạng ArcGrid hoặc IMG và chuyển đổi sang GeoTIFF: Bản thân USGS có một tập lệnh chuyển đổi dựa trên gdal để tải xuống ( liên kết trực tiếp đến tệp ZIP ). Bạn nên tìm tài nguyên bạn cần ở đó.


Cảm ơn vì liên kết và đề cập đến gdal, nó có vẻ rất hữu ích
bất chấp

0

Câu trả lời của Kelsey ban đầu không hoạt động với tôi vì tệp .img đã sử dụng -inf làm giá trị cho khoảng trống.

Tôi đã giải quyết điều này bằng cách thêm dòng:

topo[topo<-1000] = 0

1
Đây không phải là một câu trả lời cho câu hỏi ban đầu, nó có lẽ nên là một chỉnh sửa cho câu trả lời được chấp nhận
nmtoken
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.