Skip to content
/ patchwork Public

Merge patches from 2 lidar files depending on the points' classes

License

Notifications You must be signed in to change notification settings

IGNF/patchwork

Repository files navigation

patchwork

Patchwork est un outil permettant d'enrichir un fichier lidar à haute densité avec des points d'un fichier à basse densité dans les secteurs où le premier fichier n'a pas de point mais où le second en possède.

Fonctionnement

Les données en entrée sont:

  • un fichier lidar que l'ont souhaite enrichir
  • un fichier lidar contenant des points supplémentaires

En sortie il y a :

  • Un fichier, copie du premier en entrée, enrichi des points voulu

Les deux fichiers d'entrée sont découpés en tuiles carrées, généralement d'1m². Si une tuile du fichier à enrichir ne contient aucun point ayant le classement qui nous intéresse, on prend les points de la tuile de même emplacement du fichier de points supplémentaire.

L'appartenance à une tuile est décidée par un arrondi par défaut, c'est-à-dire que tous les éléments de [n, n+1[ (ouvert en n+1) font parti de la même tuile.

Installation

pré-requis: installer anaconda Cloner le dépôt

git clone https://github.com/IGNF/patchwork.git
conda env create -f environment.yml
conda activate patchwork

utilisation

Le script d'ajout de points peut être lancé via :

python main.py filepath.DONOR_FILE=[chemin fichier donneur] filepath.RECIPIENT_FILE=[chemin fichier receveur] filepath.OUTPUT_FILE=[chemin fichier de sortie] [autres options]

Les différentes options, modifiables soit dans le fichierconfigs/configs_patchwork.yaml, soit en ligne de commande comme indiqué juste au-dessus :

filepath.DONOR_DIRECTORY : Le répertoire du fichier qui peut donner des points à ajouter
filepath.DONOR_NAME : Le nom du fichier qui peut donner des points à ajouter
filepath.RECIPIENT_DIRECTORY : Le répertoire du fichier qui va obtenir des points en plus
filepath.RECIPIENT_NAME : Le nom du fichier qui va obtenir des points en plus
filepath.OUTPUT_DIR : Le répertoire du fichier en sortie
filepath.OUTPUT_NAME : Le nom du fichier en sortie
filepath.OUTPUT_INDICES_MAP_DIR : Le répertoire de sortie du fichier d'indice
filepath.OUTPUT_INDICES_MAP_NAME : Le nom de sortie du fichier d'indice

DONOR_CLASS_LIST : Défaut [2, 9]. La liste des classes des points du fichier donneur qui peuvent être ajoutés.
RECIPIENT_CLASS_LIST : Défaut [2, 3, 9, 17]. La liste des classes des points du fichier receveur qui, s'ils sont absents dans une cellule, justifirons de prendre les points du fichier donneur de la même cellule TILE_SIZE : Défaut 1000. Taille du côté de l'emprise carrée représentée par les fichiers lidar d'entrée PATCH_SIZE : Défaut 1. taille en mètre du côté d'une cellule (doit être un diviseur de TILE_SIZE, soit pour 1000 : 0.25, 0.5, 2, 4, 5, 10, 25...)

Le script de sélection/découpe de fichier lidar peut être lancé via :

python lidar_filepath.py filepath.DONOR_DIRECTORY=[répertoire_fichiers_donneurs] filepath.RECIPIENT_DIRECTORY=[répertoire_fichiers_receveurs] filepath.SHP_NAME=[nom_shapefile] filepath.SHP_DIRECTORY=[répertoire_shapefile] filepath.CSV_NAME=[nom_fichier_csv] filepath.CSV_DIRECTORY=[répertoire_fichier_csv] filepath.OUTPUT_DIRECTORY=[chemin_de_sortie]

filepath.DONOR_DIRECTORY: Le répertoire contenant les fichiers lidar donneurs
filepath.RECIPIENT_DIRECTORY: Le répertoire contenant les fichiers lidar receveurs
filepath.SHP_NAME: Le nom du shapefile contenant l'emprise du chantier qui délimite les fichiers lidar qui nous intéressent
filepath.SHP_DIRECTORY: Le répertoire du fichier shapefile
filepath.CSV_NAME: Le nom du fichier csv qui lie les différents fichiers donneurs et receveurs
filepath.CSV_DIRECTORY: Le répertoire du fichier csv filepath.OUTPUT_DIRECTORY: le répertoire recevant les fichiers lidar découpés

About

Merge patches from 2 lidar files depending on the points' classes

Resources

License

Stars

Watchers

Forks

Packages

No packages published