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é ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

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

 

Pied de page des forums

Powered by FluxBB