https://github.com/ad4gd/component-geonetwork
Informatino about the data catalogue of the project
https://github.com/ad4gd/component-geonetwork
Last synced: 4 months ago
JSON representation
Informatino about the data catalogue of the project
- Host: GitHub
- URL: https://github.com/ad4gd/component-geonetwork
- Owner: AD4GD
- License: mit
- Created: 2024-09-04T08:47:37.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-18T18:25:16.000Z (over 1 year ago)
- Last Synced: 2025-10-28T17:48:07.403Z (8 months ago)
- Size: 40 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Component-GeoNetwork
Information about the data catalogue of the project. This is GeoNetwork
* https://catalogue.grumets.cat/geonetwork/ad4gd
We decided to use the ISO 19115:2003. It is by far the most used version. While 19115-1 has been arroud for years, there aren't much implementations outthere.
**Table of content**
1. [How to get the metadata records using CSW](#how-to-get-the-metadata-records-using-csw)
2. [Linked data trick. How to add URL/URI to some places that are not prepared for that](#linked-data-trick-how-to-add-urluri-to-some-places-that-are-not-prepared-for-that)
3. [Linking to documents stored in the Geonetwork as attachments](#linking-to-documents-stored-in-the-geonetwork-as-attachments)
4. [Adding the schema of the data](#adding-the-schema-of-the-data)
5. [Defining a datacube](#defining-a-datacube)
6. [Templates](templates.md)
7. [Common issues](#common-issues)
8. [Known issues](#known-issues)
## How to get the metadata records using CSW
* As ISO19115:2003: https://catalogue.grumets.cat/geonetwork/ad4gd/cat/csw?REQUEST=GetRecords&SERVICE=CSW&version=2.0.2&resultType=results&typeNames=gmd:MD_Metadata&namespace=xmlns(gmd=http://www.isotc211.org/2005/gmd)&outputSchema=http://www.isotc211.org/2005/gmd&maxRecords=100&elementSetName=full
* As DCAT: https://catalogue.grumets.cat/geonetwork/ad4gd/cat/csw?REQUEST=GetRecords&SERVICE=CSW&version=2.0.2&resultType=results&typeNames=dcat&namespace=xmlns(gmd=http://www.isotc211.org/2005/gmd)&outputSchema=http://www.w3.org/ns/dcat%23&maxRecords=100&elementSetName=full
## Linked data trick. How to add URL/URI to some places that are not prepared for that.
The ISO19139 XML schema implementation add the possibility to transform any string into a link. This is done by replacing `` by a ``. This is an example:
```
Thomas Hodson
```
Can be replaced by
```
Thomas Hodson
```
We use this trick in several places:
### Limitation in CI_Citation
In ISO19115:2003 CI_Citation there is a linkage mechanism. In our implementation, if there is need to a URL to be associated with a cintation, we associate it to the title.
Example:
```
AD4GD project category
```
### How to encode link data concepts to ISO 191115 keyworks
In ISO 19115:2003 there is no easy way to associate a URI to a term. It is possible to associate a URI to a Citation of a thesuarus as a "collection of concepts" but not to an individual keyword. Actualy the since a Citation has no URL, thesaurus cannot be expressed as a URL easily. Here is the solution that combines the 2 previous tricks
```
PM1
PM2.5
Climate and Forecast Standard Names
2024-09-04
```
This is the visual result (as you can see text become links that can be "cliked":

This practice may seem very peculiar, but in fact it is also used by the EEA catalogue as it can be seen here:
https://sdi.eea.europa.eu/catalogue/srv/cat/csw?REQUEST=GetRecordById&SERVICE=CSW&version=2.0.2&typeNames=gmd:MD_Metadata&namespace=xmlns(gmd=http://www.isotc211.org/2005/gmd)&outputSchema=http://www.isotc211.org/2005/gmd&maxRecords=100&elementSetName=full&id=e4fcc5da-e51f-4b66-a9b0-78da0cfd9a15
## Linking to documents stored in the Geonetwork as attachments
Adding a attached file to a metadata record is easy. The process starts by associating resources:

Then a document could be added by droping it in the area or selecting it from the disc

By clicking in the newly formed link to the file a associated resource metadata is created:

The link to the associated resource metadata ins automatically populated and can be manually finalized

This create a distribution info like this:

That can be seen in XML linke this:
```
https://catalogue.grumets.cat/geonetwork/srv/api/records/63ae32b2-2f5c-418a-bd72-439d17b3131c/attachments/Hundekehlesee.csv
WWW:LINK-1.0-http--link
Hundekehlesee.csv
```
In this case the trick of the gmx:anchor is not necessary becuase there is a linkage element available.
## Adding the schema of the data
Adding the application schema language for the data can also be done by linking the citation title with an anchor. Unfortunately the title is not shown in the Geonetwork visualization interface for some unknown reason, so we had to add an alternative title with the same information. The purpose of the schema information is to validate the distribution info. In this case, we use use one of the attached files as a URL instead of an external resource. Note that you can add attached resources but do not have them as associated resources to avoid having them visible in the distribution info.
```
Mammals occurrences GBIF test schema
Mammals occurrences GBIF test schema
JSON
CSVW
```
This is how it is presented in the user interface.

## Defining a datacube
The definition of a datacube requires at least 3 things (this respects the xarray and the CIS model)
* Dimensions (called coordinates in xarray and domainSet in CIS)
* Bands (called data variables in xarray and rangeType in CIS)
* Other metadata (called attributes in xarray and metadata in CIS)
Lets imagine that we what to describe this datacube using ISO 19115 (here we see it expressed as an python xarray in ODC)
```
Dimensions: (time: 7, y: 668, x: 688)
Coordinates:
* time (time) datetime64[ns] 1987-01-01 1992-01-01 ... 2017-01-01
* y (y) float64 4.488e+06 4.488e+06 ... 4.748e+06 4.748e+06
* x (x) float64 2.599e+05 2.603e+05 ... 5.275e+05 5.279e+05
spatial_ref int32 32631
Data variables:
Aquatic (time, y, x) float32 -9.999e+03 -9.999e+03 ... -9.999e+03
Forest (time, y, x) float32 -9.999e+03 -9.999e+03 ... -9.999e+03
HerbaceousCrops (time, y, x) float32 -9.999e+03 -9.999e+03 ... -9.999e+03
WoodyCrops (time, y, x) float32 -9.999e+03 -9.999e+03 ... -9.999e+03
Shrublands (time, y, x) float32 -9.999e+03 -9.999e+03 ... -9.999e+03
Attributes:
crs: EPSG:32631
grid_mapping: spatial_ref
```
### Declaring a datacube
This the way we declare that the data is a "datacube". We beleive that "datacube" is an aggregation of "layers" and "files" so in some sense is a upper hierachycal level.
```
Datacube
```
### Dimensions
The dimensions are described in the statial representation.

In our case, this is a georectified grid with 3 dimensions: x, y and time. The names of the dimensions are codified in ISO as collumn, row and time respectively. To fully define the grid, we need to split the defintion in two parts. In the spatial representation we can define the periodicity of the grid and in the extent we can define the actual positions.
```
3
668
390
688
390
7
5
260280 4747860
527430 4488900
center
```
The actual ranges of values of the dimensions are present in the extent. The temporal extent can be defined as a list of time instances or as a time interval. The Geonetwork view does not present the time instants in the view mode so we go for the interval. We are also forced to duplicate the bbox in WGS84 lat/long and in the crs of the dataset.

```
true
0.0639119375078333
3.33828975521333
40.5143870238267
42.8845959400033
260085 4488705 527625 4488705 527625 4748055 260085 4748055 260085 4488705
1987-01-01
2017-01-01
```
### Bands
The bands are described in the content information. For each band we can describe the band name, the data type and the range of values.

```
Terrestrial Connectivity Index
Aquatic
FLOAT
Aquatic habitat
3
0
Forest
FLOAT
Forest habitat
...
```
## Common issues
### Leftovers that may generate validation errors
One of the most common issues in Geonetwork is the leftovers due to empty elements left in the GUI
Example:

This will result in an empty element marked with `gco:nilReason="missing"`.
```
Malte Zamzow
```
As we can see in the image this element is optional and could be removed from the final XML document.

Unfortunately, removed elements are the difficult to recover in the GUI.
### Create record from a "group".
We have a issue in creating metadata records when we are in the url of a "group" (https://catalogue.grumets.cat/geonetwork/ad4gd). You have to use the main URL to do so (https://catalogue.grumets.cat/geonetwork) and remember to associate the new record to the write group in the [add record] interface. If you forget to do so, you can always change the group by selecting the record and entering in the edit mode:

#### Groups and subportals
There are to different concepts that can be used together but they are different: "groups" and "portals"
Actually "group" is not the name for the URLs and they are called "portals" or "sources"

A portal is associate to a group while configuring it using a special filter "+groupPublished":

A user can be associeted to different groups to get permissions to act in different roles in the system:

## Known issues
* The JSON as base64: https://github.com/geonetwork/core-geonetwork/issues/8343#issuecomment-2328020366
* Title of the citations is not shown in the full view mode: https://github.com/geonetwork/core-geonetwork/issues/8370