...english version of this page

Computree - Principes de fonctionnement

Computree est une plateforme de traitement de données issues de télédétection aéroportée (voire satellitaire) ou terrestre. La plateforme en elle-même propose un Framework de traitement de données fondé sur une logique de chaînes de traitement séquentielles (même si une chaîne peut avoir des ramifications).

Ainsi une chaîne de traitement est définie par une séquence d’*étapes* algorithmiques. Chaque étape :

Il est ainsi possible de constituer l’ensemble de la chaîne de traitement sans l’exécuter, dans la mesure où les étapes peuvent interagir via les modèles de données, sans nécessité d’exécution de l’algorithme en lui-même. Cela permet de préparer à l’avance des traitements longs, ou de les exécuter en mode batch.

De plus le système des modèles de données permet à des étapes issues de plugins développés totalement indépendamment d’être utilisées ensembles dans une même chaîne de traitement.

De plus, Computree propose plusieurs alternatives aux « étapes standards » afin de simplifier certaines tâches :

 

Structures de données

Dans Computree les données sont organisées selon le formalisme suivant.
Les données en elles-mêmes sont stockées dans des Items, qui sont définis dans le cœur de la plateforme. La logique est qu’un item soit la plus petite entité possible, dans le but de la rendre la plus générique possible. Ainsi un item peut être : une forme géométrique 3D élémentaire (cercle, sphère, parallélépipède rectangle, cône, cylindre,…), une forme géométrique 2D élémentaire (cercle, rectangle, polygone,…), un raster, une grille voxel 3D, un nuage de point, un maillage,…

Pour les points d’un nuage ou les faces d’un maillage, l’élément unitaire stocké dans l’item est le nuage de points ou le maillage et non le point ou la face pour des raisons d’efficacité dans les traitements et de stockage en mémoire.
L’organisation des items en structures plus complexes est faite via des Groupes, dont le rôle est de construire toute structure de données nécessaire dans une étape. Ainsi un groupe peut contenir, d’une part des items, d’autres part des listes de groupes. Ainsi par composition hiérarchique il est possible de générer des structures de données complexes.

Dans ces structures de données, chaque niveau de groupe ou d’item est associé à un modèle de donnée (modèles de données de sortie décrits avant, qui permettra de l’indexer et d’y accéder.

Le premier niveau de groupe d’une structure de données est placé dans un Résultat. Une étape peut produire de 0 à n résultats.

Tout item doit être placé directement dans un groupe. Tout groupe est placé dans une liste correspondant à son modèle de donnée, soit située dans un groupe de niveau supérieur, soit à la racine du résultat.

Les items (exemple : un cylindre) contiennent un certain nombre d’attributs par défaut (exemple : centre, direction, rayon, longueur). Il est possible d’ajouter des attributs supplémentaires aux items, dans les étapes (exemple : erreur d’ajustement, type de cylindre). On ne peut pas ajouter d’attributs aux groupes.

Lorsqu’une étape a vocation à compléter un résultat d’une étape précédente (exemple : ajuster des cylindres pour chaque cluster de points), elle va faire une copie du résultat d’entrée, la compléter, et la fournir en résultat de sortie. La copie n’est pas totale, pour optimiser l’utilisation de la mémoire : les groupes sont dupliqués (nouvelle structure, potentiellement modifiée), par contre les items préexistants sont simplement référencés (pointeurs) dans les nouveaux groupes. Cette approche permet de pouvoir exporter et visualiser toute résultat intermédiaire, sans qu’il n’ait été modifié par les étapes suivantes. On peut ainsi tracer, étape par étape, les résultats produits par la chaîne de traitement.

 

Architecture logicielle de la plateforme

La plateforme Computree est composée de différentes briques, dans une logique d’un design pattern Modèle Vue Contrôleur, même si dans sa version actuelle elle ne suit pas toujours ce design à la lettre pour des raisons d’efficacité (en particulier les contrôleurs ne sont pas toujours totalement isolés).

Ainsi la plateforme est composée :

En lui-même le cœur de la plateforme ne contient pas d’étape, d’action, de reader, d’exporter, de filtre ou de métrique. Ces éléments sont ajoutés via des librairies (pour les readers et exporters), ou des plugins (tous les éléments, plus éventuellement des items spécifiques à un plugin donné).

Les plugins sont totalement indépendants (un plugin ne connaît que le cœur et éventuellement des librairies). Les librairies quant à elles peuvent être utilisées dans les plugins. Chaque plugin / librairie va générer une dll qui sera dynamiquement reconnue et chargée au lancement d’une des interfaces.

Pourtant les éléments implémentés dans les plugins (et librairies dans certains cas) pourront être utilisés de concert par l’utilisateur, au sein d’une même chaine de traitement (tant que leurs modèles de données coïncident).

 

Maintenance et évolution de la plateforme

Le Groupe Computree fournit les ressources pour le maintien et l’évolution des éléments suivants :

Les plugins (ne figurant pas dans la liste de ceux maintenus par le Groupe Computree) sont développés indépendamment par les équipes / personnes qui le souhaitent. Pour les y aider, le Groupe Computree fournit la présente documentation en ligne, ainsi que des formations (web ou en présentiel). Sur demande, en fonction des ressources disponibles et dans la mesure où le plugin développé est mis à disposition de la communauté ou non, le Groupe Computree peut fournir un soutien supplémentaire aux développeurs de plugins, dont le contenu précis est à déterminer au cas par cas.

La Charte Computree décrit plus en détails la gouvernance de la plateforme. Son acceptation est un prérequis à l’utilisation de Computree.

 

Retour à l’index