2017-09-14 16 views
0

J'essaie de dissoudre un fichier de formes basé sur this question et that instruction. Cependant, quand je lance ma ligne de code:Erreur lors de la dissolution du fichier de formes avec ogr et SQLite

ogr2ogr "c:/working/testing/dissolve.shp" "c:/working/testing/test.shp" -f"ESRI Shapefile" -dialect sqlite -sql "SELECT ST_Union(geometry) FROM 'test'" 

je reçois l'erreur suivante:

ERROR 1: In ExecuteSQL(): sqlite3_step(SELECT ST_Union(geometry) FROM 'temp_2'): SQL logic error or missing database 

Qu'est-ce que je manque?

EDIT: L'algorithme "Dissolve" de QGIS fonctionne parfaitement bien (pas celui qui utilise ogr2ogr, mais le leur). Y a-t-il de la magie que je ne comprends pas?

+0

Il vous manque le message d'erreur réel. Est-ce que 'ogr2ogr' le garde vraiment secret? –

+0

Malheureusement, c'est tout ce que j'ai – s6hebern

Répondre

0

Très bien, je l'ai réglé par moi-même. La raison de l'échec est que dans le shapefile, certaines caractéristiques ont été marquées comme supprimé, selon ce message d'erreur lors de la lecture des caractéristiques individuelles:

ERROR 1: Attempt to read shape with feature id (0), but it is marked deleted. 

Je suis maintenant en mesure de contourner ce problème en copiant le fichier shape, qui le recompose également et supprime toutes les fonctionnalités marquées comme telles. Avec cette nouvelle copie, la ligne de code initiale fonctionne parfaitement bien.