shapefile 데이터를 데이터베이스로 중앙 집중화


13

다양한 GIS 프로젝트에서 수백 개의 shapefile이 있는데, 현재 Postgres / PostGIS를 사용하여 단일 데이터베이스 플랫폼으로 통합하려고합니다.

거의 데이터가 표준화되어 있지 않기 때문에 데이터 유형 이 동일 하지만 특정 속성 이름 / 유형이 일치하지 않습니다.

이 문제를 해결하기 위해 어디에서 시작해야합니까? 각 쉐이프 파일을 먼저 (예 : Hydro_line, transport_line, Hydro_poly 표준 등) 마이그레이션하기위한 표준 모델을 개발해야합니까?

대안은 각 모양 파일을 Postgres로 개별적으로 가져 오는 것이므로 각 shp는 데이터베이스의 테이블이되지만 성능 및 구성 측면에서 확실하지 않습니다. 피할 수없는 것 같은 느낌이 든다 ...

이 어려운 일을 처리하는 데 대한 조언이 있습니까?

답변:


7

Spatial ETL 소프트웨어 (추출-변환-로드)를 살펴보면 이러한 작업에 전념하고 있습니다. 가장 알려진 것은 Safe의 FME 이지만 SDI (Spatial Data Integrator) 및 GeoKettle 과 같은 일부 오픈 소스 (부분) 대안을 사용할 수 있습니다 .


2
이전 질문에서 비교를 요청 했으므로이 경로로 이동하면 작성을 수행하십시오. gis.stackexchange.com/questions/5049/spatial-etl-comparisons
RyanKDalton

FME 시험판을 들고 SDI와 GeoKettle을 모두 설치했습니다. 나는 그들을 시험 해보고 내가 이해할 수 있는지 알아볼 것이다. FME는 수프 간 솔루션처럼 보이지만 먼저 학습 곡선을 극복해야합니다. :)
colemanm

1
@ colemanm- 이것으로 무엇을 했습니까? 가장 유용한 제품은 무엇입니까?
RyanKDalton

6

어이

먼저 PostGIS로 가져옵니다. 개별 테이블에 여러 모양을로드하는 도구가 있습니다. QGIS 침 연장은 하나입니다. PostGIS 트렁크 또는 실험 바이너리의 새로운 그래픽 shp2pgsql이 또 다른 대안입니다. 또는 shp2pgsql을 사용하여 배치 스크립트를 작성할 수 있습니다.

나는 거기에서 시작하여 모든 것을 original 또는 이와 유사한 스키마로 가져옵니다. 그런 다음 데이터를 구성합니다. 적절한 곳에서 테이블로 합치기.

그렇게하는 좋은 방법은 변환을 수행하는 데 사용하는 모든 쿼리를 저장하면 데이터 기록에 대한 훌륭한 문서가 있다는 것입니다. 필요한 경우 다시 실행하는 것도 매우 쉽습니다. 구성 작업이 준비되면 스키마 "원본"의 백업을 덤프하고 어딘가에 버립니다.

나는 이것이 체계적이고 깨끗한 방법이라고 생각합니다. 그리고 앞에서 말했듯이, 어떤 필드가 어떤 이름을 새로운 이름으로 바꿨는지, 그리고 어떤 원래 테이블이 그 큰 새로운 테이블로 병합되는지에 대한 매우 확실한 문서를 얻을 수 있습니다.

FME와 소프트웨어는 물론 수행 한 작업도 저장할 수 있지만 내부 데이터베이스 쿼리와 비교할 때 매우 느리다는 것 외에도 SQL 쿼리로 수행되는 작업을 문서화하는 보편적 인 방법은 아닙니다. 텍스트 파일과 관계형 데이터베이스가있는 한 사용 가능하고 읽을 수 있습니다.

다음과 같은 텍스트 파일로 끝나는 데 사용합니다.

-- A query to merge all roads in Norway

Create table road_tables.all_roads as
SELECT id as roadid, status, the_geom from original.big_roads
union all
SELECT rid as roadid, condition as status, the_geom from original.small_roads;

등등. 이것은 텍스트 파일로 저장되어 몇 년 후에 큰 가치가 있습니다.

Nicklas 감사합니다


1
+1 나는 이것이 매우 좋은 접근법이라고 생각합니다. 모든 것은 Postgres 내에서 이루어지며, 필요한 경우 매우 투명하고 쉽게 재현 할 수 있습니다.
underdark

1
ESRI 기반 GIS에 대한 권장 사항이 아닙니다. 오픈 소스 "전용"이것은 허용됩니다. ESRI에는이 방법으로는 액세스 할 수없는 많은 종속성이 있습니다. interop, gis 서버 또는 arcsde가 없으면 postgis에 직접 연결할 수 없습니다.
Brad Nesom

2
@ 브래드 흠, 나는 그것이 투명 재현 가능하고 빠른 방법으로 일을하는 주장인지 또는 내 데이터와 내 데이터 사이에 sde를 넣음으로써 잠기는 것에 대한 주장인지 궁금합니다 ... ;-)
Nicklas Avén

1
@ 브래드 : colemanm은 ESRI를 언급하지 않았으므로 대답은 좋은 것 같습니다.
underdark

ESRI Sde 기능 클래스 및 SQL Server 2008 (기본 지오메트리)을 사용하여 이와 유사한 작업을 수행했습니다. 먼저 기능 클래스를 만든 다음 일련의 삽입 문으로로드합니다. IIRC, 새 objectid를 올바르게 생성 할 수 없으므로 마지막에 featureclass를 새 featureclass로 내 보내야했습니다. 일단 내가 그렇게하면 평소와 같이 사업.
Jay Cummins

4

내 제안은 더 많이 사용 된 데이터 레이어 (셰이프 파일)의 2-5를 선택하여 rdbms로 마이그레이션하는 것입니다.
해당 데이터에 대한 워크 플로를 조사하고 구현하십시오. rdbms 대 파일 기반 데이터의 제한 및 요구 사항에 익숙해지기

필요한 내보내기, 방문 영역, 조정, 공동 작업을위한 파일 형식 등의 제한이 있습니다.

당신이 제안하는 것에 많은 혜택이 있습니다.
참고 : (할아버지가 부모님에게 구매하기 전에 집을 찾는 데 600 만 번째를 보내라고 말씀하셨습니다.) 데이터를 위해 집 (장기)을 찾고 있다고 생각합니다. 싫어요.

데이터 소스의 트리 목록을 디지털 (디지털 또는 아날로그)로 작성하여 큰 그림으로 보는 것이 좋습니다. 이렇게하면보다 간결한 그룹으로 데이터를 구성 할 수 있습니다.

개별 데이터를 통합하기위한 arcgis (내 가정 : 선호하는 시스템을 지정하지 않았습니다) 내에 방법이 있습니다.

좋은 디자인 방법을 배우고 싶다면이 정보 중 일부를 시도해보십시오.

지오 데이터베이스 디자인 개요
지오 데이터베이스 문서
arc 10에 대한 유사한 링크가 있습니다.
리소스 센터
arc10 지리 데이터베이스

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.