GDAL에는 여러 CLI가 있는데요. 이번 포스팅에선 gdal_grid를 활용해서 interpolation하는 간단한 예제를 만들어보려고 합니다. 


gdal_grid에 대한 전반적인 설명은 아래 url에 나와있습니다. 


gdal_grid description : http://www.gdal.org/gdal_grid.html


여러 옵션도 존재하는데요. 이번 포스팅에서는 최대한 간단하게 interpolation하는 것을 목표로합니다.


interpolation의 전반적인 설명은 아래 url에서 확인하시죠.


ArcGIS Help 10.1 - Understanding interpolation analysis : 

http://resources.arcgis.com/en/help/main/10.1/index.html#//009z0000006w000000



1. inputData create 


입력데이터는 point 형태의 데이터가 됩니다. 물론 text 파일이구요. 

저는 csv(comma-separated values) 파일로 만들었습니다.


input_test.csv 라고 만들고 내용은 아래와 같이 작성합니다.


맨 앞에 있는 1 ~ 17은 줄번호입니다. 작성하실 필요 없다는 뜻이에요 :)


 1 Easting,Northing,Elevation

  2 126.95,37.57,-6.3

  3 126.62,37.47,-6.1

  4 126.98,37.27,-5.9

  5 126.43,37.7,-7

  6 127.48,37.48,-11.4

  7 127.48,37.25,-10.8

  8 127.73,37.9,-9.2

  9 127.93,37.33,-11.2

 10 128.17,38.05,-11

 11 127.87,37.68,-9.8

 12 128.88,37.75,-2.6

 13 128.55,38.25,-2.8

 14 128.72,37.67,-12.5

 15 130.88,37.47,-1.4

 16 127.95,36.97,-12.4

 17 127.43,36.63,-11.3


Elevation이라고 작성은 했지만, 꼭 Elevation 값이 들어갈 필요는 없겠죠.

interpolation 처리하기 위한 값으로 이해하셔도 됩니다. 

꼭 이름을 바꾸고 싶으신 분들은 바꾸셔도 상관없습니다. 다만 뒤 처리과정에서도 동일한 이름을 사용해주시면 됩니다.


물론, 작업해야 하는 데이터가 많을 경우에는 손으로 위 과정을 처리하는 것은 불편하겠죠. 

실제 작업에서는 소스코드를 작성하셔서 input_test.csv를 생성하시길 바랍니다. 



2. gdal_grid 처리를 위한 vrt 생성 


vrt 포멧에 대한 전반적인 내용은 다음 url을 확인하시길 바랍니다.


virtual format description : http://www.gdal.org/drv_vrt.html


input_test.vrt 라는 파일을 생성해서 아래 내용을 작성해줍니다.


역시 1~7 번호는 줄번호로, 작성하실 필요 없습니다. 작성하면 에러나겠죠.


1 <OGRVRTDataSource>

2   <OGRVRTLayer name="input_test">

3     <SrcDataSource>/path/input_test.csv</SrcDataSource>

4     <GeometryType>wkbPoint</GeometryType>

5     <GeometryField encoding="PointFromColumns" x="Easting" y="Northing" z="Elevation"/>

6   </OGRVRTLayer>

7 </OGRVRTDataSource>


앞서 생성한 input_test.csv의 path를 잘 잡아주시고, z에 "Elevation"으로 작성했는데요. 

혹시 1번에서 Elevation 이름을 다른 것을 변경하신 분은 여기서도 동일하게 변경해주세요. 



3. gdal_grid execute (실행)


명령어는 간단하게 다음과 같이 작성해봤습니다.


gdal_grid -zfield "Elevation" -a_srs EPSG:4326 -a invdist:power=2.0:smoothing=1.0 -of GTiff -ot Float32 -l input_test /path/input_test.vrt /path/output.tif


-zfield 옵션에 "Elevation"으로 작성했는데요. 이것도 마찬가지로 1번에서 변경하신 분들은 동일하게 변경하셔야되겠죠.

-a_srs 옵션은 ouput.tif의 projection을 정의해주는 곳입니다. 저는 EPSG:4326으로 설정했구요.

-a 옵션은 좀 길죠. 이건 gdal_grid에 있는 기본 값을 그대로 작성해준 것으로 interpolation algorithm을 작성해주는 곳입니다.

-of 옵션은 output file format을 설정하는 곳이구요.

-ot 옵션은 output file type을 설정하는 곳이구요.

-l 옵션은 layer 이름을 작성해주는 곳으로 2번에서 설정한 OGRVRTLayer name="input_test" 것을 참고하셔서 작성하시면 됩니다.



+ Recent posts