1 of 59

GeoNetwork Orientation

Finding your way with GeoNetwork

Jody Garnett

June 2023

Author:

Date:

2 of 59

Spatial Data publication and discovery following the free and open source source software philosophy.

We are a Software Development Company based in Bennekom, with developers in the Netherlands, Spain and Canada.

3 of 59

Bennekom

© ronald verwijs

4 of 59

Jody Garnett

GeoCat Live Product Owner, GeoCat BV

jody.garnett@geocat.net

@jodygarnett

Open Source Geospatial Foundation

Incubation Committee (Chair)

GeoTools (PSC, Officer)

GeoSesrver (PSC)

Eclipse Foundation

JTS Topology Suite

ImageN

Netherlands open-source company focused on spatial data publication and discovery.

5 of 59

I am new to GeoNetwork

This is the presentation I wanted to read!

  • How do I make it go :)
  • What does GeoNetwork actually do?
  • Who is GeoNetwork for?
  • What do they do with GeoNetwork?

6 of 59

I am new to GeoNetwork

This is the presentation I wanted to read!

  • How do I make it go :)
  • What does GeoNetwork actually do?
  • Who is GeoNetwork for?
  • What do they do with GeoNetwork?

As an open-source technologist:

  • Who makes this thing, what is the community like?
  • What kind of quality or maturity are we looking at?
  • What makes GeoNetwork go, what is it’s super-power?

7 of 59

GeoNetwork

First impressions

8 of 59

geonetwork-opensource.org

“Open source” in the title?

Vendor-neutral foundation!

9 of 59

Logo: Zen and the art of metadata

Metadata monk enjoying the “zen” of contemplating data

Letters “GN”�(look sideways)

Wrapping the Globe

10 of 59

Trying it out

Part I - Installation and setup

11 of 59

Official Distributions

User-guide “Quickstart” assumes we have GeoNetwork installed already!

Before you start:

  • Java web-application
  • OpenJDK 8
    • Use the one from your Linux distribution
    • Or use adoptopenjdk.net for Linux and macOS
    • Java 11 not supported yet!
  • ElasticSearch (for GeoNetwork 4)

Distributions:

  • Installer
  • WAR
  • Source-code
  • Docker

Maintenance guide has many more details.

12 of 59

Official Distributions: Java Installer

  • Download geonetwork-install-3.10.0-0.jar, double-click to run, or:�java -jar geonetwork-install-3.10.0-0.jar
  • I ended up running on the terminal:�cd /Applications/geonetwork/bin�./start.sh

13 of 59

Third-party Distribution: Windows Installer

14 of 59

Official Distributions: Web Application

Bring-your-own application server:

  • Download geonetwork.war
  • Install in your application server
    • The examples assume Tomcat

15 of 59

Official Distribution: Source-code

Building from source:

  • Checkout�git clone --recursive https://github.com/geonetwork/core-geonetwork.git
  • Build:cd core-geonetwork�mvn install -DskipTests
  • Run:�cd web�mvn jetty:run -Penv-dev

16 of 59

Official Distributions: Docker

Running docker:

  • Visit hub.docker.com/_/geonetwork
  • Run, being sure to map port 8080:�docker run --name netnetwork -d -p 8080:8080 geonetwork

17 of 59

Setup

Starting with localhost:8080/geonetwork

Quickstart tour:

  • Sign-in
  • Admin console
  • Load samples
  • Search
  • View record
  • Map

18 of 59

Setup: Sign-in

Sign in as “admin”..

Quickstart tour:

  • Sign-in
  • Admin console
  • Load samples
  • Search
  • View record
  • Map

19 of 59

Setup: Settings

Admin console → Settings

  • Rename catalog and fill in some details

Quickstart tour:

  • Sign-in
  • Admin console
  • Load samples
  • Search
  • View record
  • Map

20 of 59

Tour: Load samples

Quickstart tour:

  • Sign-in
  • Admin console
  • Load samples
  • Search
  • View record
  • Map

Admin console → Metadata and templates

  • Load samples for selected standards

21 of 59

Trying it out

Part II - GeoNetwork for Visitors

22 of 59

geonetwork-opensource.org

Search�for spatial records

Also a map portal

23 of 59

Quick-search by topics or resource type

Quickstart tour:

  • Sign-in
  • Admin console
  • Load samples
  • Search
  • View record
  • Map

We can now try out the application

  • Use topic or resource facets

24 of 59

General search using Text

Quickstart tour:

  • Sign-in
  • Admin console
  • Load samples
  • Search
  • View record
  • Map

We can now try out the application:

  • Use text search

25 of 59

View a record

Quickstart tour:

  • Sign-in
  • Admin console
  • Load samples
  • Search
  • View record
  • Map

Viewing an individual record

26 of 59

Record downloads

Quickstart tour:

  • Sign-in
  • Admin console
  • Load samples
  • Search
  • View record
  • Map

Records contain lots of detail:

  • Extent, source of data, download link

27 of 59

Review data with “Add to map”

Quickstart tour:

  • Sign-in
  • Admin console
  • Load samples
  • Search
  • View record
  • Map

From record, we can “Add to Map”

  • Opens a map to review external data

28 of 59

Use a map to mix and match content

Quickstart tour:

  • Sign-in
  • Admin console
  • Load samples
  • Search
  • View record
  • Map

Map lets us explore more content

  • Search the catalog, upload KML

29 of 59

Manage and download maps

Quickstart tour:

  • Sign-in
  • Admin console
  • Load samples
  • Search
  • View record
  • Map

Download map when done!

30 of 59

GeoNetwork is a Catalog

GeoNetwork is built up as a catalog

  • Manages thousands of records
  • Visitors search and browse content
    • Some content is stored in the catalog
    • Some content is provided by external documents or web services

GeoNetwork as a map portal

  • Maps can be used to visualize spatial data

31 of 59

Publish - Find - Bind

QGIS

GeoServer

BIND

32 of 59

Publish - Find - Bind

QGIS

GeoServer

BIND

GeoNetwork

Publish

Find

33 of 59

Managing your Records

34 of 59

geonetwork-opensource.org

Editing and publishing records

A bunch of standards

Data and documents

35 of 59

geonetwork-opensource.org

“Harvest” from other catalogs

System and security config

Figure out what is used

36 of 59

It is 6am do you know where your data is?

Helps your team

  • Find out what information is available in your organization?
    • Do you have shared directories of shapefiles of dubious lineage?
    • Get a handle on duplicate information
  • Perhaps you have a obligation to share information with the public
    • Open data is happy data .. but can anyone find it?
    • For example government directive?

37 of 59

Do you know where your map came from?

Helps your team:

  • Keep track of the information used within the organization
    • Information you generate and are responsible for
    • Information you have purchased or maintained
    • Information you publish to share with other parties
  • Do you trust your map?
    • Who collected the data?
    • What was the data collected for? How recently was it collected?
    • Has it been processed along the way?
    • Was it hand edited with a sharpie?

38 of 59

Preflight: Load templates

  • default templates

Admin console → Metadata and templates

  • Load templates and samples for all

39 of 59

Creating a record

Contribute → Add new record

  • default templates
  • Add new record

40 of 59

Creating a record

Template for Raster data in ISO19139

  • default templates
  • Add new record
  • Raster ISO19139

41 of 59

Creating a record

Fill in details!

  • default templates
  • Add new record
  • Raster ISO19139
  • Fill in details!

42 of 59

Harvest from a Web Service

  • Harvest from WMS
  • Run once

43 of 59

Harvest from a Web Service

  • Harvest from WMS
  • Run once
  • Harvest Results

44 of 59

Harvest from a Web Service

  • Harvest from WMS
  • Run once
  • Harvest Results
  • Review Record

45 of 59

Technical Approach

How does it work?

46 of 59

geonetwork-opensource.org

Developer Friendly

Open all the things!

Extend and customize

47 of 59

data directory

GeoNetwork 3 Baseline

Angular

Bootstrap

Spring

metadata profile

ISO 19139:2007

Dublin Core

Administration

Editor

Search

web services

CSW

REST

MapViewer

OpenLayers

workflow

Publication

harvesting

export

ZIP

CSV

Classificiaton

Users and Groups

Schema

database

H2

application server

Jetty

Templates

Lucene

Lucene Index

Spatial Index

Attachments

Thumbnails

Elasticsearch

Postgres

QSearch

RDF

ISO 19115:2018

Folder

CSW

OAI PMH

OGC:W*S

ArcSDE

Oracle

Saxon

48 of 59

Technology Takeaways

Strong architecture boundaries:

  • Ability to swap out databases�(example: PostGIS)
  • Ability to swap data directory�(example: S3 buckets)

Well structured java application

  • Clear architecture boundaries
  • popular spring framework

Can see evidence of maturity

  • Investment in the codebase
  • LuceneElasticsearch

49 of 59

Heavy use of XML technologies

  • “As expected” for validation
    • XML Schema Definition to define structure for each standard
    • Schematron rules used to capture interactions between document elements
  • Plug-ins for each standard
    • Metadata 101” repo for the XSD�(attempt to be vendor-neutral)

<!-- Title is truncated if longer than maxLength. -->

<xsl:variable name="maxLength" select="'40'"/>

<xsl:variable name="ltitle">

<xsl:call-template name="escapeString">

<xsl:with-param name="expr">

<xsl:choose>

<xsl:when test="string-length($metadata/title) &gt; $maxLength">

<xsl:value-of

select=

"concat(substring(normalize-space($metadata/title), 1, $maxLength), ' ...')"

/>

</xsl:when>

<xsl:otherwise>

<xsl:value-of select="normalize-space($metadata/title)"/>

</xsl:otherwise>

</xsl:choose>

</xsl:with-param>

</xsl:call-template>

</xsl:variable>

metadata-utils.xsl

50 of 59

Expert use of XML technologies

  • “Oh wow you went there”
    • XSLT is used to process�documents into other forms
  • Typical use
    • Process a record into HTML page
    • Process a record into a PDF
  • Unexpectedly cool use
    • Dynamically make the HTML editor!

XML that makes XML is the happiest XML

51 of 59

GeoNetwork 4.x Series

  • GeoNetwork 4.x Series
    • Active investment in roadmap
    • Java 11, Maven, Docker, Microservices
  • Collaboration
    • Email, proposals, … no so much
    • PRs .. yes
    • Community maintains active forks
      • Real challenge to work to collaborate across branches
      • Result → open pull-requests

52 of 59

Who makes it

53 of 59

geonetwork-opensource.org

More than a license

Good to see multiple vendors

Organization based

54 of 59

GeoNetwork in the Wild

55 of 59

Canadian Government

Multilingual user interface

They added a shopping cart for data!

Actions!

56 of 59

data directory

FGP Data Catalog

Angular

Bootstrap

Spring

metadata profile

HNAP

Administration

Editor

Search

web services

CSW

REST

MapViewer

OpenLayers

workflow

ECC Metadata Workflow

harvesting

export

ZIP

CSV

Classificiaton

Users and Groups

HNAP Schema

database

PostgreSQL

application server

Tomcat

Templates

Lucene

Lucene Index

Spatial Index

Attachments

Thumbnails

Elasticsearch

Elasticsearch

data access

jndi default

Web Experience Toolkit

Page Layout Hooks

ECC Workflow

ECC Workflow

JNDI

Header

Menus

web server

Apache

RAMP Viewer

registration

RCS Services

Map Cart

DOI

57 of 59

Dutch Government

“GeoCat Live”

58 of 59

United Nations

The original geonetwork!

QED: “geonetwork-opensource”,�open source is a feature!

59 of 59

Thank you!