How does GEOP4TH compare with existing tools?#

An innovative collaborative platform#

The main functionality of GEOP4TH is to enable and facilitate the collaborative development of workflows for specific datasets or specific applications (such as models).

This feature takes advantage of the collaborative functionnalities offered by Git and the operability of Python packages.
In order to facilitate this collaborative development and its generic purpose, GEOP4TH also implements two important ideas:

  • generic elementary bricks intended to be assembled into any workflows

  • separation of workflow steps in order to keep workflows the most generic they can be.

This concept of separating model-agnostic steps (« standardizing data ») and model-specific steps (« formating data ») has been previously used and described in other tools, like in CWARHM (Knoben et al., 2022). Nevertheless, these tools do not integrate the first component of GEOP4TH, namely the library of generic elementary functions (geobricks), which are essential to make it much more modular and easier for users to developp their own workflows.

Note

It is useful to mention that GEOP4TH intends to follow the 4 guidelines of CWARHM:

  • separate the steps

  • easy to handle

  • modular

  • keep track of the operations carried out in the metadata (implementation in progress)

GEOP4TH provides a channel between data and applications (web apps, models, figures…), saves time and makes data processing easier, and allows users to share processing. By offering a collaborative platform that allows the outsourcing of geospatial data pre-processing, GEOP4TH can also be useful to data providers and application developers.

Why as a Python package?#

Python is one of the most widely used langages, and is full of packages very relevant for geospatial applications, such as advanced statistics, graphical tools, web development tools, models… In this ecosystem we believe that GEOP4TH can bring a meaningful help.

GEOP4TH & other existing Python packages#

Python includes many excellent libraries and packages designed to process geospatial data. We can cite GDAL, geopandas, xarray, IRIS, and many others. These packages are extremely powerful, but they are also quite specific (for example vector data and raster netCDF have to be handled with different packages, here geopandas and xarray). This specificy, as well as their wide range of functionalities, require users to acquire beforehand a rather deep knowledge of every relevant package in order to be able to choose the right one, with the right function and the right arguments. GEOP4TH relies on all these packages to propose a common « interface », where the choice of package, function and arguments is operated by GEOP4TH. GEOP4TH gathers these packages and adds an additional level of abstraction in order to simplify geospatial processings, while maintaining the possibility for advanced users to access all choices and options.

It is worth citing WhiteBox, even if this software is not used in GEOP4TH. WhiteBox is a software that includes different parts. One of them, WhiteBoxTools Open Core, is an extremely complete open library of geospatial and hydrological functions. While it is also available on Python, it has not been originally designed in that way, and therefore shows some limitations: it is not possible to work with variables, only with files, and functions can be quite restrictive (imposed file format…). To solve this, WhiteBox offers another part as WhiteBox Workflows for Python. While this package has been genuinely designed for Python, and offers even more functionalities (such as point cloud functions), it is proprietary. In this regard, GEOP4TH provides a much-less-complete panel of tools, but already sufficient for a lot of applications, and as a free/libre software. Besides, one of the most important function of GEOP4TH, reprojection, is not available in WhiteBox.

These differences add up to the collaborative functionality specific to GEOP4TH.

GEOP4TH & GIS softwares#

GIS softwares are a great option to work with geospatial data. They offer a vast range of functioanlities, beggining with advanced ergonomy and visualisations. However, such softwares are generally not designed to be genuinely coupled within Python programs, nor to take full advantage of the many and fast-evolving Python packages.

GEOP4TH intends to keep up with some of GIS softwares ergonomy strenghts, such as automatic loading of any file format, while proposing original visualisation tools, all this in the form of a Python package fully integrable in any Python program.