FracDimPy 是一个功能强大、易于使用的Python软件包,专门用于分形维数计算和多重分形分析。无论您是研究分形几何的科研人员,还是需要分析复杂数据的工程师,FracDimPy都能为您提供专业、准确的分析工具。
-
🔢 多种单分形方法
- Hurst指数法 (R/S分析)
- 盒计数法 (Box-counting)
- 信息维数法 (Information Dimension)
- 关联维数法 (Correlation Dimension)
- 结构函数法 (Structure Function)
- 变差函数法 (Variogram)
- 沙盒法 (Sandbox)
- 去趋势波动分析 (DFA)
-
📊 多重分形分析
- 一维曲线多重分形分析
- 二维图像多重分形分析
- 多重分形去趋势波动分析 (MF-DFA)
- 自定义尺度序列
-
🎨 分形生成器
- 经典分形:Cantor集、Sierpinski三角形/地毯、Koch曲线、Menger海绵等
- 随机分形:布朗运动、Lévy飞行、自回避行走、扩散限制聚集(DLA)
- 分形曲线:FBM曲线、Weierstrass-Mandelbrot函数、Takagi曲线
- 分形曲面:FBM曲面、Weierstrass-Mandelbrot曲面、Takagi曲面
-
📈 丰富的可视化
- 自动生成专业图表
- 双对数图拟合
- 多重分形谱展示
- 可定制的绘图选项
-
💾 灵活的数据处理
- 支持多种数据格式 (CSV, Excel, TXT, NPY, 图像等)
- 自动数据预处理
- 结果导出功能
# 安装完整包(包含所有依赖)
pip install FracDimPy对于中国大陆用户,建议使用清华大学镜像源进行安装,速度会更快:
# 使用清华镜像安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple FracDimPy
# 或者永久配置镜像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install FracDimPy常用镜像源:
- 清华大学:
https://pypi.tuna.tsinghua.edu.cn/simple - 阿里云:
https://mirrors.aliyun.com/pypi/simple - 中科大:
https://pypi.mirrors.ustc.edu.cn/simple - 豆瓣:
https://pypi.douban.com/simple
# 注意:包名为首字母小写
import fracDimPy
# 从子模块导入具体功能
from fracDimPy.monofractal import *
from fracDimPy.multifractal import *
from fracDimPy.generator import *重要说明:虽然PyPI包名为FracDimPy(大写F),但在Python代码中需要使用import fracDimPy(小写f)进行导入。
提供多种单分形维数计算方法:
| 方法 | 函数名 | 适用数据类型 | 说明 |
|---|---|---|---|
| Hurst指数 | hurst_dimension() |
1D时间序列 | R/S分析、修正R/S、DFA |
| 盒计数法 | box_counting() |
1D/2D/3D | 最常用的分形维数计算方法 |
| 信息维数 | information_dimension() |
点集数据 | 基于信息熵的维数 |
| 关联维数 | correlation_dimension() |
点集数据 | 基于关联积分 |
| 结构函数 | structural_function() |
1D曲线 | 适用于自仿射曲线 |
| 变差函数 | variogram_method() |
1D/2D | 地统计学方法 |
| 沙盒法 | sandbox_method() |
点集/图像 | 局部尺度分析 |
| DFA | dfa() |
1D时间序列 | 去趋势波动分析 |
提供多重分形分析工具:
| 函数 | 说明 | 输出 |
|---|---|---|
multifractal_curve() |
一维曲线多重分形分析 | 配分函数、广义维数、多重分形谱 |
multifractal_image() |
二维图像多重分形分析 | 奇异性指数、多重分形特征 |
mf_dfa() |
多重分形DFA | 波动函数、Hurst指数谱 |
生成各种理论和随机分形:
曲线类 (1D):
generate_fbm_curve()- 分数布朗运动曲线generate_wm_curve()- Weierstrass-Mandelbrot函数generate_takagi_curve()- Takagi曲线generate_koch_curve()- Koch曲线generate_brownian_motion()- 布朗运动generate_levy_flight()- Lévy飞行
曲面类 (2D):
generate_fbm_surface()- 分数布朗运动曲面generate_wm_surface()- WM曲面generate_takagi_surface()- Takagi曲面
图案类 (几何分形):
generate_cantor_set()- Cantor集generate_sierpinski()- Sierpinski三角形generate_sierpinski_carpet()- Sierpinski地毯generate_vicsek_fractal()- Vicsek分形generate_koch_snowflake()- Koch雪花generate_dla()- 扩散限制聚集generate_menger_sponge()- Menger海绵(3D)
- 数据读写 (
data_io) - 可视化工具 (
plotting)
FracDimPy可应用于多个科学和工程领域:
- 地球科学:地形分析、地震数据、裂缝网络
- 材料科学:多孔介质、表面粗糙度、纳米结构
- 生物医学:DNA序列、蛋白质折叠、医学影像
- 金融分析:股票价格、市场波动、风险评估
- 图像处理:纹理分析、模式识别、图像分割
- 环境科学:河流网络、云图分析、污染扩散
- 物理学:湍流、相变、混沌系统
examples 目录包含丰富的示例代码和测试数据:
examples/
├── monofractal/ # 单分形方法示例
│ ├── test_hurst.py
│ ├── test_box_counting_*.py
│ └── ...
├── multifractal/ # 多重分形示例
│ ├── test_mf_curve_*.py
│ ├── test_mf_image.py
│ └── ...
└── generator/ # 分形生成示例
├── test_koch.py
├── test_dla.py
└── ...
运行示例:
cd examples/monofractal
python test_hurst.py- Python >= 3.8
- NumPy >= 1.20.0
- SciPy >= 1.7.0
- Matplotlib >= 3.3.0
- Pandas >= 1.3.0
- NumPy >= 1.20.0 - 数值计算基础
- SciPy >= 1.7.0 - 科学计算工具
- Matplotlib >= 3.3.0 - 数据可视化
- Pandas >= 1.3.0 - 数据处理
- OpenCV >= 4.5.0 - 图像处理(作为cv2导入)
- Pillow >= 9.0.0 - 图像读写
所有依赖已自动安装,无需手动安装额外库即可使用全部功能。
完整依赖列表请参阅 pyproject.toml
欢迎各种形式的贡献!无论是报告bug、提出新功能建议,还是提交代码改进。
请参阅 CONTRIBUTING.md 了解详细的贡献指南。
- Zhile Han - 主要开发者 - 知乎主页
本项目采用 GNU General Public License v3.0 许可证 - 详见 LICENSE 文件
- 作者: Zhile Han
- 邮箱: 2667032759@qq.com
- 地址: 油气藏地质及开发工程全国重点实验室,西南石油大学,成都610500,中国
- 知乎: 小学生也想写书
- GitHub: https://github.com/Kecoya/FracDimPy
如果您在研究中使用了FracDimPy,请引用:
@software{fracdimpy2024,
author = {Zhile Han},
title = {FracDimPy: A Comprehensive Python Package for Fractal Dimension Calculation and Multifractal Analysis},
year = {2024},
url = {https://github.com/Kecoya/FracDimPy},
version = {0.1.3}
}感谢所有为分形理论和算法实现做出贡献的研究者和开源社区成员。
如果这个项目对您有帮助,请给它一个⭐️!
- NumPy - 数值计算基础
- SciPy - 科学计算工具
- Matplotlib - 数据可视化
Made with ❤️ by Zhile Han