极低频视电阻率数据处理工具
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)
提供一站式的数据处理和可视化功能,简化操作流程。
站点配置
该工具支持处理任何监测站的视电阻率数据,只需指定:
station_id- 监测站的唯一标识符point_id- 监测站内的点位标识符station_name- 监测站名称(用于图表标题)db_connection- 对应的数据库连接
示例输出
程序会生成高质量的视电阻率图表,包括:
- 原始数据点(带误差线)
- 移动平均曲线
- 可选的特定时间段均值线
- 清晰的标签和图例
注意事项
- 需要正确配置Oracle客户端才能连接到数据库
- 依赖addereq模块进行数据库连接,请确保该模块可用
- 图表生成需要足够的内存和处理能力,尤其是处理大量数据时
许可证
MIT许可证
Project details
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2271fdc2d7fff17c1c326bf6bc2848b887263840ef50319d9fff3558d17c6d7
|
|
| MD5 |
82b613cab81e357fbc0d75c51ca0b0c0
|
|
| BLAKE2b-256 |
6801e89fba4c69084921840a1d97ef6d5fbd947dc84f69d5c677b61a47520a6a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17f1287b624e20c6c943325405005ca74e7f2fdc0f77416ef5a983762dc7d016
|
|
| MD5 |
20254b4a2b444cfe53304772c0d91e65
|
|
| BLAKE2b-256 |
5455fd577b9830e3f5cbe70227f92ce6962c48cb116e0847c09dd8651ff520fe
|