Skip to main content

一个功能强大的 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


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.1.tar.gz (139.0 kB view details)

Uploaded Source

Built Distribution

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

flkit-0.1.1-py3-none-any.whl (107.5 kB view details)

Uploaded Python 3

File details

Details for the file flkit-0.1.1.tar.gz.

File metadata

  • Download URL: flkit-0.1.1.tar.gz
  • Upload date:
  • Size: 139.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.11

File hashes

Hashes for flkit-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ee1d3d2474c9654a7e523d3500dff7d1f217186358656eb2ef28be7077dd7562
MD5 b9e604f67cf8feeb92219904ca451f79
BLAKE2b-256 05a28e6c5b2dd759c821a8c0c64a47f5f953c2034b229438ff79b543261f42c8

See more details on using hashes here.

File details

Details for the file flkit-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: flkit-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 107.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.11

File hashes

Hashes for flkit-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5749ffbb1597f48b74f3c3a0bfcf947df8bee217616523c84a6331b0ae6d1bb3
MD5 3b80ded31b33088196bb0e8655df31af
BLAKE2b-256 3b49a1a41f3989b80c4c38c69aba551035593098ee2bfc202d2727da88c1aeeb

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