Estou escrevendo um shapefile após algum processamento; no entanto, na etapa final, preciso fazer uma seleção por atributos do shapefile.
Estou usando o comando em um shell com o objetivo de usá-lo em um script Python quando ele funciona.
ogr2ogr -f "ESRI Shapefile" -select * where ID="1" outfile.shp infile.shp
Estou recebendo a mensagem de erro:
FAILURE:
Unable to open datasource `Downloads' with the following drivers.
O que eu poderia estar fazendo de errado?
Respostas:
Você perdeu um sinal de menos antes
where
e oselect
não é necessário; portanto, deve ser:ou se você precisar fazer uma consulta mais complexa nos dados de entrada:
Se
ID
for um campo do tipo Inteiro, substituaID='1'
porID=1
.Notas:
-f "ESRI Shapefile"
não é necessário porque"ESRI Shapefile"
é oogr2ogr
formato de saída padrão;-select
e usar diretamente a-where
cláusula quando você quiser selecionar todos os campos.fonte
os.system('''ogr2ogr ... ''')
. certifique-seimport os
no topo do seu script pythonogr2ogr -sql "SELECT * FROM infile WHERE ID='1'" outfile.shp infile.shp
vez de apenas ID = 1, existe uma maneira de fornecer um vetor ou um conjunto de números, por exemploogr2ogr -sql "SELECT * FROM infile WHERE ID IN ['1','5','29']" outfile.shp infile.shp
?