|
[[_TOC_]]
|
|
|
|
# Introduction
|
|
# Introduction
|
|
|
|
|
|
J2K est implémenté dans la plateforme de modélisation et de simulation JAMS. Un modèle JAMS est défini sous la forme d'un état initial, d'un ensemble de données d'entrées, de valeurs de paramètres et enfin d'un agencement de modules qui décrivent les opérations à réaliser au cours d'une simulation. Avant de pouvoir utiliser notre protocole de communication pour communiquer avec un modèle J2K, il est nécessaire d'éditer ce modèle pour y rajouter des modules spécifiques à la communication que nous avons développé. Le chapitre [Modules de communication J2K](j2k_modules) décrit ces modules et explique également comment les intégrer dans un modèle existant. Dans la suite de ce chapitre nous considérons donc un modèle J2K "communicant".
|
|
J2K est implémenté dans la plateforme de modélisation et de simulation JAMS. Un modèle JAMS est défini sous la forme d'un état initial, d'un ensemble de données d'entrées, de valeurs de paramètres et enfin d'un agencement de modules qui décrivent les opérations à réaliser au cours d'une simulation. Avant de pouvoir utiliser notre protocole de communication pour communiquer avec un modèle J2K, il est nécessaire d'éditer ce modèle pour y rajouter des modules spécifiques à la communication que nous avons développé. Le chapitre [Modules de communication J2K](j2k_modules) décrit ces modules et explique également comment les intégrer dans un modèle existant. Dans la suite de ce chapitre nous considérons donc un modèle J2K "communicant".
|
... | @@ -42,8 +42,13 @@ Voici la liste des commandes disponibles présentées sous forme d'exemples: |
... | @@ -42,8 +42,13 @@ Voici la liste des commandes disponibles présentées sous forme d'exemples: |
|
* `{"command": "free"}` : libérer le modèle pour qu'il s'exécute jusqu'à la fin sans interruption
|
|
* `{"command": "free"}` : libérer le modèle pour qu'il s'exécute jusqu'à la fin sans interruption
|
|
* `{"command": "info"}` : demander des information sur l'état du modèle
|
|
* `{"command": "info"}` : demander des information sur l'état du modèle
|
|
* `{"command": "set", "key": "infiltration", "value": {"939": 10000, "940": 20000} }` : Définir les valeurs d'un attribut pour un ensemble d'HRU ou de reach via les modules spécifiques (infiltration, aspersion, drip, surface, reachin, reachout) ou génériques (cf. section "Modules génériques" ci-dessous). La clé "key" doit contenir le nom du module. La clé "value" doit contenir un dictionnaire indexé par les identifiants des HRU (ou des reachs) et contenant les valeurs de l'attribut. Dans cette exemple par exemple on modifie l'infiltration des HRU n° 939 et 940 pour les fixer respectivement à 10000 et 20000.
|
|
* `{"command": "set", "key": "infiltration", "value": {"939": 10000, "940": 20000} }` : Définir les valeurs d'un attribut pour un ensemble d'HRU ou de reach via les modules spécifiques (infiltration, aspersion, drip, surface, reachin, reachout) ou génériques (cf. section "Modules génériques" ci-dessous). La clé "key" doit contenir le nom du module. La clé "value" doit contenir un dictionnaire indexé par les identifiants des HRU (ou des reachs) et contenant les valeurs de l'attribut. Dans cette exemple par exemple on modifie l'infiltration des HRU n° 939 et 940 pour les fixer respectivement à 10000 et 20000.
|
|
* `{"command": "getHru", "key": "actRD1"}` récupère la valeur de la variable d'état "actRD1" de toutes les HRUs sous la forme d'un tableau associant identifiant de HRU et valeur de variable.
|
|
* `{"command": "getHru", "keys": ["actRD1", "actRD2"]}` récupère les valeurs des variables d'états listées en clées (ici "actRD1" et "actRD2") de toutes les HRUs sous la forme d'un tableau associant identifiant de HRU et les valeurs des variables.
|
|
* `{"command": "getReach", "key": "Runoff"}` idem que ci-dessus pour le Runoff des reachs.
|
|
* `{"command": "getReach", "keys": ["actRD1", "Runoff"]}` idem que ci-dessus pour la composante "RD1" et le "Runoff" des reachs.
|
|
|
|
* `{"command": "getHruSum", "keys": ["actRD1", "actRD2"]}` récupère les valeurs des variables d'états listées en clées (ici "actRD1" et "actRD2") sommées sur toutes les HRUs sous la forme d'un tableau associant identifiant de HRU et la la valeur agrégée de chacune des variables.
|
|
|
|
* `{"command": "getReachSum", "keys": ["actRD1", "Runoff"]}` idem que ci-dessus pour la composante "RD1" et le "Runoff" des reachs.
|
|
|
|
* `{"command": "getHruStorage"}` Renvoie la valeur de toute l'eau stoquée dans les Hrus (pour un modèle jams ayant la même strucutre que cette version de J2k-coupling) ie la somme des compartiments actMPS, actLPS, actDPS, totSWE, sotredInterceptedWater, actRG1 et actRG2 sur toutes les Hru.
|
|
|
|
* `{"command": "getReachStorage"}` Renvoie la valeur de toute l'eau stoquée dans les Reachs (pour un modèle jams ayant la même strucutre que cette version de J2k-coupling) ie la somme des compartiments actRD1, actRD2, actRG1, actRG2 sur tous les reachs. Attention, dans certains modèles jams les modélisateurs introduisent un brin artificiel d'identifiant 9999 entre le brin exutoire et l'exutoire réel. Ce brin faussera les calculs s'il est conservé dans le modèle.
|
|
|
|
* `{"command": "getCatchmentRunoff"}` Renvoie le runoff du brin exutoire du bassin versant (ie le brin dont l'identifiant d'exutoire est "0" dans le fichier de paramètre des reachs). Attention, dans certains modèles jams les modélisateurs introduisent un brin artificiel d'identifiant 9999 entre le brin exutoire et l'exutoire réel. Ce brin faussera les calculs s'il est conservé dans le modèle.
|
|
|
|
|
|
## La commande SET
|
|
## La commande SET
|
|
|
|
|
... | @@ -82,4 +87,4 @@ ou en R : |
... | @@ -82,4 +87,4 @@ ou en R : |
|
|
|
|
|
`j2kSet("modifHruAttributPrecip", c(1, 2), c(55, 56))`
|
|
`j2kSet("modifHruAttributPrecip", c(1, 2), c(55, 56))`
|
|
|
|
|
|
On peut donc, après adaptation du modèle, modifier depuis l'extérieur n'importe quel attribut à n'importe quel moment du déroulement du modèle J2K. |
|
On peut donc, après adaptation du modèle, modifier depuis l'extérieur n'importe quel attribut à n'importe quel moment du déroulement du modèle J2K. |
|
\ No newline at end of file |
|
|