Ocelet

Nouvelle version 2.2.1 Curcuma disponible

Nouveautés :

  • Nouveau datafacer GraphMLExport qui permet d'exporter un ou plusieurs graphes dans un fichier au format GraphML. Ce format est reconnu par la majorité des logiciels d'affichage et de manipulation de graphes.

  • Nouveaux types de collections KeyMap2d, KeyMap3d et OrdKeyMap.

    • KeyMap2d permet d'associer une valeur à un couple de clés, et KeyMap3d permet d'associer une valeur à un triplet de clés. Ces outils peuvent par exemple servir à construire des matrices peu denses.
    • OrdKeyMap est équivalent au type KeyMap mais avec la conservation de l'ordre des clés. C'est à dire que les fonctions keySet() et values() renvoient les éléments dans l'ordre où ils ont été ajoutés.
  • Shapefile : setCrs() cette nouvelle fonction permet d'indiquer un système de coordonnées cible avant d'utiliser la fonction append() pour enregistrer des données en changeant de système de coordonnées.

  • CsvFile ce datafacer a été amélioré pour le rendre plus tolérant en cas de données manquantes dans un fichier csv.
2024-02-23 11:20:34

jar et ligne de commande

Quand on a exporté un modèle au format jar, si ce modèle contient une définition de paramètres dans un bloc metadata {...} il est possible de passer des valeurs pour ces paramètres sur la ligne commande.

Il faut respecter quelques contraintes :

  • Il faut fournir tous les paramètres dans l'ordre où ils ont été déclarés dans le bloc metadata {...}. Si le nombre de paramètres donnés sur la ligne de commande est différent, ce sont les valeurs par défaut qui seront utilisés.
  • Les paramètres sont séparés par un espace sur la ligne de commande. Si on doit fournir un texte qui contient des espaces il faut le mettre entre guillemets.
  • Il faut s'assurer que les valeurs fournies sur la ligne de commande correspondent au type des paramètres déclarés. Par exemple si on déclare un paramètre de type Integer et qu'on donne une valeur 4.5 ce paramètre ne sera pas valide et c'est sa valeur par défaut qui sera utilisée. Il y a un message qui s'affiche dans cette situation pour signaler qu'il y a eu un souci pour convertir le type.
    • Un nombre limité de types est reconnu pour cette conversion automatique : Boolean, Byte, Double, Float ,Integer, Long, Short, String
    • Si vous avez besoin de déclarer un paramètre avec un type qui n'est pas automatiquement reconnu, une solution consiste à déclarer ce paramètre en String puis d'effectuer sois-même une conversion du paramètre dans un autre type dans le modèle Ocelet.

Exemple

Prenons un modèle Ocelet Mymodel.oclt qui est écrit comme ceci :

metadata {
  parameter Integer p1 {default 0}
  parameter Double  p2 {default 0.0}
  parameter String  p3 {default "rien"}
  parameter Boolean p4 {default false}
}

scenario Mymodel {

  println("Model Mymodel")

  println("p1: "+p1)
  println("p2: "+p2)
  println("p3: "+p3)
  println("p4: "+p4)

  println("Done.")
}

que l'on a exporté en mymodel.jar

On peut l'exécuter sans paramètre :

> java -jar mymodel.jar 
Model Mymodel
p1: 0
p2: 0.0
p3: rien
p4: false
Done.

On peut lui donner de nouvelles valeurs :

> java -jar mymodel.jar 42 3.14159 demo true
Model Mymodel
p1: 42
p2: 3.14159
p3: demo
p4: true
Done.

Si on veut fournir un texte contenant des espace pour p3 on ajoute des guillements :

> java -jar mymodel.jar 42 3.14159 "Eat at Joe's" true
Model Mymodel
p1: 42
p2: 3.14159
p3: Eat at Joe's
p4: true
Done.

Si on fait une erreur de typage sur un paramètre on obtient un message mais cela n'est pas bloquant :

> java -jar mymodel.jar douze 3.14159 "Eat at Joe's" true
Warning: could not convert the argument "douze" into an Integer value
         for the parameter p1. The default value will be used instead.
Model Mymodel
p1: 0
p2: 3.14159
p3: Eat at Joe's
p4: true
Done.

Si on ne met pas le bon nombre de paramètres ils sont ignorés :

> java -jar mymodel.jar 42 3.14159 "Eat at Joe's" true 100
Model Mymodel
p1: 0
p2: 0.0
p3: rien
p4: false
Done.

Utilisation avec R

Sur R on peut utiliser la fonction system() qui permet d'exécuter une ligne de commande depuis un programme en R.

Il faut d'abord s'assurer que le modèle Ocelet pourra accéder aux dossiers dont il a besoin (le dossier data/ en particulier). Pour cela on peut par exemple placer le dossier d'exécution de R dans le dossier d'un modèle Ocelet (là où se trouvent le fichier .jar et le dossier data/). Pour indiquer le dossier de travail c'est la fonction setwd().

Par exemple cela donnerait quelque chose comme cela :

setwd("chemin/vers/mon/ocelet/workspace/MyModel")

system("java -jar mymodel.jar 42 3.14159 demo true")

Avec wait=FALSE on peut lancer une exécution de manière asynchrone (le programme R n'attend pas qu'Ocelet ait fini pour continuer). Et avec paste() on peut construire des commandes pour intégrer des variables dans les paramètres passés à Ocelet :

for (i in 1:8) {system(paste("java -jar mymodel.jar ",(i*50)," 3.14159 demo true"),wait=FALSE)}

Utilisation avec Python

Le principe est le même qu'avec R mais la fonction utilisée est différente:

subprocess.call("java -jar mymodel.jar 42 3.14159 demo true")

on peut y ajouter shell=true pour exécuter la simulation dans un shell séparé:

subprocess.call("java -jar mymodel.jar 42 3.14159 demo true",shell=true)

2022-11-29 12:08:30
Retour en début de page  

Nouvelle version 2.1.0 Chartreuse disponible

Nouveautés :

  • Lecture d'entités directement dans une KeyMap à partir des datafacers Csvfile, Shapefile et Postgis.
  • Calcul d'écarts temporels entre deux DateTime que l'on peut obtenir dans l'untié de son choix : heure, jour, mois, etc.
  • Accelération de certains traitements sur des rasters
  • Quelques fonctions supplémentaires pour tester l'existence de fichiers ou de dossiers
  • Possibilité de spécifier le système de coordonnées d'un modèle sans le lire depuis un fichier de données
  • Amélioration des possibilités de pilotage d'un modèle exporté en .jar en passant des paramètres depuis une ligne de commande.
  • Quelques bugs connus ont été corrigés.
2021-02-04 17:56:30
Retour en début de page  

Formation Ocelet Montpellier en juin 2019

Nous organisons une formation Simulation de dynamiques spatiales avec Ocelet du 17 au 21 juin à la Maison de la Télédétection à Montpellier.

Davantage de détails sont disponibles sur le site du Cirad

2019-04-12 05:28:05
Retour en début de page  

Formation Ocelet La Réunion du 28 mai au 1er juin 2018

Nous organisons une formation Simulation de dynamiques spatiales avec Ocelet du 28 mai au 1er juin 2018 à Saint-Pierre sur l'île de La Réunion.

Objectifs

Analyser un processus de dynamique spatiale et le traduire en langage Ocelet Prendre en main de la plateforme de modélisation Apprendre le langage de modélisation Ocelet Produire des cartes animées dans QGis et Google Earth Modéliser certaines situations fréquemment rencontrées : diffusion spatiale, changement d’occupation du sol

Public

Chercheurs, ingénieurs, techniciens ayant des besoins en modélisation et simulation de dynamiques spatiales et paysagères.

Programme

  • Jour 1 (demi-journée ; lundi après-midi)

    • Présentation d’Ocelet
    • Prise en main
    • Notions de base
  • Jour 2 (mardi)

    • Programmer avec Ocelet
    • Entités
    • Datafacer (Csv, Shp, PostGIS, Kml)
  • Jour 3 (mercredi)

    • Géométries, Raster
    • Scénario, Gestion du temps
    • Relation et graphes d’interaction
  • Jour 4 (jeudi)

    • Relations et graphes d’interaction (suite)
    • Relations Vecteur - Raster
    • Modéliser avec Ocelet : cas pratiques
  • Jour 5 (dernière demi-journée ; vendredi matin)
    • Modéliser avec Ocelet : cas pratiques (suite)
    • Discussion ouverte
    • Evaluation de la formation

Prérequis

Avoir déjà manipulé un logiciel SIG (ArcView, ArcGIS, QGis, ..). Une première expérience d’un langage de programmation est préférable (n’importe quel langage, y compris R ou Matlab). Venir avec son propre ordinateur portable (linux, windows). Les logiciels utilisés pendant la formation seront fournis.

Contacts

Si vous souhaitez participer, veuillez prendre contact rapidement avec l'équipe Ocelet. Voir la page contact.

2018-03-27 16:28:01
Retour en début de page  

Formation Ocelet Montpellier en février 2018

Nous organisons une formation Simulation de dynamiques spatiales avec Ocelet du 12 au 16 février à la Maison de la Télédétection à Montpellier.

Davantage de détails sont disponibles sur le site du Cirad

2018-01-29 12:23:13
Retour en début de page  

Formation Ocelet à Dakar 23-27 octobre 2017

Nous organisons une formation à l'usage d'Ocelet à Dakar (Sénégal) du 23 au 27 octobre 2017.

Cette formation s'adresse :

  • Aux chercheurs, ingénieurs, gestionnaires du territoire et étudiants
  • Intéressés par la modélisation de processus ayant une composante géographique
  • Souhaitant évaluer des scénarios d’évolution d’un territoire par la simulation
  • Ayant une première expérience de manipulation d’information géographique
  • Ayant si possible quelques notions de programmation (avec R par exemple.)

Objectifs de la formation :

  • Prise en main de la plateforme de modélisation
  • Apprentissage du langage de modélisation Ocelet
  • Production de cartes animées dans QGis et Google Earth
  • Eléments de méthode pour passer d’une réflexion de type analyse spatiale à une réflexion dynamique : sur des processus spatiaux.
  • Comment modéliser certaines situations fréquemment rencontrées : diffusion spatiale, changement d’occupation du sol, changement d’échelle.

Modalités

  • Formation gratuite, organisée par le Cirad, le DP PPSZ et l'Isra-Bame
  • La session comprend 8 demi-journées du lundi après-midi au vendredi matin inclus.
  • Il sera demandé aux participants de venir avec un ordinateur portable
  • Les transports et hébergement sont à la charge des participants
  • Inscription préalable obligatoire (nombre de places limité)

Contacts

Si vous souhaitez participer, veuillez prendre contact rapidement avec l'équipe Ocelet. Voir la page contact.

2017-08-24 06:51:07
Retour en début de page  

Soutenance de thèse : Ocelet et format raster

Le 15 décembre 2015 à Montpellier, Mathieu Castets (UMR TETIS) a soutenu sa thèse intitulée : Pavages réguliers et modélisation des dynamiques spatiales à base de graphes d’interaction : conception, implémentation, application

Résumé

La modélisation et la simulation de dynamiques spatiales, en particulier pour l'étude de l'évolution de paysages ou de problématiques environnementales pose la question de l'intégration des différentes formes de représentation de l'espace au sein d'un même modèle. Parmi les différents outils existants de modélisation de dynamiques spatiales (Cormas, Dypal, Netlogo, Seles, GAMA, ...), Ocelet est un langage métier basé sur le concept original de graphe d'interaction. Ce type de graphe porte à la fois la structure d'une relation (qui peut être spatiale, fonctionnelle, hiérarchique, sociale, ..) entre entités d’un modèle et la sémantique décrivant son évolution. Les relations entre entités spatiales sont ici traduites en graphes d'interactions et ce sont ces graphes que l'on fait évoluer lors d'une simulation. S’il est communément admis que l'on peut modéliser l'espace soit par des formes aux contours définis (format vecteur), soit par une discrétisation en grille régulière (format raster), les concepts à la base d'Ocelet peuvent potentiellement manipuler ces deux formes de représentation. Le format vecteur est déjà intégré dans la première version d'Ocelet. L'intégration du format raster et la combinaison des deux restaient à étudier et à réaliser.

L'objectif de la thèse est d'abord étudier les problématiques liées à l'intégration des champs continus et leur représentation discrétisée en pavage régulier, à la fois dans le langage Ocelet et dans les concepts sur lesquels il repose. Il a fallu notamment prendre en compte les aspects dynamiques de cette intégration, et d'étudier les transitions entre données géographiques de différentes formes et graphe d'interactions à l'aide de concepts formalisés. Il s'est agi ensuite de réaliser l'implémentation de ces concepts dans la plateforme de modélisation Ocelet, en adaptant à la fois son compilateur et son moteur d'exécution. Enfin, ces nouveaux concepts et outils ont été mis à l'épreuve dans trois cas d'application très différents : deux modèles sur l’île de la Réunion, le premier simulant le ruissellement dans le bassin versant de la Ravine Saint Gilles s'écoulant vers la Côte Ouest de l'île, l’autre simulant la diffusion de plantes invasives dans les plaines des hauts à l'intérieur du Parc National de La Réunion. Le dernier cas décrit la spatialisation d'un modèle de culture et est appliqué ici pour simuler les rendements de cultures céréalières sur l’ensemble de l’Afrique de l’ouest, dans le contexte d'un système d'alerte précoce de suivi des cultures à l'échelle régionale.

2015-11-16 12:23:35
Retour en début de page  

52 eme Colloque ASRDLF à Montpellier

Le 9 juillet 2015, Xavier Augusseau (UMR TETIS) a présenté : Des modèles et simulations spatio-temporelles comme "objets intermédiaires" pour mettre en débat l'étalement urbain à la Réunion

Le 52ème colloque de l'Association de Science Régionale de Langue Française (ASRDLF) a eu lieu du 7 au 9 juillet 2015 à Montpellier, France.

Xavier Augusseau (UMR TETIS) a eu l'occasion d'y présenter un aspect des travaux réalisés dans le cadre du projet DESCARTES (ANR 11-AGRO-002-01).

2015-07-09 15:00:00
Retour en début de page  

Présentation d'Ocelet au pôle SEAS-OI

Le 5 mail 2015, dans le cadre des séminaires SEAS-OI, Pascal Degenne a effectué une présentation d'Ocelet intitulée : Modélisation et simulation de dynamiques spatiales et paysagères. Exemples de travaux réalisés avec Ocelet

Lieux :

Pôle SEAS-OI

40 avenue de Soweto,
97410 Saint Pierre,
Ile de La Réunion

Résumé de la présentation :

Ocelet est un langage métier dédié à la modélisation et la simulation de dynamiques spatiales développé à l'UMR TETIS. À travers le concept de graphe d'interactions, Ocelet permet l'intégration de processus spatiaux dans leur diversité de représentations. Cette intégration favorise une compréhension systémique et spatialisée des processus en jeux sur un territoire ou un paysage. Pascal a présenteé plusieurs exemples d'application donnant un aperçu de la diversité des problématiques que l'on peut aborder avec cet outil : dynamique d'évolution d'usage des sols, processus spatiaux de diffusion (d'une plante invasive, d'un pathogène ou d'un insecte ravageur dans son milieu), dynamique d'un trait de côte de mangrove, et quelques autres. Il a expliqué les concepts à la base du langage ocelet et la plateforme de modélisation qui a été développée autour de ce langage.

2015-05-05 10:00:00
Retour en début de page