跳转到主要内容

磁大地电磁数据元数据

项目描述

mt_metadata版本0.3.8

标准MT元数据

PyPi version Latest conda|conda-forge version codecov example workflow name License: MIT DOI Binder

描述

MT元数据是由IRIS-PASSCAL MT软件工作组和美国地质调查局发起的项目,旨在开发标准化磁大地电磁元数据的工具,至少创建广泛接受的标准的工具。这包括两种主要的磁大地电磁数据类型

  • 时间序列

    • 结构为
      • 实验 -> 调查 -> 站点 -> 运行 -> 通道
    • 支持转换为StationXML
  • 传递函数

    • 支持(将支持)转换为
      • EDI(最常见格式)
      • ZMM(Egberts EMTF输出)
      • JFILE(BIRRP输出)
      • EMTFXML(Kelbert的格式)
      • AVG(Zonge输出)

大多数人将使用传递函数,但很多元数据来自时间序列元数据。此模块支持两者,并试图使它们尽可能无缝,以减少复杂性。

  • 版本: 0.3.8
  • 自由软件:MIT许可证
  • 文档https://mt-metadata.readthedocs.io
  • 示例:点击上面的 Binder 徽章,Jupyter Notebook 示例在 mt_metadata/examples/notebooksdocs/source/notebooks
  • 建议引用:Peacock, J. R., Kappler, K., Ronan, T., Heagy, L., Kelbert, A., Frassetto, A. (2022) MTH5:磁电测深时间序列数据的归档和可交换数据格式,《计算机与地球科学》,162,doi:10.1016/j.cageo.2022.105102

安装

从源代码安装

git clone https://github.com/kujaku11/mt_metadata.git

python setup.py install

如果你想要修改代码,可以使用标志 -e

使用PIP安装

pip install mt_metadata

使用Conda安装

conda install mt_metadata

标准

每个元数据关键字都有一个相关的标准。这些标准存储在内部JSON文件中。在包加载时读取这些JSON文件以初始化标准。每个关键字都由以下描述:

  • 类型 - 根据基本类型如何表示值

    • 字符串
    • 数字(浮点数或整数)
    • 布尔值
  • 必需 - 表示是否必需的布尔值(True或False)

  • 样式 - 在类型内如何表示值。例如,值是一个受控字符串,其中只有几个选项,或者值是一个受控命名约定,其中只允许5个字符的字母数字字符串。样式有

    • 字母数字 - 包含字母和数字的字符串
    • 自由格式 - 自由格式的字符串
    • 受控词汇表 - 只允许根据 选项 允许的某些值
    • 日期 - 以ISO格式表示的日期和/或时间字符串
    • 数字 - 浮点数或整数
    • 布尔值 - 值只能是True或False
  • 单位 - 值的单位

  • 描述 - 元数据关键字的完整描述。

  • 选项 - 受控词汇表样式的任何选项。

  • 别名 - 可能代表相同元数据关键字的任何别名。

  • 示例 - 告知用户的一个示例值。

所有输入值都根据定义进行内部验证,从而提供了一种强大的标准化元数据的方法。

每个元数据对象都基于一个具有以下方法的Base类:

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

每个对象都有一个描述标准的文档字符串

元数据关键字 描述 示例
key 键描述的内容 示例值
必需:False
单位:None
类型:字符串
样式:受控词汇表

目前,时间序列模块比传递函数模块更成熟,这仍然是一个正在进行中的工作。

示例

from mt_metadata import timeseries
x = timeseries.Instrument()

帮助

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                             |                                               |                |
+----------------------------------------------+-----------------------------------------------+----------------+

填写元数据

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

转换为JSON

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

转换为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>

致谢

该项目与地震学研究所、美国地质调查局以及其他合作者合作。IRIS联盟的设施由美国国家科学基金会(NSF)的地震学设施用于地球科学进步(SAGE)奖资助,资助协议为EAR-1851048。美国地质调查局部分资金通过社区数据集成和IMAGe通过矿产资源计划获得。

历史

0.1.0 (2020-12-30)

  • 首次发布在PyPI。

0.1.3 (2021-06-25)

  • 添加时间序列过滤器
  • PoleZeroFilter
  • CoefficientFilter
  • FIRFilter
  • TimeDelayFilter
  • FrequencyAmplitudePhaseFilter
  • 添加了与/从StationXML的翻译
  • 更新测试
  • 修复了小错误
  • 更新文档

0.1.5 (2021-11-13)

  • 错误修复
  • 更新了处理单位的方式
  • 如果 survey.id 为空,则将其设置为可用的 fdsn.network(主要是一个 IRIS DMC 修复)
  • 更新了实验到 StationXML 的翻译
  • 更新测试

0.1.6 (2021-12-07)

  • 修复了错误(主要在 mt_metadata.timeseries.filters 中)
  • 更新测试
  • 通道代码的处理“更好”
  • 更新实验和 StationXML 之间的翻译
  • 更新了绘制滤波器的方式
  • 将笔记本添加到文档中

0.1.7 (2022-01-10)

  • 更新处理传递函数的方式
  • 添加了以下文件的读取器和元数据标准
    • EDI 文件
    • Z 文件
    • J 文件
    • AVG 文件
    • EMTF XML 文件
  • 添加了传递函数的测试
  • 更新 mt_metadata.transfer_functions.core.TF
  • 添加了有关传递函数的文档

0.1.8 (2022-04-07)

  • 修复了错误(主要在传递函数中)
  • 将相似的时序和传递函数元数据合并,因此现在当适用时,传递函数元数据从时序导入。减少了文件和冗余。
  • 更新文档

0.2.0 (2022-09-10)

  • 小错误修复
  • 更新读取 .AVG 文件

0.2.1 (2023-01-18)

  • 更新 setup.py
  • 更新读取 emtfxml 文件
  • 修复问题 95
  • 添加模型错误
  • 确保滤波器名称是唯一的
  • 修复空 Z 文件
  • 添加元数据
  • 在 stationxml 中添加多个网络的测试
  • 更新以使 mth5 能够与 ChannelTS 和 RunTS 中的单个元数据对象一起使用
  • 添加了对 null 通道组件的测试
  • Mth5 patch129 修复
  • 更新 edi.py
  • 添加一行,允许辅助通道组件为空
  • 更新 edi.py
  • Mth5 patch129 修复

0.2.2 (2023-02-17)

  • 修复了当输入字符串时 Station.channels_recorded 中的错误

0.2.3 (2023-04-24)

  • 添加了 t0/from 传递函数文件类型的处理方法
  • 更新当输入 np.datetime64 时
  • MTime 更新以处理纳秒精度
  • MTime 和 pandas Timestamp 无法处理大的未来或过去日期
  • 修复了带有 isoformat 属性的输入时间
  • 更新如果减去 timedelta
  • 从主分支更新到 fix_issue_133
  • 修复问题 #133
  • 更新 EMTFXML 输出格式
  • 添加 FC 元数据

0.3.0 (2023-09-29)

0.3.1 (2023-10-15)

  • 小错误修复

0.3.2 (2023-11-08)

  • 移除 Pandas < 2 的限制
  • 小错误修复

0.3.3 (2023-11-08)

  • 更新 pandas.append 为 concat

0.3.4 ()

0.3.5 ()

0.3.6 ()

0.3.7 (2024-08-16)

0.3.8 (2024-09-30)

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码分发

mt_metadata-0.3.8.tar.gz (4.9 MB 查看哈希值)

上传时间 源代码

构建分发

mt_metadata-0.3.8-py2.py3-none-any.whl (696.6 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面