Skip to content
D-sudoasdPublic

About

Drop a folder of 1D txt spectra; get one Origin Pro .opju (auto XYYY/XYXY, sheet groups).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ori — Import research tables into editable Origin projects / 将科研表格导入可编辑的 Origin 工程. Conceptual illustration / 概念插图。

Ori

将常见科研表格导入可编辑的 Origin 工程,或只导出带来源信息的 Excel 工作簿。

Ori imports typed text tables, Excel sheets, and flat JSON data. Inspect columns, review the X/Y and error-column mapping, then export tables and optional Origin graphs while keeping source identity and units.

源码启动 · 通用表格导入 · CLI / Agent · 示例表格 · 导入计划说明

MIT

Ori — workflow schematic / 流程示意图

Editable diagram source / 可编辑图源

先检查一个仓库示例: 在安装依赖后运行 py -3 -m origin_bridge inspect -i ./examples_general。该命令返回表格摘要,不写输出或启动 Origin。

导出 OPJU 需要可用的 Windows OriginPro;XLSX 只生成表格。程序保留原值、类型、单位和缺失值,不插值、拟合、平滑或自动换算单位。旧两列光谱/XRD 流程继续保留。

原理示意 / Principle schematic

类型化表格、X/Y/误差列映射及 OPJU/XLSX 输出区别 — conceptual schematic / 概念示意图

概念示意:导入计划为原始表格指定 X、Y 和误差列并保存来源哈希;OPJU 可含表格与图形,XLSX 输出只有表格,类型、单位和缺失值应保留。图中曲线是合成示意,不是实验结果。

Conceptual schematic: an import plan maps X, Y and error columns and retains source hashes; OPJU can contain tables and graphs, whereas XLSX export contains tables only. Types, units and missing values are preserved; the curve is synthetic, not an experimental result.

查看完整示意图 / View full-size schematic

开始使用

Windows 用户从源码运行(Python 3.10+):

py -3 -m pip install -r requirements.txt
py -3 spectra_to_origin.py

不带参数启动新版通用数据窗口。也可以先把文件或文件夹作为参数传入,或直接打开旧谱线窗口:

py -3 spectra_to_origin.py .\examples_general
py -3 spectra_to_origin.py --spectra-gui .\examples

.opju 导出需要 Windows 上已安装并可用的 OriginPro,以及当前 Python 环境中的 OriginPro 接口:

py -3 -m pip install originpro

程序会检查并拒绝在已有 Origin 会话运行时创建工程,以免重置当前工作。导出 XLSX 不需要 Origin;XLSX 只生成数据表,绘图设置保存在来源信息中,图形由 OPJU 导出生成。

通用数据导入

新版窗口可以添加文件或文件夹,查看表名、列类型和数据预览,再选择 X、一个或多个 Y、绘图方式及输出位置。Excel 的每个非空工作表会作为单独数据表列出;窗口可设置表头、跳过行数和分隔符。命令行和导入计划可以指定 Excel 工作表。

添加文件、文件夹或拖放时,展开在后台进行,来源列表按帧刷新。默认是每个来源一个文件:窗口只发现路径,预览选中的来源,不把全部文件先读进内存。合并为一个工程时才逐个检查全部来源。检查结果只保留摘要(列结构、少量样例和图形建议),并用文件内容 SHA-256 加读取选项决定是否重读;文件大小或修改时间相同但内容变了也会重读。某个来源读失败时,列表会标出错误,其他来源仍可按文件导出。合并为一个工程时,任一来源失败或尚未读完会拒绝保存计划和导出。

每个来源一个文件

选择输出目录后,每个输入文件生成一个 OPJU 或 XLSX。同一个 Excel 工作簿的非空工作表进入这一个文件。可选为每个图再写 PDF(仅 OPJU),以及覆盖已有输出。绘图设置作用于每一个文件、每一张表:自动使用各表自己的建议;明确写出的列名或列号如果对不上,该文件失败,不会改用预览里的其他列。全数字按从 0 开始的列号。误差列需要 Y 使用原列名:有误差列时不能把 Y 写成列号,窗口会在启动前说明,不会等整批失败后再解释,也不会拿预览里的列名去替换。没有误差列时,Y 仍可以用列号。

窗口每次新建批次都会另写一对 batch-record-<id>.json 和 batch-config-<id>.json,并把这条记录路径交给核心。同一输出目录里的下一次批次使用新的名字,不会覆盖上一批的记录、配置、.bak、.previous 或日志。每个来源的 OPJU/XLSX 仍按源路径生成稳定文件名。旧的 batch-record.json 加 batch-config.json 仍可从新窗口继续。只拿到命令行留下的运行记录时,窗口会说明缺配置,并让你指出原来的配置,不会按当前界面默认值重导。命令行不传 --record 时,默认记录仍是该目录的 batch-record.json。重试仍把全部来源交给核心,不在窗口里提前丢掉已成功的文件。已成功的 OPJU 会保留。PDF 没写成时,任务可以是成功且错误为空,具体的图和原因在 pdf_errors 里。不要为了补 PDF 去勾选“覆盖已有输出”。批次结束时若核心带回恢复或损坏等提示,窗口会给出条数,并可在“查看完整详情”里看全文。

“停止后续”在当前这项完成后不再开始后面的任务,已写好的文件保留。它不能强行打断卡在 Origin 启动证明之前的调用。关闭窗口前应先停止并等待结束;直接销毁窗口会先请求取消,再收尾,不会立刻杀掉正在写的进程。

合并为一个工程仍使用原来的单次导出、计划 JSON 和“完成后保持打开”。PDF、继续和重试只出现在每个来源一个文件的模式里。旧的两列谱线窗口和命令行保留。

表格支持数值、文本、日期时间和缺失单元格。TXT 等文本支持逗号、分号、Tab 或空白分隔符;常见 UTF 编码和 GB 系列中文编码会自动识别。JSON 支持对象记录数组、列数组对象和 { "columns": [...], "data": [...] } 矩形表;JSONL/NDJSON 每行须为字段一致的对象记录。嵌套 JSON 对象和数组不会被压平成文本。

绘图可选不绘图、折线、散点、折线加符号或柱状图;窗口支持为单个 Y 指定误差列,导入计划可分别映射多个 Y 误差列。导入时保留表中的全部列;选择 X/Y 只决定图形,不会丢弃其他列。Origin 工程和 Excel 工作簿都附带来源信息工作表,记录源路径与哈希、工作表、读入选项、列信息和图形设置。自动建议便于起步,但遇到不明确的列头或列类型时,应先检查预览并修正导入设置。

数值和日期转换服从 Origin/Excel 的单元格格式;文本数据写入为文本列。对于 JSON、TXT 等输入中的日期时间,支持 ISO 8601 格式。XLSX 默认读取公式的缓存值;若没有缓存结果会报错,可将 formula_policy 设为 text 导入公式文本。

Agent 与命令行

新通用 CLI 每条命令均输出 UTF-8 JSON,适合脚本和 agent 自动化。Windows PowerShell 示例:

# 检查文件、工作表、列类型、缺失值和图形建议;不会写文件或启动 Origin
py -3 -m origin_bridge inspect -i .\examples_general

# 生成计划;自动识别输出格式,另存可审阅的计划 JSON
py -3 -m origin_bridge plan -i .\examples_general\stress_strain.tsv `
  -o .\out\stress.opju --save .\out\stress-plan.json

# 审阅计划后执行(执行器会校验最终计划)
py -3 -m origin_bridge execute .\out\stress-plan.json

# 只要表格,不需要 Origin 或图形
py -3 -m origin_bridge import -i .\examples_general\categories.json `
  -o .\out\categories.xlsx --plot none

计划默认不覆盖已有文件;如要替换,需要明确传入 --overwrite。绘图可用 --plot auto|none|line|scatter|line_symbol|column,并用 --x 列名 和 --y 列名 ... 选择图形列。误差列映射在导入计划中设置。可用 --header auto|yes|no、--skip-rows N、--delimiter auto|whitespace|tab|,|; 和 --sheet 工作表名 处理来源格式。Excel 省略 --sheet 时读取所有非空工作表。运行 py -3 -m origin_bridge --help 或在子命令后添加 --help 查看完整选项。

batch 子命令为每个输入文件写一个输出。不传 --record 时,续跑记录是输出目录的 batch-record.json。窗口新建批次则会传入独立的 batch-record-<id>.json。--resume 只在源内容、读取设置、绘图设置、输出路径和输出字节都未变时跳过;文件存在或修改时间相同不会单独构成跳过条件。签名、JSON 示例、取消、重试和 PDF 约定见 docs/batch-api.md。

需要 agent 通过 MCP 直接操作时,安装可选依赖并在 MCP 客户端中将项目目录设为工作目录、启动 python -m origin_bridge.mcp_server:

py -3 -m pip install -r requirements-agent.txt
py -3 -m origin_bridge.mcp_server

服务提供 inspect_data、create_import_plan、validate_import_plan 和 execute_import_plan。通常用 create_import_plan(include_inspection=true) 一次获取来源摘要和计划,审阅后调用 execute_import_plan(confirm=true);执行器会校验最终计划,无须固定先做独立校验。MCP 计划默认格式为 opju,生成 XLSX 请传入 output_format="xlsx"。同一服务对内容和选项未变的来源复用有界解析缓存,每次独立调用仍核对内容 SHA-256。.opju 由同一台 Windows 机器上的 Origin 生成。配置和计划格式见 Agent 指南 与 JSON Schema;开发检查路由见 开发指南。

支持范围

该工具面向矩形、扁平表格。它不解析 PDF、图片、任意专有二进制文件或多层嵌套对象。对列名和类型的建议是启发式结果,不代表领域判断;agent 可检查样例和类型,用户可编辑计划来修正映射。不会自动推断或改写物理单位,也不会据数据内容生成分析结论。

旧版 XRD/光谱批量导入

旧模式针对每个文件一条两列数值谱线。可按文件名分组、指定组数均分或将所有曲线放入一组;同组 X 网格一致时使用 XYYY,否则使用 XYXY。自动布局按每组独立判断,不以近似容差合并不同网格。

打开旧窗口:

py -3 spectra_to_origin.py --spectra-gui .\examples

兼容的旧 CLI:

# 校验输入
py -3 spectra_to_origin.py --check -i .\examples --group-by-name

# 生成 Origin 工程
py -3 spectra_to_origin.py --cli -i .\examples -o .\out\spectra.opju --layout auto --group-by-name

# 只导出 Excel 和 CSV
py -3 spectra_to_origin.py --cli --xlsx-only -i .\examples -o .\out\spectra.xlsx --n-groups 2

旧模式文本支持 TXT、DAT、XY、CSV、TSV,要求两列数据、至少两个点;支持空白、Tab、逗号、分号、常见 UTF 和 GB 系编码、科学计数法及 Fortran D 指数。可以设置 X/Y 名称和单位;不会插值、拟合、平滑或归一化。旧模式参数可通过 py -3 spectra_to_origin.py --help 查看。

Windows 程序

源码构建:

py -3 -m pip install -r requirements-build.txt
py -3 -m PyInstaller --noconfirm --clean SpectraToOrigin.spec

生成 dist\SpectraToOrigin.exe(通用 GUI,也可用 --spectra-gui 打开旧窗口)和 dist\DataToOriginCLI.exe(命令行 JSON 接口)。仓库 examples_general 包含应力应变 TSV、分类性能 JSON 和监测 JSONL 演示数据;旧版两列谱线数据在 examples。

运行测试:

py -3 -m unittest discover -v

真实 Origin 集成测试需要已安装 OriginPro,并通过 SPECTRA_TEST_ORIGIN=1 显式启用。测试只检查导入、保存和可回读数据,不代表任何材料或实验结论。

MIT License,见 LICENSE。

About

Drop a folder of 1D txt spectra; get one Origin Pro .opju (auto XYYY/XYXY, sheet groups).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages