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.