#1 Fri 24 October 2014 12:01
- xav64
- Juste Inscrit !
- Date d'inscription: 24 Oct 2014
- Messages: 6
calulatrice raster, calcul conditionnel et syntaxe
Bonjour à tous,
J'ai créé un raster de température sur lequel je cherche à appliquer une fonction d'appartenance floue afin de déterminer les zones les plus favorables à une espèce végétale.
Pour cela je souhaite appliquer une fonction trapézoïdale sur mon raster (voir fichier joint)
pour cela j'utilise la calculatrice raster avec la ligne de commande :
Code:
Con("idwt_p000001" < 3.9, 0, "idwt_p000001" 3.9 >= "idwt_p000001" < 4.4, ("idwt_p000001"-3.9)/(4.4-3.9), "idwt_p000001" >= 4.4 and "idwt_p000001" < 5.4, 1, "idwt_p000001" >= 5.4 and "idwt_p000001" < 5.9, 1-("idwt_p000001"-5.4)/(5.9-5.4), "idwt_p000001" >= 5.9,0)
Mais j'obtiens un message d'erreur,
Je ne suis pas du tout sur de ma syntaxe dans la calculatrice, pourriez-vous m'éclaircir sur ce point ?
En vous remerciant par avance,
Xavier
Dernière modification par xav64 (Fri 24 October 2014 12:11)
Hors ligne
#2 Mon 03 November 2014 17:02
- anne13
- Participant actif
- Lieu: Villeurbanne
- Date d'inscription: 12 May 2009
- Messages: 71
Re: calulatrice raster, calcul conditionnel et syntaxe
Bonjour,
Je ne suis pas une spécialiste de cette fonction, mais je vois déja quelques indices pour vous aider.
D'après ce que je comprends, vous voulez faire plusieurs "tests" pour définir les différentes valeurs en résultats.
La fonction Con admet 4 arguments maxi (raster, valeur si vrai, valeur si faux, test) ou 3 arguments (test, valeur si vrai, valeur si faux) et ceux ci sont séparés par des virgules.
Dans votre expression, on voit beaucoup de choses séparées par des virgules, j'en déduis que ce sont les tests que vous voulez réaliser les uns après les autres avec les valeurs de sortie correspondantes.
Il vous faut donc répéter con( , , ,(con( , , , ) ) à chaque fois que vous voulez inclure un nouveau test.
Test1, si test1 vrai on met la valeur vrai1, si test1 faux on fait le test2, si test2 vrai on met la valeur vrai2, si test2 faux, on fait le test3, etc.
Voir dans l'aide l'exemple (Sur ArcGIS 10.2 c'est l'exemple 4) :
outCon = Con(inRas1 < 45,1, Con((inRas1 >= 45) & (inRas1 < 47),2, Con((inRas1 >= 47) & (inRas1 < 49),3, Con(inRas1 >= 49,4))))
D'autre part, votre test 3.9 >= "idwt_p000001" < 4.4 n'a pas beaucoup de sens... tout ce qui est inférieur ou égal à 3.9 est forcément inférieur à 4.4. il s'agit plus probablement de 3.9 <= "idwt_p000001" < 4.4 qui se traduirait par ((x<=3.9) & (x<4.4))
Pour tester, je vous conseille d'y aller par étape, avec une première condition qui marche, rajoutez une deuxième condition dedans, etc...
Bon courage!
Anne
Dernière modification par anne13 (Mon 03 November 2014 17:04)
Anne B, Ville de Villeurbanne
Hors ligne