SlideShare a Scribd company logo
1 of 25
2013.03
Minpa Lee(mapplus@gmail.com)
Customizing
GIS
Programs
2
Customizing GIS Programs
 ArcGIS Desktop & Server
 VBA(Deprecated) Script
 .NET: Add-Ins & COM
 Python: ArcToolbox & ArcPy & REST API
 QGIS Desktop
 C++ & PyQT
 PyQGIS: console, Plug-in, stand-alone
 GeoServer
 Java: WPS, Filter Plug-in
 Python : app, datastore, filter, format, lib, process
 Scripting(GeoScript): Python, JavaScript, Groovy…
 uDig Desktop
 Java: Plug-in
 Scripting: Groovy Plug-in
 R
 R Script
  Extension Point
3
ArcGIS for Desktop & Server
 VBA(Deprecated) Script
 ArcMap 또는 ArcCatalog 내에서 내장된 VBA 사용
 ArcMap 문서(mxd 또는 mxt)에 저장되고 문서를 통해서 배포
 VBA 를 이용해서 ArcObjects에 접근
 10.1 버전부터 없어짐
4
http://map.sdsu.edu/geog104/images/unit-4/unit-4_image003_0000.png
ArcGIS for Desktop & Server
 .NET: Add-Ins
 Microsoft Visual Studio를 이용하여 개발 후 바이너리 배포
 Template 형태로 비교적 커스터마이징이 쉬움
 Desktop Add-In Manager를 이용하여 관리
5
ArcGIS for Desktop & Server
 COM(VB, .NET, C++…)
 Microsoft Visual Studio를 이용하여 개발 후 바이너리 배포
 독자적인 설치 프로그램으로 배포 가능
 독립된 Application도 개발 가능하며 고급 개발
 기존 KOPSS 개발 방식
6
ArcGIS for Desktop & Server
 ArcPy : Python Window
 콘솔창을 통해 객체 사용
 스크립트 작성 후 스크립트 파일을 공유
7
>>> import arcpy
>>> arcpy.AddField_management("c:/data/Portland.gdb/streets", "LENGTH_MILES", "TEXT")
>>> arcpy.CalculateField_management("c:/data/Portland.gdb/streets",
"LENGTH_MILES", "!shape.length@miles!", "PYTHON_9.3")
ArcGIS for Desktop & Server
 ArcPy Scripts
 ArcPy 스크립트 작성 후 ArcToolbox에 import후 사용
8
ArcGIS for Desktop & Server
 ModelBuilder
 ArcMap에 내장된 ModelBuilder를 이용한 GUI 기반의 툴박스
 ArcToolbox 에 포함된 기능들을 사용
9
ArcGIS for Desktop & Server
 ArcGIS Server REST API
 ArcGIS for Server 에서 제공하는 REST API
 OGC OWS(WMS, WFS, WCS, WPS…)처럼 Map Service, Feature
Service, Geometry Service, Image Service, Network Service, GP
Service, GeoData Service 등으로 구성
 ArcGIS Web Client(JavaScript, Flash, Silverlight…) 등에서 활용 -
Mash up
 분석 기능은 GP Service 서비스를 확장(ArcPy)하여 추가
 http://servicesbeta2.esri.com/arcgis/sdk/rest/index.html
10
ArcGIS for Desktop & Server
 ESRI Support: http://support.esri.com
11
Quantum GIS Desktop
 Python Console
 PyQGIS 콘솔창을 통해 객체 사용
 스크립트 작성 후 스크립트 파일을 공유
12
>>> from qgis.analysis import QgsGeometryAnalyzer
>>> layer = qgis.utils.iface.activeLayer()
>>> process = QgsGeometryAnalyzer()
>>> process.buffer(layer, "C:/data/buffer_500.shp", 500, False, False, -1)
>>> process.centroids(layer, "C:/data/centroids_500.shp“, False, -1)
Quantum GIS Desktop
 Python Plugins
 PyQGIS를 이용하여 플러그인 작성 및 배포
 온라인 배포를 위해서 QGIS Plugin Repository에 등록 및 승인
13
Quantum GIS Desktop
 Python Applications
 PyQGIS qgis_core, qgis_gui libraries를 QGIS 외부에서 사용
14
Quantum GIS Desktop
 Quantum GIS Plugin Repository: http://plugins.qgis.org/
15
uDig Desktop
 Eclipse RCP Plug-in
 플러그인 작성 Plug-in Repository를 통해 자동 설치 및 업데이트
16
http://www.mangosystem.com:8080/gxt/docs/gxt_for_desktop/udig/index.html
uDig Desktop
 Scripting Plug-in
 GeoScript: Groovy
17
http://jgrasstechtips.blogspot.kr/2013/01/proposal-geoscript-console-in-udig.html
uDig Desktop
 Developing with uDig: http://udig.refractions.net/developers/
18
GeoServer
 GeoTools Process
 GeoTools 및 Java를 이용하여 Process 생성
 GeoServer의 WPS Process로 사용하며 고급 customization
 GeoTools의 모든 기능을 사용 및 확장 가능
 GeoTools를 사용하는 Desktop 및 Server 모두 사용
 http://docs.geotools.org/latest/userguide/unsupported/process/
index.html
19
GeoServer
 Python Extension
 app, datastore, filter, format, lib, process
 Jython script
20
GeoServer
 Scripting(GeoScript) Extension
 Python, JavaScript, Groovy… 등 지원
 Python extension과 유사
21
GeoServer
 User & Developer Manual: http://docs.geoserver.org/
22
R
 R Script
 R is a free software programming language and a software
environment for statistical computing and graphics.
 R is an implementation of the S programming language combined
with lexical scoping semantics inspired by Scheme
 The capabilities of R are extended through user-created
packages, which allow specialized statistical techniques, graphical
devices, import/export capabilities, reporting tools, etc. These
packages are developed primarily in R, and sometimes in Java, C
and Fortran.
 R-spatial : http://cran.r-project.org/web/views/Spatial.html
23
R
 R Project: http://www.r-project.org
24
Summary
 공통
 각 GIS 엔진에서 지원하는 커스터마이징 방법은 다름
 최근 Python 중심으로 통합 추세지만 API는 Engine마다 다름
 Desktop
 사용자가 분석 스크립트(UI 포함) 생성 후 배포
 로컬 데이터 사용 용이
 Server
 배포 방식은 스크립트 Extension, Plugin, Customizing 등 엔진에 따라 지
원 방식이 다양함
 관리자가 분석 스크립트 생성 후 서버에 배포
 추가된 기능은 클라이언트(Web)에서 Mashup 하여 활용
 로컬 데이터 사용 어려움
 지원 포맷: GML, GeoJSON, TopoJSON…
 인코딩 된 포맷의 크기 제약
25

More Related Content

What's hot

[FOSS4G] uDig Desktop GIS
[FOSS4G] uDig Desktop GIS[FOSS4G] uDig Desktop GIS
[FOSS4G] uDig Desktop GISMinPa Lee
 
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기MinPa Lee
 
[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServer[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServerMinPa Lee
 
Transifex - 오픈소스 GIS 한글화 플랫폼
Transifex - 오픈소스 GIS 한글화 플랫폼Transifex - 오픈소스 GIS 한글화 플랫폼
Transifex - 오픈소스 GIS 한글화 플랫폼MinPa Lee
 
PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS MinPa Lee
 
공간정보거점대학 1.geo server_고급과정
공간정보거점대학 1.geo server_고급과정공간정보거점대학 1.geo server_고급과정
공간정보거점대학 1.geo server_고급과정BJ Jang
 
State of OpenGXT: 오픈소스 공간분석엔진
State of OpenGXT: 오픈소스 공간분석엔진State of OpenGXT: 오픈소스 공간분석엔진
State of OpenGXT: 오픈소스 공간분석엔진MinPa Lee
 
QGIS를 활용한 공간분석 입문(1일 6시간)
QGIS를 활용한 공간분석 입문(1일 6시간)QGIS를 활용한 공간분석 입문(1일 6시간)
QGIS를 활용한 공간분석 입문(1일 6시간)Byeong-Hyeok Yu
 
오픈소스기반 상용소프트웨어 GXT의 적용사례
오픈소스기반 상용소프트웨어 GXT의 적용사례오픈소스기반 상용소프트웨어 GXT의 적용사례
오픈소스기반 상용소프트웨어 GXT의 적용사례HaNJiN Lee
 
QGIS 소개 및 ArcMap과의 비교
QGIS 소개 및 ArcMap과의 비교QGIS 소개 및 ArcMap과의 비교
QGIS 소개 및 ArcMap과의 비교BJ Jang
 
[QGIS] 수치지도를 이용한 DEM 생성과 지형분석
[QGIS] 수치지도를 이용한 DEM 생성과 지형분석[QGIS] 수치지도를 이용한 DEM 생성과 지형분석
[QGIS] 수치지도를 이용한 DEM 생성과 지형분석MinPa Lee
 
QGIS 기초
QGIS 기초 QGIS 기초
QGIS 기초 slhead1
 
[FOSS4G Korea 2019] 오픈소스를 활용한 역학조사 분석도구 개발
[FOSS4G Korea 2019] 오픈소스를 활용한 역학조사 분석도구 개발[FOSS4G Korea 2019] 오픈소스를 활용한 역학조사 분석도구 개발
[FOSS4G Korea 2019] 오픈소스를 활용한 역학조사 분석도구 개발MinPa Lee
 
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현MinPa Lee
 
Java 기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발
Java  기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발Java  기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발
Java 기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발HaNJiN Lee
 
공간SQL을 이용한 공간자료분석 기초실습
공간SQL을 이용한 공간자료분석 기초실습공간SQL을 이용한 공간자료분석 기초실습
공간SQL을 이용한 공간자료분석 기초실습BJ Jang
 
[공간정보연구원] 1일차 - QGIS 개요 및 기초
[공간정보연구원] 1일차 - QGIS 개요 및 기초[공간정보연구원] 1일차 - QGIS 개요 및 기초
[공간정보연구원] 1일차 - QGIS 개요 및 기초slhead1
 
[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...
[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...
[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...HaNJiN Lee
 

What's hot (20)

[FOSS4G] uDig Desktop GIS
[FOSS4G] uDig Desktop GIS[FOSS4G] uDig Desktop GIS
[FOSS4G] uDig Desktop GIS
 
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
 
1 QGIS intro
1 QGIS intro1 QGIS intro
1 QGIS intro
 
[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServer[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServer
 
Transifex - 오픈소스 GIS 한글화 플랫폼
Transifex - 오픈소스 GIS 한글화 플랫폼Transifex - 오픈소스 GIS 한글화 플랫폼
Transifex - 오픈소스 GIS 한글화 플랫폼
 
PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS
 
공간정보거점대학 1.geo server_고급과정
공간정보거점대학 1.geo server_고급과정공간정보거점대학 1.geo server_고급과정
공간정보거점대학 1.geo server_고급과정
 
State of OpenGXT: 오픈소스 공간분석엔진
State of OpenGXT: 오픈소스 공간분석엔진State of OpenGXT: 오픈소스 공간분석엔진
State of OpenGXT: 오픈소스 공간분석엔진
 
QGIS를 활용한 공간분석 입문(1일 6시간)
QGIS를 활용한 공간분석 입문(1일 6시간)QGIS를 활용한 공간분석 입문(1일 6시간)
QGIS를 활용한 공간분석 입문(1일 6시간)
 
오픈소스기반 상용소프트웨어 GXT의 적용사례
오픈소스기반 상용소프트웨어 GXT의 적용사례오픈소스기반 상용소프트웨어 GXT의 적용사례
오픈소스기반 상용소프트웨어 GXT의 적용사례
 
QGIS 소개 및 ArcMap과의 비교
QGIS 소개 및 ArcMap과의 비교QGIS 소개 및 ArcMap과의 비교
QGIS 소개 및 ArcMap과의 비교
 
[QGIS] 수치지도를 이용한 DEM 생성과 지형분석
[QGIS] 수치지도를 이용한 DEM 생성과 지형분석[QGIS] 수치지도를 이용한 DEM 생성과 지형분석
[QGIS] 수치지도를 이용한 DEM 생성과 지형분석
 
QGIS 기초
QGIS 기초 QGIS 기초
QGIS 기초
 
[FOSS4G Korea 2019] 오픈소스를 활용한 역학조사 분석도구 개발
[FOSS4G Korea 2019] 오픈소스를 활용한 역학조사 분석도구 개발[FOSS4G Korea 2019] 오픈소스를 활용한 역학조사 분석도구 개발
[FOSS4G Korea 2019] 오픈소스를 활용한 역학조사 분석도구 개발
 
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
 
QGIS 활용
QGIS 활용QGIS 활용
QGIS 활용
 
Java 기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발
Java  기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발Java  기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발
Java 기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버의 개발
 
공간SQL을 이용한 공간자료분석 기초실습
공간SQL을 이용한 공간자료분석 기초실습공간SQL을 이용한 공간자료분석 기초실습
공간SQL을 이용한 공간자료분석 기초실습
 
[공간정보연구원] 1일차 - QGIS 개요 및 기초
[공간정보연구원] 1일차 - QGIS 개요 및 기초[공간정보연구원] 1일차 - QGIS 개요 및 기초
[공간정보연구원] 1일차 - QGIS 개요 및 기초
 
[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...
[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...
[FOSS4G KOREA 2014] 인포그래픽 맵 생성을 위한 솔루션 소개 (Solutions For Creating Infographic...
 

Similar to Customizing Gis Programs

공간정보거점대학 - PyQGIS 및 플러그인 개발
공간정보거점대학 - PyQGIS 및 플러그인 개발공간정보거점대학 - PyQGIS 및 플러그인 개발
공간정보거점대학 - PyQGIS 및 플러그인 개발MinPa Lee
 
[EEENAR] OpenGXT 소개와 활용
[EEENAR] OpenGXT 소개와 활용 [EEENAR] OpenGXT 소개와 활용
[EEENAR] OpenGXT 소개와 활용 MinPa Lee
 
What’s new at arc gis 10
What’s new at arc gis 10What’s new at arc gis 10
What’s new at arc gis 10EsrikoreaMKT
 
Python qgis advanced
Python qgis advancedPython qgis advanced
Python qgis advancedJiyoon Kim
 
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장MinPa Lee
 
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)Channy Yun
 
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...Chanjin Park
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AILablup Inc.
 
Lablupconf session8 "Paving the road to AI-powered world"
Lablupconf session8 "Paving the road to AI-powered world"Lablupconf session8 "Paving the road to AI-powered world"
Lablupconf session8 "Paving the road to AI-powered world"Lablup Inc.
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)uEngine Solutions
 
20160420 ROS 3차 강의 (for 아스라다 팀)
20160420 ROS 3차 강의 (for 아스라다 팀)20160420 ROS 3차 강의 (for 아스라다 팀)
20160420 ROS 3차 강의 (for 아스라다 팀)Yoonseok Pyo
 
Openshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud NativeOpenshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud Nativerockplace
 
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장Devgear
 
Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) VMware Tanzu Korea
 
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략Devgear
 
Knative로 서버리스 워크로드 구현
Knative로 서버리스 워크로드 구현Knative로 서버리스 워크로드 구현
Knative로 서버리스 워크로드 구현Jinwoong Kim
 
ifcpp build guide
ifcpp build guideifcpp build guide
ifcpp build guideJUNHEEKIM27
 
프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 jeong seok yang
 
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신WooSangHwang
 

Similar to Customizing Gis Programs (20)

공간정보거점대학 - PyQGIS 및 플러그인 개발
공간정보거점대학 - PyQGIS 및 플러그인 개발공간정보거점대학 - PyQGIS 및 플러그인 개발
공간정보거점대학 - PyQGIS 및 플러그인 개발
 
[EEENAR] OpenGXT 소개와 활용
[EEENAR] OpenGXT 소개와 활용 [EEENAR] OpenGXT 소개와 활용
[EEENAR] OpenGXT 소개와 활용
 
What’s new at arc gis 10
What’s new at arc gis 10What’s new at arc gis 10
What’s new at arc gis 10
 
Python qgis advanced
Python qgis advancedPython qgis advanced
Python qgis advanced
 
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
 
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
 
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
 
Lablupconf session8 "Paving the road to AI-powered world"
Lablupconf session8 "Paving the road to AI-powered world"Lablupconf session8 "Paving the road to AI-powered world"
Lablupconf session8 "Paving the road to AI-powered world"
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
 
20160420 ROS 3차 강의 (for 아스라다 팀)
20160420 ROS 3차 강의 (for 아스라다 팀)20160420 ROS 3차 강의 (for 아스라다 팀)
20160420 ROS 3차 강의 (for 아스라다 팀)
 
Openshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud NativeOpenshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud Native
 
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
 
Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS)
 
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
델파이,C++빌더: 물류 시스템 개발 전문가를 위한 시장현황과 전략
 
Knative로 서버리스 워크로드 구현
Knative로 서버리스 워크로드 구현Knative로 서버리스 워크로드 구현
Knative로 서버리스 워크로드 구현
 
ifcpp build guide
ifcpp build guideifcpp build guide
ifcpp build guide
 
프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트
 
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
 
13.code split
13.code split13.code split
13.code split
 

More from MinPa Lee

오픈소스 GIS의 이해 - OSgeo Projects 중심
오픈소스 GIS의 이해 - OSgeo Projects 중심오픈소스 GIS의 이해 - OSgeo Projects 중심
오픈소스 GIS의 이해 - OSgeo Projects 중심MinPa Lee
 
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화MinPa Lee
 
[FOSS4G Seoul 2015] New Geoprocessing Toolbox in uDig Desktop GIS
[FOSS4G Seoul 2015] New Geoprocessing Toolbox in uDig Desktop GIS[FOSS4G Seoul 2015] New Geoprocessing Toolbox in uDig Desktop GIS
[FOSS4G Seoul 2015] New Geoprocessing Toolbox in uDig Desktop GISMinPa Lee
 
Using QGIS and ISCGM Global Map
Using QGIS and ISCGM Global MapUsing QGIS and ISCGM Global Map
Using QGIS and ISCGM Global MapMinPa Lee
 
OGC 표준 서비스를 이용한 Web KOPSS 구현사례
OGC 표준 서비스를 이용한 Web KOPSS 구현사례OGC 표준 서비스를 이용한 Web KOPSS 구현사례
OGC 표준 서비스를 이용한 Web KOPSS 구현사례MinPa Lee
 
Kopss Open API 단위테스트 이슈사항
Kopss Open API 단위테스트 이슈사항Kopss Open API 단위테스트 이슈사항
Kopss Open API 단위테스트 이슈사항MinPa Lee
 

More from MinPa Lee (6)

오픈소스 GIS의 이해 - OSgeo Projects 중심
오픈소스 GIS의 이해 - OSgeo Projects 중심오픈소스 GIS의 이해 - OSgeo Projects 중심
오픈소스 GIS의 이해 - OSgeo Projects 중심
 
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
 
[FOSS4G Seoul 2015] New Geoprocessing Toolbox in uDig Desktop GIS
[FOSS4G Seoul 2015] New Geoprocessing Toolbox in uDig Desktop GIS[FOSS4G Seoul 2015] New Geoprocessing Toolbox in uDig Desktop GIS
[FOSS4G Seoul 2015] New Geoprocessing Toolbox in uDig Desktop GIS
 
Using QGIS and ISCGM Global Map
Using QGIS and ISCGM Global MapUsing QGIS and ISCGM Global Map
Using QGIS and ISCGM Global Map
 
OGC 표준 서비스를 이용한 Web KOPSS 구현사례
OGC 표준 서비스를 이용한 Web KOPSS 구현사례OGC 표준 서비스를 이용한 Web KOPSS 구현사례
OGC 표준 서비스를 이용한 Web KOPSS 구현사례
 
Kopss Open API 단위테스트 이슈사항
Kopss Open API 단위테스트 이슈사항Kopss Open API 단위테스트 이슈사항
Kopss Open API 단위테스트 이슈사항
 

Recently uploaded

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 

Recently uploaded (6)

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 

Customizing Gis Programs

  • 3. Customizing GIS Programs  ArcGIS Desktop & Server  VBA(Deprecated) Script  .NET: Add-Ins & COM  Python: ArcToolbox & ArcPy & REST API  QGIS Desktop  C++ & PyQT  PyQGIS: console, Plug-in, stand-alone  GeoServer  Java: WPS, Filter Plug-in  Python : app, datastore, filter, format, lib, process  Scripting(GeoScript): Python, JavaScript, Groovy…  uDig Desktop  Java: Plug-in  Scripting: Groovy Plug-in  R  R Script   Extension Point 3
  • 4. ArcGIS for Desktop & Server  VBA(Deprecated) Script  ArcMap 또는 ArcCatalog 내에서 내장된 VBA 사용  ArcMap 문서(mxd 또는 mxt)에 저장되고 문서를 통해서 배포  VBA 를 이용해서 ArcObjects에 접근  10.1 버전부터 없어짐 4 http://map.sdsu.edu/geog104/images/unit-4/unit-4_image003_0000.png
  • 5. ArcGIS for Desktop & Server  .NET: Add-Ins  Microsoft Visual Studio를 이용하여 개발 후 바이너리 배포  Template 형태로 비교적 커스터마이징이 쉬움  Desktop Add-In Manager를 이용하여 관리 5
  • 6. ArcGIS for Desktop & Server  COM(VB, .NET, C++…)  Microsoft Visual Studio를 이용하여 개발 후 바이너리 배포  독자적인 설치 프로그램으로 배포 가능  독립된 Application도 개발 가능하며 고급 개발  기존 KOPSS 개발 방식 6
  • 7. ArcGIS for Desktop & Server  ArcPy : Python Window  콘솔창을 통해 객체 사용  스크립트 작성 후 스크립트 파일을 공유 7 >>> import arcpy >>> arcpy.AddField_management("c:/data/Portland.gdb/streets", "LENGTH_MILES", "TEXT") >>> arcpy.CalculateField_management("c:/data/Portland.gdb/streets", "LENGTH_MILES", "!shape.length@miles!", "PYTHON_9.3")
  • 8. ArcGIS for Desktop & Server  ArcPy Scripts  ArcPy 스크립트 작성 후 ArcToolbox에 import후 사용 8
  • 9. ArcGIS for Desktop & Server  ModelBuilder  ArcMap에 내장된 ModelBuilder를 이용한 GUI 기반의 툴박스  ArcToolbox 에 포함된 기능들을 사용 9
  • 10. ArcGIS for Desktop & Server  ArcGIS Server REST API  ArcGIS for Server 에서 제공하는 REST API  OGC OWS(WMS, WFS, WCS, WPS…)처럼 Map Service, Feature Service, Geometry Service, Image Service, Network Service, GP Service, GeoData Service 등으로 구성  ArcGIS Web Client(JavaScript, Flash, Silverlight…) 등에서 활용 - Mash up  분석 기능은 GP Service 서비스를 확장(ArcPy)하여 추가  http://servicesbeta2.esri.com/arcgis/sdk/rest/index.html 10
  • 11. ArcGIS for Desktop & Server  ESRI Support: http://support.esri.com 11
  • 12. Quantum GIS Desktop  Python Console  PyQGIS 콘솔창을 통해 객체 사용  스크립트 작성 후 스크립트 파일을 공유 12 >>> from qgis.analysis import QgsGeometryAnalyzer >>> layer = qgis.utils.iface.activeLayer() >>> process = QgsGeometryAnalyzer() >>> process.buffer(layer, "C:/data/buffer_500.shp", 500, False, False, -1) >>> process.centroids(layer, "C:/data/centroids_500.shp“, False, -1)
  • 13. Quantum GIS Desktop  Python Plugins  PyQGIS를 이용하여 플러그인 작성 및 배포  온라인 배포를 위해서 QGIS Plugin Repository에 등록 및 승인 13
  • 14. Quantum GIS Desktop  Python Applications  PyQGIS qgis_core, qgis_gui libraries를 QGIS 외부에서 사용 14
  • 15. Quantum GIS Desktop  Quantum GIS Plugin Repository: http://plugins.qgis.org/ 15
  • 16. uDig Desktop  Eclipse RCP Plug-in  플러그인 작성 Plug-in Repository를 통해 자동 설치 및 업데이트 16 http://www.mangosystem.com:8080/gxt/docs/gxt_for_desktop/udig/index.html
  • 17. uDig Desktop  Scripting Plug-in  GeoScript: Groovy 17 http://jgrasstechtips.blogspot.kr/2013/01/proposal-geoscript-console-in-udig.html
  • 18. uDig Desktop  Developing with uDig: http://udig.refractions.net/developers/ 18
  • 19. GeoServer  GeoTools Process  GeoTools 및 Java를 이용하여 Process 생성  GeoServer의 WPS Process로 사용하며 고급 customization  GeoTools의 모든 기능을 사용 및 확장 가능  GeoTools를 사용하는 Desktop 및 Server 모두 사용  http://docs.geotools.org/latest/userguide/unsupported/process/ index.html 19
  • 20. GeoServer  Python Extension  app, datastore, filter, format, lib, process  Jython script 20
  • 21. GeoServer  Scripting(GeoScript) Extension  Python, JavaScript, Groovy… 등 지원  Python extension과 유사 21
  • 22. GeoServer  User & Developer Manual: http://docs.geoserver.org/ 22
  • 23. R  R Script  R is a free software programming language and a software environment for statistical computing and graphics.  R is an implementation of the S programming language combined with lexical scoping semantics inspired by Scheme  The capabilities of R are extended through user-created packages, which allow specialized statistical techniques, graphical devices, import/export capabilities, reporting tools, etc. These packages are developed primarily in R, and sometimes in Java, C and Fortran.  R-spatial : http://cran.r-project.org/web/views/Spatial.html 23
  • 24. R  R Project: http://www.r-project.org 24
  • 25. Summary  공통  각 GIS 엔진에서 지원하는 커스터마이징 방법은 다름  최근 Python 중심으로 통합 추세지만 API는 Engine마다 다름  Desktop  사용자가 분석 스크립트(UI 포함) 생성 후 배포  로컬 데이터 사용 용이  Server  배포 방식은 스크립트 Extension, Plugin, Customizing 등 엔진에 따라 지 원 방식이 다양함  관리자가 분석 스크립트 생성 후 서버에 배포  추가된 기능은 클라이언트(Web)에서 Mashup 하여 활용  로컬 데이터 사용 어려움  지원 포맷: GML, GeoJSON, TopoJSON…  인코딩 된 포맷의 크기 제약 25