ogr2ogr을 사용하여 속성별로 기능을 선택 하시겠습니까?


17

처리 후 shapefile을 작성하고 있습니다. 그러나 마지막 단계에서는 shapefile에서 속성별로 선택해야합니다.

작동 할 때 파이썬 스크립트에서 명령을 사용하기 위해 쉘에서 명령을 사용하고 있습니다.

ogr2ogr -f "ESRI Shapefile" -select * where ID="1" outfile.shp infile.shp

오류 메시지가 나타납니다.

FAILURE: 
Unable to open datasource `Downloads' with the following drivers.

내가 뭘 잘못하고 있니?


이것이 실제로 그 명령에 대한 정확한 메시지입니까?
— BradHards

답변:


30

당신은 전에 마이너스 기호를 그리워 where하고는 select그것이 있어야하므로, 필요하지 않습니다 :

ogr2ogr -where ID="1" outfile.shp infile.shp

또는 입력 데이터에 대해 더 복잡한 쿼리를 수행해야하는 경우 :

ogr2ogr -sql "SELECT * FROM infile WHERE ID='1'" outfile.shp infile.shp

만약는 ID정수 타입, 대체의 필드 ID='1'와 ID=1.

노트:

  1. -f "ESRI Shapefile"때문에 필요하지 않습니다 "ESRI Shapefile"는 IS ogr2ogr기본 출력 형식;
  2. 모든 필드를 선택하려는 경우 절 을 건너 뛰고 -select사용 하는 것이 편리 -where합니다.

1
많은 감사합니다. ogr2ogr -where "ID = '1'"output.shp input.shp
— user2757128

이 코드를 사용하는 방법 : ogr2ogr -sql 파이썬에서 "SELECT * FROM infile WHERE ID = '1'"outfile.shp infile.shp "
— Shiuli Pervin

1
@ShiuliPervin을 사용하여 파이썬에서 명령문을 사용할 수 있습니다 os.system('''ogr2ogr ... ''') . 반드시 import os당신의 파이썬 스크립트의 상단에
— 지오 아이

@afalciano, ogr2ogr -sql "SELECT * FROM infile WHERE ID='1'" outfile.shp infile.shpID = 1 대신 명령문 의 경우 벡터 또는 숫자 집합을 대신 제공하는 방법이 ogr2ogr -sql "SELECT * FROM infile WHERE ID IN ['1','5','29']" outfile.shp infile.shp있습니까?
— hlm

@afalciano 다른 하나 ... 다른 shp 파일을 작성하는 대신 선택한 ID 다각형의 좌표를 얻는 방법이 있습니까?
— hlm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.