磁大地电磁数据元数据
项目描述
mt_metadata版本0.3.8
标准MT元数据
描述
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/notebooks 和 docs/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)
- 修复 https://github.com/kujaku11/mt_metadata/pull/138 中的错误
- 在 https://github.com/kujaku11/mt_metadata/pull/136 中添加 TF 合并
- 在 https://github.com/kujaku11/mt_metadata/pull/149 中修复写入 EDI 错误
- 在 https://github.com/kujaku11/mt_metadata/pull/153 中使用 loguru 替代内置日志
- 在 https://github.com/kujaku11/mt_metadata/pull/154 中的 loguru
- 尝试在 https://github.com/kujaku11/mt_metadata/pull/155 中修复与滤波器分配相关的错误
- 在 https://github.com/kujaku11/mt_metadata/pull/158 中增强 edi
- 在 https://github.com/kujaku11/mt_metadata/pull/159 中添加 TF 调查元数据
- 在 https://github.com/kujaku11/mt_metadata/pull/160 中添加了如果通道位置值为 None 的逻辑
- 对支持使用 channel_nomenclature 写入 z 文件进行了一些更改 https://github.com/kujaku11/mt_metadata/pull/161
- 对支持 zfiles 测试进行了一些小更改 https://github.com/kujaku11/mt_metadata/pull/163
- 在 https://github.com/kujaku11/mt_metadata/pull/165 中测试 aurora 问题 295
- 在 https://github.com/kujaku11/mt_metadata/pull/142 中的 Fcs
- 在 https://github.com/kujaku11/mt_metadata/pull/166 中的 Fcs
- 在 https://github.com/kujaku11/mt_metadata/pull/167 中更新 environment.yml
- 在 https://github.com/kujaku11/mt_metadata/pull/168 中更新文档
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 ()
- 由 @kujaku11 更新 HISTORY.rst,请参阅https://github.com/kujaku11/mt_metadata/pull/179
- 由 @kkappler 移除筛选方向属性,请参阅https://github.com/kujaku11/mt_metadata/pull/181
- 由 @kkappler 解决问题 173,请参阅https://github.com/kujaku11/mt_metadata/pull/182
- 由 @kkappler 补丁 173,请参阅https://github.com/kujaku11/mt_metadata/pull/183
- 由 @kkappler 添加一些常用辅助函数,请参阅https://github.com/kujaku11/mt_metadata/pull/185
- 由 @kkappler 在 FC 层修复错误,请参阅https://github.com/kujaku11/mt_metadata/pull/186
- 由 @kkappler 解决 mth5 问题 187,请参阅https://github.com/kujaku11/mt_metadata/pull/187
- 由 @kujaku11 修复错误,请参阅https://github.com/kujaku11/mt_metadata/pull/180
- 由 @kujaku11 更新 TF 的初始化方式,初始化 xarray 很昂贵,请参阅https://github.com/kujaku11/mt_metadata/pull/188
- 由 @kujaku11 将
get_elevation
的默认值更改为 False,请参阅https://github.com/kujaku11/mt_metadata/pull/191 - 由 @xandrd 更新 readme 中的 git clone 地址,请参阅https://github.com/kujaku11/mt_metadata/pull/189
- 由 @kujaku11 修复 Z 文件的读写方式,请参阅https://github.com/kujaku11/mt_metadata/pull/192
- 由 @kujaku11 调整 TF._initialize_transfer_function 的设置方式,请参阅https://github.com/kujaku11/mt_metadata/pull/193
- 由 @kujaku11 添加在 TF 中存储处理配置的能力,请参阅https://github.com/kujaku11/mt_metadata/pull/196
- 由 @kujaku11 提升版本:0.3.3 → 0.3.4,请参阅https://github.com/kujaku11/mt_metadata/pull/198
0.3.5 ()
- 由 @kujaku11 提交补丁,请参阅https://github.com/kujaku11/mt_metadata/pull/200
- 由 @kujaku11 解决问题 #202,请参阅https://github.com/kujaku11/mt_metadata/pull/203
- 由 @kkappler 提交补丁,请参阅https://github.com/kujaku11/mt_metadata/pull/205
- 由 @kujaku11 提升版本:0.3.4 → 0.3.5,请参阅https://github.com/kujaku11/mt_metadata/pull/206
0.3.6 ()
- 由 @kkappler 添加访问磁道名称的方法,请参阅https://github.com/kujaku11/mt_metadata/pull/210
- 由 @kujaku11 提交补丁,请参阅https://github.com/kujaku11/mt_metadata/pull/208
- 由 @kkappler 解决 mth5 问题 207,请参阅https://github.com/kujaku11/mt_metadata/pull/209
- 由 @kkappler 进行小幅度修改,请参阅https://github.com/kujaku11/mt_metadata/pull/211
- 由 @kujaku11 提交补丁,请参阅https://github.com/kujaku11/mt_metadata/pull/212
0.3.7 (2024-08-16)
- 由 @kkappler 对 numpy 2.0 进行小幅度修复,请参阅https://github.com/kujaku11/mt_metadata/pull/213
- 由 @kkappler 解决问题 216,请参阅https://github.com/kujaku11/mt_metadata/pull/218
- 由 @kujaku11 提交补丁,请参阅https://github.com/kujaku11/mt_metadata/pull/219
- 由 @kkappler 将 u0 和 r0 添加为回归参数,请参阅https://github.com/kujaku11/mt_metadata/pull/220
- 由 @kujaku11 更新 EMTF XML 和 StationXML 编写器,请参阅https://github.com/kujaku11/mt_metadata/pull/217
- 由 @kkappler 提交补丁,请参阅https://github.com/kujaku11/mt_metadata/pull/221
- 由 @kkappler 提交补丁,请参阅https://github.com/kujaku11/mt_metadata/pull/223
- 由 @kujaku11 提升版本:0.3.6 → 0.3.7,请参阅https://github.com/kujaku11/mt_metadata/pull/225
0.3.8 (2024-09-30)
- 由 @kujaku11 添加弹出窗口到 ListDict,在 https://github.com/kujaku11/mt_metadata/pull/226
- 由 @kujaku11 修复 EDI Tipper 翻转问题,在 https://github.com/kujaku11/mt_metadata/pull/228
- 由 @kujaku11 提交的补丁,在 https://github.com/kujaku11/mt_metadata/pull/227
- 由 @kujaku11 提升版本:0.3.7 → 0.3.8,在 https://github.com/kujaku11/mt_metadata/pull/229
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。