Fragmenter SpatialLine avec SpatialPoint

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Samuel Pereira Dias
Messages : 62
Enregistré le : 07 Mar 2014, 11:09

Fragmenter SpatialLine avec SpatialPoint

Messagepar Samuel Pereira Dias » 28 Déc 2016, 10:32

Bonjour à tous,

J'ai une question relatif à la manipulation des objets spatiaux.

Je dispose d'un SpatialLinesDataFrame "LineFrag", et d'un SpatialPointsDataFrame "PointChang".
J'aimerais fragmenter le premier à l'aide du deuxième.
Ce qu'il faut savoir c'est que les points ne se disposent par forcément sur la ligne elle-même, il est donc nécessaire de définir une distance de recherche perpendiculaire entre le point et la ligne.

Mon objectif est de pouvoir ensuite associer les attributs des points aux lignes correspondantes, ce qui devrait se faire avec la fonction SpatialLinesDataFrame() en partant du principe que l'ordre entre les deux objets est le même.

Les logiciels de SIG permettent forcément ce genre de manipulation, seulement je n'arrive pas récupérer les identifiants des points pour les attribuer aux lignes, et j'aimerais intégrer ces manipulations à la suite d'une chaine de traitement sur R.

Quelqu'un connaîtrait-il une fonction qui puisse faire cela?

Merci
Samuel Pereira Dias

Bastien Gamboa
Messages : 151
Enregistré le : 13 Jan 2011, 21:31

Re: Fragmenter SpatialLine avec SpatialPoint

Messagepar Bastien Gamboa » 04 Jan 2017, 08:47

Bonjour,

Loin d'avoir la solution optimale, je te conseillerais de faire un tour du coté de la fonction rgeos:::gIntersection().

Je m'étais servis de cette fonction pour intersecter des points et des lignes. Je crois me rappeler qu'il m'avait fallu 'agrandir' les points pour qu'ils touchent les lignes, suite à des projections différentes. De fait, j'avais transformer mes points en polygones plus grand. Mais pas trop grand pour ne pas qu'un point intersect plusieurs lignes.

Sinon, peut-être que les fonction sp:::point.in.polygon() ou sgeostat:::in.polygon() pourraient t'être utile (ici c'est les lignes qui sont à transformer en polygone et non les points).

HTH,
Bastien

Pascal PLUVINET
Messages : 70
Enregistré le : 15 Sep 2010, 06:04

Re: Fragmenter SpatialLine avec SpatialPoint

Messagepar Pascal PLUVINET » 10 Jan 2017, 11:22

Bonjour,

Pour compléter, regardez les fonctions :
snapPointsToLines(Sp_points, spline, withAttrs = TRUE, idField = "id_line") # pour accorcher les points sur les lignes
gDifference # pour couper les lignes par les points. Fabrique des trous
gBuffer # pour éventuellement faire une petite zone tampon (de quelque cm sur les points) avant de faire la différence
disaggregate # pour fragmenter en autant de segments

Bon courage,
Pascal PLUVINET
Ingénieur d'études - Géomaticien

Samuel Pereira Dias
Messages : 62
Enregistré le : 07 Mar 2014, 11:09

Re: Fragmenter SpatialLine avec SpatialPoint

Messagepar Samuel Pereira Dias » 29 Sep 2020, 18:14

Bonjour,
Je retombe sur cette discussion à laquelle je n'avais pas donné suite.
Merci à Pascal et à Bastien pour leurs idées intéressantes., et désolé pour cette réponse tardive.

De mémoire, je penses que j'avais repris l'idée/ principe de Pascal mais que je l'avais effectué avec les outils SAGA aujourd'hui disponible directement sur Qgis mais à l'époque c'était sur une application indépendante.

Si cela peut aider!
Merci à tous, 3 ans plus tard...
S.
Samuel Pereira Dias


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité