Contributing to Open Source Software Development
Enhancing open source software
52°North’s software research engineers not only develop 52°North software, but also contribute to a number of other open source software packages. These contributions take the form of anything from discussions and bug reports to bug fixing and feature development.
GeoNode
GeoNode – a geospatial content management system – provides a web-based application and platform for the development of Geospatial Information Systems (GIS) and the implementation of Spatial Data Infrastructures (SDI). Managed under the umbrella of OSGeo, it has recently been released in version 4.1, with version 4.2 being on the horizon. 52°North has contributed to numerous projects by using and providing GeoNode as an important component for the deployment of Research Data Infrastructures (RDI).
To keep the project on its path, we have contributed to the integration of new OGC services, (cloud) deployment patterns, and improved developer experience. This includes active development of Helm deployment charts for Kubernetes, sharing experiences on Docker setup and cloud deployment use cases, or constructive collaboration on project setup patterns in different development contexts.
The many funded and professional service projects gave us room to participate in the GeoNode community and provided us with good visibility over the past year. One staff member has joined the GeoNode Development Team.
In addition to the GeoNode core development team, 52°North staff also became members of the German GeoNode User Group, where we participate in ongoing discussions and resolution of real user needs. The German GeoNode User Group is gaining increasing visibility and will serve as an incubator for new GeoNode features needed by stakeholders from different domains.
KomMonitor
KomMonitor is an openly developed GIS web application consisting of modular software components with which local authorities can integrate any spatial data and indicators, link them together and use them for monitoring processes. It is available as Open Source Software originally maintained by the Bochum University of Applied Sciences. 52°North is one of the main contributors to the project and also provides deployment and operation services to interested municipalities.
KomMonitor implements a coherent system of modular technical components in the sense of a geodata infrastructure. Thus, it provides an integrated data infrastructure that enables the linking and maintenance of interdisciplinary municipal (geo) data sets and statistical time series information at any spatial level. Through automated processing functions, new indicators can be derived from existing data sets. Finally, a web application enables the explorative display, analysis and evaluation of spatio-temporal indicators.
All aspects of this integrated data infrastructure are part of a service-oriented software architecture running natively runs on Docker. 52°North maintains the Docker deployments and provides support for installation and operation. In addition, 52°North initiated several activities to prepare KomMonitor for cloud deployments. Our team developed Kubernetes manifest files for deploying KomMonitor within a hosted Kubernetes Cluster. We also run a demo instance of KomMonitor within an AWS cluster, and share our cloud experience with various projects and IT service providers.
In addition to deployment activities, 52°North also contributed to the development of KomMonitor’s main features. This includes the following enhancements and improvmenets:
- Migration to Spring Boot 3, Springdoc and Spring Security for the Importer API
- Geopackage and OGC API – Features support for KomMonitor Importer API and Web Client
- Layout improvements for several statistical diagrams of the KomMonitor Web Client
- Virtual accessibility analysis functions as part of the KomMonitor Web Client
To meet today’s security requirements for trusted software code, 52°North has implemented automated CVE scanning for KomMonitor software components. This helps us to detect and address security threats in a timely manner and increases trust in the KomMonitor software components.
In addition, we continued our pygeoapi activities and created a proof of concept for replacing the KomMonitor Processing Engine with the pygeoapi implementation of the OGC API – Processes. This initiative aims to introduce an interoperable processing interface to KomMonitor that can also be managed by modern workflow orchestration tools.
pygeoapi
During 2023, 52°North’s developers started to engage in the evolution of pygeaopi. In the past the pygeoapi-odc-provider (see below) had been developed previously and applied in different projects by 52°North. Several new aspects have been addressed recently.
In particular, the maturity of the OGC API Processes module was assessed and improved. We deployed test instances and ran the official OGC TEAM Engine test suite against them. The results were discussed with the developers and fixes were contributed. The _OGC API Processes_ module has been used in several research projects to provide processing and analysis functionality as a service.
The pygeoapi-odc-provider is a standalone Python library. Our 52°North team prototypically implemented this library during the OGC Testbed-17 Geo Data Cube project. It offers a provider plugin for pygeoapi to use Open Data Cube instances as a data resource. pygeoapi makes the data from the ODC available via OGC APIs.