Peter Vogt is a research scientist in the field of remote sensing applications. He studied meteorology at the Free University of Berlin, Germany where he completed his MSc in 1992 and his PhD in 1997 on the assessment of biophysical parameters of vegetation from remote sensing data. His main expertise is in the field of radiative transfer, digital image analysis and program development for the exploitation of remote sensing data. He has worked in a variety of fields including the detection of burnt areas, forest fragmentation analysis, oil spill detection in the Mediterranean Sea, eutrophication risk assessment in coastal waters, desert locust monitoring, derivation of the vertically resolved actinic flux, surface UV-radiation, and sensor design support for the PRISM/LSPIM and VIIRS/NPOESS sensors.
For most end-users, the term ‘software’ is equivalent with executing a given application to obtain a desired result. Moreover, the highest importance is usually attributed to the software being free to use. Besides intuitive use, a key requirement for success and wider acceptance of a software application is easy access, which is often facilitated though open-source projects. While users naturally only care about stability and functionality of the software, software developers often see their task completed once the application reaches a certain degree of maturity and its source code is made available. However, in addition to ease of use and targeted software development, a third component in the life cycle of software design [Vogt 2019] is the software provision. The importance of adequate software dissemination entails a wide range of aspects, which are often undervalued but are crucial to best meet end-user expectations and to achieve the highest application acceptance.
In this manuscript, we outline a perspective on approaches to appropriately address issues of software provision aimed at promoting software in an efficient way. We illustrate the motivation and features of various aspects of software provision on the recently published software GWB [Vogt et al., 2022]  and its implementation on the FAO cloud computing platform SEPAL .
- Software provision
This section summarises reflections on various aspects when disseminating a software application.
Source code: The provision of the source code is often perceived as a final product delivery. However, most end-users cannot make any use of the source code because they do not understand the programming language, do not know how to compile it or how to properly link required dependencies. The large number of Linux distributions provides an additional challenge due to varying inter-dependencies of distribution-specific compiled libraries and packaging policies. Packaging - the conversion of source code into a functional executable binary - is a science on its own and is beyond the skills of a typical end-user.
Target platform: Maximum outreach is achieved through a software setup that will work on as many platforms and operating systems (OS) as possible.
Software packaging: The scope of packaging is to bundle the entire application into a single archive, including or linking OS-specific dependencies, pre- and post-installation instructions, and the integration into the OS via menu entries. Examples are rpm and deb-packages (Linux), dmg-packages (macOS), and exe/msi-packages (MS-Windows). Packaging allows for efficient system-wide software management: installation, upgrades, and removal of the application and provides application access to all OS users. However, it also requires administrator rights, which are not available on many secured or closed IT environments, such as in government agencies, where users may fully access a limited OS-space only, i.e., their $HOME directory. Yet, this situation can be addressed by setting up the software and all required components in a self-contained single directory, which is then compressed into a self-extracting installer. Any user can then download such a standalone installer, extract it and have full access to the application without administrator rights. A similar result can be achieved with a Docker container .
Documentation: Documentation is crucial for software adoption, including a user manual, product sheets with application examples, and guided instructions in workshop material. The manual should also be completed by a user community to help end-users answer the questions they will raise while using the software. Developers of the tools should be actively involved in tackling these questions [Srba et al., 2016].
The GuidosToolbox Workbench (GWB) [Vogt et al., 2022] provides various generic image analysis modules as command line scripts on 64-bit Linux systems. In this section we use GWB to exemplify how we addressed the software provision points mentioned before. * Source code: in addition to the distribution-independent compiled executables we provide the plain text source code for all modules in a dedicated subdirectory of the application. * Software packaging: all modules are launched via customised Bash scripts and setup in the IDL programming language . Because IDL provides its own set of highly efficient processing libraries, all scripts and required libraries can be stored in a single, distribution-independent application directory. Combined with customised packaging setup-files, this archive is then converted into distribution-specific packages for common Linux distributions. In addition, we provide a generic standalone installer using the makeself  archiving tool. The standalone installer can be used on any Linux distribution for either, system-wide installation, or installation in user space on restricted systems, i.e., under $HOME. All installer packages include two sample images and module-specific usage descriptions, aimed at generating sample output illustrating the features of each module. * Target platform: With its focus as a server-application, GWB is setup for the Linux OS, which can also be used on a regular desktop PC. The installation on cloud computing platforms, including an interface to upload/download personal data, greatly enlarges the outreach into the user community and allows usage of the software from any device having a Web browser and Internet access. A Jupyter [Kluyver, T., 2016] based application was developed within the SEPAL platform . This application uses widgets and interactive displays to help the end-user provide personal data to the software. This application is developed in Python using the sepal-ui  framework, embedding a fully independent set of requirements. As the application is run using the voila dashboarding tool [QuantStack, 2019], the end-user is never confronted with the CLI, vastly improving the scope of potential end-user to non-IT experts. * Documentation: the project homepage  provides a brief overview and installation instructions. Highly detailed usage instructions are available on SEPAL for the command-line use  and the interactive Jupyter dashboard .
Software provision is an often overlooked yet critical component in software design. It comprises various aspects, which when addressed appropriately, can make a great impact in the promotion, outreach and acceptance of a software application.
In this section, we describe the main routines of the MSPA code with reference to the morphological image analysis operations they rely on with links to their implementation in the open source Morphological Image Analysis Library (MIAL) recently released on GitHub at github.com/ec-jrc/jeolib-miallib by the first author. All morphological image analysis operators at the basis of MSAP are described in [Soille, 2004]. We briefly present the main MSPA foreground classes with reference to source code of the main morphological function used to compute them: core, boundaries, islets, connectors, and branches. The actual pseudo-code will be added in the final version of this paper and will include details on the computation of all MSPA feature classes including those of connected components of background pixels. The underlying code in the C programming language is available on GitHub at github.com/ec-jrc/jeolib-miallib/blob/master/core/c/mspa.c
The performance of the algorithm is evaluated on images of increasing size as well as for on-the-fly computation for interactive analysis and visualisation. We demonstrate experimentally that the complexity of the proposed implementation is linear. That is, the computational time increases linearly with the number of pixels. We also show that the algorithm can handle images up to 2^64 pixels. For example, a Global MSPA map of forest cover in equal area projection and with a pixel resolution of 100 meter (400,748 x 147,306 pixels) was processed on the JRC Big Data Analytics Platform [Soille et al. 2018] in 12 hours. Processing large images is very much needed to mitigate dependencies with regards to the image definition domain because pixel classes may depend on the observation domain.
As for the on-the-fly computation for interactive analysis and exploratory visualisation based on Jupyter notebooks [De Marchi and Soille, 2019], we show that the proposed implementation is fast enough for integration in JupyterLab with on-the-fly computation in an area corresponding to the mapview area and at resolution matching its zoom level. A Voila dashboard is in preparation and will be available for demonstration at the conference.
Morphological spatial pattern analysis has gained traction since its inception in 2008. For many years, we maintain a dedicated MSPA website with extensive documentation, various GIS extensions and a user-friendly provision of MSPA within the desktop application GTB and the server application GWB. The present open release of MSPA will further expand the potential user-community. We are in the process of making MSPA directly available in the pyjeo python package [Kempeneers et al., 2019], so that data scientists using python for their analysis will directly benefit from the MSPA open source release. Since MSPA is available through a library compiled in C, it can be easily integrated in other data science environments. We therefore expect the release of the MSPA code under an open source license to further boost its use for the analysis of geospatial patterns and indeed any other types of spatial patterns occurring in other scientific domains.
- Soille, P., Vogt, P. "Morphological segmentation of binary patterns" (2009) Pattern Recognition Letters, doi: 10.1016/j.patrec.2008.10.015
- Soille, P. et al. 2018. "A versatile data-intensive computing platform for information retrieval from big geospatial data" Future Generat. Comput. Syst. doi: 10.1016/j.future.2017.11.007
- Ossola, A. et al. "Yards increase forest connectivity in urban landscapes" Landscape Ecol 10.1007/s10980-019-00923-7
- Julien Carlier et al. "Using open-source software and digital imagery to efficiently and objectively quantify cover density of an invasive alien plant species" Journal of Environmental Management doi: 10.1016/j.jenvman.2020.110519
- Victor Rincon et al. "Proposal of new Natura 2000 network boundaries in Spain based on the value of importance for biodiversity and connectivity analysis for its improvement" Ecological Indicators doi: 10.1016/j.ecolind.2021.108024
- Giuseppe Modica et al. "Implementation of multispecies ecological networks at the regional scale: analysis and multi-temporal assessment" Journal of Environmental Management, Volume 289, 2021, doi: 10.1016/j.jenvman.2021.112494
- Vogt, P. and Riitters, K. "GuidosToolbox: Universal digital image object analysis (2017) European Journal of Remote Sensing" doi: 10.1080/22797254.2017.1330650
- Peter Vogt et al. "GuidosToolbox Workbench: spatial analysis of raster maps for ecological applications" (2022) Ecography. doi: 10.1111/ecog.05864
- Soille, P. "Morphological Image Analysis: Principles and Applications" (2004). Springer, doi: 10.1007/978-3-662-05088-0
- D. De Marchi and P. Soille, "Advances in interactive processing and visualisation with JupyterLab on the JRC big data platform (JEODPP)", in Proc. of BiDS'19, 2019. doi: 10.5281/zenodo.3239239
- Kempeneers, P. et al. "pyjeo: A Python Package for the Analysis of Geospatial Data" ISPRS Int. J. Geo-Inf. 2019. doi: 10.3390/ijgi8100461