RP 系列 | 如何從軟件中導出數據


       本文介紹了如何使用 RP Photonics 的軟件將數據導出到文件(全部從文件導入)。某些腳本命令和功能為您提供了最大的靈活性。

經常被問到是否可以從我們的軟件中導出數據,以便在其他軟件(如 MatLab 或 Origin)中進一步處理它們。因此,下面這篇文章為該主題撰寫一篇文章。 首先問以下問題:

確定真的要導出數據嗎?

這個問題很有用,因為將數據傳輸到其他軟件有不好之處:

·  您想要將多個數據合并到一個圖中。

· 您想向圖表添加更多功能(例如,各種標簽,其他圖解等)。

· 您想使用修改后的詳細信息(如字體類型和字體大?。﹣砀膱D的樣式。

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

為什么會有這些不好的原因?僅僅是因為通常在我們的軟件中直接執行這些操作更為方便,避免了導出數據,啟動其他軟件,導入軟件的麻煩,并且需要再次執行計算時從最開始進行所有操作。我們就不一一討論如何在我們的軟件中執行上述操作的詳細信息。當然,還有導出數據的充分理由,例如:

· 您可能需要存儲耗時的計算結果,以備后用。(當然,您也可以使用我們的軟件讀取這些數據,以便進一步處理和繪制它們。)

新功能:獲取與圖表相對應的數值數據

例如,有人會使用我們的軟件生成一個圖表,然后又希望以數字形式顯示相應的數據點。我們實現了一項新功能,可以為您提供確切的功能。對于每個圖,我們的軟件都會生成一個圖形窗口,該窗口現在包含一個附加的選項卡控件,您可以在該窗口中的圖形輸出(默認顯示)和基礎數值數據之間進行切換,例如,請參見屏幕截圖:


RP 系列 | 如何從軟件中導出數據的圖1


您僅需單擊一下即可查看數值數據,還可以自由修改數據點的格式,因為這是由簡單的數學表達式列表定義的。很容易實現以下目標:

· 修改顯示的有效位數,或在浮點數后設置固定位數。
· 使用制表符(char(9))而不是逗號作為分隔符。
· 以任何方式重新縮放數據,例如將其轉換為其他單位。
· 交換列或添加另一列,該列顯示從x和y計算得出的數量。

更改格式表達式后,只需按“重新格式化”按鈕,顯示的結果將相應地重新計算。

然后,您可以將數據復制到 Windows 剪貼板或將數據保存到文件。

如果您已經擁有我們的軟件并想要了解該功能(除了 RP Fiber Calculator,我們所有程序現在都提供了該功能)這項新功能可能會受到很多人喜愛,但顯然不能滿足所有潛在需求。一些例子如下:

· 數據點的x值通常不是等距的:您可以精確地獲得為繪圖計算的那些點,并且x位置選擇是通過具有自動步長控制的繪圖算法完成的。
· 您需要導出一些數據而不是繪制它們。
· 您需要自動生成多個文件(即,無需進一步的手動操作)。

因此,需要其他導出數據的方式,如下所述。(這些功能已經存在了很長時間,但是,如果您的版本太舊,則可能需要先進行更新。)

使用腳本命令

假設,我們要使用我們的軟件 RP Fiber Power 生成一個文件,該文件描述光纖放大器光纖中泵浦和信號功率的變化。可以使用幾行腳本代碼來完成此操作,如下所示:

FileName$ := "pump and signal vs position.txt"
write "; position (m), pump power (W), signal power (dBm)",
 >(FileName$)
for z := 0 to L_f step 0.1 do
 write [z:f1, ", ", P(pump, z):d6, ", ",
        10 * lg(P(signal, z) / mW):f1], >>(FileName$)
 

顯然,通過這種方式,您可以完全控制細節,例如數據點的步長,值的舍入,分隔符等。

請注意,即使在RP Fiber Power中使用交互式表單時,也可以使用此類命令:表單包含可在其中輸入一些腳本代碼的字段。

使用表達式具有更大的靈活性

通過在表達式中使用某些函數而不是命令,您可以享受更大的靈活性。這些專門功能對于將數據輸出到文件很有用;您甚至可以導出或導入二進制數據。函數和命令之間的區別在于,可以在任何數學表達式或字符串表達式中調用函數。這樣的表達式可以包含在腳本命令中。然后,您還可以從我們的數學引擎中的功能更加強大的控制結構中受益。

在下面的示例中,向您展示一個示例,其中在用戶定義的函數中使用了這些函數,而這次我們以二進制形式導出數據:

SavePumpAndSignal(FileName$) :=
 begin
   global allow all;
   var f;
   f := open_file(FileName$, "wb");
     { open for writing a binary file }
   for z := 0 to L_f step 0.1 do
     write_bin(f, P(pump, z), 10 * lg(P(signal, z) / mW));
   close_file(f);
 end  

定義完之后,您可以在腳本的后面部分輕松地調用該函數。例如,您可以使用一個循環來生成多個文件,每個文件用于不同的信號輸入功率:

calc
 for P_in_dBm := -30 to -20 step 2 do
 begin
   set_P_in(signal, expd(P_in_dBm / 10) * mW);
     { set the signal input power }
   SavePumpAndSignal("pump and signal, input "
     + str(P_in_dBm:d6) + " dBm.txt");
 end
 

您會看到,這些功能為您提供了極大的靈活性。您可以生成任何格式的文本文件和二進制文件。當然,您可以將任何數字或字符串數據序列寫入二進制文件。另外,您可以在單精度和雙精度數據之間進行選擇。

匯入資料

與上面類似,如果您想知道文件格式,則可以導入最復雜的文件類型。例如,先從此類文件中讀取多少個數據點,然后讀取適當數量的點,之后從結果中計算出最小值,最大值,平均值和均方根值,這都是沒有問題的。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1