Esri 앱없이 지오 데이터베이스 데이터를 PostGIS로 마이그레이션 하시겠습니까?


39

Esri 앱을 설치하지 않고도 지오 데이터베이스 데이터를 PostGIS에로드하는 방법을 알려줄 수 있습니까?

온라인에서 찾은 솔루션은 ArcDBS를 사용하여 GDB를 SHP로 변환 한 다음 SHP를 PostGIS로 가져 오는 것에 대해 이야기했습니다.


대답 해 주셔서 감사합니다. FME는 유효한 솔루션 일 수 있지만 비용이 많이 드는 솔루션으로 간주합니다. 마이그레이션에는 14 일의 평가 기간이 충분하지 않다고 생각합니다. GDAL 스크립트 나 GeoKettle과 같은 다른 도구에 대한 경험이 있습니까? 문안 인사.
SonOfabox 2016 년

FME Desktop은 마이그레이션 데이터를위한 최상의 솔루션입니다

답변:


37

나는 항상 내 고객을 위해 그것을합니다.

FileGDB 또는 Shapefiles에 데이터를 덤프 한 후 다음 명령을 실행하십시오.

ESRI Shapefile의 경우 :

ogr2ogr -f "PostgreSQL"PG : "dbname = mydbname 사용자 = postgres"myshapefile.shp

FileGDB의 경우 :

ogr2ogr -f "PostgreSQL"PG : "dbname = mydbname 사용자 = postgres"myFileGDB.gdb

FileGDB의 경우 FileGDB 드라이버가 설치되어 있는지 확인해야합니다. 당신은 그것을 가지고 :

ogrinfo-포맷

FileGDB가 설치되었음을 알리는 어딘가에 표시됩니다.


OGR 용 FileGDB 드라이버 설치에 대한 자세한 정보를 제공 할 수 있습니까?
RyanDalton

7
Windows를위한 가장 쉬운 방법은 trac.osgeo.org/osgeo4w 입니다. filegdb 패키지를 찾으십시오 (다음 주에 버그 수정으로 업데이트하려고합니다). 당신이 리눅스 또는 Mac에 있다면, 당신은 내가 그것을 즉석에서 구축에 사용하는 다음 스크립트를 수정할 수 있습니다 (install_filegdb 참조) gist.github.com/2955440
라기 Yaser Burhum

@RyanDalton 날은 :)가는 방법을 알려 주시기
라기 Yaser Burhum

1
이 프로세스에서 메타 데이터는 어떻게됩니까? 예를 들어 좌표계 등을 보유한 FGDC 메타 데이터
Oliver Burdekin

ogr2ogr은 기본적으로 코드를 작성하지 않지만 코드를 보면 SQL 프롬프트에서이 정보를 읽기 위해 실행할 수있는 특수한 "GetLayerDefinition"명령이 있음을 알 수 있습니다. ogr2ogr -f "PostgreSQL" PG:"dbname=mydbname user=postgres" SanDiegoData.gdb -sql "GetLayerDefinition Parcels"그 DB의 필드에 ESRI의 XML 메타 데이터를 덤프 것
라기 Yaser Burhum

7

나는 이것을 시도하지 않았으므로 작동하는지 확인할 수 없지만 File Geodatabase API 를 사용하면 Geodatabase 파일에서 SHP (및 그 이후 PostGIS)로 데이터를 내보낼 수 있습니다. 설명서는 다음과 같이 말합니다.

With the API you can... Read and write data

감사합니다 Stephen, API가 있다는 것을 아는 것이 유용하지만, 실제로 사람들이 작성한 도구가 없으면 자동으로 수행 할 것입니다.
Gerson Galang

6
File GEodatabase API가있는 경우 GDAL을 사용하여 직접 변환 할 수도 있습니다. trac.osgeo.org/gdal/wiki/FileGDB
johanvdw

2
주의 사항 : ESRI에서 개발 한 API 및 API를 기반으로하는 도구는 ArcGIS 10 이상에서 사용하도록 생성 또는 변환 된 파일 GDB (.gdb)에서만 작동합니다. 이전 Personal GDB (.mdb) 버전에 대한 지원은 이전 프로그래밍 노력에서 비롯된 것이며 데이터 및 도구에 따라 작동 할 수 있습니다.
V Stuart Foote

@johanvdw 나는 며칠 전에 trac.osgeo.org/gdal/wiki/FileGDB를 사용해 보았습니다. 위 링크에 대한 지침이 저에게 효과적이지 않았기 때문에 위의 질문을 게시하기 전에. 우분투 10.04에서 최신 gdal 1.8.1을 시도했지만 File GeoDB 플러그인을 gdal에 설치하지 않는 것 같습니다. "with-fgdb"매개 변수에서 사용해야 할 내용을 명확하게 설명하지 않았기 때문에 "--with-fgdb = / usr / local / FileGDB_API"및 "--with-fgdb = / usr / local"을 시도했습니다. 그러나 아무것도 효과가 없었습니다.
Gerson Galang

GCG : 양식을 같은 페이지 : (당신이 FileGDB_API_ <버전> 추출 whereever와 / usr / 지방 / FileGDB_API 교체은 .tar.gz)
johanvdw

5

Esri 파일 지오 데이터베이스 API는 10.x를 사용하여 생성 된 파일 지오 데이터베이스에서만 작동합니다. 이전 버전은 GDAL, QGIS 또는 열린 파일 지오 데이터베이스 API 에 의존하는 다른 어떤 것도 작동하지 않습니다 . 이전 개인 지오 데이터베이스는 MS Access에 의존하며 사용 가능한 리더 및 코드가 있습니다.

10.x 파일 지오 데이터베이스가있는 경우 FileGDB에서 레이어를 읽고 단일 ogr2ogr 명령을 사용하여 PostGIS로로드 할 수 있습니다 ( 문서 참조 ).

ogr2ogr -overwrite -skipfailures -f "PostgreSQL" PG:"host=myhost user=myuser dbname=mydb password=mypass" "C:\somefolder\BigFileGDB.gdb" "MyFeatureClass"

이를 위해 VS2010 Express Edition을 다운로드하고 GDAL, ogr 플러그인 및 1.3의 열린 파일 지오 데이터베이스 API를 빌드해야했습니다.

내가 할 수 없었던 것은 esri 소프트웨어를 사용하지 않고 이전 9.x 파일 지오 데이터베이스를 마이그레이션하는 것입니다 (atm에서는 사용할 수 없음)-지나칠 수 없습니다 ...

HRESULT = -2147220965, errorText = "이 GeoDatabase 릴리스는 유효하지 않거나 오래되었습니다."

... 10.x "gdb"만 지원하는 공개 API로 9.x "gdb"를 열려고 할 때.


OpenFileGDB와 ogr2ogr의 최신 버전 (2014 년 중반)는 적어도 수 읽기 ESRI 파일 지오 데이터베이스의 이전 버전.
c.gutierrez

2

아직 직접 시도하지는 않았지만 " Spatial Data Integrator " 라는 오픈 소스 geoETL 소프트웨어를 사용하는 이 자습서 (shapefile-> PostGIS)를 살펴 보았습니다 . Esri GDB를 지원하는지 여부는 확실하지 않지만 ESRI 제품을 사용하지 않고이 제품을 사용하여 GDB에서 PostGIS로 유사한 변환을 수행 할 수 있는지 더 자세히 조사해 볼 가치가 있습니다.

내가 들었던 다른 ETL 패키지 는 Safe Sofware ($, 매우 인기있는) 및 GeoKettle (오픈 소스)의 FMESpatial ETL wikipedia 페이지 의 더 많은 참조입니다 .

편집 : 조금 더 자세히 살펴보면 SDI가 EsriGDB 읽기를 직접 지원하지 않지만 사용 가능한 OGR 파일 형식을 읽을 수있는 것처럼 보입니다 .


2

FWIW 작업은 postgis 로더에 GDB를 작성하는 중입니다. 이것은 GDB 바인딩이있는 최신 GDAL 트렁크에 따라 다릅니다. 컴파일하고 시도 할 기회가 없었지만 PostGIS 2.0이 나오기 전에 희망을 가졌습니다.

체크 아웃 -http : //trac.osgeo.org/postgis/browser/spike/pramsey/postgis2fgdb

폴이 PostGIS 뉴스 그룹에 대한 정보를 제공하여 자신이 어디에 있는지 알 수 있습니다. http://www.postgis.org/mailman/listinfo/postgis-users

개인 지오 데이터베이스 형식의 경우 GDAL은이를 잘 읽을 수 있으며 개인 지오 DB에서 데이터를 내보내는 데 주로 사용합니다.


0

내가 여기에 잠시 게시 한 내 자신의 질문에 대답 ...

온라인에서 찾은 다른 옵션 (위의 제안 외에도)은 pgdbf ( https://github.com/kstrauser/pgdbf ) 를 사용 하여 SQL 스크립트를 덤프하여 postgres에 수동으로 수집하는 데 사용할 수 있습니다.

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