ogr2ogr을 사용하여 shapefile로 변환 할 때 피처 유형을 선택 하시겠습니까?


22

셰이프 파일은 하나의 지오메트리 유형 만 가질 수 있지만 다른 많은 형식 (kml, geojson)은 여러 유형을 가질 수 있습니다.

쉐이프 파일로 변환 할 때 ogr2ogr에 각 유형마다 하나씩 여러 개의 쉐이프 파일을 작성하도록 지시 할 수 있습니까?

"-where"옵션이 유용한 것 같지만 매뉴얼 페이지에서 구문을 설명하지 않습니다.

예를 들어, 다음은 실패한 명령입니다.

$ wget http://a841-tfpweb.nyc.gov/jackson-heights/wp-content/themes/tfp/kml/transit.kml
$ ogr2ogr -f "ESRI Shapefile" transit.shp transit.kml
Warning 6: Normalized/laundered field name: 'Description' to 'Descriptio'
ERROR 1: Attempt to write non-linestring (POINT) geometry to ARC type shapefile.
ERROR 1: Terminating translation prematurely after failed
translation of layer Transit (use -skipfailures to skip errors)

답변:


21

http://www.gdal.org/ogr/ogr_sql.html 에서 OGR SQL 문서를 읽고이를 파악 하십시오.

지오메트리 유형 당 하나의 명령과 하나의 출력 파일을 사용하여 작동합니다.

$ ogr2ogr -where "OGR_GEOMETRY='Point'" -f "ESRI Shapefile" transit_points.shp transit.kml
$ ogr2ogr -where "OGR_GEOMETRY='LineString'" -f "ESRI Shapefile" transit_linestrings.shp transit.kml

4

만약 output매개 변수가 파일 이름 대신 디렉토리 인 ogr2ogr은 모든 지오메트리 유형을 별도의 shapefile로 자동 변환합니다.

ogr2ogr out_dir d:\incoming\nhn_09AA001_1_0.gml

불행히도 OP의 경우 KML에서는 작동하지 않지만 ArcInfo Coverages 및 GML과 같은 다른 여러 가지 지오메트리 유형 형식에서는 작동합니다. 지오메트리 유형을 선택할 때 가장 많이 투표되는 질문이므로 여기에 게시하십시오.

D:\>dir /s/b converted\*.shp

D:\converted\NHN_HD_ISLAND_2.shp
D:\converted\NHN_HD_MANMADE_0.shp
...
D:\converted\NHN_TO_NAMEDFEA_0.shp
D:\converted\NHN_WORKUNIT_LIMIT_2.shp

-1

ogr2ogr : 단일 kml을 shapefile로 변환하십시오.

ogr2ogr -f "ESRI Shapefile"C : \ kml \ LJ0047.shp C : \ kml \ LJ0047_.kml

ogr2ogr : 여러 kml 파일을 shapefile로 변환하십시오.

(* .kml)에서 % f의 경우 ogr2ogr -f "ESRI Shapefile"% ~ nf.shp % f

입력 폴더에 액세스해야합니다.


고마워, 그러나 그것은 내가 물었던 질문이 아니다.
slinkp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.