Skip to main content

极低频视电阻率数据处理工具

Project description

cself_tools

视电阻率(MT)数据处理与可视化工具包,适用于各种地震监测站的极低频视电阻率数据。

功能特点

  • 从Oracle数据库查询视电阻率数据
  • 使用中位数绝对偏差(MAD)法过滤异常值
  • 计算移动平均平滑数据
  • 生成高质量的数据可视化图表
  • 支持多频率数据比较
  • 提供命令行界面和Python API
  • 适用于任何监测站和点位的数据,不仅限于特定站点

安装方法

依赖项

  • Python >= 3.6
  • cx_Oracle
  • pandas
  • numpy
  • matplotlib
  • addereq (用于数据库连接)

安装步骤

# 克隆仓库
git clone https://github.com/chdwql/cself_tools.git
cd cself_tools

# 安装包
pip install -e .

使用方法

命令行使用

# 使用默认参数
python -m cself_tools.cli

# 指定查询参数
python -m cself_tools.cli --start-time "2021-01-01 00:00:00" --end-time "2023-12-31 23:59:59" --station-id "37024" --point-id "E" --station-name "大山台" --frequencies 22 74 --moving-avg-days 7

# 显示帮助信息
python -m cself_tools.cli --help

Python API使用

from cself_tools import process_and_plot_mt_data

# 初始化Oracle客户端(如果需要)
from cself_tools.mt_resistivity import init_oracle_client
init_oracle_client(lib_dir='C:/instantclient')

# 处理并绘制数据
output_file = process_and_plot_mt_data(
    start_time="2021-01-01 00:00:00",
    end_time="2023-12-31 23:59:59",
    station_id="37024",  # 可以是任何监测站ID
    point_id="E",        # 可以是任何点位ID
    station_name="大山台", # 监测站名称,用于图表标题
    frequencies=[22, 74],
    moving_avg_days=7,
    db_connection="DB-Shandong-12",
    show_plot=True
)

print(f"图表已保存至: {output_file}")

参数说明

参数 说明 默认值
start_time 查询开始时间 "2020-01-01 00:00:00"
end_time 查询结束时间 "2025-05-31 23:59:59"
station_id 站点ID "37024"
point_id 点位ID "E"
station_name 站点名称(用于图表标题) "监测站"
frequencies 频率列表(Hz) [22, 74]
moving_avg_days 移动平均窗口大小(天数) 5
db_connection 数据库连接名称 "DB-Shandong-12"
oracle_client_lib Oracle客户端库目录路径 "C:/instantclient"
output_filename 输出文件名 自动生成
show_plot 是否显示图表 False
period_start 特定时间段的开始日期(用于计算均值) None
period_end 特定时间段的结束日期(用于计算均值) None
verbose 是否输出处理信息 True

主要功能

数据查询 (query_data)

从Oracle数据库查询指定时间范围、站点ID、点位ID和频率的视电阻率数据。

数据预处理 (preprocess_data)

使用中位数绝对偏差(MAD)方法过滤异常值,确保数据质量。

移动平均计算 (calculate_moving_average)

计算数据的移动平均值,平滑数据变化趋势。

数据可视化 (plot_data)

生成高质量的数据可视化图表,支持多频率数据的对比展示。

一站式处理 (process_and_plot_mt_data)

提供一站式的数据处理和可视化功能,简化操作流程。

站点配置

该工具支持处理任何监测站的视电阻率数据,只需指定:

  1. station_id - 监测站的唯一标识符
  2. point_id - 监测站内的点位标识符
  3. station_name - 监测站名称(用于图表标题)
  4. db_connection - 对应的数据库连接

示例输出

程序会生成高质量的视电阻率图表,包括:

  • 原始数据点(带误差线)
  • 移动平均曲线
  • 可选的特定时间段均值线
  • 清晰的标签和图例

注意事项

  • 需要正确配置Oracle客户端才能连接到数据库
  • 依赖addereq模块进行数据库连接,请确保该模块可用
  • 图表生成需要足够的内存和处理能力,尤其是处理大量数据时

许可证

MIT许可证

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

cself_tools-0.2.0.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cself_tools-0.2.0-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file cself_tools-0.2.0.tar.gz.

File metadata

  • Download URL: cself_tools-0.2.0.tar.gz
  • Upload date:
  • Size: 14.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for cself_tools-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b2271fdc2d7fff17c1c326bf6bc2848b887263840ef50319d9fff3558d17c6d7
MD5 82b613cab81e357fbc0d75c51ca0b0c0
BLAKE2b-256 6801e89fba4c69084921840a1d97ef6d5fbd947dc84f69d5c677b61a47520a6a

See more details on using hashes here.

File details

Details for the file cself_tools-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: cself_tools-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for cself_tools-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 17f1287b624e20c6c943325405005ca74e7f2fdc0f77416ef5a983762dc7d016
MD5 20254b4a2b444cfe53304772c0d91e65
BLAKE2b-256 5455fd577b9830e3f5cbe70227f92ce6962c48cb116e0847c09dd8651ff520fe

See more details on using hashes here.

Supported by

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