Thünen-Atlas Software

The Thünen-Atlas is built using the open source software stack GeoNode. We encourage you to use the Thünen-Atlas and GeoNode to build new applications using the components and resources it provides. This page is a starting point for developers interested in taking full advantage of those. It also includes links to the project's source code so anyone can build and customize their own GeoNode based data portal.

All the code that runs the Thünen-Atlas is based on the GeoNode project and is open source. The code is available at The issue tracker for the project is at

Additional funding

The Thünen-Atlas development was supported by the German Research Foundation DFG under the grant agreement number 442032008 (NFDI4Biodiversity). The project is part of NFDI, the National Research Data Infrastructure Programme in Germany.

Provided Services

OGC Services

The data in this application is served using open standards endorsed by ISO and the Open Geospatial Consortium. In particular, WMS (Web Map Service) is used for accessing maps, WFS (Web Feature Service) is used for accessing vector data, and WCS (Web Coverage Service) is used for accessing raster data. You can use these services in your own applications like GIS clients (QGIS, GRASS, ArcGIS) or using libraries such as OpenLayers, GeoTools, and OGR (all of which are open-source software and available at zero cost). Additionally, CSW (Catalog Service for the Web) supports access to collections of descriptive information (metadata) about data and services.


Additionally, to the geodata based OGC Services the Thünen-Atlas provides a REST API. You can take a look at the REST-APIs self-description here.



To get all Resources as a JSON encoded result you can call

To get the resources with UUID 4ffecb75-2236-4953-86a4-e32215f3ced7 you shall call{uuid.icontains}=4ffecb75-2236-4953-86a4-e32215f3ced7


To interact with GeoNode's CSW you can use any CSW client (QGIS MetaSearch, GRASS, etc.). The following example illustrates a simple invocation using the OWSLib Python package:

from owslib.csw import CatalogueServiceWeb
from owslib.fes import PropertyIsEqualTo, PropertyIsLike, BBox

# variables
csw_endpoint = ''
search_text = 'agraratlas'

# connect to csw
csw = CatalogueServiceWeb(csw_endpoint)

# 1. query by search string
text_query = PropertyIsEqualTo('csw:AnyText', search_text)
csw.getrecords2(constraints=[text_query], maxrecords=20)
# print response titles
for rec in csw.records:


To include a GeoNode map layer in an OpenLayers map, first find the name for that layer. This is found in the layer's name field (not title) of the layer list. For this example, we will use the Hydrographic Data of the Mackerel and Horse Mackerel Egg Survey layer, whose name is geonode:hydro_survey_megs. Then, create an instance of OpenLayers.Layer.WMS:

var geonodeLayer = new OpenLayers.Layer.WMS("Thünen-Atlas", "",{ layers: "geonode:hydro_survey_megs" });


To get data from the GeoNode web services use the WFS protocol. To fetch available datasets you can send a GetCapabilites request:

For example, to get the full Hydrographic Data of the Mackerel and Horse Mackerel Egg Survey (see WMS) use:

Changing output format to json, GML2, GML3, or csv will get data in those formats. The WFS protocol also can handle more precise queries, specifying a bounding box or various spatial and non-spatial filters based on the attributes of the data.

GeoNode's Web Services

GeoNode's Web Services are available from the following URLs:

Dynamic tiles via WMS: WMS 1.3.0
Vector data via WFS: WFS 2.0.0
Raster data via WCS: WCS 2.0.1
Metadata search via CSW: CSW 2.0.2
Metadata search via OpenSearch: OpenSearch 1.0
Resources via REST API Swagger UI