한국어 지부

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_고급과정

6,072

Published on

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

Published in: Education
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,072
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
150
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

공간정보거점대학 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×