Xác định lại bộ dữ liệu độ cao cho Earth nghiêng Trái đất


8

Tôi muốn tạo các bản đồ của một "Trái đất nghiêng", chẳng hạn như ví dụ sau đây về việc Úc ở Bắc Cực:

nhập mô tả hình ảnh ở đây http://i1048.photobucket.com/albums/s379/laskaris_mods/tilted_earth.jpg

Tôi có thể định hướng lại bản đồ ở các định dạng hình ảnh như .jpeg như thế này bằng phần mềm tôi đang sử dụng, Geocart 3. Tuy nhiên, điều tôi cần làm là từ chối các bộ dữ liệu độ cao ở định dạng netcdf (dữ liệu ETOPO .grd) theo cách này, vì vậy Tôi có dữ liệu độ cao chính xác cho "Trái đất nghiêng" của mình.

Có một phần mềm GIS có thể làm điều này?


Cũng được hỏi trên Cartotalk: cartotalk.com/index.php?showtopic=9050 nơi daan strebe báo cáo rằng Geocart 3 không hỗ trợ TIFF (bạn phải xác định CRS TIFF trong phần mềm).
mkennedy

1
Nhưng tôi cần phải đánh giá lại dữ liệu độ cao thực tế của TIFF và tôi không nghĩ Geocart làm điều đó. Tôi cũng thích có thể làm điều đó với định dạng netcdf.
Laskaris

Vì kích thước / vị trí ô đã thay đổi, các giá trị ô phải được định cỡ lại / tính toán lại nhưng điều đó sẽ xảy ra. Tại sao bạn nghĩ rằng nó không phải là? Việc từ chối một điểm không ảnh hưởng đến giá trị độ cao / z / H của nó.
mkennedy

Bạn đã đúng, nó hoạt động cho TIFF với Geocart. Tôi đã nhầm ở đó. Cảm ơn rât nhiều! Bây giờ, nếu tôi có thể làm tương tự với netcdf, nó sẽ còn tốt hơn nữa.
Laskaris

Câu trả lời:


1

Nó có thể được thực hiện bằng python netCDF4, thư viện Projection4 pyproj và numpy. Được cung cấp biết CRS tệp netcdf và CRS đất nghiêng, nếu có sẵn mã EPSG thì cực dễ. Các bước là

  1. Đầu tiên nhập tệp netcdf vào python bằng thư viện netCDF4.
  2. Truy vấn lat, long của tệp netcdf và lưu trữ dưới dạng mảng.
  3. Xác định CRS tệp netcdf hiện tại và CRS đất nghiêng yêu cầu, nếu không có CRS, phép chiếu có thể được xác định, ví dụ để chuyển đổi giữa phép chiếu tùy chỉnh lcc thành EPSG: 4326, bên dưới mã hoạt động. import pyproj
    tc={'proj':'lcc','width':'width_meters','height':'height_meters','lat_0':cen_lat,'lon_0':cen_lon,'lat_1':truelat1,'lat_2':truelat2} proj1=pyproj.Proj(tc) proj2_out='+init=EPSG:4326' proj2=pyproj.Proj(proj2_out) lat2,lon2=[],[] for k, l in zip(lon,lat): lat1,lon1=pyproj.transform(proj1,proj2,k,l) lat2.append(lon1) lon2.append(lat1)
  4. Các mảng lat2 và lon2 chứa các giá trị lat lat bị từ chối, sử dụng các giá trị đó để tạo lại tệp Netcdf hoặc tiff bằng thư viện python ogr.

Câu trả lời này có thể đưa ra một khởi đầu cho các bước từ 1 đến 2. Hoặc xem phần giới thiệu mở rộng này để chuyển đổi phép chiếu bằng thư viện python pyproj.

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.