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입니다. 또한 여러개의 모듈을 하나의 어레이로 단위로 구성합니다. 그리고 태양광발전소에 설치되는 분전반, 인버터, 분전반, 배전반은 생산된 전류를 모으고, 과전류가 발생하면 전류를 차단시키며 직류를 교류로, 또 교류를 직류르 변환하는 역활과 저압과 고압으로 변성하는 역활 등을 담당하는 장치들입니다.”

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

CentOS 7에서, 인터넷이 되지 않는 환경에서 PostgreSQL, PostGIS 설치 절차

인터넷이 되지 않은 환경에서 PostgreSQL과 PostGIS를 설치하는 절차에 대해 정리한 글을 Keep해 둡니다. Windows에서 pgAdmin으로 접속하여 ‘CREATE EXTENSION postgis’ 명령 처리에 대한 내용까지 확인하였습니다.

먼저 PostgreSQL 설치 절차입니다.

# postgresq RPM Install
rpm -Uvh pgdg-centos94-9.4-2.noarch.rpm
rpm -ivh postgresql94-libs-9.4.9-1PGDG.rhel7.x86_64
rpm -ivh postgresql94-9.4.9-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql94-server-9.4.9-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql94-devel-9.4.9-1PGDG.rhel7.x86_64.rpm
rpm -ivh libxslt-1.1.28-5.el7.x86_64.rpm
rpm -ivh postgresql94-contrib-9.4.9-1PGDG.rhel7.x86_64.rpm

# init DB
./postgresql194-setup initdb

# OS start, start PostgreSQL Server
systemctl enable postgresql-9.4

# Start Postgresql service
systemctl enable postgresql-9.4.service
systemctl start postgresql-9.4.service

# Firewall allow port 5432
firewall-cmd --zone=public --add-port=5432/tcp

# allow connection for all client IP
vi postgresql.conf
listen_addresses = "*"

# Configuring PostgreSQL Authentication
su - postgres
psql
\password postgres
\q

# edit pg_hba.conf
local all all peer
-> Do change
local all all md5

host all all 127.0.0.1/32 ident
-> Do change
host all all 0.0.0.0/0 md5

host all all ::1/128 ident
-> Do change
host all all ::1/128 md5

# restart Postgresql service
systemctl stop postgresql-9.4.service
systemctl start postgresql-9.4.service

다음은 PostGIS 설치 절차입니다.

# proj 설치
tar zxf proj-4.8.0.tar.gz
cd proj-4.8.0
./configure
make && make install

# geos 컴파일
tar xvf geos-3.4.2.tar.bz2
cd geos-3.4.2
./configure
make && make install

# libxml 설치 (rpm에서 package 총돌시 --replacefiles 옵션을 사용)
rpm -ivh ./libxml2-2.9.1-5.el7_1.2.x86_64.rpm
rpm -ivh ./xz-libs-5.1.2-12alpha.el7.x86_64.rpm
rpm -ivh ./xz-devel-5.1.2-12alpha.el7.x86_64.rpm
rpm -ivh ./zlib-libs-1.2.7-15.el7.x86_64.rpm
rpm -ivh ./zlib-devel-1.2.7-15.el7.x86_64.rpm
rpm -ivh ./libxml2-devel-2.9.1-5.el7_1.2.x86_64.rpm

# json 설치
rpm -ivh ./json-c-0.11-4.el7_0.x86_64.rpm

# gdal 컴파일
tar zxf gdal-1.9.2.tar.gz
cd gdal-1.9.2.tar.gz
./configure
make && make install

# postgis 컴파일
tar zxf postgis-2.0.3SVN.tar.gz
cd postgis-2.1.8
./configure --with-pgconfig=/usr/pgsql-9.4/bin/pg_config --with-raster
make && make install

# 모듈 파일(.so) 업데이트
echo /usr/local/lib >> /etc/ld.so.conf
ldconfig

# postgis 배포
cd extensions/postgis
make clean
make && make install
cd ..
cd postgis_topology
make clean
make && make install

# restart Postgresql service
systemctl restart postgresql-9.4.service

인터넷이 되지 않는 환경에서 PostgreSQL과 PostGIS 설치를 하는 분들에게 도움이 되시기 바랍니다.

주소 좌표 변환툴, GeoCoder-Xr

Release Node

  • [2017/05/11] 이 포스트에서 제공하는 GeoCoder-Xr은 더 이상 작동되지 않습니다. 새롭게 업데이트된 GeoCoder-Xr을 사용하시기 바랍니다. 새로운 버전은 [GeoCoder-Xr v3.0]에서 다운로드 받을 수 있습니다.
  • [2016/05/03] 도로명 주소 데이터가 최신 DB(2016년 2월 버전)으로 업데이트 되었습니다. 아울러 도로명 주소 DB를 적극 활용하여 지번주소도 변환이 가능합니다.
  • [2015/06/06] 도로명 주소 데이터가 최신 DB(2015년 6월 버전)으로 업데이트 되었습니다.
  • [2014/09/28] 도로명 주소 데이터가 최신 DB(2014년 9월 버전)으로 업데이트 되었으며 매칭율이 더 향상 되었습니다.

회사를 제외한 개인/기관/연구소에서 사용할 경우 상업적인 용도에도 제한이 없으며 주소 좌표 변환 횟수에도 제한이 없는 도로명주소 좌표 변환툴입니다. 이 툴은 주소를 WGS84 경위도 좌표계의 좌표로 구성된 SHP 파일로 변환해주는 지오코딩 툴입니다.

변환할 주소는 아래의 그림처럼 메모장 또는 엑셀을 통해 CSV 포맷으로 저장하여 사용할 수 있습니다. CSV는 각 데이터를 컴마(,)로 구분하는 데이터 형식입니다.

CSV 형식의 입력 데이터의 첫줄은 반드시 필드명으로 구성되어야 합니다. 위의 데이터를 최종적으로 CSV 파일로 저장하고 메모장에서 살펴보면 다음과 같습니다.

이 입력 데이터를 GeoCoder-Xr 프로그램에서 주소읽기 버튼을 통해 읽은 후 주소 필드를 지정하고 결과 포맷으로 저장할 SHP 파일을 지정하면 아래의 화면처럼 구성됩니다.

이제 좌표로 변환하기 위한 시작 버튼을 누르면 좌표로 변환됩니다. 성공적으로 변환되면 아래의 화면처럼 변환된 지점이 지도에 표시됩니다.

사용자 삽입 이미지

이 프로그램은 아래의 경로를 통해 다운로드 받으실 수 있습니다. 간단한 Setup 프로그램으로 구성되어 있어서 쉽게 설치하고 사용할 수 있습니다.

사용에 있어 문의점이나 개선점에 대한 피드백은 hjkim@geoservice.co.kr 로 주시기 바랍니다.