#1 Tue 10 June 2008 18:27
- flory
- Juste Inscrit !
- Date d'inscription: 30 Apr 2008
- Messages: 6
calcul d'un champ avec model builder
Bonjour
J'ai ajouté un champ à une couche dans lequel je voudrais calculer le cosinus d'un angle (entré par l'utilisateur auparavant) multiplié par un champ déjà existant, voici la ligne qui pose pb :
Code:
gp.CalculateField_management ma couche, "champ ajouté", cos(alpha)*[champX]+sin(alpha)*[champZ]
Le résultat dans la colonne ne correspond pas avec le calcul, est ce que je peux écrire les cosinus et sinus comme ça, Et sinon comment faire, Avec une requete sql en entrée?
Merci d'avance si vous avez des éléments de réponse
Bonne soirée
Hors ligne
#2 Fri 27 June 2008 18:33
Re: calcul d'un champ avec model builder
Bonjour,
En python, cela donnerai quelquechose de ce genre (ArcGIS 9.2) :
Code:
# --------------------------------------------------------------------------- # CalculChamp.py # Created on: ven. juin 27 2008 06:18:25 # (generated by ArcGIS/ModelBuilder) # Usage: CalculChamp <test> <Alpha> # --------------------------------------------------------------------------- # Import system modules import sys, string, os, arcgisscripting # Create the Geoprocessor object gp = arcgisscripting.create() # Script arguments... test = sys.argv[1] Alpha = sys.argv[2] # Process: CalculateField... gp.CalculateField_management(test, "ChampAjou", "Cos (" + Alpha + ") * [ChampX]+ Sin (" + Alpha + ") * [ChampZ]", "VB", "")
L'équivalent en ModelBuilder est dans l'ArcToolBox attaché au message.
Bon WE
Hors ligne
#3 Mon 30 June 2008 15:36
- flory
- Juste Inscrit !
- Date d'inscription: 30 Apr 2008
- Messages: 6
Re: calcul d'un champ avec model builder
Bonjour,
OK! Merci bcp, je vais essayer, en faite dans model builder ça marchait mais c'était le passage en VB qui coinçait. avoir...
Hors ligne
#4 Thu 31 July 2008 14:53
- saisai
- Juste Inscrit !
- Lieu: Pau-Cádiz
- Date d'inscription: 9 Apr 2007
- Messages: 9
Re: calcul d'un champ avec model builder
Salut à vous,
Je cherche aussi à calculer un champs dans un modèle, mon problème est que ma couche participe dans une topologie:
Or, on ne peut pas faire un calculer sur un champs d'une couche qui participe dans une topologie sans au préalable ouvrir une session d'édition.
Donc j'ai pensé à 2 solutions pour mon modèle:
- Intégrer l'outil qui permet de mettre la couche en session d'édition (ça parait simple). Mais j'ai beau chercher, je ne trouve rien ....
Si quelqu'un sait comment ouvrir une session de mise à jour dans un modèle ???
- Eliminer la topologie > faire les calculs > re-créer la topologie (ça parait simple aussi). Mais il y a un problème (de rafraichissement ?), le modèle échoue avec comme erreur: "Le calcul ne peut être effectué en dehors d'une session de mise à jour".
Or, si je fais cela manuellement (effacer la topologie), ben j'ai aucun problème pour calculer mon champs hors d'une mise à jour !!!!!!
(NB: je voudrais préciser que je compact la GDB à chaque étape pour être sûr qu'elle se rafraichisse)
Si quelqu'un pouvait m'aider .....
Merci
+++
SAI
Dernière modification par saisai (Thu 31 July 2008 14:54)
Hors ligne