Je joue actuellement avec ModelBuilder. J'ai ajouté une photo du modèle que j'ai en ce moment.
Ce modèle itère actuellement 6 fichiers de formes, de sorte que chacune des «valeurs de sortie» contient 6 chiffres dans une liste. Je ne trouve pas de moyen d'extraire les valeurs de ces listes dans un fichier tableau / texte ou similaire.
Y a-t-il un moyen de faire cela?
Voici ce qui s'affiche lorsque j'ouvre les «valeurs de sortie» après avoir exécuté le modèle:
Je veux juste saisir ces 6 chiffres en quelque sorte ...
Réponses:
Vous pouvez le faire à l'aide de l' outil Calculer la valeur (gestion des données) et de la magie Python. Voir aussi cette question connexe: Ajouter du code arbitraire au générateur de modèles Arcgis?
Une variable à valeurs multiples est juste une chaîne de valeurs délimitée par des points-virgules, donc la
multivaluesToCsv
fonction ci-dessous divise les variables à valeurs multiples en listes et les transpose en lignes qui sont ensuite écrites dans un fichier texte CSV (valeur séparée par des virgules) .Les itérateurs de modèle exécutent TOUS les processus du modèle une fois par itération - cela n'est pas souhaitable pour notre outil Calculer la valeur, que nous voulons exécuter une seule fois à la fin. Pour ce faire, vous pouvez créer un autre modèle externe pour envelopper le modèle interne d'origine. Ceci est abordé dans la rubrique d'aide Intégration d'un modèle dans un modèle .
Voici donc ce que vous devez faire pour que cela fonctionne:
Inner Model - Itère les classes d'entités, les traite, collecte les valeurs:
Name
valeurs de la variable afin que nous puissions mapper les valeurs des statistiques de distance à leurs noms de classe d'entités correspondants.Modèle externe - Exécute le modèle interne, exécute l'outil Calculer la valeur une seule fois lorsque le modèle interne se termine:
Folder
pour vous permettre de spécifier où créer le fichier CSV de sortie.String
pour vous permettre de spécifier le nom du fichier CSV de sortie.Collez ce qui suit dans les cases appropriées de l'outil Calculer la valeur:
Expression :
r
avant"%Output CSV File Location%"
est significatif: cela indique qu'il s'agit d'une chaîne brute ; parce que les chemins d'accès au système de fichiers Windows contiennent généralement des barres obliques inverses (un caractère d'échappement en Python), nous devons l'utiliser pour empêcher Python d'interpréter de manière erronée les barres obliques inverses et les caractères suivants en tant que séquences de caractères spéciaux.Bloc de code:
(Facultatif) Exposez les variables d'entrée et de sortie en tant que paramètres de modèle si vous souhaitez pouvoir les exécuter à partir de la boîte de dialogue d'outils du modèle ou les chaîner avec d'autres modèles / scripts. La seule sortie du modèle externe est le fichier CSV.
J'ai testé cela avec ModelBuilder et l'ai fait fonctionner (voir les captures d'écran).
Modèle intérieur :
Modèle extérieur:
Le modèle interne exécute tous ses processus une fois par classe d'entités, puis l'outil Calculer la valeur s'exécute une fois à la fin pour sortir le fichier CSV une seule fois.
la source
La sortie décrite par votre modèle est simplement une valeur mise à jour dans la table attributaire, n'est-ce pas? Ne pouvez-vous pas simplement ouvrir le fichier .dbf associé au fichier de formes mis à jour?
A défaut, Table Select (Outils d'analyse> Extraire) devrait fonctionner avec une requête SQL.
la source