从 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等子表文件保存在同一目录下