一个功能强大的 Python 工具包,提供空间分析、数据插值、数据库操作、命令行工具等多种功能
Project description
flkit
一个功能强大的 Python 工具包,提供空间分析、数据插值、数据库操作、命令行工具等多种功能。
功能特性
空间分析算法 (flkit.alg)
- 三角剖分: Delaunay 三角剖分算法
- 点与几何体关系: 点在三角形内、点在多边形内、点在体积内等判断
- 距离计算: 有限平面距离、点到三角形距离等
- 追踪算法: 曲线追踪和方向计算
- 索引构建: 空间索引构建和查询
数据插值方法 (flkit.alg.inter)
- IDW: 反距离加权插值(2D/3D)
- Kriging: 克里金插值(普通克里金、泛克里金)
- RBF: 径向基函数插值
- 最近邻: 最近邻插值
- 三线性: 三线性插值
- MIDW: 改进的 IDW 插值方法
数据库操作 (flkit.db)
- MongoDB: MongoDB 数据库连接和操作
- DuckDB: DuckDB 嵌入式数据库支持
- 文件数据库: 文件对象数据库管理
- 路径工具: 路径处理和压缩工具
命令行工具 (flkit.mtcli)
- 命令解析: 灵活的命令行参数解析
- 命令组: 支持命令分组和嵌套
- 上下文管理: 命令执行上下文管理
实用工具 (flkit.tools)
- MongoDB 管理: MongoDB 进程管理
- 区域查询: 地理区域查询
- 数据转换: 字典与列表转换
- MongoDB 客户端: 命令行 MongoDB 客户端
类型系统 (flkit.typr)
- 结果处理: 统一的结果处理和错误管理
- 控制台: 控制台命令执行
- 网格系统: 2D/3D 网格管理
- Web 视图: 桌面应用 Web 视图
- 环境变量: 环境变量管理
- 验证: 数据验证工具
- WebSocket: WebSocket 任务处理
安装
环境要求
- Python >= 3.13
安装依赖
pip install numpy scipy pandas pykrige triangle pymongo duckdb pyvista pyvistaqt matplotlib opencv-python fastapi requests pywebview click pexpect pydantic python-dotenv scikit-learn
或使用版本约束:
pip install "numpy>=1.24.0" "scipy>=1.10.0" "pandas>=2.0.0" "pykrige>=1.7.0" "triangle>=20230923" "pymongo>=4.0.0" "duckdb>=0.9.0" "pyvista>=0.40.0" "pyvistaqt>=0.10.0" "matplotlib>=3.7.0" "opencv-python>=4.8.0" "fastapi>=0.100.0" "requests>=2.31.0" "pywebview>=4.0.0" "click>=8.1.0" "pexpect>=4.8.0" "pydantic>=2.0.0" "python-dotenv>=1.0.0" "scikit-learn>=1.3.0"
安装 flkit
pip install -e .
快速开始
空间插值示例
import numpy as np
from flkit.alg.inter import Kriging2D, IDW2D
# 创建已知点数据
points = np.array([
[0, 0, 10],
[1, 0, 15],
[0, 1, 12],
[1, 1, 18]
])
# 使用克里金插值
kriging = Kriging2D(variogram_model="spherical")
kriging.fit(points)
# 预测新点的值
new_point = np.array([0.5, 0.5])
predicted_value = kriging.predict(new_point)
print(f"预测值: {predicted_value}")
数据库操作示例
from flkit.db import MongoDBConnector
# 连接 MongoDB
connector = MongoDBConnector("mongodb://localhost:27017", "mydb")
# 插入数据
collection = connector.get_collection("users")
collection.insert_one({"name": "张三", "age": 25})
命令行工具示例
from flkit.typr import command, run_cmd
from typing import Optional
@command
def greet(name: str, count: int = 1):
"""问候命令"""
for _ in range(count):
print(f"你好, {name}!")
if __name__ == "__main__":
run_cmd(greet)
项目结构
flkit/
├── alg/ # 空间分析算法
│ ├── inter/ # 插值方法
│ └── ...
├── db/ # 数据库操作
├── mtcli/ # 命令行工具
├── tools/ # 实用工具
└── typr/ # 类型系统和工具
依赖库
核心依赖
- numpy, scipy, pandas - 数据科学基础
- pykrige - 克里金插值
- triangle - 三角剖分
- pymongo, duckdb - 数据库
- pyvista, pyvistaqt - 3D 可视化
- matplotlib - 2D 绘图
- opencv-python - 图像处理
- fastapi, requests, pywebview - Web 和网络
- click, pexpect - 命令行工具
- pydantic, python-dotenv - 数据验证和配置
- scikit-learn - 机器学习
许可证
请查看项目许可证文件。
贡献
欢迎提交 Issue 和 Pull Request!
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
flkit-0.1.0.tar.gz
(138.2 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
flkit-0.1.0-py3-none-any.whl
(106.3 kB
view details)
File details
Details for the file flkit-0.1.0.tar.gz.
File metadata
- Download URL: flkit-0.1.0.tar.gz
- Upload date:
- Size: 138.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
680472daaa38b44d6c46298659bcfcfd81cf0e2200b31499333d687170759110
|
|
| MD5 |
1fbf1baf320ee80066cf058b6efa6ea5
|
|
| BLAKE2b-256 |
6623f997170e9d06d057aa0d65b36b05569e6e4bafaad3829c3805f236c5e8cf
|
File details
Details for the file flkit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: flkit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 106.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58e3b3d3afc014506747749a3cefe124dd838ada3d52104897609802535f14cf
|
|
| MD5 |
a9ad0e6e4aa345433893bbe8ebf682ee
|
|
| BLAKE2b-256 |
32cb100b8954243871e2a5d7d0671c18d4c7651d56df0d0011053c9d64170b98
|