Upload
minpa-lee
View
1.497
Download
0
Embed Size (px)
Citation preview
2
CustomizingGIS
Programs
3
Customizing GIS ProgramsArcGIS 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
4
ArcGIS for Desktop & ServerVBA(Deprecated) Script
ArcMap 또는 ArcCatalog 내에서 내장된 VBA 사용ArcMap 문서 (mxd 또는 mxt) 에 저장되고 문서를 통해서 배포VBA 를 이용해서 ArcObjects 에 접근10.1 버전부터 없어짐
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 를 이용하여 관리
6
ArcGIS for Desktop & ServerCOM(VB, .NET, C++…)
Microsoft Visual Studio 를 이용하여 개발 후 바이너리 배포독자적인 설치 프로그램으로 배포 가능독립된 Application 도 개발 가능하며 고급 개발기존 KOPSS 개발 방식
7
ArcGIS for Desktop & ServerArcPy : Python Window
콘솔창을 통해 객체 사용스크립트 작성 후 스크립트 파일을 공유
>>> 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 & ServerArcPy Scripts
ArcPy 스크립트 작성 후 ArcToolbox 에 import 후 사용
9
ArcGIS for Desktop & ServerModelBuilder
ArcMap 에 내장된 ModelBuilder 를 이용한 GUI 기반의 툴박스ArcToolbox 에 포함된 기능들을 사용
10
ArcGIS for Desktop & ServerArcGIS Server REST API
ArcGIS for Server 에서 제공하는 REST APIOGC 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
11
ArcGIS for Desktop & ServerESRI Support: http://support.esri.com
12
Quantum GIS DesktopPython Console
PyQGIS 콘솔창을 통해 객체 사용스크립트 작성 후 스크립트 파일을 공유
>>> 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 DesktopPython Plugins
PyQGIS 를 이용하여 플러그인 작성 및 배포온라인 배포를 위해서 QGIS Plugin Repository 에 등록 및 승인
14
Quantum GIS DesktopPython Applications
PyQGIS qgis_core, qgis_gui libraries 를 QGIS 외부에서 사용
15
Quantum GIS DesktopQuantum GIS Plugin Repository: http://plugins.qgis.org/
16
uDig DesktopEclipse RCP Plug-in
플러그인 작성 Plug-in Repository 를 통해 자동 설치 및 업데이트
http://www.mangosystem.com:8080/gxt/docs/gxt_for_desktop/udig/index.html
17
uDig DesktopScripting Plug-in
GeoScript: Groovy
http://jgrasstechtips.blogspot.kr/2013/01/proposal-geoscript-console-in-udig.html
18
uDig DesktopDeveloping with uDig: http://udig.refractions.net/developers/
19
GeoServerGeoTools Process
GeoTools 및 Java 를 이용하여 Process 생성GeoServer 의 WPS Process 로 사용하며 고급 customizationGeoTools 의 모든 기능을 사용 및 확장 가능GeoTools 를 사용하는 Desktop 및 Server 모두 사용http://docs.geotools.org/latest/userguide/unsupported/process/
index.html
20
GeoServerPython Extension
app, datastore, filter, format, lib, processJython script
21
GeoServerScripting(GeoScript) Extension
Python, JavaScript, Groovy… 등 지원Python extension 과 유사
22
GeoServerUser & Developer Manual: http://docs.geoserver.org/
23
RR Script
R is a free software programming language and a software envi-ronment 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
24
RR Project: http://www.r-project.org
25
Summary공통
각 GIS 엔진에서 지원하는 커스터마이징 방법은 다름최근 Python 중심으로 통합 추세지만 API 는 Engine 마다 다름
Desktop사용자가 분석 스크립트 (UI 포함 ) 생성 후 배포로컬 데이터 사용 용이
Server배포 방식은 스크립트 Extension, Plugin, Customizing 등 엔진에 따라 지원
방식이 다양함관리자가 분석 스크립트 생성 후 서버에 배포추가된 기능은 클라이언트 (Web) 에서 Mashup 하여 활용로컬 데이터 사용 어려움
지원 포맷 : GML, GeoJSON, TopoJSON… 인코딩 된 포맷의 크기 제약