r-lidar-lab / ALSroads

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

Possibilité d'uniquement extraire les métriques pour un segment #6

Closed jfbourdon closed 2 years ago

jfbourdon commented 2 years ago

Y a-t-il une fonction permettant d'extraire les métriques d'un segment sans qu'il y ait tentative de le repositionner? L'idée ici étant de pouvoir recaractériser un long tronçon par petits bouts.

Exemple: J'ai un tronçon de 2 km qui a déjà été passé à measure_road() et qui a obtenu un state 1. J'obtiens donc un nouveau vecteur qui est pratiquement parfait. Maintenant, je souhaiterais savoir à quel point sa largeur varie sur ce 2 km. Je le découpe donc en quatre segments de 500 m chacun. Si je les passe à measure_road() et que j'ignore la géométrie retournée, est-ce que les statistiques correspondront strictement au segment en entrée? Selon mon test, les statistiques correspondent au segment retourné et non à celui d'origine, ce qui est logique considérant le but de la fonction measure_road().

Jean-Romain commented 2 years ago

Pendant les phases de développent je retournais tout. Ce n'est plus le cas mais rien n'empêche de réintégrer l'option et de sortir des points avec les métriques aux 10 m plutôt qu'une ligne avec la métrique générale.

Pour ton workaround, non mais presque. Tu as raison si tu lui donne une ligne, l'algo la recalcule et ce sont les métriques de cette nouvelle ligne qui sont sorties. Mais tu peux dire a l'algo que tu es 100% sûr que ta ligne est bonne. Dans ce cas il recalcule pas la route

param$constraint$confidence = 1

Sauf que je suis a peu prêt sûr qu'il y a un bug pour 1. Donc j’essaierai 0.999. Dans ce cas il va recalculer la route mais il est tellement contraint que normalement ca va être exactement la même qu'en entrée

jfbourdon commented 2 years ago

Merci ça marche. Les valeurs ne sont pas identiques mais assez proches pour ROADWIDTH et DRIVABLEWIDTH (0.1 m d'écart) qui sont les deux métriques qui m'intéressent le plus dans un cas comme mon exemple. Ceci dit, avoir l'option de sortir de détail aux 10 m est attirant aussi. Je ne crois pas que je l'utiliserais maintenant, mais peut-être plus tard quand je serai plus familier avec le package.

Jean-Romain commented 2 years ago

Je t'ai mis un petit param secret non documenté temporairement

res <- measure_road(ctg, road, dtm, water = NULL, reconstruct_line = FALSE)
plot(res["road_width"], pch = 19, cex = 0.5)

Rplot03

jfbourdon commented 2 years ago

Avec ça je suis heureux. Le dossier peut être clos maintenant (si on omet l'éternel travail de documentation). Merci.

Jean-Romain commented 2 years ago

Non c'est pas clos il y a param$constraint$confidence = 1 qui ne marche pas

jfbourdon commented 2 years ago

Mon nombre de tests avec param$constraint$confidence = 1 s'élève présentement à un seul, mais je peux te dire que pour ce test-là, ça n'a pas planté en tout cas.

Jean-Romain commented 2 years ago

Avec l'exemple de la doc ca ne marche pas. Je travaille dessus

Jean-Romain commented 2 years ago

Bon bah si ca marche