Biến đổi địa lý cho lập thể cực?


16

Tôi hiện đang làm việc để nhập dữ liệu khí hậu CANGRID (được cung cấp dưới dạng tệp Surfer Grid ascii, ".grd") vào ArcGIS. Lưới có 95 hàng với kích thước 125 cột. Siêu dữ liệu cung cấp lat / lon gốc (góc dưới bên trái), kích thước ô (50km) cũng như ghi chú chiếu dưới dạng lập thể cực với kinh tuyến trung tâm (110 độ W) và vĩ độ gốc (60 độ N).

Sau lần đầu tiên cố gắng chuyển đổi .grd thành raster thành .ascii và .flt không thành công, tôi đã quản lý sử dụng GDAL để đặt phạm vi và phép chiếu, tuy nhiên bộ dữ liệu không khớp chính xác với ranh giới của khu vực dự định. Xem hình ảnh dưới đây.

Có một biến đổi địa lý được chấp nhận cho lập thể cực có thể giải thích sự thiếu liên kết này?

Chẳng hạn, có một yếu tố chuyển đổi hoặc xoay vòng cụ thể mà tôi nên sử dụng không?

Một tệp ví dụ từ bộ dữ liệu ở đây: "t201113.grd"

Đây là mã tôi hiện đang sử dụng trong GDAL

ds = gdal.Open("t201113.grd")
array = ds.ReadAsArray()

x_rotation = 0
y_rotation = 0
xres = 1
yres = -1

llx = -129.8530
lly = 40.0451
ulx = -175.144
uly = 71.385

input_osr = osr.SpatialReference()
input_osr.ImportFromWkt(ds.GetProjection())

wgs84_osr = osr.SpatialReference()
wgs84_osr.ImportFromEPSG(4326)

wgs_to_nps_trans = osr.CoordinateTransformation(wgs84_osr, input_osr)
x, y, z = wgs_to_nps_trans.TransformPoint(llx,lly)

geo_transform = [ x, xres, x_rotation, y, y_rotation, yres ]

ncol = ds.RasterXSize
nrow = ds.RasterYSize

out_driver = gdal.GetDriverByName("HFA")
out_ds = out_driver.Create(t201113.img", ncol, nrow, 1, gdal.GDT_Float32)

out_ds.SetGeoTransform(geo_transform)

out_prj = 'PROJCS["North_Pole_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",60.0],UNIT["50_Kilometers",50000.0]]'

out_ds.SetProjection(out_prj)

out_ds.GetRasterBand(1).WriteArray(array)
out_ds.GetRasterBand(1).SetNoDataValue(1.70141e+038)
out_ds.FlushCache()
out_ds = None
`

Ngoài ra, đây là thông tin chiếu, như được xác định bởi đầu vào, tức là từ "GetProjection ()":

'CHUYÊN NGHIỆP [" PROJMENT ["Stereographic"], PARAMETER ["false_Easting", 0.0], PARAMETER ["false_Northing", 0.0], PARAMETER ["Central_Meridian", 0.0], PARAMETER ["Scale_Factor", 1.0], PARAMETER ], ĐƠN VỊ ["50_Kilometer", 50000.0]] '

Và GeoTransform đầu vào:

(-0.5, 1.0, 0.0, 94.5, 0.0, -1.0)

Lat, độ dài của tọa độ lưới cũng được cung cấp và khi xem trong hệ tọa độ dự kiến ​​trông như dưới đây. Khi định dạng địa lý được xác định theo tọa độ của dây dưới bên trái (màu vàng) hoặc phía trên bên phải (màu hồng), tôi có thể đặt phạm vi một cách hiệu quả, nhưng vẫn còn các vấn đề căn chỉnh trong toàn bộ raster.

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


Nếu bạn đang sử dụng ArcGIS, hãy chuyển sang Cực Bắc lập thể và đặt song song tiêu chuẩn thành 60.0. Việc triển khai lập thể ArcGIS sử dụng hệ số tỷ lệ thay vì song song tiêu chuẩn vì proj có thể được đặt ở bất cứ đâu.
mkennedy

Cảm ơn @mkennedy - bạn có nghĩa là proj "Bắc Cực Stereographic" (WKID 102018)? Tôi đã đặt vĩ độ của giá trị gốc và giá trị kinh tuyến trung tâm bằng phép chiếu này và vẫn có cùng một vấn đề. Có lẽ bạn đang đề cập đến một dự đoán khác?
jsnider

Không, bạn cần một trong đó phép chiếu (phương thức) là Stereographic_North_Pole. Tôi không nghĩ rằng chúng ta có PCS chính xác; hãy thử sửa đổi từ 3995 hoặc 3413.
mkennedy

1
Lưu ý siêu dữ liệu rằng "Tệp lưới_pnt_lls.txt liệt kê lat / longs cho mỗi x / y (0,0 = góc SW của lưới)." Với tệp này trong tay, bạn có thể điều chỉnh lại lưới này cho bất kỳ hệ tọa độ nào bạn muốn và tiếp tục từ đó.
whuber

1
Chúng ta có thể tải lớp vector ở đâu để kiểm tra?
Farid Cheraghi

Câu trả lời:


2

Quá dài cho một nhận xét, đây là kèm theo câu trả lời của @ Matej .

  1. Thêm dữ liệu của .grd vào các ArcGIS.
  2. Sử dụng chức năng Raster của người chuyển đổi sang định dạng khác và chuyển đổi tệp .grd của bạn thành định dạng ESRII GRID. Điều này rất quan trọng vì hầu hết các chức năng raster trong ArcGIS chỉ có thể truy cập được đối với định dạng này, hoặc điều đó thường hoặc quá chậm khi bạn sử dụng nó trên các định dạng khác.

  3. Vì nó đã có tệp chiếu liên quan đến tệp. Thay vì chiếu dữ liệu chuyển đổi mới, hãy xác định phép chiếu của nó. ArcToolbox> Công cụ quản lý dữ liệu> Dự đoán và chuyển đổi> Xác định phép chiếu. Bạn có thể điều hướng đến phép chiếu ESRII đồ họa âm thanh nổi cực được xác định trước và xem liệu các tham số của nó có khớp với tham số được đưa ra trong siêu dữ liệu không, vì vậy bạn có thể sửa đổi nó theo @Matej. Chỉ ở đây - thay vì sửa đổi, hãy tạo một cái mới dựa trên phép chiếu NPS với kinh tuyến trung tâm và Vĩ độ gốc thay đổi và lưu nó trên đĩa, sau đó điều hướng đến phép chiếu mới và sử dụng nó khi xác định phép chiếu của bạn. Điều này là do sửa đổi nhanh của bạn sẽ không khả dụng sau này khi bạn muốn sử dụng nó để đặt hệ tọa độ cho khung dữ liệu của bạn,



1

Tôi không nghĩ bạn cần phải chỉnh sửa lại hình ảnh. Chỉ làm như sau:

  1. xác định (sửa đổi) hình chiếu của sơ đồ cơ sở
  2. georeference (shift) hình ảnh đến vị trí được chỉ định

Lưu ý rằng hình ảnh (grd) đã có trong phép chiếu Bắc cực StereoGpson, chỉ cung cấp cho bạn chỉ dẫn về cách điều chỉnh sơ đồ cơ sở sẽ được căn chỉnh với hình ảnh.

Bước 1 :

Sửa đổi phép chiếu Stereographic gốc Bắc cực (WKID: 102018) để điều chỉnh Vĩ độ gốc và Kinh tuyến trung tâm:

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

Bước 2:

Georeference tệp grd bằng cách đặt góc dưới bên trái thành tọa độ được chỉ định (lat, lon). Khi bạn cập nhật hội nghị địa lý, tệp .gdwx được tạo trong cùng một thư mục. Khi gán góc SW cho (40.0451, -129.853), nội dung của tệp trông như sau:

50000
0
0
-50000
-1730620.4315
2744092.9724

chỉnh sửa: tệp thế giới ở trên đã được sửa đổi thủ công dựa trên kích thước ô và vị trí được cung cấp của góc SW - dòng thứ 5 và thứ 6 biểu thị vị trí tính toán của pixel phía trên bên trái của hình ảnh. Vị trí của hình ảnh thay đổi một chút.

Các giá trị trên đặt (dịch chuyển) hình ảnh đến vị trí đã chỉ định và xác định tỷ lệ.

Và đây là đầu ra: nhập mô tả hình ảnh ở đây

Nếu điều này dường như không được căn chỉnh chính xác, tôi sẽ đặt câu hỏi về tọa độ được cung cấp cho góc SW của hình ảnh. Trong trường hợp bạn có quyền truy cập vào tọa độ tức là góc NE của hình ảnh, bạn có thể tính toán lại các tham số biến đổi sẽ chia tỷ lệ và xoay hình ảnh giữa hai (hoặc nhiều) điểm.


Là tập tin .gdwx là một tập tin thế giới ? Nếu vậy, thì bài viết wiki được liên kết nói dòng 5 & 6 tham chiếu pixel phía trên bên trái. Bạn có đề xuất đặt nó ở pixel phía tây nam (phía dưới bên trái) không?
Kirk Kuykendall

Không. Tôi chỉ chỉ định vị trí của góc SW như được ghi trong tệp readme. Cấu trúc của tệp trông giống như tệp thế giới. Nó được tạo bằng công cụ Georeferences trong ArcMap có thể đã tính toán và lưu trữ vị trí của góc NW - chưa được kiểm tra.
Matej

1
Vâng, tôi đã kiểm tra nó ngay bây giờ. Vị trí được lưu trữ trong .gdwx là góc trên bên trái.
Matej
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.