Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tutorial:dinamica_ego_script_language_and_console_launcher [2023/08/14 18:23]
admin
tutorial:dinamica_ego_script_language_and_console_launcher [2026/07/06 20:00] (current)
hermann
Line 1: Line 1:
-===== Dinamica EGO script language and console ​line tool =====+===== Dinamica EGO script language and command ​line tool =====
  
  
 ==== What will you learn? ==== ==== What will you learn? ====
  
-  * Naming ​variables ​with alias+  * Naming ​functors ​with aliases
   * [[:EGO Script|Dinamica EGO programming language]]   * [[:EGO Script|Dinamica EGO programming language]]
   * Dinamica EGO Command Line Tool   * Dinamica EGO Command Line Tool
  
  
-As a model becomes more and more complex, you may find useful to save it in EGO format to keep developing ​ the model using [[:EGO Script|EGO programming language]] on a text editor, (e.g. [[http://​notepad-plus-plus.org/​|NotePad++]] or [[http://​www.contexteditor.org|Context]]). For example, the Amazon logging model [[http://​dx.doi.org/​10.1007/​s00267-009-9337-1|(Merry et al, 2009)]] developed in Dinamica EGO involves more than one thousand script lines. Both script formats ([[:XML Script|EGOML/​XML]],​ [[:EGO Script|EGO]]) are 100% compatible, so users can take back and forth a model from the graphical interface ​to the text editor ​without losing any information. Advanced modelers will greatly benefit from this well structured and tractable programming language. ​+As a model becomes more and more complex, you may find useful to save it in EGO format to keep developing the model using [[:EGO Script|EGO programming language]] on a text editor, (e.g. [[http://​notepad-plus-plus.org/​|NotePad++]] or [[http://​www.contexteditor.org|Context]]). For example, the Amazon logging model [[http://​dx.doi.org/​10.1007/​s00267-009-9337-1|(Merry et al, 2009)]] developed in Dinamica EGO involves more than one thousand script lines. Both script formats ([[:XML Script|EGOML/​XML]],​ [[:EGO Script|EGO]]) are 100% compatible, so users can move a model freely between ​the graphical interface ​and a text editor. Note that reopening a saved script in the graphical interface and saving it again may reformat some inputs and outputs according to the current script generation options — the resulting model is semantically equivalent, but may not be byte-for-byte identical to the original. Advanced modelers will greatly benefit from this well structured and tractable programming language.
  
-Open again the model simulate_deforestation_from_1997_2000_30years_ahead.xml. To make the model more intelligible on the text editor, you first need to name some key variables ​and then add comments to parts of the model. Lets do this. Select the Edit Functor tool and click on the Categorical Map 23267_1997.ers.+Open again the model "simulate_deforestation_from_1997_2000_30years_ahead.xml". To make the model more intelligible on the text editor, you first need to name some key functors with aliases ​and then add comments to parts of the model. Let's do this. Select the Edit Functor tool and click on the Categorical Map "23267_1997.ers".
  
-Write in the alias field initial_landscape, click on //Calc Distance Map// and write the alias distance_to_deforested. Now save the model in EGO format.+Write in the alias field "initial_landscape", click on //Calc Distance Map// and write the alias "distance_to_deforested". Now save the model in EGO format.
  
-Open in a text editor, the model simulate_deforestation_from_1997_2000_30years_ahead.ego. The EGO script is as follows: ​+Open in a text editor, the model "simulate_deforestation_from_1997_2000_30years_ahead.ego". The EGO script is as follows:
  
 {{ :​tutorial:​script_1.1.jpg |}} {{ :​tutorial:​script_1.1.jpg |}}
Line 22: Line 22:
 {{ :​tutorial:​script_4.1.jpg |}} {{ :​tutorial:​script_4.1.jpg |}}
  
-Now that you have learned a bit about programming with EGO script language, another resource available in Dinamica EGO is the Command Line Tool. Any model saved in Dinamica EGO, either EGOML/XML or EGO, can be run from the command prompt. Running the model from the command prompt might increases ​model performance,​ as the model becomes free of the burden of the graphical interface. ​+Now that you have learned a bit about programming with EGO script language, another resource available in Dinamica EGO is the Command Line Tool. Any model saved in Dinamica EGO, either EGOML/XML or EGO, can be run from the command prompt. Running the model from the command prompt might increase ​model performance,​ as the model becomes free of the burden of the graphical interface.
  
-To run Dinamica EGO from the command line, simply ​run DinamicaConsoleX (where the X is the major versior number of the application -- e.g. DinamicaConsole7) ​from a command prompt. ​DinamicaConsole utility ​is located in the Dinamica EGO installation folder. ​The parameters accepted by Dinamica Console ​Tool are:+To run Dinamica EGO from the command line, run ''​DinamicaConsole'' ​from a command prompt. ​The executable ​is located in the Dinamica EGO installation folder. ​On Windows, the executable name includes the major version number: ''​DinamicaConsole7'',​ ''​DinamicaConsole8'',​ etc. On Linux, the executable is simply ''​DinamicaConsole''​. For the full list of parameters accepted by the Command Line Tool, see [[:dinamica_console|Dinamica Console]].
  
-^ Dinamica Console Option ^ Option Description ^ +<note tip>​**TIP**:​ another way to loosely couple other computer programs with Dinamica EGO is by means of functor [[:Run External Process]], available in the Control Tab. By using this functor, you will be able to make a call to an external program from within Dinamica, pass to this program intermediate results and feed its output back again into the Dinamica EGO model.</​note>​
-| -verifier <​name>​ | Set functor verifier. | +
-| -output <​filename>​ | Write an output file representing the input model script. | +
-| -log-level <level number> | Set the maximum execution log level. UNCONDITIONAL=0,​ ERROR=1, WARNING=2, RESULT=3, INFO=4, INFO2=5, DEBUG=6, or DEBUG2=7. | +
-| -log-subsystem <level number> | Set the execution log subsystem level. GENERAL=1, OPENCL=2, SCRIPT_READER_WRITER=4,​ FUNCTOR_SCHEDULER=8,​ FUNCTOR_DEPENDENCE_GRAPH=16,​ FUNCTOR_EXECUTION=32,​ FILESYSTEM=64,​ MAP_IO_HANDLER=128,​ FUNCTOR_COPY_ANALYSIS=256,​ and SYSTEM=256. To use more than one, use the sum of the number of the corresponding subsystems. | +
-| -predefined-seed | Use a predefined value as the seed of the random number generators. | +
-| -processors <​number>​ | Override the number of logical processors that should be used. 0=use total number of processor cores instead. | +
-| -granularity <​number>​ | Override the default granularity value. | +
-| -dont-run | Do not run the model script. | +
-| -propagate-exceptions | Propagate top-level exceptions. | +
-| -beep | Beep to indicate that the execution has completed. | +
-| -ask-to-close | Wait a confirmation to close the window. | +
-| -disable-parallel-map-load | Disable loading maps in parallel. | +
-| -disable-parallel-functors | Disable parallel processing of functors. | +
-| -disable-parallel-steps | Disable parallel processing of loop steps. | +
-| -memory-allocation-policy <​code>​ | Policy used to control memory allocation. PREFER_MEMORY=0,​ BALANCED=1, PREFER_DISK=2,​ MEMORY_ONLY=3 and AGGRESSIVE=4 | +
-| -accelerators-policy <​code>​ | Policy used to select accelerator devices. NO_DEVICES=0,​ ALL_DEVICES=1,​ and USER_CONFIG=2 | +
-| -disable-native-expressions | Disable compilation of image expressions to native representation. | +
-| -metadata-profile <​code>​ | Type of the profile used to write file metadata. CUSTOM=0, CSR/​UFMG_ptBR=1,​ and CSR/​UFMG_en=2. | +
-| -map-metadata-template-filename <​filename>​ | Filename with the template used to to write map metadata. Assume the use of CUSTOM profile. | +
-| -map-metadata-file-extension <​extension>​ | File extension used to write map metadata. Assume the use of CUSTOM profile. | +
-| -write-semicolon-in-csv | Write CSV files using semicolons as value separators. | +
-| -session-name <​name>​ | Create session with the given name to share data between Dinamica EGO and an external application. | +
-| -list-accelerators | Show the available accelerator devices. | +
-| -list-functors | Show the available functors. | +
-| -version | Show version info. | +
-| -help | Show this help. | +
- +
-<note tip>​**TIP**:​ another way to loosely couple other computer programs with Dinamica EGO is by means of functor [[:Run External Process]], available in the Control Tab.  By using this functor, you will be able to make a call to an external program from within Dinamica, pass to this program intermediate results and feed its output back again into the Dinamica EGO model. </​note> ​+
  
 [[tutorial:​final_remarks| Next Session]] [[tutorial:​final_remarks| Next Session]]
 +