カード記録データが異常の場合のデータ救済方法


TOB3 Data rescue service by CLIMATEC is here

How to rescue alive data from broken data files written in CF card
(English version is here)

                           2011/08/01 クリマテック(株) サポート係
                           手に負えない場合は、当方にご連絡下さい

1)当社に問い合わせる方はこちら
2) PCに詳しく、自分でトライしてみたい方はこちら


1)CFカードデータがうまく回収できない場合

まず最初に Repair 処理を行ってみて下さい。 方法はこちら
1) 当社に状況をメールでお知らせ下さい
お名前、会社名(所属名)、職名
使用ロガー、CFカードの情報(容量、メーカー、型番)、FORMATの方法(FAT/FAT32)
どんなデータか(データの期間、並び、インターバル)
データの重要性
2) CFカードに記録された生データファイルを用意して下さい(*.dat)
3) Zipまたは、LZHタイプに圧縮して下さい
4) 宅ファイル便やFTPサイトを使用して、ファイルをお送り下さい
メールには添付しないで下さい
100M以上の場合は、当社にご相談下さい(FTPサイトをご紹介します)
5) 当社にて解析します
6) 回収に成功したデータをお送りします。
データファイルは、1日、1時間、30分区切りが選択できます

条件
 以下の条件をご了承頂ける場合、当社のサービスを受けられます。
 データの救済を保証するものではありません
 当社のお客様以外は、1ユーザー、1ファイルまでとします。
 お送り頂いたファイルは、第3者に公開、コピーすることはありません。
 解析した結果をWeb上に公表することがあります(その場合、オリジナルデータはわからないように、マスクします。
 



2)自分で解析し、回収したい方向け


大前提>>元の生データファイルは、必ず保存しておいて下さい
      同じファイルを圧縮して、バックアップとしても保存してください。

CR1000などのロガーで記録したTOB3形式データが異常な場合の
修正方法の解説です
専門的な用語も出てきますので、手に負えない場合は、当方にご連絡下さい

異常データの処理例を今後記載していきます
(なお、16進数は、2Ch 10進数は 32xなどと、表示します。 簡単な演算方法はこちら

データサイズが大きい場合(1GBなど)には、USBフラッシュなど高速なメディアにコピーして
作業されることをお奨めします。また、PCには十分なメモリー容量(1GB以上)が必要です。

ここでは、RDtob V2.41以後を使用した救済方法を記します。



目次

 その1:ヘッダーの後にある、不要データを読み飛ばし




その1) ヘッダーの後にある、不要データを読み飛ばし

症状:時刻が最初からずれている


バイナリーエディター(例えば、Stirling)で対象のファイルを表示します。

0)基礎

CR1000などで採用している TOB2,3のバイナリファイル形式は、以下の通りです

 ファイル
  ヘッダー(512バイト)・・・ヘッダーの長い場合は、512(200h)の倍数
  フレーム
    |
  フレーム
  フレーム(EOFフレーム)

という構造で 1つのフレームは

 フレーム
  フレームヘッダー(12バイト):フレーム番号と時刻情報
  データレコード*約1000バイトになるまでの数
  フレームフッター(4バイト):終了情報
 
1)RDtobで読み取り

とりあえず、エラーは出ますが、RDtobで読み込んでみます。
致命的でない限りヘッダーの情報を得ることができます

下の例では、Start time End time が異常になっています
  ヘッダーサイズ:512
  データサイズ:990
  レコードサイズ:22
  1フレームの中のレコード数:45
というデータが得られます

上記より、1フレームの長さは
  12+990+4=1006バイト/フレーム




2)バイナリーエディターで調査

1)正しい例




200hよりデータフレームが始まります。

200-20Bh 最初の12バイト:フレームのヘッダー(時刻など)
       必ず、00 00 00 00 という004個組が存在する
20C-221h データ1(22バイト)
222-237h データ2(22バイト)


200h + 1006x(3DEh) = 5EEh
5D4-5E9h:データ45
5EA-5EDh:1フレーム目 最後の4バイト:フレームフッター
5EE-60Fh:2フレーム目 ヘッダー(12バイト)
610-625h:データ46(2フレーム目 最初のデータ)


2)正しくない例

200h:初めのフレームヘッダーに、00 00 00 00 という004個組が存在しない



以下を検索する



検索すると、最初に以下がヒット



前後調べてみると
54E-551:前のフレームのフッター
552-55D:フレームヘッダー

上記前後はデータ

であるとみられる。更に次のフレームを調査



940-94Bh:フレームヘッダー
のようだ

940h−552h=3FEh=1006x

ということで、ちょうどフレーム間隔であることが判明
200h−551hまでの850xバイトを読み飛ばせば、正常に処理できる可能性がある。

3)RDtobで読み取り処理

3−1) Startデータの読込



仮読み込みした後、読み飛ばし数がわかったのでEDITボタンを押します

ウィンドウが表示されるので、読み飛ばし数850を入力→OKをクリック



以下の、右下のAuto search end of dataのチェックをはずします




そして、もう一度、ファイルを読み直します



今度はデータが正常に読み込めました。
これでスタートデータレコードはOK

3−2)終了データレコードの探索
自動検索がうまくいかない場合、以下の方法で検索していきます




Data Read:のチェックをはずしてから、NextMark>> ボタンをクリックします。
Frame Headerのテキストボックスのフレーム番号がカウントアップされ、時刻が表示されます
上記オプションでは、フレームのヘッダーだけ読み込むので、高速にデータを検索できます。


ある程度読み込むと、上のように1990/01/01というように、日付が異常になります。
そこで、STOPボタンを押します。
最後のデータはそれより前なので、今度は、<<PrevMarkを押します
以下のように正常な日付が見られたら、再度STOPボタンを押すということを
繰り返し、最後のフレーム近くまで位置を動かします



上記方法は高速で特定できないので、Data ReadボタンをONにしてゆっくりと、表示していき、
最後のフレームを特定します
Next frame>  1フレームずつ、前に進みます
Next Mark>>  連続でStopを押すまで前に進みます Prevはその逆



STOPの下のテキストボックスにフレーム番号を入力し、
Next Mark>>ボタンを押すと、ジャンプすることができます

最終フレームが特定できたら、出力フレームを設定します

3−3)データのファイル出力

n

File Output設定の中で、OutFrameのなかのEndを指定します。
その後、オプションを設定して、Output to Fileボタンを押すと
データが出力されます。

以上で終了。


参考) 16進計算

16進の演算はWindows標準の電卓で簡単に行えます。

16進で200hは


10進では、512xです。
10進ボタンを押すだけ。



16進の演算、そのまま16進モードで行います。

16進10進の混合演算。

入力するたびに、各モードへ移行します



このシステムに関する問い合わせ、カタログ請求はクリマテックへ

クリマテック株式会社
東京都豊島区池袋4-2-11 CTビル 6F
TEL:03-3988-6616 FAX:03-3988-6613
E-mail こちらから
http://www.weather.co.jp/

to Climatec Home page