Python for ENVI-met

Starting with Version 5, ENVI-met integrates scripting and analysis using the powerful Python system. This has become possible mainly thanks to the development of the excellent Python API header translation and wrappers Python for Delphi (P4D) (GitHub Link). P4D is licensed under the MIT license. ENVI-met Python Scripts are either MIT licensed or, like this manual, Creative Common BY-NC-SA 4.0, whichever is the less restrictive in use.

Over the last years, Python has established itself as universal scripting language for all thinkable use cases. Python covers an endless list of areas of expertise ranging from data analysis and visualisation, application scripting or AI engineering. To cut a long story short, there is almost no thinkable area of computer science where we might miss Python versions or Python integrations of the up-to-date code libraries or cutting edge technologies.

From the perspective of ENVI-met, there are numerous ways we can benefit form the Python developments:

  • Processing, Analysis and Visualisation of model data
  • Controlling and scripting the behaviour of ENVI-met applications
  • Extending the data interfaces of applications using Python libraries and packages

This page relates to the general aspects of using the Python system in ENVI-met.

General aspects

Using the internal Python distribution

ENVI-met ships with a small 64Bit Python distribution ensuring that minimal requirements and software dependencies are satisfied. However, in almost all cases, you will need to install additional packages into the Python system that has become quasi-standard over the time. Typical packages that are required for almost all scripts are NumPy, MatPlotLib or Pandas. These packages need to be installed into the ENVI-met Python distribution after installing ENVI-met itelf to use most of the scripts related to ENVI-met. The ENVI-met Python distribution is completely local to ENVI-met, which means it does not interfere with other Python distributions you might have on your system. On the downside of this approach you will need to install additional packages into the local Python distribution.

ENVI-met DataStudio will support you in an automated install of the most required packages for ENVI-met. If DataStudio recognizes that e.g. Pandas is missing, if will prompt you to enter a quick install routine to add the missing modules (Internet access required)

Using my own Python distribution

Many users already do have a working Python installation on their computers including all the packages and libraries they need for their daily work. There is no need to double a Python distribution. Using the Workspace Manager, you can direct ENVI-met any time to use your personal installed Python distribution instesd of using and manage the embedded ENVI-met Python version.

Make sure all required packages and modules are existing and matching

Well, that's not possible. Any script can use its own set of required modules and libraries and the libs between each other may have dependencies, sometimes there are (version) conflicts which are not resolvable. This is an issue related to programming in Python (or to programming in general) and it cannot be solved by ENVI-met. This normally does not apply to scripts shipped with ENVI-met, but even here, updating single packages can result in crushing the command pipeline even in default scripts or bad dependencies between scripts may occure.

With BETA 3, you can add a list of required special modules in the script header and DataStudio will check, if they exist. If not (-and if selected as option-) DataStudio will automatically launch PIP and tries to install the missing modules and packages. We labelled these modules as Special Modules because modules which are not basically a part of Python, but are so basic that they need to exist on any system (such as NumPy or Pandas) will probably not be extra-listed in the Required Modules section.

However, there is no guarantee, that this install will be successful or that ALL of the required special modules have been listed in the header and that their versions will work together. If in doubt, you need to check the script in detail and go back to its sources to find out, what is missing.

Scripting ENVI-met apps in Python

All ENVI-met applications that support an interaction with Python include the DataStudio Module (DataStudio for Python). While the interface is the same for all applications and the Lightbox function is working project wide, each version of DataStudio can only control the application and offer the objects for the application it is designed for.

For example, the DataStudio integrated into LEONARDO will allow you to access almost all objects and modules related to the LEONARDO software plus those available in all instances of DataStudio. However, scripts making use of these LEONARDO specific objects can only be run in LEONARDO.

The same applies for example for DataStudio for Monde: These scripts will not run in other DataStudio Versions if they use Monde objects. Therefore the script management of ENVI-met is very strict concerning the usage scope of a script. As a consequence it is (-at the moment-) not possible to create a script that calls e.g. Monde and LEONARDO functionalities at the same time (these scripts would also be hard to mange so most likely we will implement some kind of subroutine calls in the next versions)

In addition, ENVI-met related objects are only available inside the ENVI-met DataStudio biotope. In the future we will also provide standalone packages for accessing fundamental operations such as reading and analysing EDX fies from other Python environments, but this is up-to-come.

How to import python scripts (from the website)

Python scripts for ENVI-met are normal Python scripts, but use the ending .enpy in most cases. Only for libraries, the ending .py must be kept in order to work with Python.

Add scripts automatically

  • Just double-click the downloaded .enpy script. This will launch ScriptCatcher where you can simply add the script to your library by clicking the “Add” button.

nolink

Launch ScriptCatcher manually

Click on the Control icon top left in DataStudio and select “Run ScriptCatcher”. You can also launch ScriptCatcher from the WINDOWS app menue.

Add scripts manually

If you want to manage several scripts in one go, a direct copy might be the quickest option.

  • Download the script
  • Switch to your download folder and copy/cut the script
  • Navigate to your personal script folder
  • Paste the script there
  • Reload the script library
  • The imported script should now appear in your DataStudio (you might need to click “All Scripts” at the top-right if no file context is set in DataStudio)

Note: If you are not sure where your personal script folder is located, navigate to the Project Manager (Start Headquarter, switch to Data and Settings, click Projects / Workspaces). In the Project Manager the location of your personal script folder is printed at the bottom-right area under “Your folders”.

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies