安装

注解

Geoist项目还处于高速发展阶段,未完全定型.

我们欢迎收到您的反馈、意见和建议! 可以在简书回复留言 简书GEOIST手册 或者直接给我们发邮件(microg at cea-igp.ac.cn).

Python版本

GEOIST基于 Python 3.6 或更高版本 环境开发.

推荐使用 Anaconda 提供的Python环境,或确保可使用 conda 包管理器。

如果您要保持最新的软件更新,建议采用 GIT版本工具

GEOIST功能?

  • 重力平差和模型计算

针对流动重力数据处理中与测量仪器和方法相关的不确定性,该模型引入贝叶斯优化方法,可以有效减小数据解算误差,估计参数的不确定性。

  • 密度结构反演与成像

提供时变模型、三维密度结构模型的反演功能,特别是针对反演方程中的权参数选择问题,提供了优化方法。

  • 弹性厚度反演

提供了导纳和相关系数联合反演方法,可以用于从重力异常估算岩石圈有效弹性厚度的方法。

  • 位场异常计算和变换

提供了重力异常计算函数,地磁场化极,以及位场的空间解析延拓等功能。

  • 地磁模型计算和分析

提供多种地磁模型解算程序,包括主磁场、岩石圈磁场、电离层磁场等。

  • 地震目录分析

提供地震目录下载、管理、可视化、质量控制、平滑、除丛、震级转换等多种功能。

  • 时间序列处理

提供时间序列数据预处理,去趋势、平滑、去尖峰、突跳等功能,还包括了异常自动检测的处理功能。

GEOIST的核心围绕地震行业的科研需求开展,采用社区型开发理念,欢迎大家贡献代码。

GEOIST的部分代码参考了其它开源项目,经过优化和修改,进行了重新集成,以便更适合于使用。

第三方依赖

GEOIST 主要依赖的第三方软件包:

我们推荐使用Jupyter和Spyder编辑器,使用和开发GEOIST软件:

  • Jupyter: 适合于教学和演示.

  • Spyder: 适合于开发和调试.

环境准备

在安装GEOIST之前, 您必须确保GEOIST所依赖的其它第三方软件包可用.这可以通过 conda 包管理器来查看. 我们推荐使用Anaconda提供的环境,可以省去一些主流的第三方包安装和配置麻烦.

您可以从国外的官方conda的下载地址安装包 conda-forge channel:

conda config --prepend channels conda-forge

对于一些国内可能存在的外网访问速度问题,我们也推荐使用国内镜象地址来安装第三方包:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

另外,对于可能的兼容性问题,您可以在本地创建一个专用于GEOIST的虚拟环境 (这里假设虚拟环境名称为 geoist 当然您可以设置为任何您期望的名字):

conda create --name geoist python=3.6 pip numpy pandas xarray scipy numba h5py Cython matplotlib seaborn

激活创建好的Geoist的虚拟环境:

conda activate geoist

使用虚拟环境的好处是,安装GEOIST后不会影响您原系统的其它虚拟环境.

注解

理论上GEOIST具有跨平台能力,可以在Windows、Linux和macOS上运行. 但是可能存在一些数据文件格式,平台目录访问方法、多线程通信等方面的问题,如果您发现相关问题, 请在我们的项目网站反馈留言 creating an issue on Github.

安装GEOIST

安装Anaconda环境后,打开Anaconda Prompt,激活指定的虚拟环境, 使用 pip 命令可以从远程直接下载安装:

pip install git+https://github.com/igp-gravity/geoist.git

如果网络速度较慢可以先下载项目代码到本地,再使用 pip:

git clone https://github.com/igp-gravity/geoist.git
cd geoist
pip install .

如果安装成功,可以在python环境中,运行:

import geoist

如果一切顺利,就可以开始工作啦:)

另外,GEOIST也支持Docker安装方式,直接可以运行 docker pull 拉取命令:

docker pull registry.cn-beijing.aliyuncs.com/rular099/geoist:0.0.1

注解

Docker文件打包了Jupyter Notebook环境,文件大小约2G,暂时存放在阿里云.

示例程序

GEOIST提供了两种格式的示例程序.

在notebooks目录下,我们提供了适用于Jupyter Notebook使用的示例程序.

在examples目录下,我们提供了适合于Spyder使用的py源程序文件.

以上两个目录下的例子,可以确保您熟悉和掌握Geoist软件包的使用方法.掌握主要的函数接口调用方式.

本地工作目录

GEOIST软件在运行过程中,需要进行数据交换(远程和本地,内存和磁盘),因此需要本地路径暂存数据。 Geoist为方便管理,提供了统一的工作路径。用户只需要调用统一的命令就可以使用系统路径,不依赖于操作系统。 这样做的好处是避免程序中出现本地路径,给移植造成不必要的麻烦(因为你的代码copy给其他人,但是他的电脑上没有你的路径)。.

导入GEOIST后,会自动设置四个路径变量 USER_DATA_PATH, DATA_PATH, TEMP_PATHEXAMPLES_PATH 您编写代码的时候,为保持程序的独立性,可以使用这四个路径作为文件读取地址,用法如下:

import geoist
print(geoist.USER_DATA_PATH)
print(geoist.TEMP_PATH)
print(geoist.DATA_PATH)
print(geoist.EXAMPLES_PATH)

数据获取功能

在地球物理数据处理和计算之前,通常需要获取远程的数据,可能是一个URL地址,或者Restful的API形式。 Geoist软件包在others的目录下提供了fetch_data.py程序,实现了这些功能(当然您也可以根据实际情况扩展它)。

  • API形式:一些API地址有时候不容易记忆,以USGS的地震目录为例,用户不必记住具体地址和参数,

通过usgs_catalog函数就可以实现了,下面代码usgsfile变量是下载后本地的存储文件名:

from geoist.others.fetch_data import usgs_catalog
usgsfile = 'usgsca.csv'
localpath2 = usgs_catalog(usgsfile, '1970-01-01', '2020-01-01', '15','55','70','135',minmag = '5')
print(localpath2)
  • URL形式:也可以是一个指定的URL地址,下面是从内网的服务器地址下载一个地震目录文件的方法。当然,任何支持下载的URL都可以复用该函数:

    import geoist.others.fetch_data as data
    from geoist.others.fetch_data import _retrieve_file as downloadurl
    url = data.ispec_catalog_url
    print(url)
    filename = '2020-03-25CENC-M4.7.dat'
    localpath = downloadurl(url+filename, filename)
    print(localpath)
    

操作日志

Python提供了强大的日志功能,Geoist对其进行了二次封装。在安装Geoist软件后,会在本地的USER_DATA_PATH路径下, 会产生一个geoist.log的文本文件,里面会记录用户期望记录的日志内容。无论是您使用geoist,还是在geoist模块中, 当期望记录程序使用或模块被调用时的输出信息,都可以调用geoist的log函数实现,目前,该函数提供info,debug,error三种类别的日志。 方法如下:

import geoist
geoist.log.info('info message')
geoist.log.debug('debug message')
geoist.log.error('error message')