Existe-t-il un moyen d'ajouter des extraits de code arbitraires à un modèle ArcGIS?
J'imagine quelque chose de similaire au "show code block" le générateur d'expression dans l'étiquetage avancé ou la calculatrice de champ .
Par exemple, mon projet du moment pourrait grandement bénéficier de la récupération du nom d'utilisateur de la personne exécutant l'outil. Je sais qu'en python, c'est simple import os; os.environ.get('USERNAME')
. Je pense que je pourrais écrire cet extrait dans get_username.py
, l'ajouter à une boîte à outils dans Arccatalog, puis ajouter cet outil au modèle et l'utiliser comme paramètre de modèle requis pour mon outil actuel. C'est beaucoup de travail pour une si petite chose, et la prochaine fois, je voudrai peut-être autre chose, comme la substitution de variable en ligne ou une variable composée .
Je pense qu'un outil d'extrait de code ou similaire pourrait répondre à tous ces besoins d'une manière générique et largement utile.
la source
Réponses:
Nouvelle réponse à un ancien post, juste pour clarifier comment créer un modèle réutilisable pour ce faire.
Ouvrez le modèle, Insérer-> Outils de modèle uniquement-> Calculer la valeur.
Dans l'expression, tapez:
getuser()
Dans le bloc de code, tapez:
(Voir « Obtention du nom d'utilisateur dans un format spécifique » pour la source de l'extrait de code de nom d'utilisateur de @ChadCooper)
Pour Type de données, choisissez
String
.Renommez le cercle de sortie en
username
. Le modèle de résultat final ressemblera à:Et vous pouvez ensuite simplement faire glisser ce modèle dans tous les futurs modèles et référencer la variable appelée% username% dans tous les futurs modèles ou scripts. Assurez-vous simplement que ce modèle fonctionne avant d'essayer d'accéder à la variable% username%. Vous pouvez le faire en utilisant une condition préalable .
la source
En fait, vous pouvez le faire avec l' outil Calculer la valeur (gestion des données) .
Ce n'est pas particulièrement élégant (le code source complet de l'outil est imprimé dans le journal à chaque exécution), et l'éditeur (vraiment juste une zone de texte) est épouvantable.
Je suggérerais d'écrire des modules à partir desquels vous pouvez ensuite importer et appeler des fonctions, puis il vous suffirait d'écrire des extraits très courts dans la boîte de dialogue. Sinon, ce n'est tout simplement pas très propre.
Calculer la valeur est disponible à tous les niveaux de licence pour Arcgis v10. Avec v9.x, il n'est disponible pour Arcview que si les extensions Spatial ou 3D Analyst sont installées ( réf ).
la source
%USERNAME%
dans une connexion à une base de données .sde). D'accord, l'éditeur n'est pas digne de ce nom, fonctionne très bien comme destination de collage.Peut-être que je comprends mal la question, mais il semble que la fonctionnalité de l'outil de script python, dans ArcToolBox, soit ce que vous recherchez:
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Integrating_scripts_within_a_model/002w0000006n000000/
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001500000006000000.htm
En fait, vous pouvez également utiliser / combiner plusieurs autres langages de script (R dans cet exemple):
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//002w0000007w000000
la source