2
  1. *.spa バイナリ ファイル形式は企業秘密ですか? しかし、Perkin Elmer は *.sp 形式を公開しました。

  2. 読み方?

4

4 に答える 4

3

このスレッドが少し古いことは承知していますが、最近 SPA ファイルを読む必要があり、それらにどう対処したかを共有したいと思います。
cooooldog が述べているように、0x41c オフセットは標準ではありません。ただし、このオフセットは spa ファイル自体にコーディングされています。
spa ファイルを編集する場合、先頭に短いヘッダーがあり、その後に多数のゼロがあります。0x11e からはゼロ以外の値です。
スペクトル ファイルの正しいオフセットを見つける方法を次に示し
ます。 0x11e から始めて、int32 値の読み取りを開始します。データ オフセットは、この値の直前にコード化されているようです: 54 18 00 00 (10 進数で 6228)。
編集 : 検索パターンが 54 18 00 00 ではなく 40 61 00 00 (24896) である新しい一連のスパ ファイルを受け取ったので、これも標準ではない可能性があります。実際、開始アドレスは、spa ファイルで 172h または 182h にコーディングされているようです。私はまだそれを見つける方法が必要です。
そのため、6228 を探すと、ファイル内で後でデータを見つけるために必要なオフセットは、この値 6228 の直前にある整数になります。spa
ファイルの編集を続けると、32 ビット コードの浮動小数点値がすぐ後に配置されていることがわかります。テキストの束。
今後は、0x41c を見つかったアドレスに置き換えるだけで、これらの値を読み取ることができます。
これが誰かを助けることができれば...

function address = getStart(filename)  
    try  
        % Open the file  
        fid=fopen(filename,'r');  
        % Jump where the values become interesting  
        fseek(fid,hex2dec('11e'),'bof');  
        % Pattern we're looking for  
        pattern = 6228;  
        suspect = 0;  
        while suspect~=pattern  
            oldSuspect = suspect;  
            suspect    = fread(fid,1,'int32');  
        end  
        % The correct address is just before our current suspect  
        address = oldSuspect;  
        % Close the file  
        fclose(fid);  
    catch ex  
        address = 0;  
        disp(ex)  
end  
于 2014-04-01T15:10:35.957 に答える
2

スペクトル オフセットが設定されている場所を見つけました。386 の位置にあります。

fseek(fid,386,'bof'); 
spectral_offset = fread(fid,1,'int32')

fseek(fid,spectral_offset,'bof'); 
spectrum=fread(fid,Number_of_DataPoints,'single');
于 2015-10-20T13:05:14.410 に答える
0

Matlab の実装

https://cn.mathworks.com/matlabcentral/fileexchange/57904-loadspectra

FTIR および NIR 吸光度データを分析するには、スペクトル ファイルをインポートする必要があります。この関数は、.SPA 形式のファイルからデータを行列にロードし、スペクトルを列に編成します。

C/C++ 実装:

Github に小さなオープン ソース プロジェクトがあります。

https://github.com/aitap/spa2txt

このプログラムは、Nicolet FTIR スペクトル ファイル (*.spa 拡張子) を読み取り、最初の行がタイトルに対応し、他のすべての行が波数、タブ、吸光度、改行の形式であるテキスト ファイルを生成します。

使用法: *.spa ファイルをコマンド ライン引数としてフィードします。*.spa.txt という名前のファイルが作成されます。

于 2017-02-27T06:14:50.913 に答える