J'essaie de comprendre la création d'un géotraitement avec ModelBuilder, mais je ne sais pas pourquoi il est important d'utiliser des couches d'entités au lieu de classes d'entités lors de la création d'un géotraitement avec ModelBuilder. Quelqu'un peut-il expliquer pourquoi?
9
Réponses:
Les modèles peuvent avoir de nombreuses couches de sortie de sous-processus en fonction de leur taille et de leur complexité. Pour éliminer les fichiers écrits sur votre disque dur, certains outils vous font utiliser des couches d' entités (par exemple, Itérer la sélection d'entités ou Sélectionner par attribut ). Les couches d'entités sont temporaires et ne persisteront pas après la fin de votre modèle.
Voir Créer une couche d'entités
la source
Il existe plusieurs raisons pour lesquelles vous souhaitez référencer des couches d'entités dans ModelBuilder, par opposition aux classes d'entités. Tout d'abord, il est utile de comprendre les différences.
Compte tenu de ce contexte, voici quelques raisons pour lesquelles vous souhaitez utiliser l'outil "Créer une couche d'entités" comme intermédiaire entre les données brutes et d'autres outils de géotraitement.
Si vous souhaitez exécuter un modèle depuis ArcCatalog ou exporter votre modèle vers un script Python pouvant être exécuté en dehors d'ArcGIS, vous devez utiliser des "couches d'entités" afin de convertir vos données source brutes en "couches". Cela reviendrait à "ajouter des données" à votre session ArcMap.
L'utilisation de couches facilite le sous-ensemble de vos données au fur et à mesure du processus ModelBuilder. Supposons que vous vouliez traiter toutes les données avec l'attribut "A" avec une méthode, mais toutes les données avec l'attribut "B" avec une autre méthode. Vous pouvez référencer vos données brutes une fois, puis diviser les données en deux "branches" en utilisant des couches d'entités et traiter chaque ensemble indépendamment, mais en affectant / mettant à jour l'ensemble de données source unique.
la source
L'intégration de couches temporaires dans vos modèles réduit également le temps de traitement. Du point de vue du traitement, l'écriture sur la mémoire est beaucoup plus efficace que l'écriture sur le disque. De même, vous pouvez écrire des données temporaires dans l' espace de travail in_memory , qui est également plus efficace en termes de calcul.
De nombreuses opérations dans ArcGIS nécessitent des couches temporaires comme entrées. Par exemple, Sélectionner une couche par emplacement (gestion des données) est un outil très puissant et pratique qui vous permet de sélectionner des entités d'une couche qui partagent des relations spatiales avec une autre entité de sélection. Vous pouvez spécifier des relations complexes telles que "HAVE_THEIR_CENTER_IN" ou "BOUNDARY_TOUCHES", etc.
Éditer:
Par curiosité et pour élaborer sur le traitement des différences à l'aide des couches d'entités et de l'espace de travail in_memory, envisagez le test de vitesse suivant où 39 000 points sont mis en mémoire tampon sur 100 m:
Nous pouvons voir que les méthodes 2 et 3 sont équivalentes et environ 3 fois plus rapides que la méthode 1. Cela montre la puissance de l'utilisation des couches d'entités comme étapes intermédiaires dans des workflows plus importants.
la source
in_memory
espace de travail sont toujours des données (par exemple, les classes d'entités et les tables) occupent toujours (potentiellement beaucoup) d'espace. Les couches d'entités, d'autre part, sont une vue sur les données, vous permettant de sélectionner un sous-ensemble de données et de l'utiliser dans des processus ultérieurs, plutôt que de dupliquer des données juste pour en obtenir un sous-ensemble. Les couches de fonctions ne prennent presque pas d'espace du tout. J'aime les considérer comme des "pointeurs avec des métadonnées", par exemple ils pointent vers certaines données et décrivent comment les interroger / les rendre.in-memory
espace de travail est essentiellement une géodatabase fichier qui se trouve en mémoire, si vous aimez y penser de cette façon.