#1 Thu 13 February 2014 14:31
- meli3006
- Juste Inscrit !
- Date d'inscription: 13 Feb 2014
- Messages: 3
Arcgis 10.1 - Script Python pour calcul d'angle
Bonjour à tous,
Je souhaite calculer des angles sous ArcMap10.1.
Dans ma table attributaire, j'ai les coordonnées X et Y de mes polylignes.
La formule à appliquer est
alpha= math.acos ((a²+c²-b²)/(2ac))
Sachant que
a= RACINE ((x3-x1)²+(y3-y1)²)
b= RACINE ((x2-x1)²+(y2-y1)²)
c= RACINE ((x3-x2)²+(y3-y2)²)
Comment définir cette formule avec un script Python ?
Merci d'avance
Hors ligne
#2 Thu 13 February 2014 21:54
Re: Arcgis 10.1 - Script Python pour calcul d'angle
Bonjour,
Vos formules peuvent s'écrire en Python ainsi :
Code:
import math x1 = 0 y1 = 0 x2 = 0 y2 = 10 x3 = 10 y3 = 0 a = ((x3-x1)**2+(y3-y1)**2)**0.5 b = ((x2-x1)**2+(y2-y1)**2)**0.5 c = ((x3-x2)**2+(y3-y2)**2)**0.5 alpha = math.acos((a**2+c**2-b**2)/(2*a*c))
A+
Franck
Hors ligne
#3 Fri 14 February 2014 09:36
- meli3006
- Juste Inscrit !
- Date d'inscription: 13 Feb 2014
- Messages: 3
Re: Arcgis 10.1 - Script Python pour calcul d'angle
Merci Franck.
Du coup j'ai entré ce script, mais ça me met un message d'erreur...
!x!1=0
!y!1=0
!x!2=0
!y!=10
!x!3=10
!y!3=0
a = (( !x! 3- !x! 1)**2+( !y! 3- !y! 1)**2)**0.5
b = ( !x! 2- !x! 1)**2+( !y! 2- !y! 1)**2)**0.5
c = (( !x! 3- !x! 2)**2+( !y! 3- !y! 2)**2)**0.5
!angle!=math.acos((a**2+c**2-b**2)/(2*a*c ))
There was a failure during processing , check the Geoprocessing Window for details.
Hors ligne
#4 Fri 14 February 2014 12:08
Re: Arcgis 10.1 - Script Python pour calcul d'angle
Bonjour,
La méthode pour utiliser du Python dans un calculer n'est pas bonne.
Tu trouveras des exemples d'utilisation de l'outil Calculer un champ dans la doc.
Pour ta demande, il faudrait transformer le code Pyhton en fonction :
Code:
def computeangle(x1, y1, x2, y2, x3, y3): """ Calcule l'angle a partir de 3 points """ import math a = ((x3-x1)**2+(y3-y1)**2)**0.5 b = ((x2-x1)**2+(y2-y1)**2)**0.5 c = ((x3-x2)**2+(y3-y2)**2)**0.5 return math.acos((a**2+c**2-b**2)/(2*a*c))
Et dans l'appel : computeangle(!x1!, !y1!, !x2!, !y2!, !x3!, !y3!)
où x1, y1, x2, y2, x3 et y3 sont des attributs de ta classe d'entités.
A+
Franck
Hors ligne
#5 Mon 17 February 2014 13:54
- meli3006
- Juste Inscrit !
- Date d'inscription: 13 Feb 2014
- Messages: 3
Re: Arcgis 10.1 - Script Python pour calcul d'angle
Merci Franck !
Hors ligne