ogrmerge.py
벡터 데이터셋 여러 개를 단일 데이터셋으로 병합합니다.
개요
ogrmerge.py -o out_dsname src_dsname [src_dsname]*
[-f format] [-single] [-nln layer_name_template]
[-update | -overwrite_ds] [-append | -overwrite_layer]
[-src_geom_type geom_type_name[,geom_type_name]*]
[-dsco NAME=VALUE]* [-lco NAME=VALUE]*
[-s_srs srs_def] [-t_srs srs_def | -a_srs srs_def]
[-progress] [-skipfailures] [--help-general]
-single 옵션에 특화된 옵션들:
[-field_strategy FirstLayer|Union|Intersection]
[-src_layer_field_name name]
[-src_layer_field_content layer_name_template]
설명
New in version 2.2.
ogrmerge.py 스크립트는 각각 벡터 레이어 여러 개를 가지고 있는 벡터 데이터셋 여러 개를 입력받아 하나의 대상 데이터셋으로 복사합니다.
핵심적인 모드 2개가 있습니다:
기본 모드: 대상 데이터셋으로 각 입력 벡터 레이어를 개별 레이어로 복사합니다.
-single 스위치로 활성화되는 다른 모드: 단일 대상 레이어에 모든 입력 벡터 레이어의 내용들을 추가합니다. 입력 벡터 레이어들의 스키마가 거의 동일하다고 가정합니다.
이 스크립트는 내부적으로 VRT – 가상 포맷 파일을 생성하는데, 산출물 포맷이 VRT가 아닌 경우 ogr2ogr 또는 gdal.VectorTranslate()
로 최종 변환합니다. 따라서 고급 사용자의 경우 VRT로 산출하면 직접 편집할 수도 있고 ogr2ogr 를 사용할 수도 있습니다.
- -o <out_dsname>
산출 데이터셋의 이름을 설정합니다. 필수 옵션입니다.
- <src_dsname>
하나 이상의 입력 벡터 데이터셋을 설정합니다. 필수 옵션입니다.
- -f <format>
산출물 포맷을 선택합니다. GDAL 2.3버전부터, 지정하지 않는 경우 확장자로부터 포맷을 추정합니다. (이전 버전까지는 ESRI Shapefile을 생성했습니다.) 단축 포맷명을 사용하십시오.
- -single
이 옵션을 지정하면, 모든 입력 벡터 레이어를 단일 레이어로 병합할 것입니다.
- -nln <layer_name_template>
단일 모드에서 산출 벡터 레이어의 이름(기본값은 “merged”), 또는 기본 모드에서 산출 벡터 레이어들을 명명하기 위한 (기본값은
{AUTO_NAME}
) 템플릿입니다. 이 템플릿은 처리되고 있는 입력 레이어로부터 계산한 값으로 대체할 수 있는 다음 변수들을 가진 문자열일 수 있습니다:{AUTO_NAME}
: 기반(base) 이름과 레이어 이름이 서로 다른 경우{DS_BASENAME}_{LAYER_NAME}
과 동일하고, 두 이름이 동일한 (shapefile의) 경우{LAYER_NAME}
과 동일합니다.{DS_NAME}
: 소스 데이터셋의 이름{DS_BASENAME}
: 소스 데이터셋의 기반 이름{DS_INDEX}
: 소스 데이터셋의 색인{LAYER_NAME}
: 소스 레이어의 이름{LAYER_INDEX}
: 소스 레이어의 색인
- -update
기존 데이터셋을 업데이트 모드로 엽니다.
- -overwrite_ds
(파일 기반 데이터셋인 경우) 대상 데이터셋이 이미 존재하면 덮어씁니다.
- -append
기존 데이터셋을 업데이트 모드로 열고, 산출 레이어가 이미 존재하는 경우 입력 레이어의 내용을 추가합니다.
- -overwrite_layer
기존 데이터셋을 업데이트 모드로 열고, 산출 레이어가 이미 존재하는 경우 산출 레이어의 내용을 입력 레이어의 내용으로 대체합니다.
- -src_geom_type <geom_type_name[,geom_type_name]\*]>
도형 유형이 지정한 유형(들)과 일치하는 입력 레이어들만 병합합니다. <geom_type_name>에는 GEOMETRY, POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION, CIRCULARSTRING, CURVEPOLYGON, MULTICURVE, MULTISURFACE, CURVE, SURFACE, TRIANGLE, POLYHEDRALSURFACE 및 TIN을 지정할 수 있습니다.
- -dsco <NAME=VALUE>
데이터셋 생성 옵션 (특정 포맷 지원)
- -lco <NAME=VALUE>
레이어 생성 옵션 (특정 포맷 지원)
- -a_srs <srs_def>
산출물 공간 좌표계를 할당합니다.
- -t_srs <srs_def>
산출물을 지정한 공간좌표계로 재투영/변환합니다.
- -s_srs <srs_def>
소스 공간 좌표계를 지정한 좌표계로 무시합니다.
- -progress
터미널에 진행 상황을 출력합니다. 입력 레이어들이 “fast feature count” 능력을 갖추고 있는 경우에만 작동합니다.
- -skipfailures
실패한 객체를 건너뛰고, 실패한 후에도 계속합니다.
- -field_strategy FirstLayer|Union|Intersection
-single
옵션과 함께 사용해야 합니다. 입력 레이어의 스키마로부터 대상 레이어의 스키마를 작성하는 방법을 결정합니다. 첫 번째로 검색된 레이어의 필드를 사용하려면 FirstLayer를, 모든 소스 레이어의 모든 필드의 확대 집합(superset)을 사용하려면 Union을, 또는 모든 소스 레이어의 모든 공통 필드의 하위 집합(subset)을 사용하려면 Intersection을 설정하면 됩니다. 기본값은 Union입니다.
- -src_layer_field_name <name>
-single
옵션과 함께 사용해야 합니다. 이 옵션을 지정하는 경우, 대상 레이어의 스키마가-src_layer_field_content
옵션이 그 내용을 결정하는 새 ‘name’ 필드를 갖도록 확장할 것입니다.
- -src_layer_field_content <layer_name_template>
-single
옵션과 함께 사용해야 합니다. 이 옵션을 지정하는 경우, 대상 레이어의 스키마가layer_name_template
이 그 내용을 결정하는 (-src_layer_field_name
또는 ‘source_ds_lyr’ 가 그 이름을 지정하는) 새 필드를 갖도록 확장할 것입니다.layer_name_template
의 문법은-nln
의 문법과 동일합니다.
예시
각 입력 shapefile에 대한 레이어 하나를 가진 VRT를 하나씩 생성:
ogrmerge.py -f VRT -o merged.vrt *.shp
동일한 작업이지만, GeoPackage 파일을 생성:
ogrmerge.py -f GPKG -o merged.gpkg *.shp
france.shp와 germany.shp의 내용을 merged.shp로 연결(concatenate)하고, 각 객체에 소스 파일에 따라 ‘france’ 또는 ‘germany’ 값을 가지는 ‘country’ 필드를 추가:
ogrmerge.py -single -o merged.shp france.shp germany.shp -src_layer_field_name country