Suite

Sélectionnez Par emplacement puis Ajouter si les points sont sélectionnés ModelBuilder

Sélectionnez Par emplacement puis Ajouter si les points sont sélectionnés ModelBuilder


Je parcours un fichier de formes de points pour attribuer les points aux zones tampons dans lesquelles ils se trouvent, car certains points se trouvent dans plusieurs zones tampons. Je le fais en utilisant l'outil Ajouter dans un fichier de formes prédéfini, j'aurai donc une copie de chaque point pour chaque zone tampon dans laquelle il se trouve. J'ai configuré cela dans ModelBuilder en utilisant actuellement l'outil Découper pour "découper" mes points par mon tampon, si la sortie est vide, je continue, et si ce n'est pas le cas, j'affecte les nouveaux points l'ID du tampon et ajoutez-les à mon fichier de formes de point final.

Cependant, il est très lent et j'ai environ 11 000 zones tampons au total à traverser. Auparavant, j'utilisais Select By Location sur mes points au lieu de clip, mais je me suis rendu compte que si aucun point n'était sélectionné (comme c'est le cas avec cet ensemble de données), TOUS mes points sont affectés à cet ID de tampon et ajoutés à mon fichier de formes final. Je dois trouver un moyen d'empêcher les outils Calculer le champ et Ajouter de s'exécuter si aucune ligne n'est sélectionnée, mais je n'arrive pas à faire fonctionner cela. Je sais que l'outil Get Count ne fonctionnerait que pour cela si j'utilisais l'outil Select, existe-t-il un autre moyen de le faire ? Existe-t-il un nombre d'obtentions mais uniquement pour les lignes sélectionnées ?

Cette jambe de mon modèle semble être la plus lente.


Si vous disposez de l'extension d'analyse spatiale, vous devriez pouvoir obtenir de bons résultats avec l'outil de jointure spatiale en utilisant une opération un-à-plusieurs.

par exemple. arcpy.SpatialJoin_analysis(points_file, buffers_file, output_file, "JOIN_ONE_TO_MANY")

Vous pouvez également choisir les champs que vous souhaitez conserver, vous pouvez donc simplement conserver le champ qui identifie le tampon.