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

Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.

Vous allez recevoir un message pour effectuer ce changement de mot de passe.

Merci de bien respecter les règles préconisées.

#1 Thu 07 October 2004 16:58

Marie-laure Bossis
Invité

Point Kilometrique

Bonjour a tous,

Je travaille a partir d'une table cours d'eau (polyligne) et d'une table de reperes de crue (points).
Il faudrait d'abord que je raccroche mes points sur la polyligne cours d'eau a l'endroit le plus proche.
Ensuite il faut que je recupere pour chaque point son PK par rapport au cours d'eau (pour ceux qui connaissent pas c'est la distance cumulee).

Logiciels utilises : Arcview 3.1 et mapinfo 7.5

Merci d'avance pour les renseignements.

Marie-laure Bossis.

 

#2 Fri 08 October 2004 08:43

Ludovic
Invité

Re: Point Kilometrique

Bonjour Marie-Laure,

J'ai developpe des outils pour ce genre de calcul en avenue pour ArcView pour la DIREN Centre. Je pense que si vous les contactez (demandez eventuellement Lydia Sacco), vous pourriez obtenir de l'aide (et les codes sources). La finesse provient de la forme sous laquelle se presente votre table de cours d'eau...
Avez vous un axe continu par riviere (1 riviere = 1 polyligne) ?
Avez-vous des valeurs de PK amont et aval sur voter table de cours d'eau pour chaque troncon de la riviere ? Ou a l'inverse vous n'en avez pas et devez calculer un PK geometrique ?

Bien cordialement
Ludovic

 

#3 Sat 09 October 2004 17:13

Third Planet On The Left
Invité

Re: Point Kilometrique

 

#4 Mon 11 October 2004 12:01

Ludovic
Invité

Re: Point Kilometrique

> Bonjour,
>
> Par rapport a vos questions :
> La table sur laquelle je travaille est la BD Carthage : j'ai donc un
> ensemble de segments de riviere mais il me suffit d'une selection pour
> tous les assembler.
D'accord, vous travaillez sur BD Carthage, c'etait egalement mon cas.

> Ensuite, il faut que j'informe un PK geometrique dans la table repere de
> crue (les reperes sont des points qui doivent couper la polyligne cours
> d'eau).


Donc vous ne voullez pas utiliser les PKs carthage ? Avec 1000 comme valeur du point terminal de votre riviere ?
Admettons que vous ayez reussi a selectionne les elements de votre riviere, etes-vous sur que :
- tous sont dans le bons sens d'ecoulement,
- il n'y a pas de coupure (rupture) dont la continuite de votre riviere (un trou autrement dit).

Une fois votre axe de riviere cree, et sur, vous avez besoin de 2 fonctions :
- l'une de projection de vos points sur votre axe, (voir a la fin un exemple de script)
- l'autre de calcul de PK en utilisant une fonction de ce type :

Code:

'* calcule du pk geometrique du point
lePourcent = leAxe.PointPosition(pt)
lePk = (leAxe.ReturnLength * lePourcent ) /100 / 1000

Ou leAxe est la polyligne de votre riviere.

> En fait je ne vois pas comment faire : si il y a un outil qui peut me
> donner ces PK ou si il faut le faire mannuellement.
Voici des pistes, j'espere qu'elles vous aideront.

Bien cordialement
Ludovic

Code:

Script de projection des points :
'-----------------------------------------------------------------
'            Projet_Point.ave
'
'-----------------------------------------------------------------
' Script : Projection point sur l'axe
' But   : Fonction qui calcule les projetes d'une liste de points
'      sur un theme d'axe
' Source : BD_Carthage
' Auteur : Ludovic LESTRAT
' Version : Juin 1998
'-----------------------------------------------------------------

'*********Recupere les parametres axe et ligne d'intersec*********

LesPoints = self.get(0)
AxeTheme  = self.get(1)
laDistance = self.Get(2)

FtabAxes  = AxeTheme.GetFtab
lesPointsSortie = {}

'* Parcours de tous les points a calculer
For each pt in lesPoints

'**********Calcul de la projection du point avec l'axe ***********

'* Definit les proprietes de snapping du theme axe a la limite la
'* plus proche
_LaVue.SetInteractiveSnapping (AxeTheme, #POINT_SNAP_BOUNDARY)

'* Definit la tolerance de snapping a laDistance metres
AxeTheme.SetInteractiveSnapTolerance (laDistance + 100)

'* Snap le point saisi a la limite la plus proche de l'axe
AxeTheme.UserSnapPoint(#POINT_SNAP_BOUNDARY,Pt)

'* _LaVue.GetGraphics.add(GraphicShape.Make(Pt))

'* Desactive les proprietes de snapping
AxeTheme.SetInteractiveSnapping(False)

'* Ajoute le point a la liste des resultats
lesPointsSortie.add(Pt)

End '* la projection de chaque point

'*********************Resultat de la fonction*********************
Return lesPointsSortie
 

Pied de page des forums

Powered by FluxBB