#1 Mon 21 July 2008 15:15
- Goire
- Participant occasionnel
- Date d'inscription: 20 Jan 2008
- Messages: 10
Hydrologie : Calcul d'indice de sinuosité
Bonjour,
Je souhaiterais calculer un indice de sinuosité d'un réseau hydrographique à partir d'un mnt.
Je sais que cela est possible, mais je ne sais pas comment m'y prendre.
Je connais le definition de cette indice, à savoir : La sinuosité IS est le rapport de la longueur développée du thalweg L sur la distance directe entre deux points de la vallée, soit la longueur d'onde du méandre
Concretement, j'ai mes noeuds avec la distance les séparant, et là je bloque...
Si quelqu'un maîtrise la bête...
Hors ligne
#2 Mon 21 July 2008 15:51
- Tnarbiv
- Participant assidu
- Lieu: Véretz
- Date d'inscription: 5 Sep 2005
- Messages: 392
Re: Hydrologie : Calcul d'indice de sinuosité
si je comprends bien ton problème tu souhaites calculer la longueur du cours d'eau (LS), calculer la distance en ligne droite séparant le point de départ du point d'arrivée de ton cours d'eau (L) et ensuite calculer ton indice (LS/L)
cela doit être fait en 2D ou en 3D ?
Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.
Hors ligne
#3 Mon 21 July 2008 15:57
- Goire
- Participant occasionnel
- Date d'inscription: 20 Jan 2008
- Messages: 10
Re: Hydrologie : Calcul d'indice de sinuosité
Tu comprends bien Tnarbiv !
C'est du 2D, en fait ce n'est que du calcul...
J'ai cherché des tutoriel, mais je trouve pas.
J'ai fais ce type d'exercice à la fac, mais je ne me rappel plus et mon prof ne réponds pas...
Je pense que je l'ai un peu trop arcelé et maintenant il me laisse me débrouiller seul...
Hors ligne
#4 Mon 21 July 2008 16:19
- Goire
- Participant occasionnel
- Date d'inscription: 20 Jan 2008
- Messages: 10
Re: Hydrologie : Calcul d'indice de sinuosité
Sinon, je viens de trouver dans outils spatial analyst
surface
curvature
Je vais tester...
Hors ligne
#5 Mon 21 July 2008 16:24
- Tnarbiv
- Participant assidu
- Lieu: Véretz
- Date d'inscription: 5 Sep 2005
- Messages: 392
Re: Hydrologie : Calcul d'indice de sinuosité
voici un exemple de macro qui fonctionne chez moi (il te reste à l'adapter selon tes besoins) :
Code:
Public Sub test2() Dim pmxdoc As IMxDocument Set pmxdoc = ThisDocument Dim pmap As IMap Set pmap = pmxdoc.FocusMap Dim player As ILayer 'récupération de la couche souhaitée dans le bloc de données Set player = pmap.Layer(0) Dim pfl As IFeatureLayer 'si elle de type vectorielle (vérification) If TypeOf player Is IFeatureLayer Then Set pfl = player Dim pfc As IFeatureClass Set pfc = pfl.FeatureClass 'si le champ indice existe on le supprime If pfc.FindField("indice") <> -1 Then pfc.DeleteField pfc.Fields.Field(pfc.FindField("indice")) End If Dim pindicefld As IFieldEdit Set pindicefld = New Field 'création d'un nouveau champ recueillant le résultat With pindicefld .Name = "indice" .Type = esriFieldTypeDouble End With pfc.AddField pindicefld Dim pfcursor As IFeatureCursor Set pfcursor = pfc.Search(Nothing, True) Dim pfeature As IFeature Set pfeature = pfcursor.NextFeature Dim pcurve As ICurve Dim pline As ILine 'tant qu'il y a une entité dans la table des cours d'eau Do Until pfeature Is Nothing 'récupération du cours d'eau Set pcurve = pfeature.Shape 'vérification facultative sur la longueur du cours d'eau If Not pcurve.Length = 0 Then Set pline = New Line 'création d'une ligne droite avec le point de départ et le point d'arrivée pline.FromPoint = pcurve.FromPoint pline.ToPoint = pcurve.ToPoint 'calcul de l'indice pfeature.Value(pfc.FindField("indice")) = pcurve.Length / pline.Length 'sauvegarde de l'indice dans le champ créé précédemment pfeature.Store End If Set pfeature = pfcursor.NextFeature Loop Else Exit Sub End If End Sub
Dernière modification par Tnarbiv (Mon 21 July 2008 16:29)
Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.
Hors ligne
#6 Mon 21 July 2008 20:07
- Goire
- Participant occasionnel
- Date d'inscription: 20 Jan 2008
- Messages: 10
Re: Hydrologie : Calcul d'indice de sinuosité
Franchement un grand merçi à toi Tnarbiv !
Hors ligne