#1 Wed 04 July 2012 23:12
- lailach0
- Juste Inscrit !
- Date d'inscription: 4 Jul 2012
- Messages: 6
algorithme pour fusion de 2 colonnes
pour faire la carte d'erodibilite il me faut superposer la carte des lithofacié et la carte des pentes Les polygones qui resultent de cette superposition sont classés selon une matrice
Classes Classes de lithofaciés :
de pentes : (a) 2(b) 3(c)
1 1(f) 1(f) 1(f)
2 1(f) 1(f) 2(mod)
3 2(mod) 2(mod) 3(moy)
4 3(moy) 3(moy) 4(ft)
cette dernière a pour objectif d’hiérarchiser le terrain selon le degré d’érodibilité:
Classe : Erodibilité :
1 Faible (f)
2 Modérée (mod)
3 Moyenne (moy)
4 Forte (ft)
le problème qui se pose est la classification de la base de données avec plus de 900 polygones. Le tri manuel peut gaspiller beaucoup de temps. Pour cela on a besoin de créer un algorithme sous forme d’ensemble d’instructions, qui va permettre la fusion des deux colonnes et faire sortie le degré d’érodibilité relatif à chaque polygone
alors comment faire cet algorithme afin d'obtenir la carte final(avec arcgis)
Hors ligne
#2 Thu 05 July 2012 09:11
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: algorithme pour fusion de 2 colonnes
Bonjour,
Si ces 2 couches sont bien au format vecteur vous pouvez utiliser l'outil union. Vous aurez alors dans le résultat toutes les informations nécessaires pr calculer un nouveau champ avec vos classes d'érodibilité.
Hors ligne
#3 Thu 05 July 2012 14:08
- lailach0
- Juste Inscrit !
- Date d'inscription: 4 Jul 2012
- Messages: 6
Re: algorithme pour fusion de 2 colonnes
salam
merci pour votre interet, mais apparemment j'ai pas pus expliquer mon problème plus clairement.
alors ce que je doit utiliser plutot c la superposition de la carte des pente et la carte des lithofaciès pour avoir pour chaque polygone sa classe de pente et sa classe de lithofacies :
ex
classe de pente classe des lithofaciès Erodibilité
1 1a ?
selon la matrice dans mon premier sujet la classe des pente1 avec classe des lithofaciès 1a donne le degrés de l'Erodibilité 1f .la superposition des 2 cartes (pente et lithofaciès) me donne plus de 900 polygones, si je fait le traitement manuellement pour donner pour chaque polygone son degres l'Erodibilitéd je doit le faire plus de 900 fois
alors ma question est comment automatiser le travail. j'ai lu dans une these que je doit créer un algorithme sous forme d’ensemble d’instructions, qui va permettre la fusion des deux colonnes et faire sortie le degré d’érodibilité relatif à chaque polygone (automatiquement)
alors par quel outils je doit faire cet algorithme sachant que je travail avec arcgis
Hors ligne
#4 Thu 05 July 2012 14:51
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: algorithme pour fusion de 2 colonnes
oui il me semble avoir bien compris le problème :
classe 1 = faible
classe 2 = modéré
classe 3 = moyen
classe 4 = fort
une pente de classe 3 avec le lithofacié b donne une érodibilité modérée, juste?
Peut être que l'union n'est pas le + adapté, tout dépend de la structure de vos données. Déjà il faudrait préciser si vos couches sont au format vecteur ou raster (ou les deux). Selon le cas l'approche ne sera pas la même.
Vous dites "la superposition des 2 cartes (pente et lithofaciès) me donne plus de 900 polygones" j'en déduit que vous avez déjà croisé les deux couches? si oui comment?
Pour préciser les choses, quelle est la procédure "manuelle"? Vous cliquez un polygone et vous lisez dans ses données attributaires sa classe de pente et son lithofacié pour déterminer son érodibilité?
Si c'est le cas (j'essaye de déduire mais surement que je me trompe!) je dirai que le plus gros du boulot est fait, il suffit alors de calculer un nouveau champs avec un script (cocher "pre-logic" dans le calculateur de champs).
Hors ligne
#5 Thu 05 July 2012 16:51
- lailach0
- Juste Inscrit !
- Date d'inscription: 4 Jul 2012
- Messages: 6
Re: algorithme pour fusion de 2 colonnes
salam
merci infiniment. Je crois que la phrase la plus importante est celle en fin" il suffit alors de calculer un nouveau champs avec un script (cocher "pre-logic" dans le calculateur de champs)" je vois si ça marche
Hors ligne
#6 Thu 05 July 2012 17:53
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: algorithme pour fusion de 2 colonnes
Phrase que j'ai fortement hésité à mettre car déjà trop concrète. J'aurai préféré que vous me confirmiez toutes mes suppositions avant d'aller voir si "ça marche". En détaillant mieux votre situation initiale le sujet devient plus précis et compréhensible pour tous ceux qui, par la suite, chercheront à profiter de votre retour d’expérience.
Hors ligne
#7 Fri 06 July 2012 16:08
- supernul
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 103
Re: algorithme pour fusion de 2 colonnes
Peut-être une solution pour toi si tu es sur Arcgis 10 :
Si je comprends bien tu as une couche vecteur dont la table attributaire contient entre autre un champ 'classe de pente' (numérique) et un champ 'Classes de lithofaciés' (texte).
1) tu crées un nouveau champ erod (texte)
2) tu vas sur calculer les valeurs (menu du clic droit) et tu choisis python dans Analyseur
3) tu coches "afficher le bloc de code"
4) dans "code de scriptPre-Logic." tu colles :
Code:
def CalculErod(valpente, vallitho) : if (valpente == 1 and vallitho == '1a') or (valpente == 1 and vallitho == '2b') or (valpente == 1 and vallitho == '3c') or (valpente == 2 and vallitho == '1a') or (valpente == 2 and vallitho == '2b') : return '1f' elif (valpente == 2 and vallitho == '3c') or (valpente == 3 and vallitho == '1a') or (valpente == 3 and vallitho == '2b') : return '2mod' elif (valpente == 3 and vallitho == '3c') or (valpente == 4 and vallitho == '1a') or (valpente == 4 and vallitho == '2b') : return '3moy' else : return '4ft'
5) dans "erod =" tu colles :
Code:
CalculErod(!classe de pente!, !Classes de lithofaciés!)
6) tu cliques sur OK et tu devrais avoir ton résultat
PS : le code peut-être simplifié mais là, je suis trop faignant pour
Dernière modification par supernul (Fri 06 July 2012 16:14)
Hors ligne
#8 Sat 07 July 2012 16:01
- lailach0
- Juste Inscrit !
- Date d'inscription: 4 Jul 2012
- Messages: 6
Re: algorithme pour fusion de 2 colonnes
"Phrase que j'ai fortement hésité à mettre car déjà trop concrète."
concrete pour ceux qui ont une connaissance approfondie mais moi je fait une autoformation alors il y a certainement des choses que je rate
"J'aurai préféré que vous me confirmiez toutes mes suppositions avant d'aller voir si "ça marche". "
en tous cas je peux pas voir si ça marche car la licence a expiréeeeeeeee. en attendant d'avoir une mise a jours
Hors ligne
#9 Sat 07 July 2012 16:07
- lailach0
- Juste Inscrit !
- Date d'inscription: 4 Jul 2012
- Messages: 6
Re: algorithme pour fusion de 2 colonnes
merci supernul
mais j'avais la version 9.x
Dernière modification par lailach0 (Sat 07 July 2012 16:09)
Hors ligne
#10 Sat 07 July 2012 16:34
- supernul
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 103
Re: algorithme pour fusion de 2 colonnes
il faudra tenter avec la version 9. Cela fonctionne sur la 10 mais je ne me souviens plus de la fenêtre pour la 9.
Hors ligne