GDAL 통합

GDAL 통합 (GDAL Integration)

spatial 익스텐션은 GDAL 변환 라이브러리를 통합해 다양한 지리공간 벡터 파일 형식의 공간 데이터를 읽고 씁니다. 실제로 어떻게 쓰는지는 st_read 테이블 함수 문서를 참고해요.

출처: 문서

본문

spatial 익스텐션은 GDAL 변환 라이브러리를 통합해 다양한 지리공간 벡터 파일 형식의 공간 데이터를 읽고 씁니다. 실제로 어떻게 쓰는지는 st_read 테이블 함수 문서를 참고해요.

사용자가 시스템에 추가 의존성을 설치하고 설정할 필요가 없도록, spatial 익스텐션은 GDAL 라이브러리 자체 사본을 번들로 제공해요. 이는 spatial의 GDAL 버전이 최신 버전이 아닐 수 있거나, 시스템 전역 GDAL 설치가 지원하는 모든 파일 형식을 지원하지 않을 수 있음을 의미해요. 현재 어떤 GDAL 드라이버를 사용할 수 있는지 확인하려면 st_drivers 테이블 함수 섹션을 참고해요.

GDAL 기반 COPY 함수

spatial 익스텐션은 지리공간 파일 형식을 가져오기(ST_Read 함수 경유)만 할 수 있는 게 아니라, GDAL 기반 COPY 함수를 통해 DuckDB 테이블을 다양한 지리공간 벡터 형식으로 _내보내기_도 지원해요.

예를 들어 생성된 바운딩 박스와 함께 테이블을 GeoJSON 파일로 내보내려면 다음 쿼리를 쓰면 돼요:

COPY ⟨table⟩ TO 'some/file/path/filename.geojson'
WITH (FORMAT gdal, DRIVER 'GeoJSON', LAYER_CREATION_OPTIONS ('WRITE_BBOX=YES', 'DESCRIPTION=a sample geojson'), SRS 'EPSG:4326');

사용 가능한 옵션:

  • FORMAT: 유일한 필수 옵션이며 GDAL 기반 복사 함수를 사용하려면 GDAL로 설정해야 해요.
  • DRIVER: 내보내기에 사용할 GDAL 드라이버. ST_Drivers()로 사용 가능한 모든 드라이버의 이름을 나열해요.
  • GEOMETRY_TYPE: 생성된 레이어의 지오메트리 타입으로 GDAL 드라이버에 전달. POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION 중 하나.
  • LAYER_NAME: 새 레이어에 대체 이름 지정
  • LAYER_CREATION_OPTIONS: GDAL 드라이버에 전달할 레이어 생성 옵션 목록. 옵션 목록을 전달하려면 괄호를 사용해요. 사용 중인 드라이버에 대한 옵션 목록은 GDAL 문서를 참고해요.
  • DATASET_CREATION_OPTIONS: GDAL 드라이버에 전달할 데이터셋 생성 옵션 목록. 옵션 목록을 전달하려면 괄호를 사용해요. 사용 중인 드라이버에 대한 옵션 목록은 GDAL 문서를 참고해요.
  • SRS 또는 CRS: 내보내기에 사용할 좌표 참조 시스템(spatial reference system)을 메타데이터로 설정. WKT 문자열, EPSG 코드, proj-string이 될 수 있고, 기본적으로 GDAL에 평소 넘길 수 있는 모든 것이 돼요. 참고로 이는 입력 지오메트리의 어떤 재투영(reprojection)도 수행하지 않고, 대상 드라이버가 지원하면 메타데이터를 설정할 뿐이에요.

제한 사항 (Limitations)

GDAL 통합은 벡터 기반 드라이버만 지원한다는 점을 참고해요. 래스터 형식의 읽기와 쓰기는 지원되지 않아요.

더 알아보기 (Learn more)