การเปลี่ยนรูปทางภูมิศาสตร์สำหรับ stereographic ขั้วโลก?


16

ขณะนี้ฉันกำลังทำงานเพื่อนำเข้าข้อมูลสภาพอากาศ CANGRID (จัดให้เป็น Surfer Grid ascii, ไฟล์ ".grd") ไปยัง ArcGIS ตารางมีขนาด 95 แถวคูณ 125 คอลัมน์ เมทาดาทาให้ละติจูด / ลองจิจูดของแหล่งกำเนิด (มุมซ้ายล่าง), ขนาดเซลล์ (50 กม.) เช่นเดียวกับการบันทึกภาพเป็นขั้วภาพสามมิติที่มีจุดศูนย์กลางกลาง (110 องศา W) และละติจูดของจุดกำเนิด (60 องศา N)

หลังจากครั้งแรกที่พยายามแปลง. grd เป็น rasc as .ascii และ. flt ไม่สำเร็จฉันได้จัดการใช้ GDAL เพื่อกำหนดขอบเขตและการฉายภาพอย่างไรก็ตามชุดข้อมูลไม่ถูกต้องสอดคล้องกับขอบเขตของพื้นที่ที่ต้องการ ดูภาพด้านล่าง

มีการเปลี่ยนรูปทางภูมิศาสตร์ที่ยอมรับได้สำหรับ stereographic ขั้วโลกที่สามารถอธิบายการขาดการจัดตำแหน่งนี้ได้หรือไม่?

ตัวอย่างเช่นมีปัจจัยการแปลงหรือการหมุนเฉพาะที่ฉันควรใช้หรือไม่

ไฟล์ตัวอย่างจากชุดข้อมูลอยู่ที่นี่: "t201113.grd"

นี่คือรหัสที่ฉันใช้ใน 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
`

นอกจากนี้ยังเป็นข้อมูลการฉายภาพตามที่กำหนดโดยอินพุตเช่นจาก "GetProject ()":

'PROJCS [ "North_Pole_Stereographic" GEOGCS [ "GCS_WGS_1984" DATUM [ "WGS_1984" ลูกกลม [ "WGS_1984" 6378137.0,298.257223563]] PRIMEM [ "กรีนวิช", 0.0] UNIT [ "ปริญญา" 0.0174532925199433]] โปรเจ็ก [ "stereographic"] พารามิเตอร์ [ "False_Easting", 0.0] พารามิเตอร์ [ "False_Northing", 0.0] พารามิเตอร์ [ "Central_Meridian", 0.0] พารามิเตอร์ [ "Scale_Factor", 1.0] พารามิเตอร์ [ "Latitude_Of_Origin" 90.0 ] UNIT [ "50_Kilometers" 50,000.0]]

และอินพุต GeoTransform:

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

ละติจูดและลองจิจูดของพิกัดกริดยังมีให้และเมื่อดูในระบบพิกัดที่คาดการณ์ไว้จะมีลักษณะดังนี้ เมื่อพิกัดทางภูมิศาสตร์ถูกกำหนดโดยพิกัดของซ้ายล่าง (สีเหลือง) หรือมุมบนขวา (สีชมพู) cordinate ฉันสามารถกำหนดขอบเขตได้อย่างมีประสิทธิภาพ แต่ยังมีปัญหาการจัดตำแหน่งตลอดแรสเตอร์

ป้อนคำอธิบายรูปภาพที่นี่


หากคุณใช้ ArcGIS ให้เปลี่ยนเป็นขั้วโลกเหนือ Stereographic และตั้งค่ามาตรฐานแบบขนานเป็น 60.0 การใช้ stereographic ArcGIS ใช้ตัวคูณสเกลมากกว่าขนานมาตรฐานเพราะโปรแกรมสามารถอยู่ตรงกลางได้ทุกที่
mkennedy

ขอบคุณ @mkennedy - คุณหมายถึง "North Pole Stereographic" proj (WKID 102018) หรือไม่ ฉันได้ตั้งค่าละติจูดของแหล่งกำเนิดและค่ากลางเที่ยงโดยใช้เส้นโครงนี้และยังคงมีปัญหาเดียวกัน บางทีคุณอาจหมายถึงการฉายภาพอื่น?
jsnider

ไม่คุณต้องใช้ที่ฉาย (วิธีการ) เป็น Stereographic_North_Pole ฉันไม่คิดว่าเรามีพีซีที่แน่นอน; ลองปรับเปลี่ยนจาก 3995 หรือ 3413
mkennedy

1
ข้อมูลเมตาทราบว่า "ไฟล์ grid_pnt_lls.txt แสดงรายการละติจูด / ลองจิจูดสำหรับแต่ละ x / y (0,0 = มุม SW ของตาราง)" ด้วยไฟล์นี้อยู่ในมือคุณสามารถปฏิเสธตารางนี้ไปยังระบบพิกัดที่คุณต้องการและดำเนินการต่อได้
whuber

1
เราจะดาวน์โหลดเลเยอร์เวกเตอร์เพื่อทดสอบได้ที่ไหน
Farid Cheraghi

คำตอบ:


2

ยาวเกินไปสำหรับความคิดเห็นนี้คือการมาพร้อมกับ@ คำตอบของมาเตจ์

  1. เพิ่มข้อมูล“ .grd” ลงใน ArcGIS
  2. ใช้ฟังก์ชัน“ Raster เป็นรูปแบบอื่น” และแปลงไฟล์. grd ของคุณให้เป็นรูปแบบ ESRII GRID สิ่งนี้มีความสำคัญเนื่องจากฟังก์ชั่นแรสเตอร์ส่วนใหญ่ใน ArcGIS สามารถเข้าถึงได้สำหรับรูปแบบนี้เท่านั้นไม่ว่าจะโดยทั่วไปหรือช้าเกินไปเมื่อคุณใช้ในรูปแบบอื่น

  3. เนื่องจากมันมีไฟล์ฉายภาพที่เชื่อมโยงกับไฟล์แล้ว แทนที่จะฉายข้อมูลที่แปลงใหม่ให้กำหนดการฉายภาพ ArcToolbox> เครื่องมือการจัดการข้อมูล> ประมาณการและการแปลง> กำหนดฉาย คุณสามารถนำทางไปยังการฉายภาพกราฟิกสเตอริโอขั้วโลก ESRII ที่กำหนดไว้ล่วงหน้าและดูว่าพารามิเตอร์ของมันตรงกับที่ได้รับในข้อมูลเมตา (ไม่) ดังนั้นคุณสามารถแก้ไขได้ตาม @Matej เฉพาะที่นี่ - แทนที่จะแก้ไขให้สร้างขึ้นใหม่ตามการฉาย NPS โดยมีเส้นกลางกลางและละติจูดของแหล่งกำเนิดเปลี่ยนไปและบันทึกลงบนดิสก์จากนั้นไปที่การฉายใหม่และใช้เมื่อกำหนดการฉายของคุณ นี่เป็นเพราะการปรับเปลี่ยนแบบทันทีทันใดของคุณจะไม่สามารถใช้ได้ในภายหลังเมื่อคุณต้องการใช้เพื่อตั้งค่าระบบพิกัดสำหรับกรอบข้อมูลของคุณ



1

ฉันไม่คิดว่าคุณจะต้องปฏิเสธภาพ ทำสิ่งต่อไปนี้เท่านั้น:

  1. กำหนด (แก้ไข) ประมาณการของแผนที่
  2. ตำแหน่งทางภูมิศาสตร์ (เลื่อน) ภาพไปยังตำแหน่งที่ระบุ

โปรดทราบว่าภาพ (grd) อยู่ในการฉายภาพขั้วโลกเหนือสเตอริโอกราฟิคแล้วซึ่งจะให้คุณบ่งบอกถึงวิธีการปรับแผนที่ฐานที่จะจัดแนวกับภาพ

ขั้นตอนที่ 1 :

ปรับเปลี่ยนประมาณการภาพทิศเหนือขั้วโลกต้นฉบับ (WKID: 102018) เพื่อปรับละติจูดของแหล่งกำเนิดและเส้นเมริเดียนกลาง:

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 2:

ระบุตำแหน่งไฟล์ grd โดยตั้งค่ามุมซ้ายล่างให้เป็นพิกัดที่ระบุ (lat, lon) เมื่อคุณอัปเดตการอ้างอิงทางภูมิศาสตร์ไฟล์. gdwx จะถูกสร้างขึ้นในโฟลเดอร์เดียวกัน เมื่อกำหนดมุม SW ให้กับ (40.0451, -129.853) เนื้อหาของไฟล์จะมีลักษณะดังนี้:

50000
0
0
-50000
-1730620.4315
2744092.9724

แก้ไข:ไฟล์โลกด้านบนได้รับการแก้ไขด้วยตนเองโดยขึ้นอยู่กับขนาดของเซลล์และตำแหน่งที่ให้ของมุม SW - บรรทัดที่ 5 และ 6 แสดงตำแหน่งที่คำนวณของพิกเซลด้านซ้ายบนของรูปภาพ ตำแหน่งของภาพเปลี่ยนไปเล็กน้อย

ค่าข้างต้นวาง (เลื่อน) ภาพไปยังตำแหน่งที่ระบุและกำหนดมาตราส่วน

และนี่คือผลลัพธ์: ป้อนคำอธิบายรูปภาพที่นี่

หากดูเหมือนว่าการจัดตำแหน่งไม่ถูกต้องฉันจะถามพิกัดที่ให้ไว้สำหรับมุม SW ของภาพ ในกรณีที่คุณสามารถเข้าถึงพิกัดของเช่นมุม NE ของรูปภาพคุณสามารถคำนวณพารามิเตอร์การแปลงที่จะขยายและหมุนภาพระหว่างจุดสองจุด (หรือมากกว่า)


ไฟล์. gdwx เป็นไฟล์โลกหรือไม่ ถ้าเป็นเช่นนั้นบทความวิกิที่เชื่อมโยงจะบอกว่าบรรทัด 5 & 6 อ้างอิงพิกเซลด้านซ้ายบน คุณแนะนำให้ตั้งค่าเป็นพิกเซลตะวันตกเฉียงใต้ (ซ้ายล่าง) หรือไม่
Kirk Kuykendall

ไม่ได้ฉันระบุตำแหน่งของมุม SW ตามที่ระบุไว้ในไฟล์ readme เท่านั้น โครงสร้างของไฟล์ดูเหมือนไฟล์โลก มันถูกสร้างขึ้นโดยใช้เครื่องมือ Georeferencing ใน ArcMap ที่อาจคำนวณและจัดเก็บตำแหน่งของมุม NW - ยังไม่ได้ตรวจสอบ
Matej

1
ใช่ฉันตรวจสอบทันที ตำแหน่งที่เก็บไว้ใน. gdwx คือมุมซ้ายบน
Matej
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.