#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