{"id":26864410,"url":"https://github.com/ad4gd/component-geonetwork","last_synced_at":"2026-02-25T11:08:44.083Z","repository":{"id":257453150,"uuid":"852113627","full_name":"AD4GD/Component-GeoNetwork","owner":"AD4GD","description":"Informatino about the data catalogue of the project","archived":false,"fork":false,"pushed_at":"2024-10-18T18:25:16.000Z","size":41,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-28T17:48:07.403Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AD4GD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-04T08:47:37.000Z","updated_at":"2024-10-18T18:25:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"a61a39b9-ae3f-447d-8550-60555594b644","html_url":"https://github.com/AD4GD/Component-GeoNetwork","commit_stats":null,"previous_names":["ad4gd/component-geonetwork"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AD4GD/Component-GeoNetwork","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AD4GD%2FComponent-GeoNetwork","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AD4GD%2FComponent-GeoNetwork/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AD4GD%2FComponent-GeoNetwork/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AD4GD%2FComponent-GeoNetwork/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AD4GD","download_url":"https://codeload.github.com/AD4GD/Component-GeoNetwork/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AD4GD%2FComponent-GeoNetwork/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29819265,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T05:36:42.804Z","status":"ssl_error","status_checked_at":"2026-02-25T05:36:31.934Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-31T03:39:09.841Z","updated_at":"2026-02-25T11:08:44.070Z","avatar_url":"https://github.com/AD4GD.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Component-GeoNetwork\nInformation about the data catalogue of the project. This is GeoNetwork\n\n* https://catalogue.grumets.cat/geonetwork/ad4gd\n\nWe 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.\n\n**Table of content**\n1. [How to get the metadata records using CSW](#how-to-get-the-metadata-records-using-csw)\n2. [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)\n3. [Linking to documents stored in the Geonetwork as attachments](#linking-to-documents-stored-in-the-geonetwork-as-attachments)\n4. [Adding the schema of the data](#adding-the-schema-of-the-data)\n5. [Defining a datacube](#defining-a-datacube)\n6. [Templates](templates.md)\n7. [Common issues](#common-issues)\n8. [Known issues](#known-issues)\n\n## How to get the metadata records using CSW\n\n* As ISO19115:2003: https://catalogue.grumets.cat/geonetwork/ad4gd/cat/csw?REQUEST=GetRecords\u0026SERVICE=CSW\u0026version=2.0.2\u0026resultType=results\u0026typeNames=gmd:MD_Metadata\u0026namespace=xmlns(gmd=http://www.isotc211.org/2005/gmd)\u0026outputSchema=http://www.isotc211.org/2005/gmd\u0026maxRecords=100\u0026elementSetName=full\n* As DCAT: https://catalogue.grumets.cat/geonetwork/ad4gd/cat/csw?REQUEST=GetRecords\u0026SERVICE=CSW\u0026version=2.0.2\u0026resultType=results\u0026typeNames=dcat\u0026namespace=xmlns(gmd=http://www.isotc211.org/2005/gmd)\u0026outputSchema=http://www.w3.org/ns/dcat%23\u0026maxRecords=100\u0026elementSetName=full\n\n## Linked data trick. How to add URL/URI to some places that are not prepared for that.\nThe ISO19139 XML schema implementation add the possibility to transform any string into a link. This is done by replacing `\u003cgco:CharacterString\u003e` by a `\u003cgmx:anchor\u003e`. This is an example:\n\n```\n   \u003cgmd:individualName\u003e\n      \u003cgco:CharacterString\u003eThomas Hodson\u003c/gco:CharacterString\u003e\n   \u003c/gmd:individualName\u003e\n```\nCan be replaced by\n```\n   \u003cgmd:individualName\u003e\n      \u003cgmx:Anchor xlink:href=\"https://thomashodson.com/\"\u003eThomas Hodson\u003c/gmx:Anchor\u003e\n   \u003c/gmd:individualName\u003e\n```\nWe use this trick in several places:\n\n### Limitation in CI_Citation\nIn 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.\n\nExample:\n\n```\n   \u003cgmd:CI_Citation\u003e\n      \u003cgmd:title\u003e\n         \u003cgmx:Anchor xlink:href=\"https://ad4gd.eu/pilots/\" xlink:type=\"simple\"\u003eAD4GD project category\u003c/gmx:Anchor\u003e\n      \u003c/gmd:title\u003e\n      \u003cgmd:date\u003e\n         \u003cgmd:CI_Date/\u003e\n      \u003c/gmd:date\u003e\n   \u003c/gmd:CI_Citation\u003e\n```\n\n### How to encode link data concepts to ISO 191115 keyworks\nIn 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\n\n```\n         \u003cgmd:descriptiveKeywords\u003e\n            \u003cgmd:MD_Keywords\u003e\n               \u003cgmd:keyword\u003e\n                  \u003cgmx:Anchor xlink:href=\"https://dd.eionet.europa.eu/vocabularyconcept/aq/pollutant/6002\"\n                              xlink:type=\"simple\"\u003ePM1\u003c/gmx:Anchor\u003e\n               \u003c/gmd:keyword\u003e\n               \u003cgmd:keyword\u003e\n                  \u003cgmx:Anchor xlink:href=\"http://vocab.nerc.ac.uk/collection/P07/current/YUDG9DXK/\"\n                              xlink:type=\"simple\"\u003ePM2.5\u003c/gmx:Anchor\u003e\n               \u003c/gmd:keyword\u003e\n               \u003cgmd:thesaurusName\u003e\n                  \u003cgmd:CI_Citation\u003e\n                     \u003cgmd:title\u003e\n                        \u003cgmx:Anchor xlink:href=\"http://vocab.nerc.ac.uk/collection/P07/current/\"\n                                    xlink:type=\"simple\"\u003eClimate and Forecast Standard Names\u003c/gmx:Anchor\u003e\n                     \u003c/gmd:title\u003e\n                     \u003cgmd:date\u003e\n                        \u003cgmd:CI_Date\u003e\n                           \u003cgmd:date\u003e\n                              \u003cgco:Date\u003e2024-09-04\u003c/gco:Date\u003e\n                           \u003c/gmd:date\u003e\n                           \u003cgmd:dateType\u003e\n                              \u003cgmd:CI_DateTypeCode codeList=\"http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#CI_DateTypeCode\"\n                                                   codeListValue=\"creation\"/\u003e\n                           \u003c/gmd:dateType\u003e\n                        \u003c/gmd:CI_Date\u003e\n                     \u003c/gmd:date\u003e\n                  \u003c/gmd:CI_Citation\u003e\n               \u003c/gmd:thesaurusName\u003e\n            \u003c/gmd:MD_Keywords\u003e\n         \u003c/gmd:descriptiveKeywords\u003e\n```\nThis is the visual result (as you can see text become links that can be \"cliked\":\n![image](https://github.com/user-attachments/assets/8180f5be-0f58-493f-9954-bfd8801f692e)\n\nThis practice may seem very peculiar, but in fact it is also used by the EEA catalogue as it can be seen here:\n\nhttps://sdi.eea.europa.eu/catalogue/srv/cat/csw?REQUEST=GetRecordById\u0026SERVICE=CSW\u0026version=2.0.2\u0026typeNames=gmd:MD_Metadata\u0026namespace=xmlns(gmd=http://www.isotc211.org/2005/gmd)\u0026outputSchema=http://www.isotc211.org/2005/gmd\u0026maxRecords=100\u0026elementSetName=full\u0026id=e4fcc5da-e51f-4b66-a9b0-78da0cfd9a15\n\n## Linking to documents stored in the Geonetwork as attachments\nAdding a attached file to a metadata record is easy. The process starts by associating resources:\n![image](https://github.com/user-attachments/assets/3c831a1a-e1b6-4dac-8ffe-eebff7588e1b)\n\nThen a document could be added by droping it in the area or selecting it from the disc\n![image](https://github.com/user-attachments/assets/dc804804-871e-4aa4-bf34-daa4e848ab00)\nBy clicking in the newly formed link to the file a associated resource metadata is created:\n![image](https://github.com/user-attachments/assets/dbb9137c-4a6f-4834-9b52-01a85e52d997)\nThe link to the associated resource metadata ins automatically populated and can be manually finalized\n![image](https://github.com/user-attachments/assets/302173b7-a6cb-40a5-ae3c-f5bf226ad013)\nThis create a distribution info like this:\n![image](https://github.com/user-attachments/assets/0a36543e-256f-466c-b9e1-31e56197e83d)\nThat can be seen in XML linke this:\n\n```\n\u003cgmd:distributionInfo\u003e\n      \u003cgmd:MD_Distribution\u003e\n         \u003cgmd:transferOptions\u003e\n            \u003cgmd:MD_DigitalTransferOptions\u003e\n               \u003cgmd:onLine\u003e\n                  \u003cgmd:CI_OnlineResource\u003e\n                     \u003cgmd:linkage\u003e\n                        \u003cgmd:URL\u003ehttps://catalogue.grumets.cat/geonetwork/srv/api/records/63ae32b2-2f5c-418a-bd72-439d17b3131c/attachments/Hundekehlesee.csv\u003c/gmd:URL\u003e\n                     \u003c/gmd:linkage\u003e\n                     \u003cgmd:protocol\u003e\n                        \u003cgco:CharacterString\u003eWWW:LINK-1.0-http--link\u003c/gco:CharacterString\u003e\n                     \u003c/gmd:protocol\u003e\n                     \u003cgmd:name\u003e\n                        \u003cgco:CharacterString\u003eHundekehlesee.csv\u003c/gco:CharacterString\u003e\n                     \u003c/gmd:name\u003e\n                  \u003c/gmd:CI_OnlineResource\u003e\n               \u003c/gmd:onLine\u003e\n            \u003c/gmd:MD_DigitalTransferOptions\u003e\n         \u003c/gmd:transferOptions\u003e\n      \u003c/gmd:MD_Distribution\u003e\n  \u003c/gmd:distributionInfo\u003e\n```\nIn this case the trick of the gmx:anchor is not necessary becuase there is a linkage element available.\n\n## Adding the schema of the data\nAdding 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.\n\n```\n\u003cgmd:applicationSchemaInfo\u003e\n      \u003cgmd:MD_ApplicationSchemaInformation\u003e\n         \u003cgmd:name\u003e\n            \u003cgmd:CI_Citation\u003e\n               \u003cgmd:title\u003e\n                  \u003cgmx:Anchor xlink:href=\"https://catalogue.grumets.cat/geonetwork/ad4gd/api/records/63a296c5-f132-4174-bac5-babe5ad94f2a/attachments/GBIF_Mammals_ANSI_csvw.txt\"\u003eMammals occurrences GBIF test schema\u003c/gmx:Anchor\u003e\n               \u003c/gmd:title\u003e\n               \u003cgmd:alternateTitle\u003e\n                  \u003cgmx:Anchor xlink:href=\"https://catalogue.grumets.cat/geonetwork/ad4gd/api/records/63a296c5-f132-4174-bac5-babe5ad94f2a/attachments/GBIF_Mammals_ANSI_csvw.txt\"\u003eMammals occurrences GBIF test schema\u003c/gmx:Anchor\u003e\n               \u003c/gmd:alternateTitle\u003e\n               \u003cgmd:date\u003e\n                  \u003cgmd:CI_Date/\u003e\n            \u003c/gmd:CI_Citation\u003e\n         \u003c/gmd:name\u003e\n         \u003cgmd:schemaLanguage\u003e\n            \u003cgco:CharacterString\u003eJSON\u003c/gco:CharacterString\u003e\n         \u003c/gmd:schemaLanguage\u003e\n         \u003cgmd:constraintLanguage\u003e\n            \u003cgco:CharacterString\u003eCSVW\u003c/gco:CharacterString\u003e\n         \u003c/gmd:constraintLanguage\u003e\n      \u003c/gmd:MD_ApplicationSchemaInformation\u003e\n  \u003c/gmd:applicationSchemaInfo\u003e\n```\nThis is how it is presented in the user interface.\n![image](https://github.com/user-attachments/assets/664c8c28-5950-42d9-82e0-919f8ff11cc4)\n\n## Defining a datacube\nThe definition of a datacube requires at least 3 things (this respects the xarray and the CIS model)\n* Dimensions (called coordinates in xarray and domainSet in CIS)\n* Bands (called data variables in xarray and rangeType in CIS)\n* Other metadata (called attributes in xarray and metadata in CIS)\n\nLets imagine that we what to describe this datacube using ISO 19115 (here we see it expressed as an python xarray in ODC)\n\n```\n\u003cxarray.Dataset\u003e\nDimensions:          (time: 7, y: 668, x: 688)\nCoordinates:\n  * time             (time) datetime64[ns] 1987-01-01 1992-01-01 ... 2017-01-01\n  * y                (y) float64 4.488e+06 4.488e+06 ... 4.748e+06 4.748e+06\n  * x                (x) float64 2.599e+05 2.603e+05 ... 5.275e+05 5.279e+05\n    spatial_ref      int32 32631\nData variables:\n    Aquatic          (time, y, x) float32 -9.999e+03 -9.999e+03 ... -9.999e+03\n    Forest           (time, y, x) float32 -9.999e+03 -9.999e+03 ... -9.999e+03\n    HerbaceousCrops  (time, y, x) float32 -9.999e+03 -9.999e+03 ... -9.999e+03\n    WoodyCrops       (time, y, x) float32 -9.999e+03 -9.999e+03 ... -9.999e+03\n    Shrublands       (time, y, x) float32 -9.999e+03 -9.999e+03 ... -9.999e+03\nAttributes:\n    crs:           EPSG:32631\n    grid_mapping:  spatial_ref\n```\n\n### Declaring a datacube\nThis 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.\n```\n   \u003cgmd:hierarchyLevelName\u003e\n      \u003cgco:CharacterString\u003eDatacube\u003c/gco:CharacterString\u003e\n   \u003c/gmd:hierarchyLevelName\u003e\n```\n\n### Dimensions\nThe dimensions are described in the statial representation. \n\n![image](https://github.com/user-attachments/assets/354ca856-74e1-4f5a-a979-c44dd7e4e6a2)\n\nIn 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.\n\n```\n    \u003cgmd:spatialRepresentationInfo\u003e\n      \u003cgmd:MD_Georectified\u003e\n         \u003cgmd:numberOfDimensions\u003e\n            \u003cgco:Integer\u003e3\u003c/gco:Integer\u003e\n         \u003c/gmd:numberOfDimensions\u003e\n         \u003cgmd:axisDimensionProperties\u003e\n            \u003cgmd:MD_Dimension\u003e\n               \u003cgmd:dimensionName\u003e\n                  \u003cgmd:MD_DimensionNameTypeCode codeList=\"http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_DimensionNameTypeCode\"\n                                                codeListValue=\"row\"/\u003e\n               \u003c/gmd:dimensionName\u003e\n               \u003cgmd:dimensionSize\u003e\n                  \u003cgco:Integer\u003e668\u003c/gco:Integer\u003e\n               \u003c/gmd:dimensionSize\u003e\n               \u003cgmd:resolution\u003e\n                  \u003cgco:Length uom=\"m\"\u003e390\u003c/gco:Length\u003e\n               \u003c/gmd:resolution\u003e\n            \u003c/gmd:MD_Dimension\u003e\n         \u003c/gmd:axisDimensionProperties\u003e\n         \u003cgmd:axisDimensionProperties\u003e\n            \u003cgmd:MD_Dimension\u003e\n               \u003cgmd:dimensionName\u003e\n                  \u003cgmd:MD_DimensionNameTypeCode codeList=\"http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_DimensionNameTypeCode\"\n                                                codeListValue=\"column\"/\u003e\n               \u003c/gmd:dimensionName\u003e\n               \u003cgmd:dimensionSize\u003e\n                  \u003cgco:Integer\u003e688\u003c/gco:Integer\u003e\n               \u003c/gmd:dimensionSize\u003e\n               \u003cgmd:resolution\u003e\n                  \u003cgco:Length uom=\"m\"\u003e390\u003c/gco:Length\u003e\n               \u003c/gmd:resolution\u003e\n            \u003c/gmd:MD_Dimension\u003e\n         \u003c/gmd:axisDimensionProperties\u003e\n         \u003cgmd:axisDimensionProperties\u003e\n            \u003cgmd:MD_Dimension\u003e\n               \u003cgmd:dimensionName\u003e\n                  \u003cgmd:MD_DimensionNameTypeCode codeList=\"http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_DimensionNameTypeCode\"\n                                                codeListValue=\"time\"/\u003e\n               \u003c/gmd:dimensionName\u003e\n               \u003cgmd:dimensionSize\u003e\n                  \u003cgco:Integer\u003e7\u003c/gco:Integer\u003e\n               \u003c/gmd:dimensionSize\u003e\n               \u003cgmd:resolution\u003e\n                  \u003cgco:Distance uom=\"years\"\u003e5\u003c/gco:Distance\u003e\n               \u003c/gmd:resolution\u003e\n            \u003c/gmd:MD_Dimension\u003e\n         \u003c/gmd:axisDimensionProperties\u003e\n         \u003cgmd:cellGeometry\u003e\n            \u003cgmd:MD_CellGeometryCode codeList=\"http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_CellGeometryCode\"\n                                     codeListValue=\"area\"/\u003e\n         \u003c/gmd:cellGeometry\u003e\n         \u003cgmd:cornerPoints\u003e\n            \u003cgml:Point gml:id=\"NW_corner\"\u003e\n               \u003cgml:pos\u003e260280 4747860\u003c/gml:pos\u003e\n            \u003c/gml:Point\u003e\n         \u003c/gmd:cornerPoints\u003e\n         \u003cgmd:cornerPoints\u003e\n            \u003cgml:Point gml:id=\"SE_corner\"\u003e\n               \u003cgml:pos\u003e527430 4488900\u003c/gml:pos\u003e\n            \u003c/gml:Point\u003e\n         \u003c/gmd:cornerPoints\u003e\n         \u003cgmd:pointInPixel\u003e\n            \u003cgmd:MD_PixelOrientationCode\u003ecenter\u003c/gmd:MD_PixelOrientationCode\u003e\n         \u003c/gmd:pointInPixel\u003e\n      \u003c/gmd:MD_Georectified\u003e\n   \u003c/gmd:spatialRepresentationInfo\u003e\n```\nThe 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.\n\n![image](https://github.com/user-attachments/assets/f62bdfe6-9d3e-4a84-b062-3e1f26a44a0b)\n\n```\n          \u003cgmd:extent\u003e\n            \u003cgmd:EX_Extent\u003e\n               \u003cgmd:geographicElement\u003e\n                  \u003cgmd:EX_GeographicBoundingBox\u003e\n                     \u003cgmd:extentTypeCode\u003e\n                        \u003cgco:Boolean\u003etrue\u003c/gco:Boolean\u003e\n                     \u003c/gmd:extentTypeCode\u003e\n                     \u003cgmd:westBoundLongitude\u003e\n                        \u003cgco:Decimal\u003e0.0639119375078333\u003c/gco:Decimal\u003e\n                     \u003c/gmd:westBoundLongitude\u003e\n                     \u003cgmd:eastBoundLongitude\u003e\n                        \u003cgco:Decimal\u003e3.33828975521333\u003c/gco:Decimal\u003e\n                     \u003c/gmd:eastBoundLongitude\u003e\n                     \u003cgmd:southBoundLatitude\u003e\n                        \u003cgco:Decimal\u003e40.5143870238267\u003c/gco:Decimal\u003e\n                     \u003c/gmd:southBoundLatitude\u003e\n                     \u003cgmd:northBoundLatitude\u003e\n                        \u003cgco:Decimal\u003e42.8845959400033\u003c/gco:Decimal\u003e\n                     \u003c/gmd:northBoundLatitude\u003e\n                  \u003c/gmd:EX_GeographicBoundingBox\u003e\n               \u003c/gmd:geographicElement\u003e\n               \u003cgmd:geographicElement\u003e\n                  \u003cgmd:EX_BoundingPolygon\u003e\n                     \u003cgmd:polygon\u003e\n                        \u003cgml:MultiSurface gml:id=\"d1017385e573\" srsName=\"EPSG:25831\"\u003e\n                           \u003cgml:surfaceMember\u003e\n                              \u003cgml:Polygon gml:id=\"d1017385e575\" srsName=\"EPSG:25831\"\u003e\n                                 \u003cgml:exterior\u003e\n                                    \u003cgml:LinearRing\u003e\n                                       \u003cgml:posList srsDimension=\"2\"\u003e260085 4488705 527625 4488705 527625 4748055 260085 4748055 260085 4488705\u003c/gml:posList\u003e\n                                    \u003c/gml:LinearRing\u003e\n                                 \u003c/gml:exterior\u003e\n                              \u003c/gml:Polygon\u003e\n                           \u003c/gml:surfaceMember\u003e\n                        \u003c/gml:MultiSurface\u003e\n                     \u003c/gmd:polygon\u003e\n                  \u003c/gmd:EX_BoundingPolygon\u003e\n               \u003c/gmd:geographicElement\u003e\n               \u003cgmd:temporalElement\u003e\n                  \u003cgmd:EX_TemporalExtent\u003e\n                     \u003cgmd:extent\u003e\n                        \u003cgml:TimePeriod gml:id=\"d993013e629\"\u003e\n                           \u003cgml:beginPosition\u003e1987-01-01\u003c/gml:beginPosition\u003e\n                           \u003cgml:endPosition\u003e2017-01-01\u003c/gml:endPosition\u003e\n                        \u003c/gml:TimePeriod\u003e\n                     \u003c/gmd:extent\u003e\n                  \u003c/gmd:EX_TemporalExtent\u003e\n               \u003c/gmd:temporalElement\u003e\n            \u003c/gmd:EX_Extent\u003e\n         \u003c/gmd:extent\u003e\n```\n\n### Bands\nThe bands are described in the content information. For each band we can describe the band name, the data type and the range of values.\n\n![image](https://github.com/user-attachments/assets/4212a9b8-d6b9-4575-b35d-dc72f05178fd)\n\n```\n      \u003cgmd:contentInfo\u003e\n      \u003cgmd:MD_CoverageDescription\u003e\n         \u003cgmd:attributeDescription\u003e\n            \u003cgco:RecordType\u003eTerrestrial Connectivity Index\u003c/gco:RecordType\u003e\n         \u003c/gmd:attributeDescription\u003e\n         \u003cgmd:contentType\u003e\n            \u003cgmd:MD_CoverageContentTypeCode codeList=\"http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_CoverageContentTypeCode\"\n                                            codeListValue=\"image\"/\u003e\n         \u003c/gmd:contentType\u003e\n         \u003cgmd:dimension/\u003e\n         \u003cgmd:dimension\u003e\n            \u003cgmd:MD_Band\u003e\n               \u003cgmd:sequenceIdentifier\u003e\n                  \u003cgco:MemberName\u003e\n                     \u003cgco:aName\u003e\n                        \u003cgco:CharacterString\u003eAquatic\u003c/gco:CharacterString\u003e\n                     \u003c/gco:aName\u003e\n                     \u003cgco:attributeType\u003e\n                        \u003cgco:TypeName\u003e\n                           \u003cgco:aName\u003e\n                              \u003cgco:CharacterString\u003eFLOAT\u003c/gco:CharacterString\u003e\n                           \u003c/gco:aName\u003e\n                        \u003c/gco:TypeName\u003e\n                     \u003c/gco:attributeType\u003e\n                  \u003c/gco:MemberName\u003e\n               \u003c/gmd:sequenceIdentifier\u003e\n               \u003cgmd:descriptor\u003e\n                  \u003cgco:CharacterString\u003eAquatic habitat\u003c/gco:CharacterString\u003e\n               \u003c/gmd:descriptor\u003e\n               \u003cgmd:maxValue\u003e\n                  \u003cgco:Real\u003e3\u003c/gco:Real\u003e\n               \u003c/gmd:maxValue\u003e\n               \u003cgmd:minValue\u003e\n                  \u003cgco:Real\u003e0\u003c/gco:Real\u003e\n               \u003c/gmd:minValue\u003e\n            \u003c/gmd:MD_Band\u003e\n         \u003c/gmd:dimension\u003e\n         \u003cgmd:dimension\u003e\n            \u003cgmd:MD_Band\u003e\n               \u003cgmd:sequenceIdentifier\u003e\n                  \u003cgco:MemberName\u003e\n                     \u003cgco:aName\u003e\n                        \u003cgco:CharacterString\u003eForest\u003c/gco:CharacterString\u003e\n                     \u003c/gco:aName\u003e\n                     \u003cgco:attributeType\u003e\n                        \u003cgco:TypeName\u003e\n                           \u003cgco:aName\u003e\n                              \u003cgco:CharacterString\u003eFLOAT\u003c/gco:CharacterString\u003e\n                           \u003c/gco:aName\u003e\n                        \u003c/gco:TypeName\u003e\n                     \u003c/gco:attributeType\u003e\n                  \u003c/gco:MemberName\u003e\n               \u003c/gmd:sequenceIdentifier\u003e\n               \u003cgmd:descriptor\u003e\n                  \u003cgco:CharacterString\u003eForest habitat\u003c/gco:CharacterString\u003e\n               \u003c/gmd:descriptor\u003e\n...\n   \u003c/gmd:contentInfo\u003e\n```\n\n\n## Common issues\n\n### Leftovers that may generate validation errors\nOne of the most common issues in Geonetwork is the leftovers due to empty elements left in the GUI\n\nExample:\n![image](https://github.com/user-attachments/assets/78b89320-11b6-4044-9676-ff9d927d5598)\n\nThis will result in an empty element marked with `gco:nilReason=\"missing\"`.\n```\n      \u003cgmd:CI_ResponsibleParty\u003e\n         \u003cgmd:individualName\u003e\n            \u003cgco:CharacterString\u003eMalte Zamzow\u003c/gco:CharacterString\u003e\n         \u003c/gmd:individualName\u003e\n         \u003cgmd:positionName gco:nilReason=\"missing\"\u003e\n            \u003cgco:CharacterString/\u003e\n         \u003c/gmd:positionName\u003e\n```\nAs we can see in the image this element is optional and could be removed from the final XML document.\n![image](https://github.com/user-attachments/assets/0a4180ca-be88-4ce9-ad44-e712290b0cf1)\nUnfortunately, removed elements are the difficult to recover in the GUI.\n\n### Create record from a \"group\".\nWe 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:\n![image](https://github.com/user-attachments/assets/c4d0702a-c1ec-44e3-a34c-76530158f990)\n\n#### Groups and subportals\nThere are to different concepts that can be used together but they are different: \"groups\" and \"portals\"\n\nActually \"group\" is not the name for the URLs and they are called \"portals\" or \"sources\"\n![image](https://github.com/user-attachments/assets/19ca3ca2-f221-4825-9a2b-db0d4a6a2b00)\n\nA portal is associate to a group while configuring it using a special filter \"+groupPublished\":\n![image](https://github.com/user-attachments/assets/b32cf6b6-303c-4a5f-90e0-bec2c8100fd6)\n\nA user can be associeted to different groups to get permissions to act in different roles in the system:\n![image](https://github.com/user-attachments/assets/fb10b4eb-4e04-4dd1-a381-cd125d531c30)\n\n## Known issues\n* The JSON as base64: https://github.com/geonetwork/core-geonetwork/issues/8343#issuecomment-2328020366\n* Title of the citations is not shown in the full view mode: https://github.com/geonetwork/core-geonetwork/issues/8370\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fad4gd%2Fcomponent-geonetwork","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fad4gd%2Fcomponent-geonetwork","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fad4gd%2Fcomponent-geonetwork/lists"}