高级
数据导入导出
材料文件、光谱文件与结果导出
本章说明软件中与数据交换直接相关的四类工作:导入折射率文件、导入入射光谱文件、导出结果,以及使用 Data 页面核对当前模型数据。重点是格式、校验和排错顺序。
本章范围
| 功能 | 解决的问题 | 主要入口 |
|---|---|---|
| 折射率文件导入 | 把测量或数据库材料数据导入结构页 | Structure 页的 File 模式 |
| 入射光谱文件导入 | 把自定义光源光谱导入光学参数页 | Optics 页的 Incident Spectrum = File |
| 结果导出 | 导出计算结果、扫描结果或原始材料数据 | 各结果页和相关操作菜单 |
Data 页面 | 直接查看当前模型的 JSON 结构 | 侧边栏 Data |
折射率文件:格式与导入规则
当前解析器支持 .nk 与 .txt 两种扩展名。文件内容按“注释 + 数据行”解析。
| 规则 | 当前实现 |
|---|---|
| 注释行 | 以 # 开头;导入后会汇总到 description |
| 分隔符 | 空格、制表符或逗号均可 |
| 支持列数 | 2、3、5 列 |
| 2 列格式 | wavelength n,k 自动补 0 |
| 3 列格式 | wavelength n k |
| 5 列格式 | wavelength n k nExt kExt,视为双折射文件 |
| 波长顺序 | 导入后会按波长升序重排 |
文件不要求预先排序;解析器会把所有数组按同一顺序重排,因此同一行的数据对应关系会保持一致。
折射率文件的硬校验
| 校验项 | 当前要求 | 失败后常见原因 |
|---|---|---|
| 数据存在性 | wavelength / n / k 至少有一行有效数据 | 只有注释,没有数据行 |
| 数值有效性 | 所有数值必须是有限数,不能是 NaN / Infinity | 文件中混入文本或无效符号 |
| 波长 | 必须 > 0 且严格递增 | 重复波长、倒序波长 |
n | 必须 > 0 | 错把占位值或空值写成 0 |
k | 必须 >= 0 | 数据源中出现负吸收系数 |
| 双折射扩展 | 若文件被识别为双折射,必须同时提供有效的 nExt / kExt | 5 列文件缺值,或扩展列范围非法 |
推荐的折射率文件写法
# ITO measured data
# source: ellipsometry fit
400 1.95 0.12
500 1.90 0.10
600 1.87 0.09
如果需要双折射文件,扩展为:
# Birefringent sample
400 1.70 0.00 1.75 0.00
500 1.69 0.00 1.74 0.00
600 1.68 0.00 1.73 0.00
入射光谱文件:格式与导入规则
当前解析器支持 .txt 与 .pl。与折射率文件不同,入射光谱文件只接受两列数据。
| 规则 | 当前实现 |
|---|---|
| 注释行 | 以 # 开头;导入后会汇总到 description |
| 分隔符 | 空格、制表符或逗号均可 |
| 列数 | 必须是 2 列 |
| 数据格式 | wavelength intensity |
入射光谱文件的硬校验
| 校验项 | 当前要求 | 失败后常见原因 |
|---|---|---|
| 数据存在性 | 必须至少有一行有效数据 | 文件只有注释或空行 |
| 列数 | 每行必须恰好 2 列 | 多写了单位列或备注列 |
| 数值有效性 | 所有数值必须是有限数 | 文本、空值、非法符号 |
| 波长 | 必须 > 0 且严格递增 | 波长倒序或重复 |
| 强度 | 必须是非负数 | 负强度或无意义归一化值 |
推荐的入射光谱文件写法
# Custom LED spectrum
400 0.12
450 0.45
500 0.92
550 1.00
600 0.61
若后续还要启用 Visible Color,请同时确认该光谱与当前波长采样区间一致,否则颜色结果会被波长范围约束阻止。
导出:结果数据与原始文件的回写
软件当前提供两类导出。
| 类型 | 当前能力 | 典型用途 |
|---|---|---|
| 结果导出 | 结果页可导出 CSV;扫描结果会按参数组合展开成多列 | 做后处理、拟合、汇报 |
| 原始数据导出 | 折射率文件与入射光谱数据可导出为 CSV / TXT | 与外部数据工具往返、保存清洗后的数据 |
原始数据导出的几个关键行为:
- 折射率与入射光谱导出前会再次执行格式校验;
description会按# comment形式写回文件头,保持与导入解析规则兼容;- 折射率双折射数据导出时,会保留
nExt / kExt列; TXT导出采用可再次被导入的纯文本格式,适合“清洗后回写”。
结果 CSV 的阅读要点:
- 普通计算结果按
Wavelength_nm, Value两列导出; - 扫描结果会先写参数列,再写对应波长列;
- 扫描 CSV 适合做批量对比,不适合直接当作“单条曲线文件”理解。
Data 页面:直接核对当前模型数据
Data 页面不是结果页。它显示的是当前前端状态中的模型数据结构。
| 面板 | 当前内容 | 最适合的用途 |
|---|---|---|
Structure | 当前结构数组 | 核对层序、层名、层组展开前参数 |
Optics | 当前光学参数对象 | 核对波长模式、探测器、光谱开关 |
Sweep | 当前扫描列表 | 核对路径、范围和步长 |
Optimizer | 目标、变量与算法设置 | 核对优化配置是否写入正确 |
每个面板都支持展开/收起,适合在以下场景使用:
- 导入文件后,先确认数据是否真正写入了目标字段;
- 扫描或优化报路径错误时,直接核对 JSON 中的路径名称;
- 保存示例案例前,快速检查模型状态是否与预期一致。
排错顺序
遇到“导入成功但结果不合理”时,按以下顺序排查最有效:
- 先检查文件本身的波长列是否严格递增,且单位一致。
- 再在
Data页面核对导入后的数组长度与关键字段是否正确。 - 最后回到
Structure或Optics页,确认该数据是否真正被当前模型启用。
排查顺序为:文件格式 -> 数据绑定 -> 建模。