วิธีค้นหาค่า lat / lon สำหรับทุกพิกเซลในไฟล์ GeoTIFF


9

ฉันต้องการเก็บไฟล์ GeoTIFF พิกเซลเป็นพิกเซลในฐานข้อมูล ฉันต้องการเก็บค่าพิกเซลพร้อมกับ lat / lon ของพิกเซลนั้นในภาพ GeoTIFF เป็นไปได้ไหมที่จะทำเช่นนั้น?


1
มีเป้าหมายที่จะสามารถสืบค้นโดย Lat / Lon หรือไม่ คุณสามารถทำสิ่งนี้ได้ด้วย GDAL โดยใช้แอททริบิวต์ geotransform - ฉันสามารถระบุตัวอย่างของไพ ธ อนได้ การแปลงอาจแสดงผลล่วงหน้าเป็น geotiff 2 แบนด์ (Band1 - LAT, Band2 - LON) แต่ฉันสงสัยว่ามันจะไม่มีประสิทธิภาพมากกว่าที่จะทำสิ่งนี้ได้ทันที ฉันเดาว่ากรณีการใช้งานจะช่วยได้
Jay Laura

คำตอบ:


9

ในแง่ทั่วไปให้ใช้พารามิเตอร์การแปลงเลียนแบบซึ่งควรจะใช้ได้กับทุกรูปแบบไฟล์แรสเตอร์ ด้วย GDAL นี้สามารถใช้ได้กับGetGeoTransform ()หรือ PostGIS' ST_GeoReference ()ฟังก์ชั่น หลังจากค้นหาพารามิเตอร์ทั้งหกนี้แล้วเราต้องการเพียงกำหนดว่าพวกเขาเป็นใครจากนั้นฟังก์ชั่นสามารถทำการแปลงในพื้นที่เชิงเส้น

เช่นกับ 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)

ตัวอย่างเช่นหากมีพิกเซลที่ col = 10, แถว = 22 ดังนั้นพิกัดโลกแห่งความจริงไปที่ศูนย์กลางพิกเซลคือ:

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

บางสิ่งบางอย่างที่คล้ายกันสามารถปรุงขึ้นสำหรับ PostGIS กับST_Affine ()


1

นี่อาจเป็นสิ่งที่ค่อนข้างล้าสมัย: แปลงพิกเซลเป็นจุดเพิ่มเขตข้อมูล lat และ long และเติมด้วยค่า lat และ long


0

ไฟล์โลก (.tfw) ที่มาพร้อมกับ GeoTIFF ประกอบด้วย:

  • ขนาดพิกเซลในทิศทาง x (และทิศทาง y) ในหน่วยแผนที่ / พิกเซลและ
  • พิกัด x (และพิกัด y) ของจุดศูนย์กลางของพิกเซลซ้ายบน นี่คือทั้งหมดที่คุณต้องคำนวณตำแหน่งเป็น Lat / Lon ของทุกพิกเซล

2
นอกจากสิ่งที่คุณอธิบายอย่างน้อยคุณจำเป็นต้องรู้ระบบพิกัด! (ไฟล์โลกไม่รวมข้อมูลดังกล่าว)
whuber

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