Exemple de service de géotraitement : sélection de données

Complexité : Débutant Exigences relatives aux données : ArcGIS Tutorial Data Setup

Dossier

SelectingData

Objet

Démontre plusieurs façons de sélectionner des données par requête attributaire ou requête géographique.

Services

  • SelectingData (service de géotraitement avec une carte source)
  • SelectingDataRMS (service de géotraitement avec le service de carte obtenu)

Tâches de géotraitement

Plusieurs (voir les modèles ci-dessous)

Entrées

Varie selon le modèle. Généralement une chaîne de requête ou un jeu d'entités.

Sortie

Données sélectionnées

Données

Utilise un jeu de données correspondant à une petite surface de la ville de Portland, dans l'Oregon.

Extensions

Aucune

A propos de cet exemple

A propos de ces services

La sélection d'un sous-ensemble de données basé sur une requête attributaire ou une requête spatiale constitue une tâche courante pour les services de géotraitement. Les modèles de cet exemple présentent plusieurs façons utiles de sélectionner des données. Les principaux outils de géotraitement utilisés dans ces modèles sont Sélectionner une couche par attributs et Sélectionner une couche par emplacement. Ces deux outils prennent des couches comme en entrée. Leur sortie est la couche en entrée mise à jour qui contient les entités sélectionnées.

Comme les outils Sélectionner une couche par attributs et Sélectionner une couche par emplacement génèrent des couches (par opposition à des jeux de données), vous devez comprendre comment ArcGIS Server gère les tâches qui génèrent des couches. Gardez à l'esprit que trois configurations de service de géotraitement sont possibles :

Trois configurations

Dans les deux premières configurations, quand ArcGIS Server exécute une tâche générant une couche, il lit les entités sélectionnées à partir de la couche et renvoie les entités sélectionnées au client.

Dans la troisième configuration, il existe deux services, celui de géotraitement et celui de carte obtenu. Ces deux services s'exécutent indépendamment de l'un l'autre. Lors de l'exécution de la tâche, ArcGIS Server exécute d'abord la tâche de géotraitement, puis il exécute le service de carte obtenu qui dessine la sortie du service de géotraitement, en renvoyant la carte de type image des données en sortie au client. Etant donné cet ordre d'exécution, le service de carte obtenu a besoin de jeux de données sur le disque produits par le service de géotraitement. Cela signifie que la sortie des tâches du service de géotraitement doit correspondre à des jeux de données et non des couches. Les couches, autorisées dans les deux premières configurations, ne fonctionnent pas avec la configuration de service de carte obtenu.

Dans cet exemple, vous trouverez deux paires boîte à outils/carte : SelectingData (pour la publication en tant que service de géotraitement avec une carte source) et SelectingDataRMS (pour la publication en tant que géotraitement avec un service de carte obtenu). Les outils de la boîte à outils SelectingDataRMS génèrent des jeux de données sur le disque, tandis que les outils de la boîte à outils SelectingData génèrent des couches. En général, l'exécution des outils de la boîte à outils SelectingDataRMS est un peu plus longue car ils doivent copier leurs données sur disque.

La sélection du service à publier, SelectingData ou SelectingDataRMS, dépend de vous. En général, vous publiez un service de carte obtenu lorsque l'une des conditions suivantes est réunie :

Données

Les données, qui concernent une petite surface de la ville de Portland dans l'Oregon, se trouvent dans C:\arcgis\ArcTutor\GP Service Examples\SelectingData\ToolData\Portland.gdb. Cette géodatabase fichier a été compressée pour économiser de l'espace à l'aide de l'outil Compresser des données de géodatabase fichier. Vous ne pouvez pas modifier une géodatabase fichier compressée. Si vous devez y apporter des modifications, utilisez l'outil Décompresser des données de géodatabase fichier.

Plusieurs modèles utilisent des variables de jeux d'entités et de jeux d'enregistrements qui nécessitent des structures pour définir leurs champs et leurs types d'entités. Ces structures se trouvent dans C:\arcgis\ArcTutor\GP Service Examples\SelectingData\ToolData\Templates.gdb.

Vue d'ensemble des modèles

Boîte à outils et carte SelectingData

Jeu d'outils

Outil

Description

Sélectionner par attribut

Sélectionner les terrains d'impôt d'une valeur supérieure à

Sélectionne tous les terrains d'impôt dont la valeur totale est supérieure à la valeur entrée par l'utilisateur.

Sélectionner les terrains d'impôt d'une valeur supérieure à (avec récapitulatif)

Identique à ce qui précède, mais récapitule également la valeur totale de tous les terrains sélectionnés.

Sélectionner les terrains d'impôt par adresse (méthode des attributs)

Sélectionne le terrain d'impôt en fonction d'une adresse.

Sélectionner le voisinage

Sélectionne un voisinage dans une liste déroulante.

Sélectionner une couche par surface

Permet à l'utilisateur de sélectionner d'abord une couche, puis de sélectionner des entités en fonction de leur surface.

Liste de publipostage

Sélectionne un terrain d'impôt à partir d'une adresse, sélectionne tous les terrains d'impôt à une distance donnée, puis génère une liste de publipostage pour tous les terrains d'impôt sélectionnés.

Sélectionner selon l'emplacement

Sélectionner les terrains d'impôt par adresse (méthode des emplacements)

En fonction des adresses, crée une entité ponctuelle pour chaque adresse et utilise ces entités ponctuelles pour sélectionner les terrains d'impôt.

Sélectionner les terrains d'impôt par voisinage

Sélectionne des terrains d'impôt en fonction d'un polygone de voisinage sélectionné.

Sélectionner les terrains d'impôt par voisinage (optimisé)

Identique à ce qui précède, mais utilise un jeu de données prétraité pour effectuer la sélection.

Boîte à outils SelectingData

Boîte à outils et carte SelectingDataRMS

Les outils de la boîte à outils SelectingDataRMS effectuent la même tâche que ceux de la boîte à outils SelectingData. La différence principale est que l'outil SelectingDataRMS génère des classes d'entités qui peuvent être dessinées par le service de carte obtenu. L'outil Copier des entités permet de copier les entités de la couche dans la classe d'entités. Le modèle Sélectionner les terrains d'impôt d'une valeur supérieure à utilisant l'outil Copier des entités est illustré ci-dessous. Tous les outils de la boîte à outils suivent un modèle semblable.

Sélectionner les terrains d'impôt d'une valeur supérieure à (pour le service de carte obtenu)
Sélectionner les terrains d'impôt d'une valeur supérieure à (pour le service de carte obtenu)

Index attributaires et spatiaux

Lorsque vous interrogez souvent un champ particulier, comme le font ces services, vous pouvez accélérer vos requêtes en créant des index sur les champs de requête. Par exemple, si la tâche Sélectionner les terrains d'impôt d'une valeur supérieure à interroge le champ TOTALVAL, vous pouvez créer un index attributaire pour TOTALVAL pour optimiser les requêtes. Vous pouvez utiliser l'outil Ajouter un index attributaire pour créer des index attributaires.

De la même manière, si vous lancez des requêtes spatiales, les index spatiaux accélèrent la localisation des entités. Les index spatiaux sont créés automatiquement et conservés pour les classes d'entités dans une géodatabase, ce qui n'est pas le cas des fichiers de formes.

Utilisation des sélections de couche et des couches d'outils

La carte SelectingData contient des couches d'outils pour chacun des outils répertoriés ci-dessus. La sous-couche présente dans la couche d'outils (la sortie de l'outil) est la même que la couche en entrée. Il ne s'agit pas d'une couche indépendante. Comme elle n'est pas indépendante, si vous modifiez les propriétés de la couche en entrée d'origine ou de la sous-couche en sortie, les propriétés de l'autre couche sont également modifiées. Comme illustré ci-dessous avec l'outil Sélectionner les terrains d'impôt d'une valeur supérieure à, la couche en entrée et celle en sortie correspondent à Terrains d'impôt. Si vous cliquez avec le bouton droit sur la couche Terrain d'impôt (la couche en entrée) dans la table des matières d'ArcMap et que vous modifiez la symbologie, la symbologie des deux couches change.

Couches en entrée et couches d'outils

Quand vous travaillez avec des sélections de couches (comme ces outils), n'oubliez pas les consignes suivantes :

  • Lorsque vous créez la couche d'outils dans ArcMap (avant publication), la sous-couche (la sortie du modèle) possède toujours le même nom que la couche en entrée, indépendamment du nom de variable en sortie du modèle. La symbologie sera identique à celle de la couche en entrée.
  • Lorsque vous exécuterez la tâche de serveur (après la publication), la couche en sortie portera le nom de la variable de modèle.

Création d'expressions à l'aide de la substitution de variable

Les expressions de sélection nécessitent habituellement une entrée de l'utilisateur. Comme indiqué ci-dessous dans le modèle Sélectionner les terrains d'impôt d'une valeur supérieure à, l'entrée de l'utilisateur est la variable Valeur totale supérieure à. Il s'agit d'une variable double créée comme suit :

Étapes :
  1. Dans ModelBuilder, cliquez avec le bouton droit sur la zone d'affichage, puis cliquez sur Créer une variable.
  2. Dans la boîte de dialogue Créer une variable, sélectionnez Double comme type de variable.
  3. Cliquez sur OK.
  4. Renommez la variable.
  5. Ouvrez la variable et fournissez une valeur par défaut, le cas échéant.

Lors de la création de l'expression dans la boîte de dialogue de l'outil Sélectionner une couche par attributs, entourez le nom de la variable du symbole de pourcentage (%).

Bien que cela ne soit pas nécessaire, il est conseillé de définir la variable comme précondition au processus qui substitue la variable. Pour générer une pré-condition, procédez comme suit :

Étapes :
  1. Dans ModelBuilder, cliquez avec le bouton droit sur un outil et cliquez sur Propriétés.
  2. Cliquez sur l'onglet Pré-conditions.
  3. Sélectionnez la ou les variables constituant une précondition à l'exécution d'un outil.
Construction d'une expression

Méthode de Sélection

Plusieurs options sont disponibles pour les outils Sélectionner une couche par attributs et Sélectionner une couche par emplacement. Par exemple, au lieu de créer une nouvelle sélection, vous pouvez ajouter ou supprimer des entités de la sélection courante. L'outil Sélectionner une couche par emplacement vous permet d'établir une relation spatiale (CONTAINS, WITHIN et INTERSECT, par exemple). Les modèles d'exemple utilisent seulement quelques-unes de ces options. Pour plus d'informations, consultez la documentation sur l'outil Sélectionner une couche par emplacement.

Sélection de données sans couche de carte

Vous n'avez pas besoin d'utiliser les couches d'une carte pour utiliser les outils Sélectionner une couche par attributs et Sélectionner une couche par emplacement. Vous pouvez créer un couche d'entités à partir d'un jeu de données à l'aide de l'outil Générer une couche, comme indiqué ci-dessous.

Utilisation de l'outil Générer une couche
Utilisation de Générer une couche dans un modèle

Vous pouvez également utiliser l'outil Sélectionner pour créer un jeu de données d'entités sélectionnées à partir d'un jeu de données. Aucune couche n'est nécessaire.

A l'aide de l'outil Sélection
A l'aide de l'outil Sélection

L'Outil Sélection effectue la sélection attributaire. Si vous devez exécuter la sélection spatiale, envisagez d'utiliser un ou plusieurs des outils suivants :

SelectionUtilities

Cette boîte à outils contient plusieurs outils d'utilitaire prenant en charge les tâches.

Outil

Description

Vérifier la correspondance des résultats

Active la sortie de l'outil Géocoder des adresses et génère une erreur en sortie si les adresses ne correspondent pas.

Obtenir une valeur de champ

Lit une valeur de champ du premier enregistrement d'une table et la génère sous forme de variable de modèle de géotraitement.

Obtenir deux valeurs de champ

Identique à la précédente, mais lit deux champs et génère deux variables.

Obtenir 3 valeurs de champ

Identique à la précédente, mais lit trois champs et génère trois variables.

Superposer les terrains d'impôt et les voisinages

Crée le jeu de données utilisé par le modèle Sélectionner les terrains d'impôt par voisinage (optimisé) ci-dessus.

Imprimer les étiquettes de publipostage de terrain d'impôt

En fonction d'un ensemble sélectionné de terrains d'impôt, imprime un fichier d'étiquettes de publipostage.

Outils utilitaires

Remarques sur les modèles

Sélectionner les terrains d'impôt d'une valeur supérieure à

C'est le plus simple des modèles. Il sélectionne tous les terrains d'impôt dont la valeur totale est supérieure à la valeur en entrée. Comme indiqué ci-dessus, il utilise la substitution de variable pour créer l'expression sélectionnée.

Sélectionner les terrains d'impôt d'une valeur supérieure à
Sélectionner les terrains d'impôt d'une valeur supérieure à

Sélectionner les terrains d'impôt d'une valeur supérieure à (avec récapitulatif)

Le même travail que le modèle précité est effectué, puis l'outil Résumés statistiques est ajouté pour additionner la valeur totale de tous les terrains sélectionnés. L'outil Résumés statistiques génère une table lue par l'outil Obtenir deux valeurs de champ, un outil utilitaire qui se trouve dans la boîte à outils SelectionUtilities incluse dans cet exemple. Il s'agit d'un outil de script qui génère les valeurs de deux champs, Valeur totale de tous les terrains et Nombre de terrains. Ces valeurs sont renvoyées au client avec les terrains d''impôt sélectionnés.

Sélectionner les terrains d'impôt d'une valeur supérieure à (avec récapitulatif)
Sélectionner les terrains d'impôt d'une valeur supérieure à (avec récapitulatif)

La sortie de Résumés statistiques est écrite dans une table en mémoire au lieu d'une table sur le disque. L'écriture de tables et de classes d'entités dans la mémoire est plus rapide comparée à leur écriture sur le disque.

Sélectionner les terrains d'impôt par adresse (méthode des attributs)

La sélection d'entités par adresse est une tâche courante. Ce modèle présente une méthode de sélection d'entités par adresse (une autre méthode est indiquée ci-dessous).

Sélectionner les terrains d'impôt par adresse (méthode des attributs)
Sélectionner les terrains d'impôt par adresse (méthode des attributs)

Elément du modèle

Description

Localisateur TaxLot

Un localisateur d'adresses pour la classe d'entités TaxLots. Ce localisateur utilise le style Adresse unique américain.

Pour en savoir plus sur la gestion des localisateurs d'adresses

Adresse

Il s'agit d'une variable de jeu d'enregistrements. Le modèle est ToolData/templates.gdb/Address. Pour obtenir des exemples d'adresses dans la zone d'étude, reportez-vous à ToolData/sample addresses.txt.

Géocoder des adresses

Prend une table qui contenant des adresses et génère une classe d'entités ponctuelles de la localisation d'adresse. Une zone d'état est également générée. Ce champ comporte un M si l'adresse est trouvée.

Vérifier la correspondance des résultats

Outil de script personnalisé disponible dans la boîte à outils SelectionUtilities incluse avec cet exemple. Il vérifie que l'adresse a été correctement appariée.

Opération réussie

Sortie de Check Match Results. True, s'il y a une entrée d'adresses et si l'adresse est appariée.

Obtenir une valeur de champ

Outil de script personnalisé disponible dans la boîte à outils SelectionUtilities incluse avec cet exemple. Il récupère l'ID d'objet unique du terrain d'impôt qui correspond à l'adresse.

Sélectionner une couche par attributs

Sélectionne le terrain d'impôt avec l'ID d'objet généré par Obtenir une valeur de champ.

Eléments du modèle

Sélectionner le voisinage

Ce modèle sélectionne un polygone à partir de la couche Voisinage.

Sélectionner le voisinage
Sélectionner le voisinage

Ce modèle vous permet de choisir un voisinage dans une liste de voisinages. La variable Nom de voisinage est une variable de chaîne qui possède un filtre Liste de valeurs qui contient tous les noms de voisinage. Pour créer ou modifier un filtre, ouvrez la boîte de dialogue de propriétés du modèle et cliquez sur l'onglet Paramètres, comme indiqué ci-dessous.

Filtre Liste de valeurs

Sélectionner une couche par surface

Ce modèle permet à l'utilisateur de sélectionner d'abord une couche, puis de spécifier une surface minimale à sélectionner.

Sélectionner une couche par surface

Ce modèle a essentiellement pour objectif de vous permettre de sélectionner d'abord une couche. La variable Couche à sélectionner est une variable de chaîne qui possède un filtre Liste de valeurs qui contient des terrains d'impôt et des voisinages. Pour afficher ce filtre, ouvrez la boîte de dialogue Propriétés du modèle et cliquez sur l'onglet Paramètres, comme illustré ci-dessous.

Filtre Liste de valeurs

L'outil Calculer une valeur récupère la chaîne et la convertit en variable de couche d'entités, comme illustré ci-dessous. Cette technique, qui consiste à convertir une chaîne dans un autre type de données, est abordée dans la rubrique Types de données en entrée et en sortie. La sortie de l'outil Calculer une valeur correspond à l'entrée de l'outil Sélectionner une couche par attributs.

Calcul d'une valeur dans un type de données

Pour finir, les entités sélectionnées sont copiées dans une classe d'entités à l'aide de l'outil Copier des entités. Cette dernière étape n'est pas nécessaire. (La copie des entités permet d'éviter toute confusion lors de la création et du test de la couche d'outils.) Les entités sont écrites dans la mémoire plutôt que sur le disque (l'écriture d'entités dans la mémoire est plus rapide que leur écriture sur le disque). Dans la boîte à outils SelectingDataRMS, les entités sélectionnées doivent être écrites sur le disque pour que le service de carte obtenu puisse les dessiner.

Liste de publipostage

Ce modèle indique comment sélectionner des entités proches en fonction d'une entité sélectionnée et comment générer un texte simple qui contient les adresses de ces entités proches.

Liste de publipostage
Liste de publipostage

Elément du modèle

Description

Adresse

Il s'agit d'une variable de jeu d'enregistrements. Le modèle est ToolData/templates.gdb/Address. Pour obtenir des exemples d'adresses dans la zone d'étude, reportez-vous à ToolData/sample addresses.txt.

Sélectionner les terrains d'impôt par adresse (méthode des attributs)

Il s'agit du modèle décrit ci-dessus.

Terrain sélectionné

Le terrain d'impôt sélectionné. Il s'agit de la couche Terrain d'impôt.

Distance de recherche

Cherchez la distance à utiliser.

Couche en entrée

La couche Terrain d'impôt.

Sélectionner une couche par emplacement

Sélectionne tous les terrains d'impôt dans le rayon spécifié, en utilisant Selected Lot comme centre de la recherche.

Terrains d'impôt

Terrains d'impôt inclus dans la distance de recherche.

Imprimer les étiquettes de publipostage de terrain d'impôt

Un outil de script personnalisé disponible dans la boîte à outils SelectionUtilities.

MailingList.txt

Un fichier texte contenant des adresses postales.

Opération réussie

True si chaque enregistrement possède une adresse postale. False, si un ou plusieurs des registres possède une adresse postale vide ou altérée.

Eléments du modèle

Sélectionner les terrains d'impôt par adresse (méthode des emplacements)

Il s'agit du premier des outils de la boîte à outils Sélectionner selon l'emplacement. Il fonctionne de la même façon que l'outil Sélectionner les terrains d'impôt par adresse (méthode des attributs) mais, au lieu de sélectionner le terrain d'impôt à l'aide de l'ID d'entité, il utilise l'entité ponctuelle en sortie de Géocoder des adresses comme entrée pour Sélectionner une couche par emplacement.

Il s'agit de la méthode à utiliser quand le point géocodé provient d'un localisateur différent. Par exemple, le localisateur peut être basé sur un jeu de données de rues. Vous devez donc utiliser le point géocodé pour sélectionner une entité autre qu'une rue (bâtiment, terrain d'impôt ou point d'intérêt, par exemple).

Sélectionner les terrains d'impôt par adresse (méthode des emplacements)
Sélectionner les terrains d'impôt par adresse (méthode des emplacements)

Sélectionner les terrains d'impôt par voisinage

Une autre tâche de sélection courant consiste à utiliser une entité d'un jeu de données pour sélectionner une entité d'un autre jeu de données. Ce modèle utilise le modèle Sélectionner le voisinage décrit ci-dessus pour sélectionner un seul voisinage, puis il utilise l'outil Sélectionner une couche par emplacement pour sélectionner tous les terrains d'impôt compris dans le voisinage.

Sélectionner les terrains d'impôt par voisinage
Sélectionner les terrains d'impôt par voisinage

Sélectionner les terrains d'impôt par voisinage (optimisé)

La méthodologie utilisée par le modèle Sélectionner les terrains d'impôt par voisinage ci-dessus est acceptable pour les requêtes peu fréquentes. Autrement dit, un analyste peut utiliser cette méthode pour rechercher les terrains d'impôt dans le cadre d'une analyse ponctuelle et rapide. Mais les services de géotraitement sont généralement des tâches qui sont exécutées de manière répétée et fréquente. Etant donné que la sélection de terrains d'impôt par voisinage est une tâche qui sera fréquemment utilisée, vous allez souhaiter l'optimiser.

Pour l'optimiser, l'outil Intersecter permet d'attribuer un nom de voisinage à chaque terrain d'impôt. L'outil Superposer les terrains d'impôt et les voisinages disponibles dans la boîte à outils SelectionUtilities indique comment utiliser l'outil Intersecter pour créer un jeu de données qui contient tous les terrains d'impôt avec l'ensemble de leurs attributs de voisinage. Ce modèle doit seulement être exécuté une seule fois pour produire le jeu de données TaxLotsOverNeighborhoods.

Superposer les terrains d'impôt et les voisinages
Superposer les terrains d'impôt et les voisinages

Une fois TaxLotsOverNeighborhoods créé, il suffit d'utiliser une requête attributaire simple pour sélectionner tous les terrains d'impôt d'un voisinage.

Sélectionner les terrains d'impôt par voisinage (optimisé)
Sélectionner les terrains d'impôt par voisinage (optimisé)

Publication

Publiez Portland.mxd qui se trouve dans la section sur la publication dans Exemple de service de géotraitement : découper et expédier en tant que service de carte. Vous utiliserez ce service de carte comme fond de carte pour les services de cet exemple. (Le dossier correspondant à ce service est C:\arcgis\ArcTutor\GP Service Examples\ClipAndShip).

Publiez SelectingData.mxd en tant que service de géotraitement basé sur une carte source. Comme les entités sont renvoyées au client, veillez à augmenter le nombre maximal d'enregistrements pouvant être renvoyés par le service en lui affectant une valeur de 11000 (légèrement plus que le nombre d'entités de la couche Terrain d'impôt).

Pour en savoir plus sur la publication de services de géotraitement avec une carte source

Publiez SelectingDataRMS en tant que service de géotraitement avec un service de carte obtenu.

Pour en savoir plus sur la publication de services de géotraitement avec des services de carte obtenus

Utilisation

Pour utiliser les services, ouvrez une nouvelle session ArcMap et ajoutez le service de carte Portland comme fond de carte.

Ouvrez la fenêtre Catalogue et accédez à la connexion utilisateur ArcGIS Server où vous pouvez afficher et exécuter toutes les tâches que vous avez publiées. Développez le service SelectingDataRMS et exécutez la tâche Liste de publipostage.

Ouvrez la fenêtre Résultats et suivez les étapes suivantes :

Étapes :
  1. Développez le résultat MailingList.
  2. Cliquez avec le bouton droit sur le résultat de la tâche Liste de publipostage et choisissez Extraire les données. Le résultat de la tâche passe de <Données sur le serveur> à MailingList.txt.
  3. Cliquez avec le bouton droit sur MailingList.txt, puis cliquez sur Copier l'emplacement. (Etant donné que le résultat est un fichier texte, Ajouter à la carte n'a aucun effet.)
  4. Ouvrez votre navigateur Internet et collez l'emplacement dans la barre d'adresses. Le contenu de MailingList.txt s'affiche.
  5. Vous pouvez également cliquer sur l'outil Copier et faire glisser MailingList.txt de la fenêtre Résultats vers le paramètre en entrée de la boîte de dialogue de l'outil Copier. Ce fichier est copié à l'emplacement de votre choix.
Résultats de MailingList

Rubriques associées


3/6/2012