Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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 Mon 18 July 2016 13:08

yembilouis
Juste Inscrit !
Date d'inscription: 15 Nov 2014
Messages: 1

ArcGIS : Calculatrice de champ Python

Bonjour,

Je voudrai m'excuser si mon besoin n'est pas bien formulé, c'est la première fois que je pose une question sur un forum.

En ce moment je suis en train de faire une cartographie de l'aléa érosion.
Pour réaliser cette carte, je dispose de 3 facteurs (couches rasters): la couche Battance classé de 1 à 5, la couche erodibilité classé 1 et 3 et  la couche pente classé de 1 à 6 selon un certain nombre de règles établis auparavant.

pour croiser ces couche raster, j'ai utilisé l'outil Combine (Arc toolBox/Spatial analyst/Local/ combine).
Sur la table attributaire de la couche raster en sortie , j'ai ajouté un champs "CODE" pour me permettre de reclasser la table.
Par exemple j'aimerai avoir une valeur de 2 au champs CODE, si la Battance est égale à 2, erodibilité égale 3 et pente 2.

Sur calculateur de champs, j'aimerai créer un script python (exemple ci-dessous). Il sera d'environ de 28 lignes.

Pouvez-vous m'aider sur ce script? ce script doit être reproduit sur plus de 15 zones.

Le PB c'est qu' il ne fonctionne pas vraiment.
Je voudrais signaler que je ne connais pas vraiment programmer en python juste les bases et une certaine logique.

exemple de script :

Code:

def Reclass(!CODE!):
if (Battance = 4 and erodibilite = 2 and pente = 0):
    return 0 
elif (Battance = 2 and erodibilite =3 and pente = 2): 
    return 2 
elif (Battance = 3 and erodibilite = 3 and pente = 1): 
     return 2

Cordialement

Louis Yembi

Hors ligne

 

#2 Mon 18 July 2016 18:12

lebon henri
Participant actif
Lieu: Vendée
Date d'inscription: 14 Jan 2008
Messages: 99

Re: ArcGIS : Calculatrice de champ Python

Salut, voici une petite modification de ton script.
En appelant, tu dois indiquer dans le bon ordre les trois premiers champs

Code:

def Reclass(Battance, erodibilite, pente):
    if (Battance == 4 and erodibilite == 2 and pente == 0):
        return 0 
    elif (Battance == 2 and erodibilite ==3 and pente == 2): 
        return 2 
    elif (Battance == 3 and erodibilite == 3 and pente == 1): 
         return 2

Hors ligne

 

Pied de page des forums

Powered by FluxBB