AccueilDemarcheLogicielApplicationsBiblioFormationReseaux

 

 

 

 

 

Demo_Aggregates

Générer des agrégats spatiaux dans Cormas

Demo_Aggregates est un modèle didactique qui permet de tester deux façons différentes de créer des agrégats spatiaux avec Cormas. Ce modèle introduit les principes de fonctionnement des entités spatiales agrégats de Cormas. Dans l'arbre d'héritage des entités spatiales génériques de Cormas, l'entité spatiale composée générique s'appelle "SpatialEntity_Set". Elle est spécialisée en:
  • SpatialEntityAggregate dont les composants doivent être contigus (les Groves du modèle), et
  • SpatialEntityNotConnex dont les composants peuvent ne pas être contigus (les FragmentedForests du modèle).
spatialEntitiesUML

Les opérations d'agrégation-désagrégation reposent sur l'association "est composée de" entre SpatialEntitySet et SpatialEntity, qui se traduit en deux attributs: les «components» (une collection d'entités spatiales de niveau inférieur) et «theCSE» (l'appartenance éventuelle à des entités spatiales de niveau supérieur).
Dans le modèle Demo_Aggregates, 3 entités sont définies: Plot (sous classe de SpatialEntityElement), Grove (sous classe de SpatialEntityAggregate) et FragmentedForest (sous classe de SpatialEntityNotConnex):
classDiag
Diagramme de class UML du modèle. L'association d'agrégation est redéfinie entre Grove et Plot (le symbole // représente cette redéfinition).

Premier scénario (initForests - StepForests)

les composants des Groves sont définis comme des ensembles de plots contiguës partageant une même condition (tree). L'initialisation charge une grille spatiale constituée de 50 * 50 cellules (instances de la classe Plot) à partir d'un fichier (3forests.env). Chaque plot a un attribut #tree (condition d'agrégation) ayant la valeur boolean true ou false. L'instanciation effective de Groves (SpatialEntityAggregate) se fait en sélectionnant les Plots connectés étant #tree, plus une contrainte supplémentaire sur un nombre minimum (fixé à 25) de plots contigus vérifiant la condition d'agrégation.
Faire coexister dans le même modèle plusieurs entités spatiales définies à différents niveaux offre une grande flexibilité pour écrire la dynamique du modèle. Certains processus sont plus faciles à décrire au niveau cellulaire (newState), et pour d'autres, le niveau agrégé est plus approprié (expand ou swell).
StepForest: propose 2 dynamiques simultannées. Dans cet exemple didactique et simple, chaque Plot a une probabilité fixe (très faible) de changer son état. De plus, au niveau des bosquets, un processus d'étalement à partir des bords s'écrit comme suit: des cellules du bord extérieur sont agrégées à la forêt (seul un nombre donné de cellules sont sélectionnées, correspondant au centième du nombre total de composantes de l'entité forestière). Afin de garder une compacité aux entités forestières, la priorité est donnée aux cellules qui sont entourées par le plus grand nombre de cellules déjà agrégées.
gif1
     

Second scénario (setAggregatesFromRandomSeeds - swellForests)

10 cellules germinales sont choisies aléatoirement dans la grille spatiale de 50 * 50. 10 agrégats sont créés à partir de ces graines (donc avec un seul composant unique). Le processus de construction itératif des agrégats repose sur l'intégration, parmi les cellules appartenant au bord extérieur de chaque agrégat, de toutes celles qui n'appartiennent pas encore à un autre agrégat (swell).
demo2


Troisième scénario (init2AggregateLevels - step2AggregateLevels)

A partir du même état initial (chargement du fichier 3forests.env), des aggrégats de bosquet (Grove) sont créés à partir des cellules en forêt. Puis des agrégats FragmentedForest sont créés à partir des bosquets sur le critère de la taille, cad qu'une instance de FragmentedForest contient des bosquets de même taille. Dans cette configuration, on obtient 7 FragmentedForests (1 of 128 groves of 1 plot,     1 of 49 groves of 2 plots,     1 of 21 groves of 3 plots,    1 of 1 grove of 240 plots,     1 of 1 grove of 80 plots,     1 of 2 groves of 4 plots,    1 of 1 grove of 143 plots).

classDiag3
Pour la dynamique (step2AggregateLevels: t), seuls l'agrégat FragmentedForest composés des plus petits bosquets est activé. Ses composants s'étirent alors depuis leur bord extérieur (swell).
demo3
  • Vous pouvez télécharger le modèle (zip, 32 ko, Cormas 2017).
  • Pour en savoir plus, contactez l'auteur.

 

 

 


Le Cirad Centre de coopération internationale en recherche agronomique pour le développement
Legal notice © Copyright Cirad 2001-2015 cormas-webmaster@cirad.fr