Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Metadata Harmonizer Toolbox

This repository contains a set of tools that can be used to create NetCDF files, integrate them into an ERDDAP server and to ensure the compliance with the EMSO Metadata Specifications. The tools provided here are:

  • emh.generate_dataset(): creates EMSO-compliant NetCDF files from .csv and .yaml files
  • emh.erddap_config(): integrates NetCDF files into an ERDDAP server
  • emh.metadata_report(): check the compliance of a dataset with the specifications.

In order to create and publish an EMSO-compliant dataset, the typical workflow is:

  1. Prepare CSV data and YAML metadata
  2. Generate EMSO-compliant NetCDF files using generate_dataset()
  3. Integrate datasets into your ERDDAP deployment using erddap_config()
  4. Validate metadata and operational compliance using metadata_report()

Installation

To install as a PyPi package:

pip3 install emso_metadata_harmonizer

🛠 NetCDF Generator

To generate a NetCDF dataset from data (csv) and metadata (yaml) files:

import emso_metadata_harmonizer as emh

emh.generate_dataset(["data.csv"], ["meta.yaml"], output="dataset.nc")

Full example with data and metadata from the example 2

import emso_metadata_harmonizer as emh
import urllib

# Download data and metadata from the example 2 in the metadata-harmonizer repository
data_url = "https://raw.githubusercontent.com/emso-eric/metadata-harmonizer/refs/heads/develop/examples/02/SBE16.csv"
meta_url = "https://raw.githubusercontent.com/emso-eric/metadata-harmonizer/refs/heads/develop/examples/02/meta.yaml"
urllib.request.urlretrieve(data_url, "data.csv")
urllib.request.urlretrieve(meta_url, "meta.yaml")

# Generate dataset from one data file
emh.generate_dataset(["data.csv"], ["meta.yaml"], "dataset.nc")

To generate a dataset from multiple data files:

import emso_metadata_harmonizer as emh
import urllib

# Generate dataset from multiple data files
data1_url = "https://raw.githubusercontent.com/emso-eric/metadata-harmonizer/refs/heads/develop/examples/02/SBE16.csv"
data2_url = "https://raw.githubusercontent.com/emso-eric/metadata-harmonizer/refs/heads/develop/examples/02/SBE37.csv"
meta_url = "https://raw.githubusercontent.com/emso-eric/metadata-harmonizer/refs/heads/develop/examples/02/meta.yaml"
urllib.request.urlretrieve(data1_url, "data1.csv")
urllib.request.urlretrieve(data2_url, "data2.csv")
urllib.request.urlretrieve(meta_url, "meta.yaml")

emh.generate_dataset(["data1.csv", "data2.csv"], ["meta.yaml"], "dataset2.nc")

⚙️ ERDDAP Configurator

The ERDDAP Configurator (erddap_config()) helps prepare ERDDAP dataset definitions for NetCDF files, reducing manual work editing ERDDAP’s XML configurations. It reads NetCDF metadata and generates XML chunk required to register a new dataset.

import emso_metadata_harmonizer as emh

emh.erddap_config("dataset.nc", "MyDatasetIdentifier", "/path/to/dataset/files")

To automatically append a new dataset into an existing ERDDAP deployment, the path to the datasets.xml file should be passed via the datasets_xml_file parameter.

import emso_metadata_harmonizer as emh

emh.erddap_config("dataset.nc", "MyDatasetIdentifier", "/path/to/dataset/files", datasets_xml_file="path/to/datasets.xml")

📈 Metadata Report

The metadata reporting tool assesses the level of compliance of an ERDDAP or NetCDF dataset with the EMSO Metadata Specifications. To test a dataset, use the following syntax:

import emso_metadata_harmonizer as emh
emh.metadata_report("dataset.nc")

Logging

To control the verbosity of the logging messages:

import logging
logging.getLogger("emso_metadata_harmonizer").setLevel(logging.WARN)

Where WARN is the level of logging messages. Check the Python logging documentation for more information.

Contact info

  • author: Enoc Martínez
  • version: v1.0.9
  • organization: Universitat Politècnica de Catalunya (UPC)
  • contact: enoc.martinez@upc.edu

Release files for emso-metadata-harmonizer 1.1.0.dev1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for emso-metadata-harmonizer 1.1.0.dev1
File Size Uploaded
emso_metadata_harmonizer-1.1.0.dev1.tar.gz 75.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for emso-metadata-harmonizer 1.1.0.dev1
File Interpreter ABI Platform
emso_metadata_harmonizer-1.1.0.dev1-py3-none-any.whl Python 3 none any Details

Total release size: 151.2 kB

Release files / emso_metadata_harmonizer-1.1.0.dev1.tar.gz

Download URL emso_metadata_harmonizer-1.1.0.dev1.tar.gz
Size 75.8 kB
Tags Source
SHA-256 checksum
How to use checksums
436f72e3925a370730ebeb455220fdc123dbd8b76bb3074604d5697bb0ff5d52
BLAKE2b-256 checksum
How to use checksums
ca50699e0cc8aab998b8cc8cd934e4f472d7e07d9c0592adf826c6c5f6d1ecf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / emso_metadata_harmonizer-1.1.0.dev1-py3-none-any.whl

Download URL emso_metadata_harmonizer-1.1.0.dev1-py3-none-any.whl
Size 75.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f6bf19ee40122bb43bcfec460579036194f2ab5513220327b8957b1c63857a5d
BLAKE2b-256 checksum
How to use checksums
4e78e1b34043e26d6606d38270fa0ff2f429680144fec802653e53801c87685f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

1.1.0.dev1 This release

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page