GeoTIFF 파일의 모든 픽셀에 대한 위도 / 경도 값을 찾는 방법은 무엇입니까?


9

데이터베이스에 GeoTIFF 파일을 픽셀 단위로 저장하고 싶습니다. GeoTIFF 이미지에 픽셀 값을 해당 픽셀의 위도 / 경도와 함께 저장해야합니다. 그렇게 할 수 있습니까?


1
위도 / 경도별로 쿼리 할 수있는 목표입니까? geotransform 속성을 사용하여 GDAL 로이 작업을 수행 할 수 있습니다. 파이썬 예제를 제공 할 수 있습니다. 변환은 2 밴드 지오 스티프 (Band1-LAT, Band2-LON)로 사전 렌더링 될 수 있지만, 즉시이 작업을 수행하는 것이 더 효율적이지 않을지 궁금합니다. 유스 케이스가 도움이 될 것 같습니다.
Jay Laura

답변:


9

일반적인 의미에서, 임의의 래스터 파일 형식과 함께 사용할 수 있는 affine 변환 매개 변수를 사용하십시오 . GDAL을 사용하면 GetGeoTransform () 또는 PostGIS의 ST_GeoReference () 함수 와 함께 사용할 수 있습니다 . 이 6 개의 매개 변수를 찾은 후에는 어떤 매개 변수를 결정하기 만하면 선형 공간에서 변환 할 수 있습니다.

예를 들어, 파이썬으로 :

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, row = 22에 픽셀이있는 경우 픽셀 중심에 대한 실제 좌표는 다음과 같습니다.

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

ST_Affine ()으로 PostGIS에 대해 비슷한 것을 요리 할 수 ​​있습니다 .


1

조금 고풍 스러울 수 있습니다. 픽셀을 포인트로 변환하고 위도 및 경도 필드를 추가하고 위도 및 경도 값으로 채 웁니다.


0

GeoTIFF와 함께 제공되는 월드 파일 (.tfw)에는 다음이 포함됩니다.

  • 맵 단위 / 픽셀의 x 방향 (및 y 방향)의 픽셀 크기
  • 좌상단 픽셀의 중심의 x 좌표 (및 y 좌표). 모든 픽셀의 위도 / 경도 위치를 계산하는 데 필요한 전부입니다.

2
설명하는 것 외에도 최소한 좌표계를 알아야합니다! (세계 파일에는 그러한 정보가 포함되어 있지 않습니다.)
whuber

1
또한 모든 GeoTIFF에 월드 파일이있는 것은 아닙니다. 진정한 GeoTIFF이 아닌 별도의 파일에 헤더에 저장된 좌표 정보가 있습니다. 그러나 "GeoTIFF"라는 용어는 종종 월드 파일이있는 TIFF 이미지에 적용됩니다. 요점은 항상 TFW가있는 것은 아닙니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.