2. 오픈소스 GIS 개요
※ 이 장은 [공간정보아카데미]의 [오픈소스GIS서비스개발자입문] 과정 내용을 포함하고 있습니다.
2023-06-20 OSGeo Korean Chapter 2
3. 다양한 오픈소스
2023-06-20 OSGeo Korean Chapter 3
* 출처: 강혜경.이시형. 2016. 오픈소스 공간정보 해외 동향 및 시사점. 국토정책 브리프 No. 596
4. 오픈소스 소프트웨어란?
2023-06-20 OSGeo Korean Chapter 4
• FOSS (Free and Open Source Software) & FOSS4G(FOSS + for GeoSpatial)
• 특정 라이선스에 따라 소프트웨어의 소스코드가 공개되어 있음
• FOSS 사용자는 소프트웨어에 대한 자유로운 이용, 복사, 수정 및 재배포의 권한을 부여 받음
• FOSS를 사용해 발생하는 문제는 저작자가 아닌 사용자의 책임임
• FOSS를 사용해서 생산한 데이터 등은 사용자에게 권한이 있음
• FOSS의 Free는 ‘공짜’를 의미하는 것이 아니라, 사용자가 소스코드에 접근하고 프로그램을 사용, 수정, 재배포할 수 있는 ‘자유’를 의미함
• FOSS는 개방형 표준(Open Standard)과는 다른 의미임
• 하지만 일반적으로 FOSS는 국제적인 표준을 따르는 경향이 있음
OGC와 OSGeo는 서로 다른 조직
• 오픈소스 소프트웨어의 ‘자유’는 다음과 같은 의미를 지님
• Freedom of Use
• Freedom of Copy
• Freedom of Modify
• Freedom of Redistribute
5. 오픈소스 소프트웨어란?
2023-06-20 OSGeo Korean Chapter 5
• OSI(Open Source Initiative)의 공개SW 기준
출처 : https://www.oss.kr/oss_license
① 자유 배포(Free Redistribution)
② 소스코드 공개(Source Code Open)
③ 2차적 저작물(Derived Works) (허용)
④ 소스코드 수정 제한(Integrity of The Author's Source Code)
⑤ 개인이나 단체에 대한 차별 금지 (No Discrimination Against Persons or Groups)
⑥ 사용 분야에 대한 제한 금지 (No Discrimination Against Fields of Endeavor)
⑦ 라이선스의 배포 (Distribution of License)
⑧ 라이선스 적용상의 동일성 유지 (License must not be specific to a product)
⑨ 다른 라이선스의 포괄적 수용 (License must not contaminate other software)
⑩ 라이선스의 기술적 중립성 (License must be Technology-Neutral)
6. 오픈소스 소프트웨어 개발 방법론
2023-06-20 OSGeo Korean Chapter 6
Closed Open
Leverage own knowledge Leverage others knowledge too
폐쇄형 개발 방법론 개방형 개발 방법론
소프트웨어의 설계와 개발이 내부에서 이루어짐
내부의 지식, 지적재산권, 경험을 활용하여 개발
외부의 훌륭한 지적 자산을 내부화하는데 한계 발생
설계와 개발이 다중에 의해 협력적으로 이루어짐
자신의 역량과 외부 타인의 역량을 함께 결합하여 개발
‘We are smarter than Me’로 요약되는 개발방법론
위계적,
폐쇄적
개발방법론
협력적,
개방적
개발방법론
7. 저작권(Copyright)과 사용허가권(License)
2023-06-20 OSGeo Korean Chapter 7
저작권 사용허가권
창작에 의해 발생한 창작물에 대해 창작자(저작자)가 취득하는
독점적 권리
저작권자가 다양한 필요에 의해 다른 사람 혹은 기관에게 일정
한 내용을 조건으로 하여 자신의 저작물에 대해 특정 행위를 할 수
있도록 부여한 권한
등록 등의 요건이 필요 없이 창작과 동시에 권리가 발생(무방식
주의)
EULA(End User License Agreements)와 같이 일종의 계약서로
기능함
저작권이 있는 저작물의 경우 원 저작자나 저작권자의 허가 없
이 해당 저작물을 사용, 복제, 배포, 수정할 수 없음
Windows 10를 Microsoft에서 구매했다고 이를 다른 컴퓨터에
복제, 수정, 설치를 하면 계약(라이선스) 위반이 되며, 이러한 의미
에서 사용허가권은 물건의 매매와는 다른 개념임
저작권 특허 상표 영업비밀
지적재산권
8. 주요 오픈소스 라이선스
2023-06-20 OSGeo Korean Chapter 8
1 GPL : GNU Public License
2 LGPL : Lesser(Library) GNU Public License
3 BSD Alike : BSD, MIT License
4 기타: MPL, CCL, Public Domain …
1 저작권 관련 문구 유지
2 제품명 중복 방지
3 오픈 소스 소프트웨어 사용 여부 명시
4 라이선스에 따른 소스 코드 공개
9. 저작권이 비독점 소유
2023-06-20 OSGeo Korean Chapter 9
저작권의 비독점 소유 방식은 특정 라이선스를 통해 사용자들에게 소프트웨어 사용, 연구, 수정 및 배포에
있어서 전반적인 권한을 제공
오픈 소스 소프트웨어의 소스코드 관리 및 저작권 관계
커뮤니티
소스코드 관리
저작권 및 성과 귀속
소스코드 재배포
소스코드 수정, 개발
사용자 소스코드
무료 이용가능
배포 허용가능
소스코드 취득가능
소스코드 수정가능
2차적 저작물
재공개 의무
독점소프트웨어와
결합 가능
GPL O O O X
LGPL O O O O
MPL O O O O
BSD License O O X O
Apache license O O X O
10. SW 라이선스 분류
2023-06-20 OSGeo Korean Chapter 10
2-clause BSD-like license
Apache License 2.0
EPL 2.0
출처: https://www.oss.kr/oss_license
11. 오픈소스 SW 비즈니스 모델
2023-06-20 OSGeo Korean Chapter 11
* 출처: 강영옥,손세린. 2016. 오픈소스 공간정보 SW 비즈니스 모델 유형 및 사례. 제86회 Open Technet, 공간정보 공개SW 기술 세미나
유형 내용 사례
서비스 지원 모델 SW 유지보수, SI(시스템 통합), 기술지원, 교육 등의 서비스를 지원 Redhat
컨설팅 모델 OSS 도입, 라이선스 자문 등을 제공 Black Duck
듀얼 라이센싱 모델 제한이 있는 SW는 무료로 배포, 제한이 없는 SW는 유료로 판매 MySQL
하이브리드 모델 SW는 오픈소스로 제공되나 특정 기능, 플러그인 등의 추가 기능이나 콘텐츠는 유료로 판매 Jaspersoft
로스-리더 모델 일종의 미끼 상품으로 OSS를 통해 고객을 끌어들여 다른 제품의 판매율을 높이는 비즈니스 모델 Sendmail
오픈소스 전환 모델
독점/상용 제품에 오픈소스 SW를 함께 넣어서 판매. IBM은 자신의 HW에 Apache Web Server, MySQL,
FireFox, OpenOffice 등을 제공
IBM Linux Server
엑세서라이징 모델 SW와 관련된 책, 캐릭터 상품 등을 판매 오라일리 출판사업
광고 모델 웹사이트나 SW UI 등을 통해 광고를 제공하여 수익 창출 Google
위젯 프로스팅 하드웨어 제품에 오픈소스 SW를 탑재하여 판매 Linux, Android
펀딩/후원 모델 브랜드 이미지 제고 및 개방 비즈니스 모델 선점 효과 IBM
브랜드 라이선싱 자사의 브랜드를 사용할 수 있는 권리를 부여하고 비용을 청구 ORACLE
온라인 서비스 온라인 교육 및 자격증 서비스, 원격 모니터링 등 Black Duck, MySQL
12. 오픈소스 SW 비즈니스 모델
2023-06-20 OSGeo Korean Chapter 12
https://www.imaso.co.kr/archives/4076
https://www.redhat.com/en/about/press-releases/ibm-closes-landmark-acquisition-red-hat-34-billion-defines-open-hybrid-cloud-future?dynamic404=en
13. 오픈소스 GIS SW 생태계
2023-06-20 OSGeo Korean Chapter 13
* 출처: 강영옥,손세린. 2016. 오픈소스 공간정보 SW 비즈니스 모델 유형 및 사례. 제86회 Open Technet, 공간정보 공개SW 기술 세미나
14. OSGeo & OSGeo 한국어 지부
2023-06-20 OSGeo Korean Chapter 14
15. OSGeo(Open Source Geospatial Foundation)
2023-06-20 OSGeo Korean Chapter 15
홈페이지
- https://www.osgeo.org
로컬 지부 운영
- OSGeo 한국어지부 포함 전세계 29개의 로컬 지부 운영
FOSS4G 국제 Conference 개최
- OSGeo의 주최로 개최되는 세계 최대의 오픈소스 GIS 연례 컨퍼런스
- 유럽, 북미, 기타 지역의 대륙별 순환 원칙에 따라 개최
- 2015년 대한민국 서울에서 개최
- 2022년: https://2022.foss4g.org/
Content Management Systems
Desktop Applications
Geospatial Libraries
Metadata Catalogs Spatial Databases
Web Mapping OSGeo 주요 프로젝트 현황
OSGeo(Open Source Geospatial Foundation)는 오픈소스 지리공간 SW, GeoData의 개발 지원과 광범위한 사용 증진
을 위해 2006년 2월 4일 미국 시카고에서 창설된 비영리 민간 기구
16. Open Geospatial
• Working with our partners:
• Open Source: a collaborative approach to software development
• Open Data: freely available information to use as you wish
• Open Standards: avoid lock-in with interoperable software
• Open Education: Removing the barriers to learning and teaching
• Open Science: Share data and software for responsible research
2023-06-20 OSGeo Korean Chapter 16
출처: Annual General Meeting 2021
17. OSGeo Korean Chapter
1. OSGeo 한국어 지부의 사명(Mission)
- 오픈 소스 기반 지리정보체계 소프트웨어의 사용 장려와 개발 참여를 통한 한국어 기반 지리정보체계 환경 발전
2. OSGeo 한국어 지부의 목표
- OSGeo 한국어 지부의 법적 실체로의 전환
- 오픈 소스 기반 GIS 소프트웨어의 보급 및 사용 장려
- 오픈 소스 기반 GIS 소프트웨어 개발 참여
- 오픈 소스 기반 GIS 소프트웨어 및 매뉴얼의 한국어 번역
- 오픈 소스 기반 GIS 소프트웨어 사용자와 개발자들에 대한 지원
- 오픈 소스 기반 GIS 소프트웨어 사용자 교육
- 오픈 GeoData 확산 노력
- OSGeo 한국어 지부 정기 모임 개최
3. OSGeo 한국어 지부 결성 역사
- 2009년 3월 OSGeo 한국어지부 공식 인증
2023-06-20 OSGeo Korean Chapter 17
18. OSGeo 한국어 지부 주요 연혁
2023-06-20 OSGeo Korean Chapter 18
2009
OSGeo 한국어지부 승인
신상희 지부장
2015
FOSS4G Seoul 2015 개최
2017
유병혁 지부장
지역 커뮤니티 및
기술워크숍 활성화
2019
법인으로 보는 단체 전환
이민파 지부장
2011
FOSS4G Korea 행사
정례화
?
20. OSGeo 한국어 지부 한국어 번역사업
2023-06-20 OSGeo Korean Chapter 20
• 2013 PostGIS 2.0 한국어 사용자 설명서
• 2015 QGIS 1.7.x 한국어 사용자 지침서
• 2014 GeoServer 2.4.x 한국어 사용자 지침서
• 2016 PostGIS 2.3 공식 가이드북(한국어판)
• 2017 QGIS 2.18 한국어 사용자 지침서
• 2020 QGIS 3.22(LTR) 사용자 지침서 및 데스크톱 UI
• 2022 GDAL 사용자 지침서
• 2023 QGIS 3.28(LTR) 사용자 지침서
2022.07완료
2023.04완료
21. OSGeo 한국어 지부 번역 커뮤니티
2023-06-20 OSGeo Korean Chapter 21
단순 가입보다는 실질적인 번역 도움이 필요합니다!
• QGIS: https://www.transifex.com/qgis/QGIS/
• GeoServer: https://www.transifex.com/GeoServer/geoserver/
• PostGIS: https://www.transifex.com/postgis/postgis
• GDAL, GeoNode, GeoNetwork …
24. 오픈소스 GIS SW와 상용 SW
2023-06-20 OSGeo Korean Chapter 24
공간 DBMS
GIS 서버
(OWS)
데스크탑
앱
웹 개발
라이브러리
공간 데이터 벡터 래스터
Spatial
Microsoft
SQL Server
ArcGIS Enterprise
(Server + Portal)
클라우드
서버
ArcGIS Online
ArcGIS Pro GeoMedia
ArcGIS APIㆍSDK
Location Intelligence API
(Pitney Bowes)
오픈소스 상용(독점)
클
라
이
언
트
서
버
25. OSGeo Projects
2023-06-20 OSGeo Korean Chapter 25
구분 공식 프로젝트(21) 커뮤니티 프로젝트(28)
Geospatial
Libraries
PROJ, GEOS, GDAL/OGR, GeoTools, Orfeo ToolBox
PROJ-JNI, GeoStyler, Open Data Cube, Mesh Data
Abstraction Library(MDAL), actinia, Pronto Raster,
OWSLib, FDO, OSSIM, pgRouting
Spatial
Databases
PostGIS MobilityDB, rasdaman
Metadata Catalogs GeoNetwork, pycsw
Web Mapping -Server GeoServer, MapServer, degree, PyWPS
pygeoapi, GeoWebCache, MapGuide Open Source,
mapfish, Geomajas, Zoo-Project, istSOS
Web Mapping - Client OpenLayers, GeoMoose, Mapbender GeoExt, GC2/Vidi
Content Management
Systems
GeoNode
Desktop
Applications
QGIS Desktop, GRASS GIS, gvSIG Desktop, Marble OSGeo4W, Optics
Other OSGeoLive
GeoServer Client PHP, Loader, GeoHealthCheck, Portable
GIS, TEAM Engine
* 커뮤니티 활성화 정도에 따라 전환 가능, GREEN(2020), RED(2021)
https://www.osgeo.org/projects/
26. Eclipse LocationTech Projects
2023-06-20 OSGeo Korean Chapter 26
구분 프로젝트(11)
Geospatial Libraries
JTS Topology Suite – OGC SFSQL을 구현한 지오메트리 엔진 라이브러리
Proj4J – PROJ의 자바 포팅 라이브러리
SFCurve - 공간 채움 곡선 (Space-filling curve, 페아노 곡선)의 생성, 변환 및 쿼리를 위한 Scala
라이브러리
Spatial4J – JTS SFSQL 외 지리공간 도형에 대한 관계, 면적, 거리 등 확장 라이브러리
Analytic Servers
GeoMesa – 시공간 빅데이터 분석 및 분산 컴퓨팅 시스템
GeoPeril - 재난재해 등에 대한 웹 매핑, 정보 공유, 시뮬레이션 등 제공하는 GPU 기반 클라우드
서비스
GeoTrellis – 대용량 래스터 데이터의 실시간 분산 지오프로세싱 서비스 프레임워크
GeoWave – 분산형 NoSQL 기반 대용량 지리공간 데이터의 저장, 검색 분석 처리
RasterFrames™ - 지리 공간 래스터 데이터에 대한 Spark DataFrames 기능 제공
Version Control Systems GeoGig - Spatial Git
Desktop Applications uDig – Eclipse RCP 기반의 데스크톱 GIS 프로그램
http://www.locationtech.org/
27. Beyond the OSGeo Projects
2023-06-20 OSGeo Korean Chapter 27
구분 프로젝트
Python
GeoPython: https://2022.geopython.net/
GeoPandas
Folium
PySAL
…
JavaScript
Leaflet
D3
deck.gl
MapBox GL JS
CesiumJS
28. QGIS Desktop
Point Cloud & Mesh (PDAL & MDAL) 지원
2023-06-20 OSGeo Korean Chapter 28
2D
3D
29. QGIS Desktop
2023-06-20 OSGeo Korean Chapter 29
https://github.com/Geoalert/mapflow-qgis
https://github.com/deepbands/deep-learning-datasets-maker
30. 좌표변환: PROJ 6 ~
2023-06-20 OSGeo Korean Chapter 30
https://www.osgeo.kr/276
• 한국측지계 세계측지계 변환(국가좌표변환계수)
• 1. PROJ 4 이하
• Bursa-Wolf 변환 지원(2002년 12월 고시, 비공식)
• +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43
• 2. PROJ 6 이상
• QGIS 3.10.3 이상
• PostGIS 3.1.0 이상
• Molodensky-Badekas 변환 지원(2003년 12월, 공식)
31. 예) S/W별 좌표변환 비교
2023-06-20 OSGeo Korean Chapter 31
구분 EPSG:5174 EPSG:5176 Angular Unit
GeoServer 변경 전 127.00289027777775 129.002890277777 UNIT["degree", 0.017453292519943295]
GeoServer 변경 후 127.0028902777778 129.0028902777778 UNIT["degree", 0.017453292519943295]
PostGIS 변경 전 127.00289027777775 129.002890277777 UNIT["degree", 0.017453292519943295]
PostGIS 변경 후 127.0028902777778 129.0028902777778 UNIT["degree", 0.017453292519943295]
PostGIS 변경 후 2 127.0028902777778 129.0028902777778 UNIT["degree", 0.0174532925199433]
PostGIS 3.1.2 127.0028902777778 129.0028902777778 UNIT["degree", 0.0174532925199433]
QGIS 3.16.4 127.002890277778 129.002890277778 UNIT["degree", 0.0174532925199433]
ArcGIS 10.1(SHP) 127.002890277778 129.002890277778 Degree (0.0174532925199433) UNIT["Degree",0.017453292519943295]
ArcGIS 10.1(GDB) 127.002890277778 129.002890277778
35. 예) PostGIS Overlay 연산 검증
2023-06-20 OSGeo Korean Chapter 35
구분
ArcSDE* ArcSDE Precision: 0.001 기본값, ArcGIS GDB 이용 테스트
PostGIS 2.3.3* PostGIS 2.3.3: 0.00001 기본값
PostGIS 3.1.2* PostGIS 3.1.2: gridSize 0.001 설정
PostGIS 3.1.2* PostGIS 3.1.2: gridSize 0.001 설정, 레이어 내 여러 피처들을 Union하는 함수에 gridSize 0.001 설정
PostGIS 3.1.2*개선함수 ST_RemoveSpike 및 SpikeRemoverCore 함수 중 각도만 적용
PostGIS 3.1.2*개선함수(면적) ST_RemoveSpike 및 SpikeRemoverCore 함수 각도 및 면적 적용
GeoTools 오류개선함수(면적) ST_RemoveSpike Java 버전, JTS만 사용하는 SpikeRemover.java
GeoTools 검증(JTS 1.8 이하) 기본 Overlay 함수 사용
GeoTools 25(JTS 1.8 이상) OverlayNG 사용
37. 예) PostGIS Overlay 연산 검증 및 개선
2023-06-20 OSGeo Korean Chapter 37
* 폴리곤 수 : 9개
* 버텍스 수 : 283개
* 폴리곤 수 : 3개
* 버텍스 수 : 169개
* 폴리곤 수 : 3개
* 버텍스 수 : 168개
* 폴리곤 수 : 3개
* 버텍스 수 : 168개
38. pgRouting
2023-06-20 OSGeo Korean Chapter 38
•All Pairs Shortest Path, Johnson’s Algorithm
•All Pairs Shortest Path, Floyd-Warshall Algorithm
•Shortest Path A*
•Bi-directional Dijkstra Shortest Path
•Bi-directional A* Shortest Path
•Shortest Path Dijkstra
•Driving Distance
•K-Shortest Path, Multiple Alternative Paths
•K-Dijkstra, One to Many Shortest Path
•Traveling Sales Person
•Turn Restriction Shortest Path (TRSP)
https://pgrouting.org/
국토지리정보원 국가기본도 도로망을 이용한 pgRouting 최단거리 탐색
39. GeoGig 분산버전관리
2023-06-20 OSGeo Korean Chapter 39
Database Server
PostgreSQL / PostGIS
Object Detection
GIS Server
Service Type
WPS - Analysis Processing
WFS - Vector, Spatial Query
WFST – WFS Transaction
WMS - Map, Legend
편집도구(Client)
영상 타일 서버
UI
UI
MAP
이력관리
GeoGig
편집서버(Server)
Service Framework
Spring Framework
UI Client
Web Browser
Edge
Chrome
Firefox
Checkout
Database Access
JPA(Java Persistence API)
Commit Merge
Pull Push
Conflicts
Resolution
Geogig
Working
Tree
Remote
Repository
Repository
Database
Staging
Area
Add commit push
Fetch
Checkout
pull
generalization
REST
HTTP
GET/POST Request
Response
GeoServer
Plugin
: 적용기술
: 세부 적용기술
: 서비스 영역
: 데이터 및 처리방향
Remote
Repositorys
Datasets Change Detection
Version: 2.12
HTTP
GET/POST Request
Response
42. MobilityDB
2023-06-20 OSGeo Korean Chapter 42
지리 공간 궤적 데이터를 저장하고 쿼리하는 데 필요한 데이터베이스 지원을 제공
PostgreSQL 및 PostGIS에 대한 확장으로 구현
영구 데이터베이스 유형과 지리 공간 궤적 및 시간에 따라 변하는 속성을 관리하기 위한 쿼리
작업을 구현
43. Open Data Cube
• https://www.opendatacube.org/data-cube-applications
2023-06-20 OSGeo Korean Chapter 43
44. OGC API
2023-06-20 OSGeo Korean Chapter 44
• OGC WxS 서비스를 대체할 RESTful 기반 API
• pygeoapi - https://pygeoapi.io/
• OGC API Standard
- https://ogcapi.ogc.org/
48. 오픈소스 활동참여 6단계
2023-06-20 OSGeo Korean Chapter 48
오픈소스 소프트웨어 사용하고 주변에 홍보하기
모르는 것 질문하고 아는 것 답하기
버그가 있는 지 테스트 해 보기
번역 및 문서화 참여하기
소스코드 수정에 참여하기
오픈소스 프로그램 공여하기
1단계
2단계
3단계
4단계
5단계
6단계
출처: https://www.osgeo.kr/145
50. SW 개발자로 살아남기
2023-06-20 OSGeo Korean Chapter 50
블로그 지식 공유
최신 뉴스 동향
GitHub
관심 있는 오픈소스 코드 리뷰
메일링 리스트 가입 – 묻고 답하기
번역활동 참여
버그 수정
오픈소스 공여