高级

数据导入导出

材料文件、光谱文件与结果导出

本章说明软件中与数据交换直接相关的四类工作:导入折射率文件、导入入射光谱文件、导出结果,以及使用 Data 页面核对当前模型数据。重点是格式、校验和排错顺序。

本章范围

功能解决的问题主要入口
折射率文件导入把测量或数据库材料数据导入结构页Structure 页的 File 模式
折射率数据库从内置 refractiveindex.info 数据库选取材料StructureFile 模式下的 Database 按钮
折射率插值控制数据点之间的折射率插值方式StructureFile 模式下的 Interpolation 下拉菜单
入射光谱文件导入把自定义光源光谱导入光学参数页Optics 页的 Incident Spectrum = File
结果导出导出计算结果、扫描结果或原始材料数据各结果页和相关操作菜单
Data 页面直接查看当前模型的 JSON 结构侧边栏 Data

Data 页面以 JSON 格式展示当前模型配置和计算结果的内部数据结构。

折射率文件:格式与导入规则

当前解析器支持 .nk.txt 两种扩展名。文件内容按“注释 + 数据行”解析。

规则当前实现
注释行# 开头;导入后会汇总到 description
分隔符空格、制表符或逗号均可
支持列数235
2 列格式wavelength nk 自动补 0
3 列格式wavelength n k
5 列格式wavelength n k nExt kExt,视为双折射文件
波长顺序导入后会按波长升序重排

文件不要求预先排序;解析器会把所有数组按同一顺序重排,因此同一行的数据对应关系会保持一致。

折射率文件的硬校验

校验项当前要求失败后常见原因
数据存在性wavelength / n / k 至少有一行有效数据只有注释,没有数据行
数值有效性所有数值必须是有限数,不能是 NaN / Infinity文件中混入文本或无效符号
波长必须 > 0 且严格递增重复波长、倒序波长
n必须 > 0错把占位值或空值写成 0
k必须 >= 0数据源中出现负吸收系数
双折射扩展若文件被识别为双折射,必须同时提供有效的 nExt / kExt5 列文件缺值,或扩展列范围非法

推荐的折射率文件写法

# 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

折射率数据库作为数据源

除本地文件上传外,Structure 页的 File 模式还提供 Database 按钮,可直接从内置的 refractiveindex.info 数据库中选取材料。数据库材料在导入后与本地上传文件具有相同的数据结构,区别在于数据库材料会保留关联信息,支持后续版本跟踪与更新。

数据库材料的管理操作详见 结构配置 - 折射率数据库结构配置 - RI 状态检查

折射率插值方法

当层或环境介质使用 File 模式加载折射率数据后,软件需要在数据点之间进行插值以获得任意波长处的折射率值。Interpolation 下拉菜单提供三种方法:

方法特点适用场景
Linear相邻数据点之间直线连接;计算最快,但曲线不光滑数据点非常密集,或仅需粗略估计
PCHIP分段三次 Hermite 插值,保持单调性,不会出现过冲推荐默认选择;适合大多数材料数据
Cubic Spline三次样条插值,二阶连续可导,曲线最光滑数据点较少但已知曲线应该光滑的场景;可能在数据突变处出现过冲
软件在运行前会检查使用 Linear 插值的层和环境介质,并提示建议改为 PCHIP。对于正式计算,推荐使用 PCHIP 作为默认插值方法。

波长覆盖检查

运行计算前,软件会自动校验所有 File 模式层和环境介质的折射率数据波长范围是否完全覆盖了 Optics 页中设置的波长采样范围。如果存在未覆盖的层,运行会被阻止。

错误信息格式为:{层名}: Refractive Index (RI) data range {数据起点}–{数据终点} nm does not cover Wavelength Sampling {采样起点}–{采样终点} nm

处理方式:

  1. 更换折射率材料,选择波长范围更宽的数据。
  2. 或在 Optics 页中缩小波长采样范围,使其落入现有数据的有效区间内。

入射光谱文件:格式与导入规则

当前解析器支持 .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与外部数据工具往返、保存清洗后的数据

原始数据导出的几个关键行为:

  1. 折射率与入射光谱导出前会再次执行格式校验;
  2. description 会按 # comment 形式写回文件头,保持与导入解析规则兼容;
  3. 折射率双折射数据导出时,会保留 nExt / kExt 列;
  4. TXT 导出采用可再次被导入的纯文本格式,适合“清洗后回写”。

结果 CSV 的阅读要点:

  • 普通计算结果按 Wavelength_nm, Value 两列导出;
  • 扫描结果会先写参数列,再写对应波长列;
  • 扫描 CSV 适合做批量对比,不适合直接当作“单条曲线文件”理解。

Data 页面:直接核对当前模型数据

Data 页面不是结果页。它显示的是当前前端状态中的模型数据结构。

面板当前内容最适合的用途
Structure当前结构数组核对层序、层名、层组展开前参数
Optics当前光学参数对象核对波长模式、探测器、光谱开关
Sweep当前扫描列表核对路径、范围和步长
Optimizer目标、变量与算法设置核对优化配置是否写入正确

每个面板都支持展开/收起,适合在以下场景使用:

  1. 导入文件后,先确认数据是否真正写入了目标字段;
  2. 扫描或优化报路径错误时,直接核对 JSON 中的路径名称;
  3. 保存示例案例前,快速检查模型状态是否与预期一致。

排错顺序

遇到“导入成功但结果不合理”时,按以下顺序排查最有效:

  1. 先检查文件本身的波长列是否严格递增,且单位一致。
  2. 再在 Data 页面核对导入后的数组长度与关键字段是否正确。
  3. 最后回到 StructureOptics 页,确认该数据是否真正被当前模型启用。

排查顺序为:文件格式 -> 数据绑定 -> 建模。

Copyright © 2026 Dreapex