J'écris un fichier de formes après un traitement; cependant, dans la dernière étape, je dois faire une sélection par attributs à partir du fichier de formes.
J'utilise la commande dans un shell dans le but de l'utiliser dans un script Python quand cela fonctionne.
ogr2ogr -f "ESRI Shapefile" -select * where ID="1" outfile.shp infile.shp
Je reçois le message d'erreur:
FAILURE:
Unable to open datasource `Downloads' with the following drivers.
Que pourrais-je faire de mal?
Réponses:
Vous manquez un signe moins avant
where
et ceselect
n'est pas nécessaire, il devrait donc être:ou si vous devez effectuer une requête plus complexe sur vos données d'entrée:
Si
ID
est un champ de type Entier, remplacezID='1'
parID=1
.Remarques:
-f "ESRI Shapefile"
n'est pas nécessaire car il"ESRI Shapefile"
s'agit duogr2ogr
format de sortie par défaut;-select
et d'utiliser directement la-where
clause lorsque vous souhaitez sélectionner tous les champs.la source
os.system('''ogr2ogr ... ''')
. assurez-vous d'êtreimport os
en haut de votre script pythonogr2ogr -sql "SELECT * FROM infile WHERE ID='1'" outfile.shp infile.shp
au lieu de simplement ID = 1, existe-t-il un moyen de fournir un vecteur ou un ensemble de nombres, par exempleogr2ogr -sql "SELECT * FROM infile WHERE ID IN ['1','5','29']" outfile.shp infile.shp
?