[ArcObjects]Spatial Grid Index 계산하기..

- ArcCatalog에서 SDE로 FeatureClass(특히 Shapefile)를 업로드 할 때 Spatial Index가 모두 빠져 있는 경우가 있다. - GDB나 FGDB 라면 그냥 Copy & Paste로 데이터를 복사할 경우엔 Spatial Index가 모두 딸려와 정상적으로 생성이 되지만.. ArcCatalog의 Import나 Export 기능을 사용할 때 (Shapefile의 경우에는 Copy & Paste가 되지 않음) 난감한 경우가 있다. - ArcCatalog에서 FeatrueClass 속성 창을 보면 Spatial Index를 자동 계산해주는 버튼이 있지만 하나씩 해야 한다. 100개 이상의 레이어를 올리고 하나씩 눌러가며 계산했던 적이 있다. 헐~ - ArcToolBox > Feature Class > Calculate Default Spatial Grid Index 툴을 사용하면 계산이 가능하다. Batch로 해서 하면 되지만 해본 결과 계산은 잘되지만 적용이 잘 되지 않는 듯 하다. 속성창에는 계산된 값이 보여지는데 Preview를 하면 여전히 로드되지 않는다. - 아래 코드는 ArcObjects를 사용하여 FeatureClass의 Default Spatial Index를 계산해 주는 코드이다. - 참조된 라이브러리는 > ESRI.ArcGIS.Geoprocessor > ESRI.ArcGIS.Geoprocessing - Geoprocessor 인터페이스의  Excute 메서드를 사용하여 직접 ArcToolBox를 사용한다. - CalculateDefaultGridIndex > RemoveSpatialIndex > AddSpatialIndex   순서로 생성한다.   1: private bool CalculateDefaultSpatialIndex(IFeatureClass pDestFc) 2: { 3: i...

[PostGIS] Shapefile and DBF Loader 2

이미지
pgAdmin은 오픈 소스 데이터베이스인 PostgreSQL을 위한 가장 인기있고 기능이 풍부한 오픈소스 관리 및 개발 플랫폼 Linux, FreeBSD, Solaris, Mac OSX, Windows 플랫폼에서 모두 사용 pgAdmin III Plug-In Architecture version 1.9+ ~ 1.12.x 까지는 pgAdmin III 인스톨 폴더의 plugins.ini 파일로 관리 version 1.13 이후부터는 pgAdmin III 인스톨 폴더 내에 plugins.d 폴더 아래 plugin*.ini 다중 파일들로 관리 만약 PostGIS Shapefile and DBF Loader PostGIS GUI 플러그인을 등록하는 경우 1.12 이하 버전에서는 plugins.ini 파일에, 1.13 버전 부터는 plugins.d 폴더 내에 postgis.shp2pgsql-gui.ini 파일을 생성 또는 편집해서 등록할 수 있음 두 버전 모두 다음의 내용을 등록하면 됨 ; ;PostGIS shp2pgsql-gui (Windows): ; Title=PostGIS Shapefile and DBF Loader Command="$$PGBINDIR\postgisgui\shp2pgsql-gui.exe" -h "$$HOSTNAME" -p $$PORT -U "$$USERNAME" -d "$$DATABASE" -W "$$PASSWORD" Description=Open a PostGIS ESRI Shapefile or Plain dbf loader console to the current database. KeyFile=$$PGBINDIR\postgisgui\shp2pgsql-gui.exe Platform=windows ServerType=postgresql Database=Yes SetPassword=Yes 더 자세한 내용은 다음...

[ArcObjects]INeighborhoodOp.FocalStatistics…

이미지
* esriSpatialAnalyst 라이브러리의 INeighborhoodOp 인터페이스는 다양한 집계함수를 제공한다. 해당 인터페이스를 사용하기 위해서는 부가적으로 [Spatial Analyst Extension]이 필요하다. * 다양한 집계 함수들 중에 프로젝트에서는 FocalStatistics 를 사용했다. 집계할 값이 들어 있는 라스터 레이어를 특정 탐색 범위에 맞게 Sum을 수행한 결과 라스터를 필요로 했다. * FocalStatistics의 기본적인 계산과정은 다음 그림과 같다. * Block과는 다르게 Focal은 탐색영역을 Overlap 하면서 픽셀 하나하나의 값을 계산해 나간다. 그럼으로 분석에 있어서 탐색영역의 크기와 모양을 정하는 것이 키 포인트 였다. * FocalStatistics의 탐색영역은 esriGeoAnalyst라이브러리의 IRasterNeighborhood 인터페이스를 통해 다양한 모양과 크기로 정의할 수 있다. * 기본적인 탐색영역의 모양은 다음과 같다. * 이번 프로젝트의 탐색영역과 분석환경에 대한 제약사항은 다음과 같았다.    > 분석 Raster의 CellSize는 10m * 10m 으로 한다.    > 탐색영역의 모양은 원형으로 하며, 원의 지름은 총 110m로 한다.    > 원형의 탐색영역에 포함되는 Cell의 갯수는 총 101개가 되어야 한다. * ArcGIS의 ToolBox를 활용하여 반지름이 55m의 원형으로 탐색했을 경우의 탐색반경에 포함되는 Cell은 다음과 같았다. * Raster 분석에 있어서 반지름이 55m인 원을 그리고 해당 원안에 개별 Cell의 중심점이 포함 된다면 탐색범위에 포함된다고 기술문서에 나와 있었지만 실제 위 그림처럼 이해가 안가는 부분이 있다. * 결국 해답은 다음과 같았다. 바깥쪽 점선이 반지름이 55m인 원이지만 해당 선상에는 대상 Cell의 중심점이 존재하지 않는다. ...