Test Spatial Entities : TSE

Test des entités spatiales agrégatives de Cormas

Christophe Le Page, Pierre Bommel, Cirad

(Voir aussi la page Demo_aggregates)

Ce modele illustre les principes dutilisation des entités spatiales agrégatives de Cormas. Dans larbre dhéritage des entités spatiales génériques de Cormas, lentité spatiale composée "SpatialEntity_Set" se spécialise en :

  • "SpatialEntityAggregate", dont les composants respectent une contrainte de contiguïté
  • "SpatialEntityNotConnex", dont les composants peuvent etre disjoints.

 

La premiere (Spreading of 3 forests: initForests & stepForests) consiste a définir les composants (Groves) comme des ensembles de cellules contigües partageant une meme condition. On commence par charger une grille de 50*50 cellules de type "Plot" dont lattribut "tree" est un booleén. La création des entités spatiales composées "Grove" est soumise a une contrainte supplémentaire sur le nombre minimum (fixé a 25) de composants contigüs vérifiant la condition dagrégation.

Faire co-exister dans le meme modele des entités spatiales définies a différents niveaux offre une grande souplesse pour écrire les méthodes de dynamique de la végétation. Certains processus seront plus facilement décrits au niveau cellulaire, dautres au niveau agrégé. Ainsi, dans cet exemple théorique simpliste,

  • chaque cellule a une probabilité fixée (tres faible) de changer détat #trre (newState).
  • Une dynamique dexpansion par la lisiere des agrégats (expand) est écrite de la facon suivante: un certain nombre (correspondant au centieme du total des cellules composants lentité forestiere) de cellules en lisiere vont etre intégrées a la foret. Dans le but de garder une certaine compacité aux entités forestieres, on choisit en priorité les cellules de la lisiere qui sont entourées du plus grand nombre de cellules déja agrégées.

Un deuxieme niveau dagrégation (FragmentedEntity) est également modélisé. Ces agrégats de deuxieme ordre sont composés dagrégats de premier niveau dont la taille est superieure a 50. Nous obtenons alors une hiérarchie dagrégation, depuis le niveau élémentaire jusquaux agrégats de deuxieme niveau.

First level point of view
(Cell => povTree)
Second level point of view
(Aggregate => povId)
Third level point of view
(FragmentedEntity => povTree)

La seconde (setSingletonAggregatesFromRandomSeeds  & swellForests) consiste a partir de 30 cellules "graines"et a créer autant dagrégats initialement constitués dun seul composant: une graine. Le processus itératif de construction des agrégats repose sur lintégration, parmi les cellules en lisiere, de toutes celles qui nappartiennent pas encore a un autre agrégat. Il y a deux facons de construire les agrégats a partir des "graines" :

  • une facon progressive (init= setSingletonAggregatesFromRandomSeeds and control = swellForests:) :

  • Expansion progressive (swellAggregates)

  • et une facon rapide (la partition de lespace est complete en un seul coup) :
    • [init=setAggregatesFromRandomSeeds] construit 30 groves faites 80 (max) plots a partir de 30 graines aléatoires. La taille de chaque agrégate doit suivre une distribution de taille (#(30 80)) =  30 bois de taille 80 :


    • ou une distribution de type sizeDistribution: #(#(1 800) #(5 30) #(4 3) #(20 10)) = 1 bois de 800 cells,  5 de 30 cells , 4 bois de 3 cells et 20 bois de 10 cells :
    • ou [init=setAggregatesFifthFourth] construit une partition complete de lespace en segmentations régulieres: 4 lignes et 5 colonnes.

How to run this model...