User Interface (Client)
GIS layers are displayed in a web page using Openlayers 4.
Catena has several npm packages that can be used to quickly set up a map:
- Catena-gis is an implementation of Openlayers for showing layers that have been uploaded by the user or generated by project.
- Catena-gis-baselayers provides a scrollable list of basemaps, including Openstreetmap and Bing.
- Catena-gis-userlayers is a library for adding, deleting, sorting, and otherwise managing a set of data sources. Data can come from sites hosted using ArcGIS REST API such as National Map, CSIP data sources such as LAMPS (Land-use and Agricultural Management Practices web Service) and CFA (Comprehensive Flow Analysis), as well as other publicly-available data sources.
- Catena-gis-geoprocessing can use project layers as input for GIS geoprocessing functions (such as buffer and intersection) and add the results to the project’s GIS layer store. Higher-level APIs for HRU generation are also available.
Other capabilities include: Digital Elevation Model (DEM) extraction, heads-up digitizing, importing table data with coordinate information, and display of time-series data.
Backend (Server)
Catena GIS is a Django application running in an Ubuntu server version 16.04. The map API is built on several libraries in Python 3: Additional plugins for application development include:
- Fiona for reading of shapefiles and geojson.
- Shapely for geoprocessing.
- Rtree for spatial indexing.
- Mapserver for displaying project layers in Openlayers using WMS.
Developers are able to build their own plugins for other open-source GIS engines like PostGIS, which will give them the ability to perform most types of analysis.