r-lidar-lab / ALSroads

Road corrections and measurements from ALS data
19 stars 4 forks source link

Carte de reference plutot que st_snap_lines #14

Closed Jean-Romain closed 2 years ago

Jean-Romain commented 2 years ago

On a la carte d'origine. Pas besoin de st_snap_line pour snapper plus ou moins bien alors qu'on sait exactement quelles routes doivent être connectés, Je pose ca la, je ne sais pas exactement comment gérer ca mais ca me semble plus pertinant de reconstruire en utilisant le réseau d'origine

jfbourdon commented 2 years ago

Bien vu. Tout ce qu'il faut c'est un identifiant unique dans la couche d'origine. Je vois les quelques étapes: road_ori = couche d'origine road_cor = couche corrigée avec measure_road() mais pas snappée

  1. Dans road_cor on prend le premier segment à traiter et regarde son identifiant
  2. On va dans road_ori et avec sf::st_is_within_distance (ou sf::st_touches) on récupère les identifiants des entités qui se touchent
  3. On retourne dans road_cor, on sélectionne les entités correspondant et on calcul le point milieu de leurs extrémités. On peut même récupérer à l'étape précédente quelle extrémité est utilisée (début ou fin) pour éviter d'avoir à chercher.
  4. En fonction de tolerance, si le point milieu est plus éloigné que l'une des extrémité, on ne fusionne pas sinon oui.
  5. On poursuit avec la prochaine entité dans la liste.

Idéalement il faudrait un suivit des entités (et leurs extrémités) qui ont déjà été traité pour ne pas repasser inutilement.

Jean-Romain commented 2 years ago

C'est à reflechir. Autant j'ai fait st_snap_line() un matin à 5h pour Lithy à UBC et c'était prêt avant ses heures de travail. Autant là faut que je me pose 5 minutes avec un papier et un crayon.

jfbourdon commented 2 years ago

Aussi je te dirais que c'est le genre de truc qui est à mon niveau, à tout le moins en faire un prototype. Je pourrais y mettre du temps ce mois-ci, donc si tu veux mettre le tiens ailleurs pour l'instant, il n'y a pas de problème du tout.

Jean-Romain commented 2 years ago

Ok