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 (오픈 소스)의 FME 와 Spatial 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.