Fendus ou sauver un sous-ensemble d'un fichier SHP ESRI Shape à un nouveau fichier?

StackOverflow https://stackoverflow.com/questions/3016682

  •  26-09-2019
  •  | 
  •  

Question

Je travaille avec des fichiers de forme dans GeoDjango. En ce moment je suis en train d'écrire un test pour le code qui se charge dans un fichier de forme et les enregistre dans une base de données. Le fichier de forme a actuellement un nombre de caractéristique de 64118. Je voudrais réduire à une poignée de sorte que le test peut charger rapidement et tout de confirmation est juste.

Étant donné que les fichiers de forme ne sont pas dans un format de texte, est-il une application gratuite ou d'une bibliothèque que je peux utiliser pour arracher une poignée de fonctionnalités et de les enregistrer dans un nouveau fichier?

Je dois mentionner que je n'ai pas de licence ni accès à toute la gamme de produits Esri.

Était-ce utile?

La solution

Vous avez plusieurs options pour exporter un sous-ensemble d'enregistrements d'un fichier shape.

  • Tout SIG de bureau Open Source sera en mesure d'effectuer cette. Certains des plus Populars sont Quantum GIS , ou href="http://www.openjump.org/" rel="noreferrer"> OpenJUMP . Les étapes exactes varient dans chacun d'eux, mais, fondamentalement, vous devez charger le fichier de forme, commencer à éditer, sélectionnez les enregistrements que vous souhaitez et les exporter vers un nouveau fichier de formes.

  • L'outil ogr2ogr , une partie du paquet GDAL vous permet de transformer entre les différents formats géographiques vectoriels (ou dans le même format), et vous pouvez spécifier une expression comme SQL pour filtrer l'ensemble de données d'origine.

    ogr2ogr -f "Esri Shapefile" -où "id <10" new_shapefile.shp huge_shapefile.shp

  • Si vous utilisez PostGIS et ne souhaitez pas installer l'une des applications précédentes, vous pouvez utiliser le pgsql2shp outil pour exporter un sous-ensemble de votre table PostGIS à un shapefile.

    pgsql2shp -f "/ path / to / shapefile" serveur -h mot de passe -P utilisateur -u postgisdb     "SELECT * FROM table WHERE id <10"

Modifier :. Dans l'une des trois options que vous pouvez effectuer un filtre spatial (c.-à-objets se trouvant dans un cadre de sélection) plutôt que d'une sélection en fonction des attributs

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top