Useful information for developers interested in using the Thünen-Atlas.

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 https://github.com/GeoNode/geonode/. The issue tracker for the project is at https://github.com/GeoNode/geonode/issues.

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.

REST API

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.

Examples

REST API

To get all Resources as a JSON encoded result you can call https://atlas.thuenen.de/api/v2/resources?format=json

To get the resources with UUID 94124cfe-1ab5-11ec-a7c2-0242ac1f0003 you shall call https://atlas.thuenen.de/api/v2/resources?page_size=20&page=1&filter{uuid.icontains}=94124cfe-1ab5-11ec-a7c2-0242ac1f0003

CSW

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 PropertyIsLike

csw = CatalogueServiceWeb('https://atlas.thuenen.de/catalogue/csw')

anytext = PropertyIsLike('csw:AnyText', 'birds')')

csw.getrecords2(constraints=[anytext])

print csw.results

print csw.records

WMS

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 Nicaraguan political boundaries background layer, whose name is risk:nicaragua_admin. Then, create an instance of OpenLayers.Layer.WMS:

var geonodeLayer = new OpenLayers.Layer.WMS("GeoNode Risk Data", "http://demo.geonode.org/geoserver/wms",{ layers: "risk:nicaragua_admin" });

WFS

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

https://atlas.thuenen.de/geoserver/wfs?request=GetCapabilities

For example, to get the full Nicaraguan admin boundaries (see WMS) use:

https://atlas.thuenen.de/geoserver/wfs?request=GetFeature&typeName=risk:nicaragua_admin&outputformat=SHAPE-ZIP

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