En ce qui concerne la mise en mémoire tampon avec barrière physique à l'aide d'ArcGIS for Desktop? , il m'est venu à l'esprit que je ne sais pas comment utiliser les outils de géotraitement dans ArcGIS pour diviser un polygone avec une ligne par programme.
Manuellement, vous utiliseriez l' outil Couper les polygones ou l' outil Couper les polygones dans la barre d'outils Topologie , mais comment accompliriez-vous la même tâche à l'aide des outils de script de modélisation de modèles ou de grythocessing python?
Dès le départ, je pense à tous les outils de la boîte à outils d' analyse comme Union, Identité, etc., mais ce sont tous des outils Polygone-Polygone, PAS des outils Polygone-Ligne. Même l' outil Fractionner est Polygone-Polygone.
Des idées?
la source
aPolygon.Split (aPolyLine)
:-).Réponses:
En utilisant ET Geowizard, vous pouvez accéder au code de l'outil Fractionner les polygones avec polylignes:
Voici le lien vers le script .
Vous pouvez également utiliser ArcObjects pour ce faire:
Couper l'extrait de polygone
Vous pouvez également utiliser la méthode de mémoire tampon unilatérale décrite ici .
la source
Après coup, j'ai fini par créer mon propre outil ModelBuilder. J'avais oublié cette question et affiché ma solution à une autre question similaire . Pour être complet, ceci est une nouvelle publication de la réponse:
la source
Si vous souhaitez sortir d'ArcGIS, utilisez geom.splitpolysbylines .
Personnellement, je ne l'ai jamais utilisé dans un programme mais je pense que vous pouvez accéder à cette ligne de commande avec python, veuillez consulter l'aide pour plus de détails.
la source
si vous n'avez pas de problèmes de haute précision, vous tamponnerez la ligne avec la distance minimale, par exemple (0,002 je pense que cela devrait être supérieur à la précision de votre classe d'entités), puis appliquerez un outil d'effacement au polygone par la ligne tamponnée.
la source
Code arcpy mis à jour pour diviser les polygones dans le sens horizontal ou vertical en utilisant des valeurs de pourcentage
la source