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 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...


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

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

 

Pied de page des forums

Powered by FluxBB