[GIS] TXT 파일을 SHP 파일로 변환하기(Txt2Shp)

가끔 좌표 데이터와 속성 데이터가 텍스트 파일 형태로 되어 있는 경우가 있습니다. 하나의 예로 서울시의 버스 노선에 대한 데이터인데, 서울시에서 버스 노선에 대한 정보을 엑셀로 저장하여 사용자에게 제공하고 있습니다. 이 엑셀 파일을 쉽게 텍스트 파일로 저장할 수 있으며 다시 이 텍스트 파일을 읽어서 SHP 파일로 변환해 주는 툴입니다. 참고로 서울시 버스 노선에 대한 엑셀 파일은 아래 URL을 통해 다운로드 받을 수 있습니다.

위의 엑셀 파일을 엑셀 프로그램에서 읽어 [다른 이름으로 저장하기]에서 “텍스트 (탭으로 분리)” 형식으로 저장한 파일을 살펴보면 다음과 같습니다.

사용자 삽입 이미지

첫번째 줄에 필드 명 들이 텝문자로 구분되어 나타나고.. 이후의 줄은 각 필드에 대한 값이며 역시 텝으로 분리되어 있습니다. 이 텍스트 파일을 SHP 파일로 만드는 툴의 사용은 아래와 같습니다.

사용자 삽입 이미지

살짝 설명을 하면, Fields에 내보내고자 하는 항목을 체크하고 X, Y 좌표로써 사용할 필드를 지정해 줍니다. 위의 서울시 노선 데이터와 툴을 사용해 만든 SHP 파일을 ArcMap에서 열어 보면 아래 화면과 같습니다.

사용자 삽입 이미지
툴에서 지정한 속성과 좌표가 제대로 표시되는 것을 확인할 수 있습니다. 간단히 TXT 파일을 SHP 파일로 변환할 경우가 있을 때 요긴하게 사용하시길 바라면서 만들어 올려 봅니다. 참고로 이 프로그램은 GIS 오픈소스 라이브러리인 shapelib을 사용해 만들어 었습니다. shapelib의 자세한 사용법은 cafe.naver.com에서 오픈소스 라이브러리 카테고리를 참고하시면 도움을 받으실 수 있습니다.

[GIS] 표준 GML/KML/WMS/WFS에 대한 요약

자주 솔루션에 대한 요구사항으로 표준을 준수하는가… 라는 대응 항목 중 gml, kml, wms, wfs 이 있습니다. 새로운 gis 데이터 서버 개발에 이러한 표준 항목을 준수하기 위한 준비로 해당 항목에 대해 개략적으로 파악할 목적으로 작성한 내용입니다.

GML (Geography Markup Language)
http://www.opengeospatial.org/standards/gml

GML은 지리적 특성을 표현하기 위한 XML 문법입니다. GML은 인터넷에서 지리 데이터 송수신을 위한 개방된 교환 포맷임과 동시에 지리데이터 시스템을 위한 모델링 언어로써 사용됩니다. 문법에 기반한 대부분의 XML과 같이 두 부분으로 나눠져 있습니다.

  1. 문서의 설명 부분
  2. 실제 데이터 부분

GML 문서는 GML 스키마를 사용하여 기술됩니다. 이는 사용자와 개발자에게 포인트, 라인 그리고 폴리곤을 포함하는 일반적인 지리데이터셋을 설명할 수 있도록 합니다. 그러나 GML의 개발자들은 GML의 확장을 특화시키는 커뮤니티 지향적인 어플리케이션 스키마를 정의하기 위한 커뮤니티 작업을 상상합니다. 어플리케이션 스키마를 사용하여 사용자는 일반적인 포인트, 라인, 폴리곤을 길, 고속도로 그리고 다리로써 참조할 수 있습니다. 만약 커뮤니티의 모든 사람이 동일한 스키마를 사용하는 것에 대해 동의한다면 데이터를 쉽게 교환할 수 있으며 도로에 대한 라인을 표시할때 도로로 표시할 수 있게 됩니다.

KML(Keyhole Markup Language)
http://earth.google.com/intl/ko/userguide/v4/ug_kml.html
http://en.wikipedia.org/wiki/Keyhole_Markup_Language

KML은 현재 또는 미래의 웹 기반의 2차원과 3차원 브라우저에서 지리 데이터의 주기와 가시화를 위한 XML 기반의 스키마입니다. KML은 Google 어스, Google 지도 및 기타 응용 프로그램에 표시하기 위해 점, 선, 이미지, 다각형 및 모델과 같은 지형 기능을 모델링하고 저장하기 위한 XML 문법 및 파일 형식입니다. KML을 사용하여 Google 어스 및 Google 지도의 다른 사용자와 장소 및 정보를 공유할 수 있습니다. KML은 구글어스에서 사용하기 위해 개발되어졌으며 원래 이름은 Keyhole Earth Viewer였습니다. Keyhole 사에서 만들어졌으며 이 회사는 2004년에 구글로 인수되었습니다. 현재 KML은 오픈 GIS 컨소시엄의 국제 표준입니다. KML을 표현하고 편집할 수 있는 첫번째 프로그램은 구글어스이며 KML을 지원하는 툴이 다양하게 제공되고 있습니다.

참고 : KMZ 파일은 KML 파일의 압축된 버전입니다.

WMS(Web Map Service)
http://en.wikipedia.org/wiki/Web_Map_Service

WMS는 GIS 데이터베이스의 데이터를 사용하는 지도 서버로부터 생성되어진 지오레퍼런싱된 지도 이미지를 서비스하기 위한 표준 프로토콜입니다. 스펙은 1999년에 오픈 GIS 컨소시엄에서 처음 개발어 공개되었습니다.

WMS는 다양한 요청 타입을 가지고 있으며 WMS 서버는 다음 2가지 요청 타입을 제공해야 합니다.

  1. GetCapabilities : WMS에 대한 인자값과 이용가능한 지도 레이어 목록 반환
  2. GetMap : 해당 인자에 대한 지도 이미지

다음은 WMS 서버에서 옵션으로 제공하는 요청 타입입니다.

  1. GetFeatureInfo
  2. DescribeLayer
  3. GetLegendGraphic

WMS는 클라이언트가 인터넷으로부터 접근할 수 있는 지도와 GIS 데이터 포맷을 폭넓게 지원합니다. WMS를 지원하는 주요 상업적인 GIS 및 맵핑 소프트웨어는 다음과 같습니다.

  • Bentley Systems’s GIS products
  • ESRI’s ArcGIS products
  • MapInfo Professional
  • GeoMedia
  • Manifold System
  • Google Earth

또한 WMS를 지원하는 오픈소스 제품군은 다음과 같습니다.

  • Quantum GIS
  • uDig
  • OpenJUMP
  • MapGuide Open Source
  • NASA World Wind
  • GRASS GIS
  • gvSIG
  • OpenLayers

WFS(Web Feature Service)
http://en.wikipedia.org/wiki/Web_Feature_Service

WFS는 플랫폼에 독립적인 호출을 이용하여 웹에서 지리데이터에 대한 피쳐(feature)를 요청할 수 있는 인터페이스를 제공합니다. WMS가 단순히 지도 이미지만을 서비스하는데 반해 WFS는 공간 분석 등과 같은 연산을 위해 필요한 데이터를 서비스 합니다.

WFS의 서비스 기능은 다음과 같습니다.

  1. 공간 또는 비공간 조건에 기반한 피쳐(feature)의 쿼리
  2. 새로운 피쳐 생성
  3. 피쳐 삭제
  4. 피쳐 업데이트

가장 기본적인 WFS 서버는 반드시 공간 또는 비공간 조건에 기반한 피쳐의 쿼리 기능을 지원해야 하며, 트랜젝션 WFS(WFS-T)는 피쳐의 생성과 삭제 그리고 업데이트를 제공합니다.

 

[GIS] 폴리곤 SHP를 KML로 변환하는 툴

폴리곤 SHP를 KML로 변환하는 툴을 요청하는 분이 계셔서 바로 만들어 올립니다. 원래 오늘 정도 만들어 올리려고 했는데… 먼저 필요한 분이 있어서 기쁜 마음에 올려봅니다.

사용자 삽입 이미지

폴리곤 타입의 SHP를 지정하고… 높이 값에 대한 필드를 지정하여 건물과 같은 Feature를 입체감있게 표현할 수 있도록 하였습니다. 높이 값에 어떤 수를 곱할 수 있도록 값을 지정할 수 있도록 하였으니 참고하시구요. 만약 높이값에 대한 필드가 딱히… 없다면 일정한 높이 값을 지정할 수도 있게 하였습니다. 아래는 건물 SHP을 KML로 내보내어 구글어스에서 본 화면입니다. 참고로 SHP 파일의 좌표계는 WGS84 경위도 좌표계를 가지고 있어야 구글어스에서 옳바른 위치가 적용됩니다.

사용자 삽입 이미지
포인트나 폴리라인을 kml로 변환하는 다른 툴보다 상대적으로 사용법이 다소 복잡한데… 이해가 않되시거나 실행이 않되는 분들은 언제든 댓글을 통해 질문 남겨주시기 바랍니다.

[GIS] 폴리라인 SHP을 KML로 변환

폴리라인 타입의 SHP 파일을 KML로 변환할 수 있는 툴입니다. 요즘 부쩍 KML에 대해 관심이 높습니다. OGC에서 표준으로 채택된 포맷인지라…. 활용도도 매우 높을거란 판단에서 인듯 합니다. 잠시 시간을 내어 만들어 보았습니다. 아래는 툴의 실행화면인데…. 사용법은 매우 간단합니다. 폴리라인 타입의 SHP 파일과 저장할 KML 파일 이름을 지정해 주면됩니다.

사용자 삽입 이미지

만약 폴리라인 타입이 아닌 폴리곤 SHP을 지정했을 경우에도 폴리곤이 아닌 폴리라인으로 내보내집니다. 하지만 포인트의 경우 그 결과가 어떻게 될지 모르겠습니다. 좌표계는 구글어스에서 사용하는 WGS84 경위도 좌표계로 저장된 SHP 파일일 경우에 제대로 구글어스에서 중첩됩니다. 아래는 위의 툴로 내보낸 SHP 파일을 구글어스에서 함께 표현한 화면입니다.

사용자 삽입 이미지
혹… 필요로 하시는 분들에게 도움이 되셨으면 좋겠습니다.