地磁观测数据的下载、处理与去噪

magpysv的Python项目详细描述


Build StatusDocumentation StatusCodacy HealthCoveragelicense

完整文档位于http://magpysv.readthedocs.io/en/latest/

简介

magpysv是一个开源的python包,旨在尽可能地提供一种一致的、自动化的方法,即从爱丁堡英国地质调查局(bgs)的世界地磁数据中心(wdc)发布的原始天文台小时平均值生成高分辨率sv时间序列。它使用bgs开发的第二个python包下载给定时间范围内的数据和观测站列表。

该软件包可以在命令行上运行,也可以在交互式jupyter笔记本中运行,允许用户从bgs服务器获取用户指定时间段和天文台列表的wdc格式数据。它以期望频率(通常是每月或每年的平均值)产生内部产生磁场的x、y和z分量的时间序列和长期变化(sv),并对所有记录的基线变化进行校正。可选地,用户可以使用ap index排除数据,该ap index消除了记录的高太阳活动期(如地磁风暴)的影响。稳健统计用于识别和移除异常值。

该软件开发了先前发布的去噪方法,其目的是通过主成分分析从内部场中去除外部场污染,一种利用观测sv和全局场模型预测sv之间的残差协方差矩阵从数据中创建和删除外部场信号的代理的方法。该方法以Wardinski & Holme (2011)为基础,为所有感兴趣的观测站建立一个单一的协方差矩阵,同时对所有观测点进行外场修正,从而得到更清晰的内生sv时间序列。

安装

magpysv可以使用以下命令通过python包索引(pypi)安装 pip install magpysv。这还将安装所有必需的依赖项,包括BGS数据下载应用程序。pypi安装中不包括示例juypyter笔记本(见下文),安装软件后需要从单独的github项目页面下载。

示例工作流

在本软件(in-prep)的附带文章中,我们介绍了两个不同地理区域的清洁数据的案例研究,并讨论了它们在地磁急变中的应用:欧洲的月初差和北高纬度地区的年差。这个包附带的第二个github存储库包括两个笔记本,可以用来从bgs下载相关的每小时数据,并重现这些案例研究的数据。注意,在使用笔记本电脑之前必须安装magpysv(最好使用pip)。

要获取笔记本,请转到位于https://github.com/gracecox/MagPySV-examples的github项目页面,然后单击绿色的“克隆或下载”按钮。从下拉菜单中,选择“下载zip”并将文件保存到所需位置。解压缩文件并导航到结果文件夹。要打开笔记本,请从文件夹中启动jupyter笔记本(例如,在该目录的命令行中键入jupyter notebook),然后从Web浏览器中显示的列表中选择所需的笔记本。

Jupyter documentation包含一个关于安装和运行笔记本电脑的分步教程,面向不熟悉python的新用户。

贡献

我们希望在地磁社区的其他人发现这个代码有用,并欢迎建议,反馈和贡献。请求新功能或报告错误可以通过为存储库创建GitHub issue来完成。

如果你想自己修复错误或实现新功能,这是非常受欢迎的!这是由

  1. 分叉magpysv的github存储库
  2. 为更改创建分支
  3. 使您代码的更改
  4. 向存储库提交拉取请求

那些不熟悉这个过程的人可能会发现GitHub’s tutorials很有用。如果这看起来仍然太复杂,欢迎您创建github问题或直接与我们联系寻求帮助。

参考

描述magpysv的手稿目前正在准备中。本文还介绍了两个欧洲和高纬度观测站清理数据的实例,以及它们在地磁脉动中的应用。

项目的主目录包含自述文件、许可证和各种安装文件。magpysv目录包含构成包的所有python模块,每个模块中包含的所有函数的详细描述都可以在http://magpysv.readthedocs.io/en/latest/上的完整文档中找到。还可以使用python的帮助函数通过键入以下格式的命令来访问代码文档:help(magpysv.modulename.functionname)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
jframe java对象,框架不工作   我无法使用java netbeans存储本地主机(数据库)的数据   启动备忘单测试时出现java I18n问题/异常   java如何在docker容器的Tomcat7中部署war文件   java如何将@JsonSerialize注释应用于lib类属性?   getter setter何时在java中使用get/set方法   javascript我没有用html显示ajax表为什么?   java如何根据列表中的元素对映射中的键进行排序   java如何将DTO映射到现有的JPA实体?   通过并行处理,使不同线程同时发送邮件的java程序   JavaWebSocket服务器:我能识别客户端吗?   基本Java/Android类模板(<?>)   java为什么JavaFX不能在自制的OpenJDK 17下工作?   在手动调整窗口大小之前,swing Java窗口无法正确重新绘制   java应用程序强制关闭。短信广播接收机   java如何在用户设备中知道第二个应用程序是否安装   java tcollector未收集数据。TSDB是空的   java解压缩包含更多嵌套字符串的字符串   使用CMD脚本安装Java