GeoNode Integration with SDIs and Community Mapping Salvador Bayarri sbayarri@gmail.com World Bank Consultant
Contents Accessing other SDI services Catalog harvesting through Geonetwork Cascading external services manually Preparing GeoNode metadata for external access Other community mapping initiatives GeoCommons Open Street Map
Accessing other SDI services The true power of SDIs is unleashed when data and maps can be reused and value added in other nodes GeoNode is ready to reuse services in 3 ways: Add external WMS (maps) to GeoNode maps Re-publish (cascade) services in GeoServer Harvesting external catalogs into Geonetwork
Add external services to GeoNode maps In GeoNode and most Geoportals, we can add layers from main Web map providers, and also by specifying the service URL Go to the Maps section and select or create a map Then use the Add Layer tool and select Add a New Server
Add external services to GeoNode maps Then, specify the URL address of a WMS service (for instance, http://smit.cathalac.org:8080/geoserver/dataframe/wms) Click on Add Server and a list of available layers should appear Click on a layer name and then Add layers. Close the dialog with Done
Add external services to GeoNode maps You should now see the layer added in the legend, and the WMS image overlaid on your map Some WMS will not be visible at certain scales, at which they appear grayed out in the legend
Add other GeoNode map services In the same way, we can add WMS services from other GeoNodes Find the data you want by connecting to the other node s Data search page Then, in your map viewer, use the node s WMS URL (http://another_geonode/geoserver/wms) to add the GeoNode as a server and add the desired layers from it Note that, currently, GeoNode only publishes layers as WMS, but not the full maps
Add other GeoNode map services Some things that can not be done in GeoNode for now: Add WFS, WCS services to a map Search in other CSW catalogs (we need to harvest to our own, or seach with other tools) Search in other GeoNode list of Data and Maps Add Maps from other GeoNodes
Add other GeoNode map services Exercises: Connect to http://smit.cathalac.org:8080/geoserver/dataframe/wms http://nowcoast.noaa.gov/wms/com.esri.wms.esrimap/wwa? Connect to the trainer s GeoNode and add some of its layers to your GeoNode map
Catalog harvesting We can pull other CSW catalogs into our GeoNetwork metadata DB Only administrators can configure harvesting In the Geonetwork Administration menu, click on Harvesting management (the page will show an empty list of servers)
Catalog harvesting Click the Add button. A list of server types will appear If you need to harvest from another Geonetwork node (for instance, another GeoNode), select this option
Catalog harvesting Leave this blank for GeoNode CSW servers Enter the remote server parameters, optional search criteria and metadata selection options Click Save
Catalog harvesting A new server will appear in the harvesting configuration If you want to harvest immediately, select the catalog server and click on Run. Hit Refresh and you will see the status changed The harvesting may take some time, but you can see the results as they arrive to your node
Catalog harvesting In this example, we can see now the FAO metadata records in our local catalog. For WMS services, we can click on the Interactive Map button to preview them in Geonetwork
Catalog harvesting Now, to make visible the harvested metadata to users, we need to set their access privileges In this case, just select all metadata in the Geonetwork search results page and click on Update privileges action Since we don t want to hide any metadata, click on Set All for the All group in the privilege settings widget. Then click on Submit at the botton
Catalog harvesting Now, if we go back to our GeoNode s Data search page, we will see the newly harvested metadata in the results: Note the green symbol indicating that these datasets are stored on a remote server
Catalog harvesting limitations We can collect the metadata catalog from other GeoNode s Geonetwork instances in the same way In GeoNode and other tools, if the metadata contains a link to a Web page or a download URL we will be able to access this information by clicking on the layer name in the GeoNode search results Unfortunately, the current version GeoNode does not recognize links to WMS and other services, so we cannot use metadata about services to add layers to our maps In addition, GeoNode s own metadata do not contain links to the services published, so other nodes cannot get this information by harvesting, either However, we can reuse the GeoNode services manually!
Cascading external services When we harvest metadata, we get the URL address of external WMS services We can read them by opening the metadata dropdown in Geonetwork s search results page
Cascading external services We can directly use this WMS URL in our GeoNode Maps by adding the WMS server address, as we saw earlier But if we want all users in our GeoNode to be aware of the services provided by the new metadata, we need to create new stores and layers using the GeoServer component (again, we need administrative privileges to do this)
Cascading external services: WMS First, we have to create a new Store (data source) in GeoServer, of type WMS
Cascading external services: WMS Then we need to create new GeoServer layers for the WMS layers we want to re-publish After adding the store, we will be automatically prompted to create layers, or we can later use the Add a new resource link in the Layers page of GeoServer
Cascading external services: WMS After writing the GeoServer metadata info for the new layer, it will appear in the list of Layers
Cascading external services: WMS Once we create the new cascaded WMS layer in GeoServer, it will be automatically available to all users to add it to a GeoNode map
Cascading external services However, the cascaded layers are not available as GeoNode layers in the Data page (we cannot search for them), and we cannot see a description page for them This will probably be fixed for the next GeoNode release
Cascading external services: WFS First, we have to create a new Store (data source) in GeoServer, of type WFS http://v2.suite.opengeo.org/geoserver/ows? service=wfs&version=1.1.0&request=getcapabilities
Cascading external services: WFS Then we need to create new GeoServer layers for the WMS layers we want to re-publish After adding the store, we will be automatically prompted to create layers, or we can later use the Add a new resource link in the Layers page of GeoServer
Cascading external services: WFS When publishing a new WFS layer, we have the opportunity to edit the metadata Some fields may be requested, like bounding boxes GeoServer has links to compute this bounds from the data itself
Cascading external services: WFS After writing the GeoServer metadata info for the new layer, it will appear in the list of Layers
Cascading external services: WFS The cascaded WFS will be automatically available to all users to add it to a GeoNode map, just as the cascaded WMS But it will not be available as a GeoNode data layer Apparently, there is some problem when projecting these layers to the map viewer, maybe it does not support on-the-fly projection for WFS data
Cascading external services Exercise Create additional cascading WMS and WFS services in GeoServer from the harvested metadata or from other known servers Add them to a GeoNode map
Preparing metadata for external access As mentioned earlier, GeoNode creates linkages to download the layers data in different formats We can verify this in the search results of Geonetwork
Preparing metadata for external access If we click in a Download Summary link we can download data of the layer as we do in GeoNode front-end However, the GeoNode metadata do not contain linkage information to access the layer as WMS or WFS
Preparing metadata for external access To allow external access to our layers as geoservices, we can add manually the needed linkages In the metadata edit page, click on the Distribution link on the left Below is the linkage for a KML download as it appears when we edit the metadata We need to add more linkages at the end, by clicking on the + of the last linkage
Preparing metadata for external access A new online-resource box will appear, which we can fill with the WMS or WFS linkage info of our GeoNode layer And then save the metadata record
Preparing metadata for external access The layer will now have an Interactive Map button in the Geonetwork results page If we click on this button, we can test the linkage to WMS or WFS in the embedded map viewer
Preparing metadata for external access Exercise Create WMS and WFS linkages for a vector layer published from your GeoNode Test the linkages in the Geonetwork map viewer
SDI integration: summary GeoNode Web front end Available in map viewer Manual linkage insertion GeoNetwork harvesting CSW External Catalog GeoServer cascading WMS, WFS, WCS External Server Metadata
Integration with other open mapping initiatives GeoCommons (geocommons.com) is a cloud-based Web site to upload and share data to a worldwide community There is only one GeoCommons site, where all information is shared You don t need to install anything to upload and share
Integration with other open mapping initiatives: GeoCommons As with GeoNode, we can upload data layers and then make maps with them We can share both
Integration with other open mapping initiatives: GeoCommons Recently, it has been added an option to publish existing WMS services to GeoCommons So we can cascade GeoNode WMS services to be seen in GeoCommons for a wide audience More information in http://developer.geoiq.com/blog/2011/02/01/wms-and-tiles/
Integration with other open mapping initiatives: GeoCommons From GeoCommons, we can download data And also do simple geoprocesses But we can not access GeoCommons data and maps as Web Services
Integration with other open mapping initiatives: GeoCommons Exercise Register and upload a Belize dataset in GeoCommons Create a map
Integration with other open mapping initiatives: Open Street Map Open Street Map (http://www.openstreetmap.org/) is an initiative focused on creating a shared worldwide map Data is created by means of community contributions (crowdsourcing)
Integration with other open mapping initiatives: Open Street Map Open Street Map data can be seen in GeoNode as one of the base map options in the map viewer It can also be seen in qgis via the OpenLayers plugin However, OSM is not published as WMS, but as a tile service, so we cannot directly use it as a layer in GeoServer/GeoNode
Integration with other open mapping initiatives: Open Street Map The interesting thing about OSM is that we can all contribute to create data There is a very complete (but complex) editing environment in the OSM portal (you just need to register to contribute)
Integration with other open mapping initiatives: Open Street Map There is a typology of point, line and polygons features already defined, that we need to use when adding objects
Integration with other open mapping initiatives: Open Street Map We can interactively add features, or upload GPS data as a reference
Integration with other open mapping initiatives: Open Street Map Amazingly, we can also download all the map data in vector format, using an open XML-based format (.osm)
Integration with other open mapping initiatives: Open Street Map OSM files can be converted into shapefiles using the osm2shp tool from http://code.google.com/p/osm2shp/ The ArcGIS Data Interoperability Extension supports OSM format at the 9.3.1 release of ArcGIS Desktop qgis not only supports OSM format, but we can also perform the complete download-edit-upload workflow from within this GIS
Integration with other open mapping initiatives: Open Street Map With the OpenStreetMap plugin, we can directly download data for a certain geographic extent
Integration with other open mapping initiatives: Open Street Map We see the downloaded data as layers, and we can use the Feature Manager of the plugin to edit the OSM objects
Integration with other open mapping initiatives: Open Street Map Once we finish editing we can upload the changes directly into OSM by using our OSM account
Other Open Street Map editors Merkaartor http://merkaartor.be (Windows, UNIX, MacOS) OSM Editor for ArcGIS (free plugin) http://esriosmeditor.co deplex.com/