Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
한국어 지부

GeoServer 고급
2014년 1월 20일
국토교통부 공간정보 거점대학

오픈 소스 GIS 심화 과정
가이아쓰리디㈜
장병진(bjjang@gaia3d.com)
목차

I. 벡터자료를 이용한 지도서비스

III. WPS를 이용한 고급 스타일링

- QGIS에서 지도 구성하기

- Heat Map, Point Cluster 샘플

- OpenGeo Explorer를 이용한 Pub...
0. GeoServer란?
 GIS 데이터를 웹에 공개(Publish)하기 위한 서버
지원 운영 체제

GeoServer

 MS Windows
 Mac OSX
 Linux, Unix

WMS

WFS

 GP...
0. 강의자료 준비
 필요 프로그램
– OpenGeo Suite Community Edition 3.0.2
• GeoServer 2.2.1
• PostgreSQL 9.1.4
• PostGIS 2.0
• http://b...
I. 벡터자료를 이용한 지도서비
스
- 일러두기 • 본 자료는 모두 Creative Commons License CC-BY-NC을 따릅니다.
• 본 교재에서 사용하는 샘플 데이터 셋은 실제 정보와 다르므로 교육용 이외에...
I-1. QGIS에서 지도 구성하기
 실습 데이터 설정

1) 데이터 다운로드

– http://osgeo.ipdisk.co.kr 접속
– HDD1/Edu/20140120_이화여대/02_실습예제
/01_GeoServe...
I-1. QGIS에서 지도 구성하기
 QGIS에서 Shape 파일 읽기

1) QGIS 실행

– [시작]버튼 – QGIS Dufour – QGIS Desktop 2.0.1 클릭
2) 벡터 레이어 추가
– 레이어 – ...
I-1. QGIS에서 지도 구성하기
 단순 심볼 부여

1) 땅 심벌 지정

– World_Admin 레이어 더블클릭
– 스타일 선택
– 저장된 스타일에서 land 심볼 선택
– [OK]
2) 도로 심벌 지정
– Ma...
I-1. QGIS에서 지도 구성하기
 속성기반 심볼 부여
1) 도시명 표출
– World_Cities 레이어 더블클릭
– 라벨 선택
– 이 레이어의 라벨 앞의 선택 체크
– NAME_LOCAL 컬럼 선택
– 배치 선택...
I-1. QGIS에서 지도 구성하기
 심볼 적용 결과

국가공간정보 거점대학 오픈 소스 GIS 심화 과정

 좀더 손을 보면

10

장병진 (bjjang@gaia3d.com)
I-2. OpenGeo Explorer를 이용한 Publish
 OpenGeo Explorer 설치
 OpenGeo Explorer 란?
– QGIS UI를 이용해 GeoServer 와 PostGIS를 편하게 관리하...
I-2. OpenGeo Explorer를 이용한 Publish
 GeoServer에 올리기
 GeoServer 실행
– OpenGeo Suite Dashboard 에서 [Startup]
 GeoServer 연결 설...
I-2. OpenGeo Explorer를 이용한 Publish
 QGIS에서 SLD 만들기
 QGIS 스타일을 SLD로 저장
– QGIS 레이어 트리에서 World_Cities를 더블클릭
– 레이어 속성 창 하단의 ...
I-3. GeoServer에서 지도 서비스하기
 수동 Publish
 GeoServer 관리화면 접속
– http://localhost:8080/geoserver 접속
– Admin / geoserver 로 로그인
...
I-3. GeoServer에서 지도 서비스하기
 스타일 수정

<?xml version="1.0" encoding="EUC-KR"?>
<StyledLayerDescriptor version="1.0.0"

 자동생산...
I-3. GeoServer에서 지도 서비스하기
 레이어 그룹 만들기
 레이어 그룹의 필요성
– 클라이언트의 편리한 호출
– 레이어들의 순서 정의
– 레이어별 심볼 부여
 레이어 그룹 정의
– GeoServer 관리...
II. 대용량 위성사진 서비스
- 일러두기 • 본 자료는 모두 Creative Commons License CC-BY-NC을 따릅니다.
• 본 교재에서 사용하는 샘플 데이터 셋은 제공 기관 및 원작자에게 라이선스가 있습...
II-1. World Image로 서비스
 위성영상 확인
 실습 데이터 설정
– http://osgeo.ipdisk.co.kr 접속
– HDD1/Edu/20140120_이화여대/02_실습예제
/01_GeoServer...
II-1. World Image로 서비스
 GeoServer에 올리기
 위성영상 복사
– C:OpenGisEduDataLANDSAT8 을
사용자.opengeodata_dirdata 폴더에 복사

 GeoServer...
II-2. GeoTiff로 서비스
 GeoTiff 데이터 생성
 데이터 작업용 명령 프롬프트
– [시작]-모든 프로그램-QGIS Dufour-OSGeo4W 메뉴 선택
– Cd C:OpenGisEduDataLANDSA...
작업 시간이 매우 오래 걸립니다. 식사하고 합시다!!!
II-2. GeoTiff로 서비스
 GeoTiff를 레이어로 올리기
 위성영상 복사
– C:OpenGisEduDataLANDSAT8landsat8_korea.tif 을
사용자.opengeodata_dirdataLAN...
II-3. 성능개선 및 지도와 서비스
 GeoTiff에 Overview 추가
 Overview 생성
– 명령 프롬프트로 돌아와

– gdaladdo -r average landsat8_korea.tif 2 4 8 1...
II-3. 성능개선 및 지도와 서비스
 영상을 포함한 레이어그룹 구성
 EduMap Layer Group에 영상 추가
– Layer Groups에서 EduMap 선택
– [Add Layer…]
– Edu:landsa...
III. WPS를 이용한 고급 스타일
링
- 일러두기 • 본 자료는 모두 Creative Commons License CC-BY-NC을 따릅니다.
• 본 교재에서 사용하는 샘플 데이터 셋은 제공 기관 및 원작자에게 라이...
III-1. Heat Map, Point Cluster 샘플
 샘플 확인
 Heat Map 샘플

– GeoServer 관리화면에서
– Layer Preview 메뉴
– Search에 heat 입력
– Pop_hea...
III-1. Heat Map, Point Cluster 샘플
 WPS 명세 확인
 제공되는 WPS 리스트
– GeoServer 관리화면에서
– 상단의 GeoServer 마크 눌러 Welcome 화면으로 가
서
– 우...
III-2. PostGIS에 GIS 업체자료 올리기
 자료 확보
 자료 다운로드
– http://www.onspatial.com/2013/03/2013-gis.html
접속
– 온라인 편집 페이지 링크 클릭
– 파일...
III-2. PostGIS에 GIS 업체자료 올리기
 PostGIS에 올리기
CREATE TABLE opengeo.gis_corp

 테이블 생성

(

– [시작]-모든 프로그램-OpenGeo Suite 3.0.2...
III-3. WPS를 이용한 스타일 적용
 SQL View Layer 만들기
 Data Store 만들기
– GeoServer 관리화면에서
– Stores – Add new Store – PostGIS
– 필요정보 ...
III-3. WPS를 이용한 스타일 적용
 WPS 스타일 적용하기
 SQL View Layer 확인하기
– Layer Preview에서 edu:gis_corp 찾아서 [go]
 HeatMap으로 표현하기
– Lay...
IV. 공간자료와 통계의 연결
- 일러두기 • 본 자료는 모두 Creative Commons License CC-BY-NC을 따릅니다.
• 본 교재에서 사용하는 샘플 데이터 셋은 제공 기관 및 원작자에게 라이선스가 있습...
IV-1. PostGIS에 행정구역 자료 올리기
 데이터 받기 및 좌표계 변환
 행정구역 데이터 받기

– http://www.gisdeveloper.co.kr/notice/%EC%B5%9C%EC%8B%A0%EC%
...
IV-1. PostGIS에 행정구역 자료 올리기
 SQL로 만들어 올리기
 Shape 파일을 SQL로 변환

– Shp2PgSql 명령이 있는 폴더로 이동
Cd “c:Program Files (x86)OpenGeoO...
IV-2. PostGIS에 인구통계 올리기
 데이터 받기 및 다듬기
 주민등록 인구통계 데이터 받기

– http://rcps.egov.go.kr:8081/jsp/stat/ppl_stat_jf.jsp
– [엑셀다운로...
IV-2. PostGIS에 인구통계 올리기
 PostGIS에 인구통계 올리기
CREATE TABLE opengeo.population_2013

 PostGIS 테이블 만들기

(

– pgAdmin에서
– Open...
IV-2. PostGIS에 인구통계 올리기
 행정구역과 인구를 볼 수 있는 뷰 만들기
 뷰를 만들기 위한 쿼리 만들기

– pgAdmin에서
– SQL Editor 띄워서
– Graphical Query Builde...
IV-3. 인구수를 색상으로 표현하기
 인구밀도 표현을 위한 스타일 만들기
 QGIS에서 PostGIS 레이어 부르기
– QGIS에서
– 레이어 – PostGIS 레이어 추가

– 연결 – 새로 만들기
– 이름: l...
IV-3. 인구수를 색상으로 표현하기
 PostGIS에 인구통계 올리기
 GeoServer에 스타일 등록
– GeoServer 관리 화면에서
– Styles – Add a new style

– [파일 선택]
– [...
IV-4. 인구와 성비를 그래프로 표현하기
 GeoServer Chart Extention 소개

– http://www.onspatial.com/2013/08/geoserver-chart-extension.html
...
한국어 지부

함께 성장하는 새로운 방법,
오픈 소스 소프트웨어!!

감사합니다.

Q&A
Upcoming SlideShare
Loading in …5
×

공간정보거점대학 1.geo server_고급과정

13,803 views

Published on

GeoServer 고급과정 교제입니다.
2014년 1월 20일 이화여대에서 진행되었습니다.
실제 데이터를 가공하고 서버에 올려 GeoServer에서 서비스 하는 과정들이 담겨 있습니다.

Published in: Education

공간정보거점대학 1.geo server_고급과정

  1. 1. 한국어 지부 GeoServer 고급 2014년 1월 20일 국토교통부 공간정보 거점대학 오픈 소스 GIS 심화 과정 가이아쓰리디㈜ 장병진(bjjang@gaia3d.com)
  2. 2. 목차 I. 벡터자료를 이용한 지도서비스 III. WPS를 이용한 고급 스타일링 - QGIS에서 지도 구성하기 - Heat Map, Point Cluster 샘플 - OpenGeo Explorer를 이용한 Publish - PostGIS에 GIS 업체자료 올리기 - GeoServer에서 지도 서비스하기 - WPS를 이용한 스타일 적용 II. 대용량 위성사진 서비스 IV. 공간자료와 통계의 연결 - World Image로 서비스 - PostGIS에 행정구역 자료 올리기 - GeoTiff로 서비스 - PostGIS에 인구통계 올리기 - 성능개선 및 지도와 서비스 - 인구수를 색상으로 표현하기 - 인구와 성비를 그래프로 표현하기 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 2 장병진 (bjjang@gaia3d.com)
  3. 3. 0. GeoServer란?  GIS 데이터를 웹에 공개(Publish)하기 위한 서버 지원 운영 체제 GeoServer  MS Windows  Mac OSX  Linux, Unix WMS WFS  GPL Raster Source 기반 언어 최신버전 png, jpeg, gif Feature Object GML, GeoJSON WCS Coverage Data ArcGrid, GeoTiff, bmp Vector Source 라이선스  JAVA Formatted Map Vector Source: Shape, GeoDB(PostGIS, Oracle Spatial 등) Raster Source: GeoTiff, World Image, IMG, ArcGrid  2.4.3 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 3 장병진 (bjjang@gaia3d.com)
  4. 4. 0. 강의자료 준비  필요 프로그램 – OpenGeo Suite Community Edition 3.0.2 • GeoServer 2.2.1 • PostgreSQL 9.1.4 • PostGIS 2.0 • http://boundlessgeo.com/solutions/opengeo-suite/download/ – QGIS 2.0.1 • http://qgis.org/en/site/forusers/download.html – Notepad++ • http://notepad-plus-plus.org/download/  필요 자료 – Http://osgeo.ipdisk.co.kr osgeo/osgeo – /HDD1/Edu/20140120_이화여대/02_실습예제 – 한반도 벡터지도 – 한반도 LANDSAT 8 영상 – 2013년 현재 국내 GIS 관련 업체 현황 – 2013년 전국 행정구역도 – 2013년 전국 주민등록 인구통계 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 4 장병진 (bjjang@gaia3d.com)
  5. 5. I. 벡터자료를 이용한 지도서비 스 - 일러두기 • 본 자료는 모두 Creative Commons License CC-BY-NC을 따릅니다. • 본 교재에서 사용하는 샘플 데이터 셋은 실제 정보와 다르므로 교육용 이외에는 사용할 수 없습니다.
  6. 6. I-1. QGIS에서 지도 구성하기  실습 데이터 설정 1) 데이터 다운로드 – http://osgeo.ipdisk.co.kr 접속 – HDD1/Edu/20140120_이화여대/02_실습예제 /01_GeoServer/VectorMap.zip 다운로드 2) 벡터지도 폴더 만들기 – 윈도우 탐색기 실행 – C:OpenGisEduDataVectorMap.zip 파일 오른쪽 클릭 – 압축 풀기 메뉴 선택 – [압축 풀기] 선택 3) 파일확인 – C:OpenGisEduDataVectorMap 에 Shape 파일들이 있는지 확인 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 장병진 (bjjang@gaia3d.com)
  7. 7. I-1. QGIS에서 지도 구성하기  QGIS에서 Shape 파일 읽기 1) QGIS 실행 – [시작]버튼 – QGIS Dufour – QGIS Desktop 2.0.1 클릭 2) 벡터 레이어 추가 – 레이어 – 벡터 레이어 추가 메뉴 선택 – [탐색] 버튼 클릭 – C:OpenGisEduDataVectorMap 폴더로 이동 – [Ctrl-A] 눌러 전체 선택 – [확인] – [Open] 3) 필요 레이어만 정렬 – 아래서부터 World_Admin, Major_Routes, World_Cities 순으로 배열되게 레이어 트리 조정 – 다른 레이어는 모두 꺼서 안보이게 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 7 장병진 (bjjang@gaia3d.com)
  8. 8. I-1. QGIS에서 지도 구성하기  단순 심볼 부여 1) 땅 심벌 지정 – World_Admin 레이어 더블클릭 – 스타일 선택 – 저장된 스타일에서 land 심볼 선택 – [OK] 2) 도로 심벌 지정 – Major_Routes 레이어 더블클릭 – 스타일 선택 – 저장된 스타일에서 road 심볼 선택 – [OK] – 다시 Major_Routes 레이어 더블클릭 – 심볼 레이어 군에서 위의 단순선 선택 – 캡 스타일에서 평평하게 선택 – 아래 단순선도 동일하게 수정 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 8 장병진 (bjjang@gaia3d.com)
  9. 9. I-1. QGIS에서 지도 구성하기  속성기반 심볼 부여 1) 도시명 표출 – World_Cities 레이어 더블클릭 – 라벨 선택 – 이 레이어의 라벨 앞의 선택 체크 – NAME_LOCAL 컬럼 선택 – 배치 선택 – 점으로부터의 거리 선택 3) 표시도시 필터링 – World_Cities 레이어 더블클릭 – 일반 정보 선택 – [질의 생성기] 클릭 – POPULATION 선택 – [샘플] 클릭 – 프로바이더별 필터 표현식이 아래처럼 되게 설정 – "POPULATION" = '10K to 25K' OR "POPULATION“ = '250K to 900K' – 사분위에서 하단 중앙 선택 – [OK] 2) 인구별 표현 변경 – World_Cities 레이어 더블클릭 – 스타일 선택 – ‘단일심볼’을 선택하여 ‘분류된’으로 변경 – 컬럼을 POPULATION으로 변경 – 심볼에서 city 선택 – [분류] 버튼 클릭 – ‘900K to 3 Million’의 심볼 더블클릭 – 단순 마커 선택 – 크기 1.5로 변경 – [OK] – [OK] 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 9 장병진 (bjjang@gaia3d.com)
  10. 10. I-1. QGIS에서 지도 구성하기  심볼 적용 결과 국가공간정보 거점대학 오픈 소스 GIS 심화 과정  좀더 손을 보면 10 장병진 (bjjang@gaia3d.com)
  11. 11. I-2. OpenGeo Explorer를 이용한 Publish  OpenGeo Explorer 설치  OpenGeo Explorer 란? – QGIS UI를 이용해 GeoServer 와 PostGIS를 편하게 관리하는 툴 – http://qgis.boundlessgeo.com/static/docs/  설치 과정 – QGIS에서 플러그인-플러그인 관리 및 설치 메뉴 선택 – 설정 선택 – 실험적인 플러그인도 표시 체크 – [추가…] 버튼 선택 – 이름에 Boundless plugin repository 입력 – URL에 http://qgis.boundlessgeo.com/plugins.xml 입력 – [OK] – 더 찾기 선택 – 검색에 OpenGeo 입력 – OpenGeo Explorer 선택 – [플러그인 설치] 클릭 – [Close] 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 11 장병진 (bjjang@gaia3d.com)
  12. 12. I-2. OpenGeo Explorer를 이용한 Publish  GeoServer에 올리기  GeoServer 실행 – OpenGeo Suite Dashboard 에서 [Startup]  GeoServer 연결 설정 – QGIS의 OpenGeo explorer 탭에서 GeoServer catalogs 오른쪽 클릭 – New Catalog 메뉴 선택 – 접속을 위한 정보 입력후 [OK]  새 Workspace 만들기 – QGIS의 OpenGeo explorer 탭에서 GeoServer catalogs 확장 – GeoServer Workspaces 오른쪽 클릭 – New Workspace 메뉴 선택 – 이름에 edu, URI에 edu.osgeo.kr 입력 – 추가된 edu 선택하고 Set as default workspace 선택  QGIS 레이어 올리기 – QGIS의 OpenGeo explorer 탭에서 QGIS project 확장 – QGIS Layers에서 모든 레이어 선택 – Publish Layer 메뉴 선택 – [OK] 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 12 장병진 (bjjang@gaia3d.com)
  13. 13. I-2. OpenGeo Explorer를 이용한 Publish  QGIS에서 SLD 만들기  QGIS 스타일을 SLD로 저장 – QGIS 레이어 트리에서 World_Cities를 더블클릭 – 레이어 속성 창 하단의 [스타일 저장] 클릭 – C:OpenGisEduDataWorld_Cities.sld로 저장  Data 폴더로 Shape 복사 – 탐색기 실행 – C:OpenGisEduDataVectorMap 폴더로 이동 – World_Cities_3857.* 파일 선택해 복사 – [시작]-모든 프로그램-OpenGeo Suite 3.0.2-GeoServer Data Directory 메뉴 선택 – Dataedu 폴더로 이동하여 World_Cities_3857 폴더 생 성 – 붙여넣기 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 13 장병진 (bjjang@gaia3d.com)
  14. 14. I-3. GeoServer에서 지도 서비스하기  수동 Publish  GeoServer 관리화면 접속 – http://localhost:8080/geoserver 접속 – Admin / geoserver 로 로그인  스타일 추가 – Styles - Add a new style – [파일선택] 클릭, 저장해둔 SLD 선택 – [Upload…] 클릭, [Submit] 클릭  스토어 추가 – Stores – Add new Stores – Shapefile 선택 – Data Source Name에 World_Cities_3857 입력 – DBF charset에 EUC-KR 선택 – [Save] 클릭  레이어 추가 – New Layer 화면에서 World_Cities_3857의 Publish 클릭 – Compute from data 클릭 – Compute from native bounds 클릭 – Publishing 탭 선택 – Default Style에 World_Cities_3857 선택 – [Save] 클릭 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 14 장병진 (bjjang@gaia3d.com)
  15. 15. I-3. GeoServer에서 지도 서비스하기  스타일 수정 <?xml version="1.0" encoding="EUC-KR"?> <StyledLayerDescriptor version="1.0.0"  자동생산 SLD의 문제점 xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd" xmlns="http://www.opengis.net/sld" – 텍스트가 나오지 않음 xmlns:ogc="http://www.opengis.net/ogc" – 많은 테그에 se:가 붙어야 함 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> xmlns:xlink="http://www.w3.org/1999/xlink" <NamedLayer> – 표준과 달라 매뉴얼의 샘플 참조 힘듦 <Name>World_Cities_3857</Name>  수정된 SLD <UserStyle> <Title>World_Cities_3857</Title> – World_Cities_3857_fix.sld <Abstract>World_Cities_3857</Abstract> <FeatureTypeStyle> – Encoding을 EUC-KR로 수정 <Rule> <Name>>3 Million</Name> – xmlns:se=http://www.opengis.net/se 제거 <ogc:Filter> – Se: 테그 제거 <ogc:PropertyIsEqualTo> <ogc:PropertyName>POPULATION</ogc:PropertyName> – TextSymbolizer 추가 <ogc:Literal>>3 Million</ogc:Literal> </ogc:PropertyIsEqualTo> – 한글폰트 적용 </ogc:Filter> <PointSymbolizer> <Graphic> <Mark> <WellKnownName>circle</WellKnownName> <Fill> <CssParameter name="fill">#000000</CssParameter> <CssParameter name="fill">#000000</CssParameter> </Fill> </Mark> <Size>6</Size> </Graphic> </PointSymbolizer> <TextSymbolizer> 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 <Label> 15 장병진 (bjjang@gaia3d.com) <ogc:PropertyName>NAME_LOCAL</ogc:PropertyName>
  16. 16. I-3. GeoServer에서 지도 서비스하기  레이어 그룹 만들기  레이어 그룹의 필요성 – 클라이언트의 편리한 호출 – 레이어들의 순서 정의 – 레이어별 심볼 부여  레이어 그룹 정의 – GeoServer 관리화면에서 – Layer Groups – Add new layer group – Name에 EduMap – [Add Layer…] 클릭 – 밑에 깔려야 하는 레이어부터 추가 – World_Admin – Water_Poly – Water_Line – Minor_Routes – Major_Routes – World_Cities – [Generate Bounds] 클릭 – [Save] 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 16 장병진 (bjjang@gaia3d.com)
  17. 17. II. 대용량 위성사진 서비스 - 일러두기 • 본 자료는 모두 Creative Commons License CC-BY-NC을 따릅니다. • 본 교재에서 사용하는 샘플 데이터 셋은 제공 기관 및 원작자에게 라이선스가 있습니다.
  18. 18. II-1. World Image로 서비스  위성영상 확인  실습 데이터 설정 – http://osgeo.ipdisk.co.kr 접속 – HDD1/Edu/20140120_이화여대/02_실습예제 /01_GeoServer/LANDSAT8.zip 다운로드 – C:OpeGisEduData에 복사 – 압축 해제  QGIS에서 불러오기 – QGIS 실행 – 레이어 – 래스터 레이어 추가 메뉴 선택 – 파일이름 옆의 파일종류 [GDAL]JPEG 선택 – 모든 jpg 파일 선택 – [열기]  투명처리 – 레이어 트리에서 가장 위 영상 더블클릭 – 투명도 선택 – 추가적인 no data vlaue에 0 입력 – [OK] 영상출처: http://earthexplorer.usgs.gov/ 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 18 장병진 (bjjang@gaia3d.com)
  19. 19. II-1. World Image로 서비스  GeoServer에 올리기  위성영상 복사 – C:OpenGisEduDataLANDSAT8 을 사용자.opengeodata_dirdata 폴더에 복사  GeoServer 관리페이지 접속 – http://localhost:8080/geoserver/ – Stores – Add new Store – Raster Data Source – World Image – [Browse…] – data/LANDSAT8/LC81140342013261LGN00.jpg 선택 – Data Source Name에 LC81140342013261LGN00 입력 – [Save]  레이어 추가 – New Layer에서 [Publish] 선택 – Declared SRS에 EPSG:32652 입력 – SRS handling에 Force declared 선택 – [Compute from native bounds] 클릭 – [Save]  확인 – Layer Preview – Search에 LC 입력 – 등록된 영상의 [Go] 선택 – 결과: java.lang.OutOfMemoryError: Java heap space 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 19 장병진 (bjjang@gaia3d.com)
  20. 20. II-2. GeoTiff로 서비스  GeoTiff 데이터 생성  데이터 작업용 명령 프롬프트 – [시작]-모든 프로그램-QGIS Dufour-OSGeo4W 메뉴 선택 – Cd C:OpenGisEduDataLANDSAT8  변환용 배치파일 생성 – Dir *.jpg /b > conv.bat – Notepad++ 실행하여 conv.bat 열기 – 찾기-바꾸기… 메뉴 – 찾을 단어: rn, 바꿀 단어: 빈칸 하나 – 찾기방식: 확장 – [모두바꾸기] – 내용 제일 앞에 다음 내용 추가 • gdalwarp -s_srs EPSG:32652 -t_srs EPSG:3857 -of GTiff -r cubic -srcnodata 0 – 내용 제일 뒤에 다음 내용 추가 • landsat8_korea.tif – 저장  변환작업 실행 – 다시 명령 프롬프트 창으로 돌아와 – Conv  참고 사이트 – http://gdal.org/gdalwarp.html – http://gdal.org/gdal_utilities.html 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 20 gdalwarp -s_srs EPSG:32652 -t_srs EPSG:3857 -of GTiff -r cubic -srcnodata 0 LC81140342013261LGN00.jpg LC81140352013261LGN00.jpg LC81140362013261LGN00.jpg LC81150332013300LGN00.jpg LC81150342013300LGN00.jpg LC81150352013300LGN00.jpg LC81150362013300LGN00.jpg LC81150372013300LGN00.jpg LC81160342013259LGN00.jpg LC81160352013259LGN00.jpg LC81160362013259LGN00.jpg LC81160372013259LGN00.jpg landsat8_korea.tif 장병진 (bjjang@gaia3d.com)
  21. 21. 작업 시간이 매우 오래 걸립니다. 식사하고 합시다!!!
  22. 22. II-2. GeoTiff로 서비스  GeoTiff를 레이어로 올리기  위성영상 복사 – C:OpenGisEduDataLANDSAT8landsat8_korea.tif 을 사용자.opengeodata_dirdataLANDSAT8 폴더에 복사  GeoServer 관리페이지 접속 – Stores – Add new Store – Raster Data Source – GeoTIFF – [Browse…] – data/LANDSAT8/landsat8_korea.tif선택 – Data Source Name에 landsat8_korea 입력 – [Save]  레이어 추가 – New Layer에서 [Publish] 선택 – Native SRS가 EPSG:3857 임을 확인 – [Save]  확인 – Layer Preview – Search에 land 입력 – 등록된 영상의 [Go] 선택  성능 평가 – Chrome 브라우저에서 [F12] – Network 탭 선택 [질문] 왜 서해안과 제주 일부가 일본으로 갔을까? 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 22 장병진 (bjjang@gaia3d.com)
  23. 23. II-3. 성능개선 및 지도와 서비스  GeoTiff에 Overview 추가  Overview 생성 – 명령 프롬프트로 돌아와 – gdaladdo -r average landsat8_korea.tif 2 4 8 16 32  위성영상 복사 – C:OpenGisEduDataLANDSAT8landsat8_korea.tif 을 사용자.opengeodata_dirdataLANDSAT8 폴더에 덮어 쓰기  변경 적용 – GeoServer 관리 화면 – Server Status 메뉴 – Configuration and catalog의 [Reload] 클릭  확인 – Layer Preview – Search에 land 입력 – landsat8_korea 영상의 [Go] 선택  성능 평가 – Chrome 브라우저에서 [F12] – Network 탭 선택 – 5~10배 정도 속도향상 확인 – 영상품질 향상, 용량감소 확인  참고 사이트 – http://gdal.org/gdaladdo.html 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 23 장병진 (bjjang@gaia3d.com)
  24. 24. II-3. 성능개선 및 지도와 서비스  영상을 포함한 레이어그룹 구성  EduMap Layer Group에 영상 추가 – Layer Groups에서 EduMap 선택 – [Add Layer…] – Edu:landsat8_korea 선택 – 위쪽 화살표로 제일 상단으로 이동 – [Generate Bounds] – [Save]  미리보기로 확인 – Layer Preview, EduMap 보기 – 무엇이 잘못 되었을까?  좌표계 수정 – Edu Workspace에 속한 모든 레이어 EPSG:3857로 변경  다시 미리보기 확인 – 아까 띄워놓은 미리보기에서 화면 이동 – 해안선이 잘 일치 하는가?  참고 사이트 – http://wiki.openstreetmap.org/wiki/EPSG:3857 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 24 장병진 (bjjang@gaia3d.com)
  25. 25. III. WPS를 이용한 고급 스타일 링 - 일러두기 • 본 자료는 모두 Creative Commons License CC-BY-NC을 따릅니다. • 본 교재에서 사용하는 샘플 데이터 셋은 제공 기관 및 원작자에게 라이선스가 있습니다.
  26. 26. III-1. Heat Map, Point Cluster 샘플  샘플 확인  Heat Map 샘플 – GeoServer 관리화면에서 – Layer Preview 메뉴 – Search에 heat 입력 – Pop_heatmap의 [Go] – Zoom과 pan으로 데이터 확인 – Styles 메뉴 – Heatmap 선택 – XML 확인  Point Cluster 샘플 – GeoServer 관리화면에서 – Layer Preview – Search에 cluster 입력 – Volcano_cluster의 [Go] – Zoom과 pan으로 데이터 확인 – Styles 메뉴 – Stacked_point 선택 – XML 확인  비교 사이트 – http://dev.openlayers.org/sandbox/camptocamp/canvas/openlayers/examples/heatMap.html – http://www.openlayers.org/dev/examples/strategy-cluster-threshold.html – http://www.ahnguhn.net/mapisode/maps/20130902/ 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 26 장병진 (bjjang@gaia3d.com)
  27. 27. III-1. Heat Map, Point Cluster 샘플  WPS 명세 확인  제공되는 WPS 리스트 – GeoServer 관리화면에서 – 상단의 GeoServer 마크 눌러 Welcome 화면으로 가 서 – 우측의 Service Capabilities의 WPS-1.0.0 선택  HeatMap의 인자 확인 – Demo – WPS request builder – gs:heatmap 선택 – 하단에 나오는 인자들 확인 – http://localhost:8080/geoserver/ows?service=wps&v ersion=1.0.0&request=DescribeProcess&identifier=g s:Heatmap  PointStacker의 인자 확인 – gs:PointStacker 선택 – 하단에 나오는 인자들 확인 – http://localhost:8080/geoserver/ows?service=wps&v ersion=1.0.0&request=DescribeProcess&identifier=g s:PointStacker 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 27 장병진 (bjjang@gaia3d.com)
  28. 28. III-2. PostGIS에 GIS 업체자료 올리기  자료 확보  자료 다운로드 – http://www.onspatial.com/2013/03/2013-gis.html 접속 – 온라인 편집 페이지 링크 클릭 – 파일 – 다른이름으로 저장-Microsoft Excel – gis_related_company_20130227.xlsx 라는 이름으 로 저장  CSV 파일로 변환 – 다운받은 파일 열기 – ID, 회사명, 주소, 경도, 위도만 남기고 컬럼 지우기 – 다른 이름으로 저장 – 파일형식에서 CSV (쉼표로 분리) 선택 – [저장]  코드페이지 변경 – 엑셀 닫고 – Notepad++에서 csv 파일 열어서 – 인코딩 – UTF-8로 변환 – 252행 이후 빈 데이터 제거 – 저장 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 28 장병진 (bjjang@gaia3d.com)
  29. 29. III-2. PostGIS에 GIS 업체자료 올리기  PostGIS에 올리기 CREATE TABLE opengeo.gis_corp  테이블 생성 ( – [시작]-모든 프로그램-OpenGeo Suite 3.0.2-pgAdmin id integer NOT NULL, – Server Groups – Servers – OpenGeoSuite 더블클릭 – Databases – geoserver – Schemas – opengeo – Tables 오른쪽 클릭 corp_name character varying(100), – New Table… 메뉴 addr character varying(200), – Properties 탭의 Name에 gis_corp 입력 lon real, – Columns 탭의 [Add] lat real, – Name: id, Data type: integer, [OK] – Name: corp_name, Data Type: character varying, Length: 100, [OK] CONSTRAINT gis_corp_pkey PRIMARY KEY (id ) – Name: addr, Data Type: character varying, Length: 200, [OK] ); – Name: lon, Data Type: real, [OK] ALTER TABLE opengeo.gis_corp OWNER TO postgres; – Name: lat, Data Type: real, [OK] – [OK]로 테이블 생성 – Databases – geoserver – Schemas – opengeo – Tables – gis_corp 오른쪽 클릭 – New Object – New Primary Key – Columns 탭, Column: id 선택, [Add], [OK]  데이터 부어 넣기 – SQL 아이콘 눌러 SQL Editor 띄우고 – 다음 입력 COPY opengeo.gis_corp(id, corp_name, addr, lon, lat) FROM „c:OpenGisEduDatagis_related_company_20130227.csv' WITH DELIMITER ',' CSV HEADER – [F5] 키 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 29 장병진 (bjjang@gaia3d.com)
  30. 30. III-3. WPS를 이용한 스타일 적용  SQL View Layer 만들기  Data Store 만들기 – GeoServer 관리화면에서 – Stores – Add new Store – PostGIS – 필요정보 입력  SQL View Layer 만들기 – Layers – Add a new resource – Edu:postgis 선택 – [Configure new SQL view…] 선택 – View Name: gis_corp – SQL statement select corp_name, ST_Transform(ST_SetSRID(ST_Point(lon,lat), 4326), 3857) pos from opengeo.gis_corp – [Refresh] 선택 – Pos의 SRID에 3857 입력 – [Save] – [Compute from data] – [Compute from native bounds] – [Save] 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 30 장병진 (bjjang@gaia3d.com)
  31. 31. III-3. WPS를 이용한 스타일 적용  WPS 스타일 적용하기  SQL View Layer 확인하기 – Layer Preview에서 edu:gis_corp 찾아서 [go]  HeatMap으로 표현하기 – Layers에서 edu:gis_corp 선택 – Publishing 탭 – Default Style: heatmap, [Save] – 이전에 사용한 미리보기 창에서 확인  Point Cluster로 표현하기 – Layers에서 edu:gis_corp 선택 – Publishing 탭 – Default Style: stacked_point , [Save] – 이전에 사용한 미리보기 창에서 확인  EduMap Layer Group 수정 – Layer Groups에서 EduMap 선택 – Edu:landsat8_korea – [Add Layer…] 선택하여 Edu:gis_corp 추가 – [Add Layer…] 선택하여 Edu:gis_corp 한번 더 추가 – 위의 edu:gis_corp 의 스타일을 heatmap으로 변경 – [Save] [주의] 버그로 스타일을 바꾼 것이 UI에 안 나타날 수도 있습니다. 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 31 장병진 (bjjang@gaia3d.com)
  32. 32. IV. 공간자료와 통계의 연결 - 일러두기 • 본 자료는 모두 Creative Commons License CC-BY-NC을 따릅니다. • 본 교재에서 사용하는 샘플 데이터 셋은 제공 기관 및 원작자에게 라이선스가 있습니다.
  33. 33. IV-1. PostGIS에 행정구역 자료 올리기  데이터 받기 및 좌표계 변환  행정구역 데이터 받기 – http://www.gisdeveloper.co.kr/notice/%EC%B5%9C%EC%8B%A0%EC% 8B%A0%ED%96%89%EC%A0%95%EA%B5%AC%EC%97%AD%EB%8F%84%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C – 김형준님께서 취합해 올리신 전국 시군구 자료 다운로드 – C:OpenGisEduDataSIG_201311 에 압축 풀기 – 좌표계 정보 확인: Bessel 타원체의 UTM-K – 해당 좌표계 EPSG 코드 확인: http://osgeo.kr/17  좌표계 변환 – OSGeo4W 명령 프롬프트 실행 – 데이터가 있는 폴더로 이동 cd OpenGisEduDataSIG_201311 – EPSG:3857로 좌표계 변환 ogr2ogr -s_srs EPSG:5178 -t_srs EPSG:3857 -f "ESRI Shapefile" skipfailures --config SHAPE_ENCODING "CP949" TL_SCCO_SIG_3857.shp TL_SCCO_SIG.shp – 주의: 한글 문제 해결 위해 –config SHAPE_ENCODING "CP949" 필요 – 주의: ogr2ogr은 마지막에 대상 파일이 먼저 나오고 원본 파일이 가장 마지 막에 있어야 한다 – 참고: http://gdal.org/ogr2ogr.html 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 33 장병진 (bjjang@gaia3d.com)
  34. 34. IV-1. PostGIS에 행정구역 자료 올리기  SQL로 만들어 올리기  Shape 파일을 SQL로 변환 – Shp2PgSql 명령이 있는 폴더로 이동 Cd “c:Program Files (x86)OpenGeoOpenGeo Suitepgsql9.1bin” – SQL 생성 shp2pgsql -c -s 3857 -i -I -W CP949 C:OpenGisEduDataSIG_201311TL_SCCO_SIG_3857.shp opengeo.sig > C:OpenGisEduDataSIG.sql – -s 옵션 뒤에 좌표계, -W 옵션뒤에 코드페이지가 들어가야 함을 명심  Psql로 데이터 올리기 – 용량이 크거나 덤프가 포함된 sql은 psql 커맨드로 실행하는 것이 좋다. psql -h localhost -p 54321 -U postgres -d geoserver -f C:OpenGisEduDataSIG.sql  GeoServer 레이어로 등록 – GeoServer 관리화면에서 – Layers – Add a new resource – Sig – Publish  등록 확인 – Layer Preview 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 34 장병진 (bjjang@gaia3d.com)
  35. 35. IV-2. PostGIS에 인구통계 올리기  데이터 받기 및 다듬기  주민등록 인구통계 데이터 받기 – http://rcps.egov.go.kr:8081/jsp/stat/ppl_stat_jf.jsp – [엑셀다운로드]  엑셀에서 csv 만들기 – 엑셀파일 열기 – 총인구수, 세대수, 남자인구수, 여자인구수의 셀 서식을 1000단위 구분기호 없게 변 경 – CSV로 저장 – 엑셀 종료  CSV 편집 – 저장된 CSV를 Notepad++열기 – 헤더 부분 한 줄로 수정 – 찾기 – 바꾸기 메뉴 – 찾기 방식: 정규표현식 – 찾을 단어: .*( – 바꿀 단어: – [모두 바꾸기] – 찾기 방식: 일반 – 찾을 단어: ), – 바꿀 단어: , – [모두 바꾸기] – 저장 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 35 장병진 (bjjang@gaia3d.com)
  36. 36. IV-2. PostGIS에 인구통계 올리기  PostGIS에 인구통계 올리기 CREATE TABLE opengeo.population_2013  PostGIS 테이블 만들기 ( – pgAdmin에서 – OpenGeoSuite – Databases – geoserver – Schemas – opengeo – Tables 오른쪽 클릭 – New Table… admin_id character(10) NOT NULL, pop_tot integer, household integer, num_per_house real, – Name: population_2013 pop_man integer, – 컬럼 및 기본 키 추가 pop_woman integer,  PostGIS에 데이터 임포트 sex_ratio real, – pgAdmin에서 CONSTRAINT population_2013_pkey PRIMARY KEY (admin_id ) – SQL Editor 띄워서 – COPY 명령으로 데이터 부어 넣기 ) WITH ( OIDS=FALSE); COPY opengeo.population_2013(admin_id, pop_tot, household, num_per_house, pop_man, pop_woman, sex_ratio) ALTER TABLE opengeo.population_2013 OWNER TO postgres; FROM 'c:OpenGisEduDatappl_20140107110532.csv' WITH DELIMITER ',' CSV HEADER – 뭘 잘못 했을까요? – 오류는 한가지 뿐인가요? 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 36 장병진 (bjjang@gaia3d.com)
  37. 37. IV-2. PostGIS에 인구통계 올리기  행정구역과 인구를 볼 수 있는 뷰 만들기  뷰를 만들기 위한 쿼리 만들기 – pgAdmin에서 – SQL Editor 띄워서 – Graphical Query Builder 탭 – Geoserver –Schemas – opengeo 확장 – Sig 테이블 끌어 놓고 sig_cd, sig_kor_nm, geom 선택 – Population_2013 테이블 끌어 놓고 admin_id 제외하고 전부 선택 – Sig.sig_cd 끌어서 population_2013.admin_id와 연결 SELECT – SQL Editor 탭 sig.sig_cd, – [F5] 눌러 실행 sig.sig_kor_nm, – 데이터가 나오나요? 무엇을 수정해야 할까요? sig.geom,  뷰 만들기 population_2013.pop_tot, – pgAdmin에서 population_2013.household, – OpenGeoSuite – Databases – geoserver – Schemas – opengeo 오른쪽 클릭 population_2013.num_per_house, – New View… population_2013.pop_man, – Name: sig_pop_2013_view population_2013.pop_woman, – Definition 탭 population_2013.sex_ratio FROM – 만들어 둔 SQL 입력 opengeo.sig, – [OK] opengeo.population_2013 WHERE sig.sig_cd||'00000' = population_2013.admin_id; 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 37 장병진 (bjjang@gaia3d.com)
  38. 38. IV-3. 인구수를 색상으로 표현하기  인구밀도 표현을 위한 스타일 만들기  QGIS에서 PostGIS 레이어 부르기 – QGIS에서 – 레이어 – PostGIS 레이어 추가 – 연결 – 새로 만들기 – 이름: localhost, 호스트: localhost, 포트: 54321, 데이터베이스: geoserver, 사용자이름:posrgres, 비밀번호: postgres – [연결 테스트] – [OK] – [연결] – Opengeo 확장 – sig_pop_2013_view 선택 – [추가]  스타일 만들기 – sig_pop_2013_view 레이어 더블클릭 – 스타일 탭 – 단계로 나누어진 선택 – 컬럼: pop_tot, 클레스: 7, 색상표: Oranges, 모드: 등간격 – [분류] – 10만 단위로 분류 재정의 – [스타일 저장] – SLD 파일 – c:OpenGisEduDatasig_pop.sld 에 저장 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 38 장병진 (bjjang@gaia3d.com)
  39. 39. IV-3. 인구수를 색상으로 표현하기  PostGIS에 인구통계 올리기  GeoServer에 스타일 등록 – GeoServer 관리 화면에서 – Styles – Add a new style – [파일 선택] – [Upload…] – [Submit]  레이어 만들기 – Layers – Add a new layer – Edu:postgis 선택 – Sig_pop_2013_view의 [Publish] 선택 – Declared SRS: EPSG:3857 확인 – [Compute from data] [Compute from native bounds] – Publishing 탭 – Default style: sig_pop – [Save]  확인 – Layer Preview – Edu:sig_pop_2013_view 선택 – 원하던 색상대로 나왔나요? 뭐가 잘못되었을까요? [주의] QGIS의 등간격 분류값을 그냥 이용한 경우 다음 오류가 납니다. invalid input syntax for integer: &quot;104508.4286&quot; 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 39 장병진 (bjjang@gaia3d.com)
  40. 40. IV-4. 인구와 성비를 그래프로 표현하기  GeoServer Chart Extention 소개 – http://www.onspatial.com/2013/08/geoserver-chart-extension.html  파이차트용 스타일 만들기 – GeoServer 관리 화면에서 – Styles – Add a new style – Name: PiChart – Copy from existing style: point [Copy…] – 웹 페이지에서 PI Chart SLD 주요 부분 복사 – MinScaleDenominator, MaxScaleDenominator 제거 – 참조 컬럼 부분을 pop_nam, pop_woman으로 수정 – 색상을 청색과 적색으로 수정 – 그래프 크기 부분을 pop_tot를 참조하고 적당한 크기가 되게 수정  시간이 되시는 분은 Bar Chart도 시도 국가공간정보 거점대학 오픈 소스 GIS 심화 과정 40 <?xml version="1.0" encoding="ISO-8859-1"?> <StyledLayerDescriptor version="1.0.0" xmlns="http: //www.opengis.net/sld" xmlns:ogc="http://www.opengi s.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDes criptor.xsd"> <NamedLayer> <Name>Pi Chart</Name> <UserStyle> <Title>Pi Chart</Title> <FeatureTypeStyle> <!-FeatureTypeName>Feature</FeatureTypeName--> <Rule> <Name>Chart</Name> <!--MinScaleDenominator>100</MinScaleDenominator> <MaxScaleDenominator>500000</MaxScaleDenominator장병진 (bjjang@gaia3d.com)
  41. 41. 한국어 지부 함께 성장하는 새로운 방법, 오픈 소스 소프트웨어!! 감사합니다. Q&A

×