吾爱光设

 找回密码
 注册
会员须知
会员须知
实用帮助
实用帮助
查看: 4514|回复: 0

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

[复制链接]
  • TA的每日心情
    奋斗
    2022-4-11 09:15
  • 签到天数: 38 天

    [LV.5]常住居民I

    542

    主题

    140

    回帖

    6

    积分

    小白

    积分
    6
    发表于 2021-5-11 10:04 | 显示全部楼层 |阅读模式
    本文介绍了如何使用 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”);
      结尾

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


    汇入资料

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



    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    联系我们|本论坛只支持PC端注册|手机版|小黑屋|吾爱光设 ( 粤ICP备15067533号 )

    GMT+8, 2024-11-23 08:16 , Processed in 0.125000 second(s), 21 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表