라벨이 GeoTools인 게시물 표시

[FOSS4g Korea 2020] State of OpenGXT: 오픈소스 공간분석 엔진

State of OpenGXT: 오픈소스 공간분석엔진 from MinPa Lee

OGC 표준기반 서비스 공간분석과 시각화

오픈소스GIS와 OGC 표준기반 서비스를 활용한 공간분석과 시각화 세미나 자료입니다. 오픈소스GIS를 활용한 서버기반 공간분석과 시각화 from MinPa Lee

[제86회 Open Technet] OGC 표준 기반의 공간자료 분석과 시각화 기술 개발 발표자료

nipa 공개SW역량프라자 주관 [2016년 10월 19일] 제86회 Open Technet, 공간정보 공개SW 기술 세미나 에서 발표한 [OGC 표준 기반의 공간자료 분석과 시각화 기술 개발] 발표자료입니다. [제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발 from MinPa Lee

[제2회 오픈소스GIS솔루션데이] 오픈소스 공간통계분석 패키지 개발 발표자료

2015년 2월 26일 열린 [제2회 오픈소스GIS솔루션데이] 행사 발표자료 공유합니다. 오픈소스 공간통계분석 패키지 개발 from Minpa Lee

Wind Rose Map using GXT, uDig GIS

이미지
[uDig] Create Wind Rose Map using Geotools, uDig 얼마전 MapPlus님의 QGIS RingMap 스크립트를 보고 저희 회사 분석 엔진인 GXT에 RingMap을 개발해서 배포했습니다. 그런데 MapPlus님이 저에게 살짝 Wind Rose Map을 보여주더군요. djWjfkrh!! ▣ Reference  -  biz-gis  : http://www.biz-gis.com/index.php?document_srl=107186&mid=GIS_Essay  -  http://nebraskawindandsolar.com/green-info/wind-rose/    ▣ uDig Plugin 저장소  - http://www.mangosystem.com:8080/gxt_updates ▣ Sample Dataset  - Dataset : https://www.dropbox.com/s/u95exijhoxgb2is/sample_data.zip ▣ Usage  - uDig 실행 -> Window -> Show View -> GXT Toolbox 선택 - 다운로드한 샘플 데이터중 서울시 은행,아파트 포인트 데이터를 새로운 지도에 추가   (WindRose의 경우 도선관,백화점 위치와 해당 기관의 사용자 위치등을 분석하여 그 방향성과 사용자의 수를 한눈에 볼 수 있게 하는게 원칙이나 데이터를 구하기가 힘들어 레이어의 센터점으로 잡아 분석함) - GXT Toolbox에서 Vector Analysis > General > Wind Rose 선택 Input Vector Layer : 분석 대상이되는 Point Layer를 선택 Field to apply the weight(선택) : 필수 입력값은 아니지만 갯수에 가중치를 ...

NIPA 공개 SW 개발지원사업 최종보고회 자료

2013년 정보통신산업진흥원(NIPA) 공개 SW 개발지원사업에서 망고시스템이 수행한 [Java 기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버 개발] 과제의 완료보고회 자료 첨부합니다 많은 분들이 도와주셔서 과제를 완료했습니다. 감사합니다. 프로그램 원본 및 소스코드 다운로드는 다음을 통해서 가능합니다. SourceForge : http://sourceforge.net/projects/gt-jdbc-korean/ Java 기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버 개발 from Minpa Lee

[GeoTools Data Store] 국내 공간 DBMS 및 파일 포맷 지원

이미지
▣ 정보통신산업진흥원(이하 NIPA)에서 진행하는 공개 소프트웨어(SW) 지원 사업인 ’2013년 공개 SW 개발 지원사업’ 의 자유과제 부분에 지원한 망고시스템의 ‘Java 기반의 오픈 소스 GIS(GeoServer, uDig)를 지원하는 국내 공간 DBMS 드라이버의 개발’ 과제가 선정되었습니다. ▣ NIPA의 ‘공개SW 개발 지원사업’은 최신 공개SW 기술을 이용하여 공개SW 개발 및 확대를 위한 사업으로 기업, 개인 사업자, 대학 등에 공개SW 개발 프로젝트와 커뮤니티 운영을 지원하는 사업입니다. ▣ 이제 2010년 개인적으로 개발했던 다음의 내용을 기초로 GeoTools 모든 버전을 계속적으로 지원할 수 있는 체계를 마련할 수 있게 되었습니다.  - [FOSS4G]Altibase Spatial JdbcDataStore for GeoTools, GeoServer  - Spatial Data를 지원하는 국산 DBMS GeoTools용 JdbcDataStore 확장 ▣ 개발 내용 Java 기반의 오픈소스 GIS(GeoTools, GeoServer, uDig GIS)에서 사용가능한 국내 공간 DBMS 및 파일포맷 드라이버 지원 ○ 1차년도 GeoTools Data Store를 확장  - Altibase Spatial  - Tibero Spatial  - Kairos Spatial  - 국토지리정보원 NGI 포맷 ○ 2차년도 uDig Data Store를 확장(계획)  - Altibase Spatial  - Tibero Spatial  - Kairos Spatial  - 국토지리정보원 NGI 포맷 ▣ Source Code Repository  - SourceForge ( https://sourceforge.net/p/gt-jdbc-korean/ )  - GitHub ( https://www.github.co...

Clipping Contest 후기

이미지
약 한달전 FOSS4G 분야를 뜨겁게 달구었던 이슈가 하나 있었다. 바로 대용량 데이터 Clipping Contest! 다양한 상업 및 오픈소스 GIS 프로그램들이 참여(?)했으며, 수많은 댓글이 달렸다. 자세한 내용은 아래 참조 사이트들을 방문해 보면 된다. ESRI의 경우 이에 이의(?)를 제기하고 10.1 버전에 반영하겠다고도 하니 집단 지성의 힘은 참으로 대단하다. ▣ 샘플 데이타 개요  - Contours20Ft : 52,521개로 구성된 등고선 라인 데이터  - StudyArea1MileBuffer : 938개의 버텍스로 구성된 단일 폴리곤 데이터 ▣ 정리  - GIS엔진에서 Clip 성능에 영향을 주는 요인들  : Spatial Indexing  : Geometry Engine & Robustness  : Spatial Data I/O  : Clip 전략 및 방법  - 주요 Geometry(Topology) Engine들   : Open Source Java 계열: JTS Topology Suite(GeoTools/uDig/gvSIG...)   : Open Source C 계열: GEOS, 자체(GRASS 등)   : 상용: ESRI(ArcGIS Topology Engine), 기타 자체 엔진 - JTS Topology Suite/GEOS는 이미 충분히 검증됨  - Clip function에 대한 이해  : 다음과 같이 1개 이상 피쳐로 구성된 원본데이터(위 샘플데이터에 의하면 등고선), 여러개의 폴리곤 피쳐로 구성된 클립 영역 데이터가 있다고 가정하자.  : ArcGIS의 경우에는 아래 그림의 왼쪽과 같이 한 개의 라인이 생성  : 몇몇 GIS 프로그램에서는 아래 그림의 오른쪽과 같이 한개 이상의 라인이 생성  ...

Creating O-D flow maps with GeoServer

이미지
이전 포스팅[ [Cartography]Flow Map Renderer ]에서 ArcGIS for Desktop - ArcMap 기반의 O-D Flow Map 렌더러를 구현한 적이 있다. GeoTools의 Filter Function을 확장하여 GeoServer에서 SLD Style로 설정하여 사용이 가능하다. Filter Function의 경우 ArcGIS 렌더러와는 다르게 지도의 축척이나 크기를 알 수 없어, geometry필드, value 필드, 최소값, 최대값, 최대크기, 유형을 파라미터로 입력받아 처리할 수 있도록 하였다. 축척변경에 따른 크기조정이 불가능하나, WPS Process 및 Rendering Transformations 을 이용하면 가능할 듯하다. 다음은 GeoServer Web Administration 페이지에서 OpenLayers로 미리보기 한 샘플이다. ▣ Arrow ▣ Circle ▣ SLD 예 - Function = odflowmap 다음은 위에서 사용된 라인레이어의 SLD 파일 예이다. <? xml version = " 1.0 " encoding = " utf-8 " ?> < StyledLayerDescriptor version = " 1.0.0 " ..../ 1.0.0/StyledLayerDescriptor.xsd " > < NamedLayer > < Name > OD Flow Map </ Name > < UserStyle > < Name > OD Flow Map </ Name > < FeatureTypeStyle > < Rule > < ogc : Filter > < ogc : And ...

[uDig] Altibase Catalog Plugin 확장

이미지
◎  uDig 에 GeoTools용 Altibase DataStore를 이용한 Catalog 플러그인   ○ 테스트환경 : uDig 1.3.2 + GeoTools 8.x + Altibase 5.5.1.0.3   ○ 사용법 레이어 메뉴의 [추가...]메뉴를 실행 후 Altibase 데이터베이스 선택 서버 접속을 위한 연결정보 입력 또는 기존연결 선택 지도에 추가할 레이어 선택 후 완료 지도에 레이어 추가, 카탈로그 등록, 테이블 속성 확인 등 ◎ 향후 일정   ○ 파일 기반의 GeoTools DataStore들의 uDig Catalog 플러그인 제작   ○ 국토지리정보원 NGI Ascii Format DataStore uDig에서 국토지리정보원 NGI 데이터셋 배치 변환   ○ ESRI Personal Geodatabase(9.x, 10.x 지원) DataStore uDig에서 ESRI Personal Geodatabase의 배치 변환

ArcGIS to SLD(Styled Layer Descriptor) 기능정의

이미지
ArcMap의 레이어를 SLD(Styled Layer Descriptor) 파일로 내보내기 위한 도구 개발 SLD 변환도구 이전글:  SLD(Styled Layer Descriptor) Converter & Editor?  참조 ▣ SLD 지원 대상  - GeoServer : SLD 1.0.0 + Vendor Option  - ArcGIS 10 + .NET C# + Custom ICommand 구현 ▣ GeoServer에서의 SLD 지원 현황  - 현재 GeoSErver에서 SLD 인코딩은 ISO-8859-1을 사용하며 utf-8로 저장 후 GeoServer Administrator 페이지에서 Style을 수정하는 경우 헤더 부분 및 한글이 깨지는 현상 발생  - 그러나 저장 후 GeoServer Data Directory의 styles 폴더에서 sld를 열고 한글 입력 후 재실행하면 작동은 함    - <?xml version="1.0" encoding="ISO-8859-1"?>    - <?xml version="1.0" encoding="utf-8"?>  - GeoServer의 Styling( http://docs.geoserver.org/stable/en/user/styling/index.html ) user guide를 분석하여 Vendor Option 등을 확인  - Arc2Earth 도구를 이용하여 각각의 렌더러 및 심볼 지원 벤치마킹    - 테스트 결과 부분적으로 GeoServer에서 오류 발생 ▣ 기능 정의  - 저장할 파일의 인코딩 선택  - Point Symbol일 경우 아이콘(ExternalGraphic, png)로 저장할 수 있는 옵션 선택  - 아이콘으로 저장할 경우 아이콘 크기 설정: 16 * 16, ...

GeoServer & SLD(Styled Layer Descriptor)

이미지
현재 GeoTools 와 GeoServer 는 공식적으로는  SLD version 1.0.0 을 지원하고 있다고 하지만 SLD 1.0, 1.1, GeoServer옵션(Vendor 옵션)을 함께 사용하고 있다. SLD Converter 구현을 위해서 간략하게 SLD를 정리해 보았다. SLD 변환도구는 이전글: SLD(Styled Layer Descriptor) Converter & Editor?  참조 ▣ SLD의 기본 구조 예) <? xml version = " 1.0 " encoding = " utf-8 " ?> < sld : StyledLayerDescriptor xmlns = " http : // www.opengis.net /sld " xmlns : sld = " http : // www.opengis.net /sld " xmlns : ogc = " http : // www.opengis.net /ogc " xmlns : gml = " http : // www.opengis.net /gml " version = " 1.0.0 " > < sld : NamedLayer > < sld : Name > firestation </ sld : Name > < sld : UserStyle > < sld : Name > firestation </ sld : Name > < sld : FeatureTypeStyle > < sld : Name > Simple Renderer </ sld : Name > < sld : Title > Simple Renderer </ sld : Title > ...

[PostGIS]ERROR: LWGEOM_estimated_extent

GeoServer  등  GeoTools 를 사용하는 프로그램의 경우  PostGIS Data Store를 사용하여 레이어의Extent를 구할 때 다음과 같은 오류가 발생하는 경우가 있다. ▣ GeoTools - PostGIS Map<String, Serializable> params = new HashMap<String, Serializable>() ; params.put(JDBCDataStoreFactory.DBTYPE.key, "postgis") ; params.put(JDBCDataStoreFactory.HOST.key, "localhost") ; params.put(JDBCDataStoreFactory.PORT.key, 5432) ; params.put(JDBCDataStoreFactory.SCHEMA.key, " public ") ; params.put(JDBCDataStoreFactory.DATABASE.key, "uoc") ; params.put(JDBCDataStoreFactory.USER.key, "postgres") ; params.put(JDBCDataStoreFactory.PASSWD.key, "postgis") ; try { DataStore pgDataStore = DataStoreFinder . getDataStore ( params ) ; SimpleFeatureSource srcSfs = pgDataStore . getFeatureSource ( "ubsm0103" ) ; ReferencedEnvelope extent = srcSfs . getFeatures ( Filter . INCLUDE ) . getBounds ( ) ; System . out . println ( extent ) ; } catch (IOEx...

[GeoTools]GridCoverage Statistics

GeoTools 에서 GridCoverage(Raster)의 단순통계를 계산하는 Java 샘플 코드입니다.  - JAI의 RectIter 인터페이스를 이용하여 계산  - AWT의 RenderedImage인터페이스를 이용하여 계산  - 단일 밴드에 대한 샘플입니다. ▣ Code Snippet import java . awt . image . Raster ; import java . awt . image . RenderedImage ; import java . text . DecimalFormat ; import javax . media . jai . PlanarImage ; import javax . media . jai . iterator . RectIter ; import javax . media . jai . iterator . RectIterFactory ; import org . geotools . coverage . grid . GridCoverage2D ; import org . geotools . coverage . grid . GridEnvelope2D ; ■ JAI(Java Advanced Imaging): RectIter Interface static void calculateStatistics1(GridCoverage2D inputGc) { int count = 0 ; double minVal = Double . MAX_VALUE ; double maxVal = Double . MIN_VALUE ; double sumOfVals = 0.0 ; double sumOfSqrs = 0.0 ; double noDataValue = ( Double ) inputGc . getProperty ( "GC_NODATA" ) ; PlanarImage renderedImage = ...