울릉도 지역의 지적도와 건물통합데이터의 좌표계 문제

우리가 GIS를 활용해 무언가를 할 때 공간 데이터들 간의 좌표를 맞춰 레이어 단위로 중첩하여 하나의 지도를 구성한 뒤, 시각적 비교와 다양한 분석을 처리하게 됩니다. 이번에 경상북도 지역 중 내륙과 상당히 멀리 떨어져 있는 울릉도 지역에 대한 좌표계에 상당한 문제가 있다는 것을 파악했습니다. 독도는 더 심각!! -_-; 경상북도의 울릉도를 제외한 다른 지역은 그 좌표계가 매우 정확히 일치하는 것을 볼 때 울릉도 지역에 대한 좌표 불일치는 데이터 구축단계에서 원점 처리에 있어 상당한 문제가 있고, 근본적인 해결을 국가공간정보포털의 운영 주체인 정부 차원에서 조속히 해결해줘야 할 부분으로 생각합니다. 아래는 GRS80 UTM-K 좌표계로 변환하여 지적도와 행정경계를 중첩한 지도입니다.

앞서 언급하였듯이, 을릉도 이외의 다른 경상북도 지역은 GRS80 UTM-K 좌표계로 변환하여 중첩했을 경우 정확히 일치합니다. 제대로 구축된 데이터를 구할 수 있다면 좋았겠지만, 그럴 수 없는 상황에서 이처럼 구축 단계에서 근본적으로 잘못 되어진 공간 데이터의 좌표계를 일치시키는 방법으로 Georeferencing 기능을 활용하는 방법밖에 없었고, Georeferencing 기능을 수행할 수 있는 GDAL의 ogr2ogr.exe 콘솔 프로그램을 사용하고자 하였습니다. 그런데 이 프로그램은 콘솔인지라, 시각적으로 GCP를 잡을 수 없다는 문제가 있습니다. QGIS을 활용해 보려고 하였으나, 관련된 기능에 오류가 발생합니다. QGIS 역시 GDAL의 기능을 그대로 활용하면서 단지 시각적으로 GCP를 잡는 기능을 제공하는 것으로 예상됩니다. 여튼.. ogr2ogr을 통한 Georeferencing 기능을 위해 시각적으로 GCP를 효과적을 취득할 수 있는 툴을 별도로 개발하였고 아래의 화면과 같습니다.

위의 프로그램을 통해 19개의 GCP 좌표를 입력하여 Georeferencing 기능을 수행하여 얻은 결과는 아래와 같습니다.

그러나 이러한 수치지도에 대한 Georeferencing 방식을 활용하여 좌표계 일치하는 방법은 최선의 방법이 아닙니다. Georeferencing은 원래 목적은 항공영상과 같은 이미지를 수치지도에 맵핑시키기 위한 방법입니다. 결과적으로 수치지도를 또 다른 수치지도와 맵핑시키는 Georeferencing 방식은 그 결과면에서 정확도가 매우 떨어집니다. 근본적인 방법은 공간 데이터 구축을 처음부터 올바르게 해서 제공해야 한다는 것입니다. 조속히 관련 기관에서 해결해 주기를 바랄 뿐입니다.

Mr.Tiler-Xr을 이용한 배경맵 디자인 기능

Mr.Tiler-Xr을 통한 배경맵 디자인 기능에 대한 소개입니다. 공개된 DB를 활용했고, 활용한 레이어는 행정구역도, 실폭도로, 도로중심선, 건물입니다. 보다 더 다양한 레이어를 사용하면 더욱 세련된 배경지도를 디자인할 수 있습니다.

위처럼 디자인된 배경지도는 다시 Mr.Tiler-Xr에서 타일맵(Tile Map)으로 가공되어 웹에서 서비스 될 수 있습니다. 전국범위에 대해서도 매우 빠르게 가공될 수 있고, 변경된 영역에 대해서만 가공되어 다시 전체에 반영될 수 있습니다.

EUC-KR로 인코딩된 속성값이 깨진 SHP, DBF 파일 복구하는 프로그램

국내에서 사용되는 거의 대부분의 SHP 파일의 속성 데이터는 EUC-KR로 인코딩되어 있습니다. 이러한 SHP 파일을 PostgreSQL에 테이블로 Importing 하기 위해 Shapefile Import/Export Manager와 같은 툴을 사용하게 되는데요. 가끔 다음과 같은 에러를 출력하고 Importing이 실패하게 됩니다.

물론 위의 Shape Import/Export Manager 툴에서 SHP 파일을 Importing 할때 문자셋을 EUC-KR로 명확히 지정한 경우입니다. 이 경우 DBF 파일에 저장된 한글 문자열은 분명히 EUC-KR로 인코딩되어 있으나 깨졌거나.. 기타 여러가지 이유가 그 원인이 될 수 있습니다. 대부분의 프로그램에서는 데이터가 조금 깨져 있어도 읽는데 있어 위의 경우처럼 문제를 발생하지 않습니다. 왜냐하면 깨진 문자열이 그다지 중요하지 않은 경우가 많기 때문입니다.

이러한 상황에서 옳바르게 SHP 파일을 Importing 해 줄 수 있는 툴을 소개합니다.

매우 단순한 UI를 갖는 이 툴은 문제가 있는 SHP 파일을 문제가 없도록 만들어 주는 툴입니다. 혹 저와 동일한 문제로 인해 작업 시 어려움을 격는 분이 있다면 이 툴을 사용해 보시기 바랍니다. 아래 실행 파일을 첨부합니다.



이 프로그램은 DuraMap-Xr을 사용합니다. 실행 전에 DuraMap-Xr을 설치하셔야 하는데요. 다음 URL에서 소개하는 설치자를 통해 매우 간단히 설치할 수 있답니다.

DuraMap-Xr 설치자

GDAL에서 제공하는 Command 정리

GDAL은 geotif 등과 같은 Raster 데이터에 대해 수행할 수 있는 다양한 Command를 제공합니다. Raster 파일에 대한 Extent와 좌표계 정보를 얻을 수 있는 gdalinfo.exe에서부터 영상에서 특정 영역만을 뽑아내 또 다른 영상 파일로 저장할 수도 있고, 좌표계에 대한 투영변환도 가능하며 GCP를 지정해 Georeferencing도 가능합니다. GIS 개발자에게 Raster 데이터를 저수준에서 처리하기 위해 GDAL는 매우 활용도가 높고 중요한 오픈소스 라이브러리입니다. (GDAL 라이브러리만 있다면 어떠한 GIS 데이터 포맷이든 모두 내 손 안에 있다규 !!)

GDAL에서 제공하는 Command 명령 중 실제 작업 중에 사용했던 것을 정리해 둡니다.

1. Raster 데이터의 정보 보기

Z:\> gdalinfo A.tif

위의 명령은 A.tif 파일에 대한 좌표계 및 Extents 등에 대한 정보를 얻기 위한 명령입니다.

2. geotif 영상에서 원하는 부분만을 잘라내 또다른 파일로 저장하기

Z:\> gdalwarp -te 197789.97 552829.04 199789.97 554829.04 G:\img\geotif\Seoul_10cm_GRS80.tif g:\a.tif

위의 명령은 Seoul_10cm_GRS80.tif 영상 파일에서 MBR(197789.97 552829.04 199789.97 554829.04)에 대한 부분을 a.tif 파일로 저장하기 위한 명령입니다.

3. GCP를 지정한 Georeferencing 하기

Z:\> gdal_translate -of GTiff -gcp 48.954 1298.304 219084 362071 -gcp 1174.042 348.95 219261 362144 -gcp 2610.376 5.8401 219418 362116 A.jpg B.tif
Z:\> gdalwarp -r lanczos B.tif C.tif

위의 연속적으로 실행되는 2개의 명령 중 첫번째는 GCP를 3개 사용해 입력 파일인 A.jpg 파일에 대해 Georeferencing 하여 B.tif 파일로 저장하라는 명령이고, 두번째는 저장된 B.tif를 Resizing 알고리즘 중 lanczos를 사용해 c.tif 파일로 저장하라는 명령입니다.

태양광 설비 관리를 위한 현장지원시스템 개발에 앞서서 …

태양광 설비를 관리하는 현장지원시스템을 모바일 GIS 엔진인 BlackPoint-Xr를 이용해 개발하게 되었습니다.

아래의 화면은 Mr.Tiler-Xr에서 드론으로 촬영한 영상 이미지를 배경도로 하고, 태양광과 관련된 설비인 태양광 어레이(Array)와 모듈(Module) 그리고 접속함, 인버터, 분전반, 배전반 등에 대한 설비를 표시한 것입니다.

Mr.Tiler-Xr은 수치지도를 이용해 배경지도를 디자인하고 타일맵으로 가공할 수 있는 툴이면서, 공간 데이터를 편집할 수 있는 기능도 제공합니다. 저는 개인적으로 GIS 시스템 개발을 위해 제공받은 SHP 파일이나 항공영상을 Mr.Tiler-Xr를 통해 살펴봅니다.

이 글은 현장지원 앱의 개발에 앞서 태양광 설비의 관리 업무에서 개발에 필요한 최소한의 지식을 얻기 위해 몇가지 설비를 간략하게 서술식으로 정리한 것입니다.

“태양광 모듈은 태양광 셀로 구성이 되는데요. 셀 1개가 생성하는 전압은 0.5V~0.6V이며, 전류는 4A~8A입니다. 또한 여러개의 모듈을 하나의 어레이로 단위로 구성합니다. 그리고 태양광발전소에 설치되는 분전반, 인버터, 분전반, 배전반은 생산된 전류를 모으고, 과전류가 발생하면 전류를 차단시키며 직류를 교류로, 또 교류를 직류르 변환하는 역활과 저압과 고압으로 변성하는 역활 등을 담당하는 장치들입니다.”

추후 태양광 설비 관리를 위한 현장지원시스템 개발이 완료되면 블로그를 통해 다시 소개해 드리도록 하겠습니다.