RP 系列 | 如何从软件中导出数据

2021-05-13 11:24发布

本文介绍了如何使用 RP Photonics 的软件将数据导出到文件(全部从文件导入)。某些脚本命令和功能为您提供了最大的灵活性。

经常被问到是否可以从我们的软件中导出数据,以便在其他软件(如 MatLab 或 Origin)中进一步处理它们。因此,下面这篇文章为该主题撰写一篇文章。首先问以下问题:

确定真的要导出数据吗?


这个问题很有用,因为将数据传输到其他软件有不好之处:

·  您想要将多个数据合并到一个图中。

· 您想向图表添加更多功能(例如,各种标签,其他图解等)。

· 您想使用修改后的详细信息(如字体类型和字体大小)来更改图的样式。

· 您想要生成更高分辨率的图形,例如在印刷出版物中使用。

为什么会有这些不好的原因?仅仅是因为通常在我们的软件中直接执行这些操作更为方便,避免了导出数据,启动其他软件,导入软件的麻烦,并且需要再次执行计算时从最开始进行所有操作。我们就不一一讨论如何在我们的软件中执行上述操作的详细信息。当然,还有导出数据的充分理由,例如:

· 您可能需要存储耗时的计算结果,以备后用。(当然,您也可以使用我们的软件读取这些数据,以便进一步处理和绘制它们。)


新功能:获取与图表相对应的数值数据


例如,有人会使用我们的软件生成一个图表,然后又希望以数字形式显示相应的数据点。我们实现了一项新功能,可以为您提供确切的功能。对于每个图,我们的软件都会生成一个图形窗口,该窗口现在包含一个附加的选项卡控件,您可以在该窗口中的图形输出(默认显示)和基础数值数据之间进行切换,例如,请参见屏幕截图:


图片


您仅需单击一下即可查看数值数据,还可以自由修改数据点的格式,因为这是由简单的数学表达式列表定义的。很容易实现以下目标:

· 修改显示的有效位数,或在浮点数后设置固定位数。
· 使用制表符(char(9))而不是逗号作为分隔符。
· 以任何方式重新缩放数据,例如将其转换为其他单位。
· 交换列或添加另一列,该列显示从x和y计算得出的数量。

更改格式表达式后,只需按“重新格式化”按钮,显示的结果将相应地重新计算。

然后,您可以将数据复制到 Windows 剪贴板或将数据保存到文件。

如果您已经拥有我们的软件并想要了解该功能(除了 RP Fiber Calculator,我们所有程序现在都提供了该功能)这项新功能可能会受到很多人喜爱,但显然不能满足所有潜在需求。一些例子如下:

· 数据点的x值通常不是等距的:您可以精确地获得为绘图计算的那些点,并且x位置选择是通过具有自动步长控制的绘图算法完成的。
· 您需要导出一些数据而不是绘制它们。
· 您需要自动生成多个文件(即,无需进一步的手动操作)。

因此,需要其他导出数据的方式,如下所述。(这些功能已经存在了很长时间,但是,如果您的版本太旧,则可能需要先进行更新。)


使用脚本命令


假设,我们要使用我们的软件 RP Fiber Power 生成一个文件,该文件描述光纤放大器光纤中泵浦和信号功率的变化。可以使用几行脚本代码来完成此操作,如下所示:


FileName $:=“泵和信号vs position.
txt”
写“;位置(m),泵浦功率(W),信号功率
(dBm)”,>(文件名$)
对于z:= 0至L_f步骤0.1
 写[z:f1,“,”,P(泵,z):
d6,“,”,
        10 * lg(P(signal,z)/ mW):
f1],>>(FileName $)

显然,通过这种方式,您可以完全控制细节,例如数据点的步长,值的舍入,分隔符等。

请注意,即使在RP Fiber Power中使用交互式表单时,也可以使用此类命令:表单包含可在其中输入一些脚本代码的字段。


使用表达式具有更大的灵活性


通过在表达式中使用某些函数而不是命令,您可以享受更大的灵活性。这些专门功能对于将数据输出到文件很有用;您甚至可以导出或导入二进制数据。函数和命令之间的区别在于,可以在任何数学表达式或字符串表达式中调用函数。这样的表达式可以包含在脚本命令中。然后,您还可以从我们的数学引擎中的功能更加强大的控制结构中受益。

在下面的示例中,向您展示一个示例,其中在用户定义的函数中使用了这些函数,而这次我们以二进制形式导出数据:

SavePumpAndSignal(FileName $):= 
 开始
   全球允许所有人;
   var f;
   f:= open_file(FileName
$,“ wb”);{打开以写入二进制文件}
   对于z:= 0至L_f步骤0.1
     write_bin(f,P(pump,z),
10 * lg(P(signal,z)/ mW));
   close_file(f);
 结尾

定义完之后,您可以在脚本的后面部分轻松地调用该函数。例如,您可以使用一个循环来生成多个文件,每个文件用于不同的信号输入功率:

计算
 对于P_in_dBm:= -30至-20步骤2
 开始
   set_P_in(signal,expd(P_in_dBm / 10)* mW);
     {设置信号输入功率}
   SavePumpAndSignal(“泵和信号,输入”
     + str(P_in_dBm:d6)+“ dBm.txt”);
 结尾

您会看到,这些功能为您提供了极大的灵活性。您可以生成任何格式的文本文件和二进制文件。当然,您可以将任何数字或字符串数据序列写入二进制文件。另外,您可以在单精度和双精度数据之间进行选择。


汇入资料

与上面类似,如果您想知道文件格式,则可以导入最复杂的文件类型。例如,先从此类文件中读取多少个数据点,然后读取适当数量的点,之后从结果中计算出最小值,最大值,平均值和均方根值,这都是没有问题的。



赞赏支持