User Tools

Site Tools


user-guide:additional_interfaces

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
user-guide:additional_interfaces [2025/01/16 11:32] – [Application Programming Interface] Timuser-guide:additional_interfaces [2025/06/04 12:40] (current) tim2
Line 13: Line 13:
 For example with the graphical user interface windows and panels are used for this communication: For example with the graphical user interface windows and panels are used for this communication:
  
-<uml>@startuml+<uml> 
 +!pragma teoz true 
 +@startuml
 hide footbox hide footbox
 +title GUI
 participant User participant User
 participant "Windows/panels" as gui participant "Windows/panels" as gui
Line 23: Line 25:
 User -> GroIMP: Start GroIMP User -> GroIMP: Start GroIMP
 gui<-> GroIMP gui<-> GroIMP
-User <-> gui+User <-> gui
  
 @enduml</uml> @enduml</uml>
    
  
-====== Headless mode ======+If you are not sure what interface you need for your application you can consider the following page: [[user-guide:additional_interfaces_where_to_start|What interface do I need]]
  
-GroIMP can be started without its graphical interface, in headless. The headless mode executes a provided model and afterwards closes GroIMP. Capturing any feedback from the simulation must be included in the model.+======  ======
  
-<uml> +{{namespace>user-guide:additional_interfaces}}
-@startuml +
-hide footbox +
-title Headless+
  
-User -> GroIMP: Start GroIMP with model +====== GroIMP Server ======
-GroIMP -> User: Print log & close GroIMP +
-@enduml +
-</uml>+
  
 +**<color #ed1c24>This Feature is currently not working!!!!</color>**
  
-More information on the headless mode: +GroIMP can be started as serverThenother instances of GroIMP can connect to the GroIMP server. This enables multiple user concurrently accessing a single model from different devices  as well as modelling on powerful remote server.
-  * [[:groimp-platform:interfaces:headless|Headless implementation]] +
-  * [[:user-guide:advanced-groimp-arguments|Common command line arguments]] +
- +
-A tutorial: +
-  * [[:tutorials:startup-headless-model|Getting started with headless]] +
- +
- +
- +
-====== Command Line Interface ====== +
- +
-GroIMP can be started without its graphical interface, with CLIUnlike the Headless modethe CLI enables interaction with the model during run time including opening and closing models, running simulations, editing RGG files etc. +
- +
-<uml>@startuml +
-hide footbox +
- +
-participant User +
-participant "Interactive command line" as cli +
-participant GroIMP +
- +
- +
-User -> GroIMP: Start GroIMP +
-cli<-> GroIMP +
-User <-> cli +
- +
-@enduml</uml> +
- +
-More documentation on the CLI: +
-  * [[:groimp-platform:interfaces:cli|CLI implementation]] +
-  * [[:groimp-platform:interfaces:cli#commands|List of CLI commands]] +
- +
-A tutorial: +
-  * [[:tutorials:startup-cli-model|Getting started with CLI]] +
- +
-====== HTTP Server ====== +
- +
-It is possible to start GroIMP as a HTTP server to then send model paths via HTTP for GroIMP to execute +
-After GroIMP executed the model values can be returned to the HTTP client who send the request. It is possible to send several models in series or in parallel.   +
- +
-<uml>@startuml +
-hide footbox +
-title HTTP server +
- +
-User -> GroIMP: Start GroIMP +
-User -> GroIMP: Send Model-path +
-GroIMP -> User: Return result +
-User -> GroIMP: Close GroIMP +
- +
-@enduml</uml> +
- +
- +
-More information: +
-  * [[:groimp-platform:interfaces:http_server|HTTP Server commands]] +
-  * [[:groimp-platform:interfaces:http_server#options|HTTP options]] +
-Tutorial: +
-  * [[:tutorials:http_server|Starting GroIMP as a HTTP Server]] +
- +
-====== Application Programming Interface ====== +
- +
-GroIMP can be started as an HTTP API that provides generalized set of commands that allows the interaction with other software. Currently a Python and a R library are provided but any software capable of http requests could interact with GroIMP. +
  
 <uml> <uml>
 @startuml @startuml
 +!pragma teoz true
 hide footbox hide footbox
-title API +title GroIMP server
 participant User participant User
-participant ClientScript +participant "client GroIMP" as g1 
-participant API +participant "remote GroIMP" as g2
-participant GroIMP+
  
  
-User -> GroIMPStart GroIMP +User -> g2starts server side GroIMP 
-User -> ClientScript +User -> g1: starts client GroIMP 
-ClientScript <->API +User <->g1 
-API<-> GroIMP +& g1<->g2 
-User <- ClientScript +User -> g1stops client GroIMP 
-User -> GroIMPStop GroIMP +User -g2stops server side GroIMP
- +
- +
-@enduml +
-</uml> +
-More information on the API: +
-  * [[:groimp-platform:interfaces:api|API implementation]] +
-  * [[https://gitlab.com/grogra/groimp-plugins/api/-/blob/master/commands.md|List of commands]] +
-  * [[:dev-guide:create-new-api-function|How to create new API commands]] +
-  * [[https://wkurth.grogra.de/oberlaender_msc.pdf| GroLink: implementing and testing a general application programming interface for the plant-modelling platform GroIMP]] +
- +
-Tutorials: +
-  * [[:Tutorials:Getting-started-with-GroLink-and-GroPy|getting started with GroLink and Python(GroPy)]] +
-  * [[:Tutorials:Getting-started-with-GroLink-and-GroR|getting started with GroLink and R(GroR)]] +
-  * [[:Tutorials:Getting-started-with-GroLink-and-HTTP|getting started with GroLink and HTTP in your web browser]] +
-  * [[:Tutorials:Handeling-data-in-GroLink-Projects|Handling data in GroLink projects]] +
-  * [[:Tutorials:grolink-on-kubernetes|Deploying GroIMP/GroLink on Kubernetes]] +
- +
-Existing examples: +
-  * [[https://gitlab.com/groimp-api-examples/forester-game | Godot forestry Game]] +
-  * [[https://gitlab.com/groimp-api-examples/pythonnotebook | An jupyter notebook]] +
-  * [[https://gitlab.com/groimp-api-examples/shinyexamples | Two R-Shiny apps to view GroIMP projects in a browser]] +
- +
- +
- +
- +
- +
-====== GroIMP Server ====== +
- +
-GroIMP can be started as a server. Then, other instances of GroIMP can connect to the GroIMP server. This enables multiple user concurrently accessing a single model from different devices.+
  
 +@enduml</uml>
 More information: More information:
   * [[:groimp-platform:interfaces:groimp_server|GroIMP Server]]   * [[:groimp-platform:interfaces:groimp_server|GroIMP Server]]
Line 162: Line 70:
  
  
-Parts of the GreenLab model were reimplemented in the language XL. As the basis, the implementation of the GreenLab model in the software [[http://liama.ia.ac.cn/wiki/projects:greenscilab:download|GreenScilab]], version GreenScilabv1.0_demo, was taken.+Parts of the GreenLab model were reimplemented in the language XL with additional panels in the GUI 
 +As the basis, the implementation of the GreenLab model in the software [[http://liama.ia.ac.cn/wiki/projects:greenscilab:download|GreenScilab]], version GreenScilabv1.0_demo, was taken.
  
 More information on the Greenlab plugin: More information on the Greenlab plugin:
Line 169: Line 78:
 A tutorial: A tutorial:
   * [[:tutorials:greenlab|Getting started with greenlab]]   * [[:tutorials:greenlab|Getting started with greenlab]]
 +  * [[https://wkurth.grogra.de/ssc13/xl13greenlab.pdf |How to use the XL version of the plant model GreenLab]]
  
user-guide/additional_interfaces.1737023553.txt.gz · Last modified: 2025/01/16 11:32 by Tim