Skip to content

从 CSV 导入并打开钻孔数据库

外部系统(如 Excel、地质数据库)导出 CSV 后,通过 SDK 转换为 Dimine 标准格式,保存为 .dmd 钻孔数据库,并自动在 Dimine 中打开。

前置条件

uv add pandas

Dimine 需已启动并开启 WebSocket 服务(默认 ws://localhost:8000)。

完整示例

import asyncio
import pandas as pd
from dimine_python_sdk.lib.prospecting import DrillDBManager
from dimine_python_sdk.conn import open_client


async def import_and_open():
    # ------------------------------------------------------------------
    # 1. 从 CSV 导入并映射为中文标准列名
    # ------------------------------------------------------------------
    db = DrillDBManager()

    db.collar = pd.read_csv("raw_collar.csv").rename(columns={
        "HoleID": "工程号",
        "X": "横坐标",
        "Y": "纵坐标",
        "Z": "高程",
        "Depth": "总深度",
        "Line": "勘探线",
    })

    db.survey = pd.read_csv("raw_survey.csv").rename(columns={
        "HoleID": "工程号",
        "Depth": "测斜深度",
        "Azimuth": "方位角",
        "Dip": "倾角",
    })

    db.lithology = pd.read_csv("raw_lithology.csv").rename(columns={
        "HoleID": "工程号",
        "From": "起始",
        "To": "结束",
        "Rock": "岩性编号",
    })

    # 样品表可选
    # db.sample = pd.read_csv("raw_sample.csv").rename(columns={
    #     "HoleID": "工程号",
    #     "SampleID": "样本编号",
    #     "From": "起始",
    #     "To": "结束",
    # })

    # ------------------------------------------------------------------
    # 2. 保存为 .dmd 钻孔数据库
    # ------------------------------------------------------------------
    dmd_path = "C:/Projects/Mine/钻孔数据.dmd"
    db.save(dmd_path)
    print(f"已保存: {dmd_path}")

    # ------------------------------------------------------------------
    # 3. 在 Dimine 中打开(需 Dimine 已启动 WebSocket 服务)
    # ------------------------------------------------------------------
    async with open_client() as client:
        file_info = await client.open_file(dmd_path)
        print(f"已在 Dimine 中打开: {file_info.name}, ID: {file_info.id}")


if __name__ == "__main__":
    asyncio.run(import_and_open())

列名映射速查

外部 CSV 列名 中文标准列名 对应表
HoleID 工程号 孔口表 / 测斜表 / 岩性表
X 横坐标 孔口表
Y 纵坐标 孔口表
Z 高程 孔口表
Depth 总深度 / 测斜深度 孔口表 / 测斜表
Line 勘探线 孔口表
Azimuth 方位角 测斜表
Dip 倾角 测斜表
From 起始 岩性表 / 样品表
To 结束 岩性表 / 样品表
Rock 岩性编号 岩性表
  • 列名映射使用 pandas.DataFrame.rename(columns=...) 完成
  • DataFrame 列名必须符合标准列名映射规范
  • .dmd 文件与 {stem}_collar.dmt / {stem}_survey.dmt / {stem}_lithology.dmt 等子表文件保存在同一目录下