banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#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

Franck B
Membre
Lieu: PACA
Date d'inscription: 6 Sep 2005
Messages: 1382
Site web

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

Franck B
Membre
Lieu: PACA
Date d'inscription: 6 Sep 2005
Messages: 1382
Site web

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

 

Pied de page des forums

Powered by FluxBB