Project

General

Profile

SpamorProd

Le dossier 08_SPAMORProd contient les scripts et les exécutables nécessaires à l'exécution de la routine SPAMOR dans son entier.

Pour le moment tous les fichiers intérmédiaires (filtrages, convertions) sont sauvegardés dans des dossiers distrincts. Par la suite il faudrait que le script les supprime puis conserve uniquement les fichiers XML correspondants aux trottoirs segmentés.

Structure du projet

  • 08_SPAMORProd
    • run_processing.py : le script python qui fait appel aux exécutable de filtrage/conversion, à exécuté en commandline
    • processing_tools : le dossier qui contient les exécutable de filtrage/conversion écrits en C++ compilés, python les appelle dans des sous-processus
    • python_tools : le dossier qui contient les scripts python utilisé pour la création des image d'élévation et la segmentation des trottoirs

Les paramètres du script run_processing

Paramètre positionnels
  1. directory Dossier d'entrée contenant les fichiers de mesures .csv bruts
  2. window_size Taille du filtre médian appliqué sur les profils en coordonnées polaire
  3. threshold_value Seuille en mètres pour l'algorithme d'approximation de profils Douglas-Peucker
  4. columns indices des colonnes à filtrer (médian) sur la dimension du temps (commence à 0), les indices sont séparés par des virgules
  5. columns_window_sizes Taille des filtres médians à appliquer sur les colonne données au paramètre ci-dessus
  6. file_cut_distance la distance parcourues (mesurée par les codeurs) par fichier pour analyse en sous-partie (une image d'élévation par fichier)
  7. pixels_per_unit le nombre de pixel par mètre à utiliser pour la construction des images d'élévation

Exemple de commande

python run_processing.py ~/datas_test/ 11 0.01 14,15,16,17,18 11,11,11,11,11 20 60

La commande ci dessus applique la routine à tous les fichiers .csv de mesures dans le dossier d'entrée _~/datas_test/ applique un filtrage médian à chaque profile avec une taille de fenêtre de 11, approxime ensuite les profils avec Douglas-Peucker avec un seuil de 0.01 mètres, filtre dans la dimension du temps les colonnes aux indices 14,15,16,17,18 avec les tailles de fenêtres respectives 11,11,11,11,11 puis découpe les fichiers selon une distance parcourues de 20 mètres. Génère ensuite une image d'élévation par sous-fichier découpés en utilisant un ratio de 60 pixels par mètres pour la segmentations des trottoirs.

Outputs

Le script génère un dossier de sortie qui sauvegarde tous les fichiers intermédiaires ainsi que les fichiers XML directement importable dans GIS

  • output[input_path]_window[window_size]_threshold[threshold_value] : Dossier de sortie, composé des différents paramètres, chemin d'entrée, window_size et threshold_value
    • filtered : Dossier contenant les fichiers après l'étape de filtrage des profils
    • approx : Dossier contenant les fichiers après l'étape supplémentaire d'approximation des profils
    • columns_filtered : Dossier contenant les fichiers après l'étape supplémentaire de filtrage par colonne (dimension temporelle)
    • converted : Dossier contenant les fichier après l'étape supplémentaire de conversion des unités des capteurs
    • split : dossier contenant les fichiers après l'étape supplémentaire de découpage par distance
    • pcs : Dossier contenant les fichiers avec les nuages de points (3D) après l'étape supplémentaire de projection des points plan du Sick (2D) -> Espace (repère absolu, 3D)
    • xml : Dossier contenant les fichiers XML avec descriptions des trottoirs pour importation dans GIS

Les fichiers produits par chaque étape décrite ci-dessus représentent l'input de l'étape suivante.