Skip to main content

Metadata for magnetotelluric data

Project description

mt_metadata version 0.1.7

Standard MT metadata

codecov example workflow name License: MIT DOI

Description

MT Metadata is a project led by IRIS-PASSCAL MT Software working group and USGS to develop tools that standardize magnetotelluric metadata, well, at least create tools for standards that are generally accepted. This include the two main types of magnetotelluric data

  • Time Series

    • Supports translation to/from StationXML
    • Structured as:
      • Experiment -> Survey -> Station -> Run -> Channel
  • Transfer Functions

    • Supports (will support) to/from EDI, ZMM (Egberts EMTF output), JFILE (BIRRP output), EMTFXML (Kelbert's format)

Most people will be using the transfer functions, but a lot of that metadata comes from the time series metadata. This module supports both and has tried to make them more or less seamless to reduce complication.

Standards

Each metadata keyword has an associated standard that goes with it. These are stored internally in JSON file. The JSON files are read in when the package is loaded to initialize the standards. Each keyword is described by:

  • type - How the value should be represented based on very basic types

    • string
    • number (float or integer)
    • boolean
  • required - A boolean (True or False) denoting whether the metadata key word required to represent the data.

  • style - How the value should be represented within the type. For instance is the value a controlled string where there are only a few options, or is the value a controlled naming convention where only a 5 character alpha-numeric string is allowed. The styles are

    • Alpha Numeric a string with alphabetic and numberic characters
    • Free Form a free form string
    • Controlled Vocabulary only certain values are allowed according to options
    • Date a date and/or time string in ISO format
    • Number a float or integer
    • Boolean the value can only be True or False
  • units - Units of the value

  • description - Full description of what the metadata key is meant to convey.

  • options - Any options of a Controlled Vocabulary style.

  • alias - Any aliases that may represent the same metadata key.

  • example - An example value to inform the user.

All input values are internally validated according to the definition providing a robust way to standardize metadata.

Each metadata object is based on a Base class that has methods:

  • to/from_json
  • to/from_xml
  • to_from_dict
  • attribute_information

And each object has a doc string that describes the standard:

Metadata Key Description Example
key description of what the key describes example value
Required: False
Units: None
Type: string
Style: controlled vocabulary

The time series module is more mature than the transfer function module at the moment, and this is still a work in progress.

Installation

PIP

pip install mt_metadata

Conda

Soon to be conda install mt_metadata

Documentation

MT Metadata Documentation

Example

from mt_metadata import timeseries
x = timeseries.Instrument()

Help

help(x)

+----------------------------------------------+-----------------------------------------------+----------------+
| **Metadata Key**                             | **Description**                               | **Example**    |
+==============================================+===============================================+================+
| **id**                                       | instrument ID number can be serial number or  | mt01           |
|                                              | a designated ID                               |                |
| Required: True                               |                                               |                |
|                                              |                                               |                |
| Units: None                                  |                                               |                |
|                                              |                                               |                |
| Type: string                                 |                                               |                |
|                                              |                                               |                |
| Style: free form                             |                                               |                |
+----------------------------------------------+-----------------------------------------------+----------------+
| **manufacturer**                             | who manufactured the instrument               | mt gurus       |
|                                              |                                               |                |
| Required: True                               |                                               |                |
|                                              |                                               |                |
| Units: None                                  |                                               |                |
|                                              |                                               |                |
| Type: string                                 |                                               |                |
|                                              |                                               |                |
| Style: free form                             |                                               |                |
+----------------------------------------------+-----------------------------------------------+----------------+
| **type**                                     | instrument type                               | broadband      |
|                                              |                                               | 32-bit         |
| Required: True                               |                                               |                |
|                                              |                                               |                |
| Units: None                                  |                                               |                |
|                                              |                                               |                |
| Type: string                                 |                                               |                |
|                                              |                                               |                |
| Style: free form                             |                                               |                |
+----------------------------------------------+-----------------------------------------------+----------------+
| **model**                                    | model version of the instrument               | falcon5        |
|                                              |                                               |                |
| Required: False                              |                                               |                |
|                                              |                                               |                |
| Units: None                                  |                                               |                |
|                                              |                                               |                |
| Type: string                                 |                                               |                |
|                                              |                                               |                |
| Style: free form                             |                                               |                |
+----------------------------------------------+-----------------------------------------------+----------------+

Fill in metadata

x.model = "falcon 5"
x.type = "broadband 32-bit"
x.manufacturer = "MT Gurus"
x.id = "f176"

to JSON

print(x.to_json())
{
    "instrument": {
        "id": "f176",
        "manufacturer": "MT Gurus",
        "model": "falcon 5",
        "type": "broadband 32-bit"
    }
}

to XML

print(x.to_xml(string=True))
<?xml version="1.0" ?>
<instrument>
    <id>f176</id>
    <manufacturer>MT Gurus</manufacturer>
    <model>falcon 5</model>
    <type>broadband 32-bit</type>
</instrument>

======= History

0.1.0 (2020-12-30)

  • First release on PyPI.

0.1.3 (2021-06-25)

  • Added time series filters
  • PoleZeroFilter
  • CoefficientFilter
  • FIRFilter
  • TimeDelayFilter
  • FrequencyAmplitudePhaseFilter
  • Added translations to/from StationXML
  • Updated tests
  • Fixed minor bugs
  • Updated documentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mt_metadata-0.1.7.tar.gz (4.8 MB view details)

Uploaded Source

Built Distribution

mt_metadata-0.1.7-py2.py3-none-any.whl (579.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file mt_metadata-0.1.7.tar.gz.

File metadata

  • Download URL: mt_metadata-0.1.7.tar.gz
  • Upload date:
  • Size: 4.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.11

File hashes

Hashes for mt_metadata-0.1.7.tar.gz
Algorithm Hash digest
SHA256 b048a394a0ea7d3d9970398fdfe4ee8457620def96f56158d5e7613513b45df0
MD5 5527726258eb24b582ea6c5480cdcf4c
BLAKE2b-256 fc335056308989ec8e0ea5f2a445f7ad4a7e94a15889c5c72de403c0f03ee47f

See more details on using hashes here.

File details

Details for the file mt_metadata-0.1.7-py2.py3-none-any.whl.

File metadata

  • Download URL: mt_metadata-0.1.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 579.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.11

File hashes

Hashes for mt_metadata-0.1.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b7d62143d0c9bb76f209b716bd36ae29ed329c5e7034f4ffe907cd9dda5ab8e5
MD5 29fa43476d1eab56ba27df7e324f3045
BLAKE2b-256 0bd14b55bc136cc64cb73c55c89784e987c3399f338b0b8fd45146430d33939e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page