先日の IGOR Proセミナー で、ソフトウェアをまたいだ日付・時刻データの扱いについて、質問をいただきました。良い機会ですので、整理してみることにします。

日付・時刻データの扱いは、他の数値データより気を使う必要があります。それは、日付・時刻データの形式が、表示形式と内部形式の2つから構成されているからです。

▼ [おさらい] 表示形式と内部形式

表示形式については、Microsoft Excel に代表される表計算ソフトを考えると分かりやすいと思います。日付も時刻も多様な表示形式がありますね。

01.png

この多様な表示形式を実現させているのは、内部的には別の形式でデータを管理しているからです。例えば、

2013/1/1
2013-1-1
2013年1月1日

いずれの形式で入力しても、正しく日付データとして扱われますが、表計算ソフトではこれらのデータを「日付シリアル」と呼ばれる内部形式のデータに変換して受け取っています。例えば、Windows の Excel では、セルに入力された上述の日付は、

41275

という値の日付シリアルとして認識されます。日付データを日付シリアルとして表示するには、形式を「標準」にするだけです。

02.png

もしかしたら、日付のはずなのに、こんな5桁の整数を見かけたことある方もいるかもしれませんね。Windows の Excel では、この日付シリアルは、次のように定義されています。

「1900年1月1日の午前0時を1として、1日増えるごとに1加算される数値」

詳しく調べたわけではありませんが、この方式を採用しているソフト(SigmaPlot なども)が多いようです。ここで、「Windows」と断ったのには訳があり、同じ Excel でも Macintosh では次のように異なっているからです。

「1904年1月1日の午前0時を1として、1日増えるごとに1加算される数値」

この4年の違いは、きっと何か歴史的な理由があるのだろうとは思いますが、ここでは掘り下げないことにします。さて、Macintosh に起源を持つ IGOR Pro はというと、Macintosh 同様に 1904/1/1 午前0時 を基準としますが、1秒を1とする形式で、微妙に異なります 。またちょっとちがう例としては FlexPro(1970/1/1基準)などというのもあります。

いずれのソフトも、日付・時刻のデータは内部的にはある起点から積み上げられた経過時間(=シリアル値)として扱われ、 表示形式はあくまで表示のための形式として区別されます。つまり、ルールの違うソフトをまたいで、日付・時刻データを扱うときに、注意が必要になるわけです。

▼ コピー&ペーストとテキストファイル

ここからは簡単のため、話を Windows に絞ることにします。多くの場合、オリジナルデータは Excel ファイルかテキストファイルでしょう。つまり、こういったデータファイルから、どうにかして IGOR Pro に日付時刻データをインポートしなくてはいけません。まずは、Excel からのコピー&ペーストを考えます。

Excel を開き、新しいスプレッドシートのA列に、41275, 41276, 41277, 41278, 41279 と数値を入力して、日付型(短い日付形式)の表示形式を選択します(2013/1/1~2013/1/5 が表示されます)。この5つのセルを選択してコピーします。このとき、クリップボードにはどんな情報が保持されているのでしょう?

03-1.png

メモ帳に貼ってみるとわかりますが、表示形式の状態でクリップボードに保持されていることがわかります。Excel 内でコピー&ペーストするときは、表示形式と内部形式の両方の情報が利用できるので大丈夫ですが、他のアプリに渡すときには、内部形式は失われてしまっているわけです。

では、Excel からテキストファイル(ここでは csv ファイル)に保存したときはどうでしょう?下の画面は上記の5つのセルのデータを持つスプレッドシートを sample.csv というファイルに保存して、メモ帳で開いたものですが、やはりコピー&ペーストの場合と同様に、表示形式だけが保存されています。

03-2.png

内部形式を意識しなくてよいメリットはありますが、IGOR Pro がこの表示形式を正しく理解する必要があることが、ハードルになります。

▼ IGOR Pro の表示形式

IGOR Pro が日付時刻データだと認識できる書式には、残念ながら制限があります。テーブルメニュー>テーブルの日付形式を選択すると次のようなダイアログが表示されます。

04-1.png

  • [地域] コントロールパネルの設定形式を使用
  • 一般形式を使用
  • カスタム形式を使用

3つのモードがあり、デフォルトでは一番最初の [地域] コントロールパネルの設定形式を使用 が選択されており、その右側に書かれているように、 このモードでは、何と、

月/日/年
月.日.年
月-日-年

の3つの形式の何れかでないと、テーブル入力できません。つまり、上記の 2013/1/1 という書式は、この表記に倣うと、

年/月/日

と表現されますので、上記の3つには合致せず入力できません。実際テーブルに入力しても、

04-2.png

と入力ボックスがハイライトされてしまい、受け付けてくれません。この状態で先ほどの Excel ファイルからコピー&ペーストしても、

04-3.png

5セルのデータであることは認識されますが、その中身が何だか分からないということになります。月→日→年という書式はいかにもアメリカらしい形式で、日本にはなじまない部分もありますが、製品の仕様ですので何卒ご理解ください。

理解できる 3つの書式で入力すると、ちゃんと認識されるわけですが、表示される書式は、必ずしも入力した書式ではないところが、さらに曲者。入力形式は上記 3つですが、表示形式は OS の「地域と言語」の設定の「日付と時刻の形式」にある「日付(短い形式)」となります。

05.png

なので、多くの場合「月/日/年」という書式で入力しても、「年/月/日」という形式で表示されます。「2013/1/1」と表示されているのですから、この形式で入力したくなるのが人情ですが、そういうわけにはいかないところが、難しい。

ではでは、年/月/日 の形式は入力できないのか?というとそういうことはなくて、残りの 2つのモードであれば、この形式に対応できます。例えば、2番目の「一般形式を使用」のモードにすると、

06.png

のような一般的な日付形式のリストから選択することができます。「年/月/日」も含まれますので選択して、テーブルに再度 2013/1/1 を入力すると、

07-1.png

と入力できますし、Excel からのコピー&ペーストも、

07-2.png

と問題ありません。ただし、このとき利用できるフォーマットはこれだけ、です。そして、このダイアログの設定は、すべてのエクスペリメントのすべてのテーブルの日付フォーマットとして使用されます。

▼ 実践

だんだん仕組みがわかってきました。時刻も加えたデータファイルをインポートしてみましょう。ファイルを読み込むときに日付の設定を指定するには、データメニュー>ウェーブをロード>ウェーブをロード を開き、ダイアログ下部にある「詳細」ボタンをクリックします。ウェーブをロード(詳細)というダイアログが開きます。

08-1.png

さらに、日付形式のリストで「その他」を選択すると、日付形式というダイアログが開きますので、リストから「年/月/日」を選択して、開いたダイアログを順に閉じます。

08-2.png

次にファイルを指定すると次のようなコマンドが生成されます。

LoadWave/J/D/W/E=1/K=0/R={English,2,2,2,2,"Year/Month/DayOfMonth",40} "date_time.csv"

/E フラグでインポートするデータに含まれる日付形式を指定しています。詳しくは LoadWave 操作関数のヘルプをご覧ください。

▼ まとめ

IGOR Pro における日付・時刻データの扱いについてまとめてみました。既定の形式が非常に限られているので、「年/月/日」という形式を扱うにはいろいろと気遣いが必要です。

--
井上@技術サポート部でした

注: 日付および時刻は、Igor のデータフォーマットの、1904 年 1 月 1 日午前 0 時からの秒数として表されます。 基準日時より前の日時は負の値で表されます。 表すことのできる日時には制限はありませんが、Windows の場合、日時は 1601 年 1 月 1 日以降でなければなりません。

また、単精度ウェーブのデータ値には日付を正しく格納することはできません。 日付と時刻を保管するために倍精度を使うことを確認してください。

※この記事の内容は執筆者の個人的見解で、ヒューリンクスによる公式情報ではありません。[免責事項]

トラックバック

この記事へのトラックバックURL
http://blog.hulinks.co.jp/cgi/mt/mt-tb.cgi/503
内容に対しての関連性がみられないものは削除する場合があります

Igor概要 利用メモ テーブル・グラフ操作関連 複数のグラフを並べる 日付時刻データなどの読み込み データ加工 マクロの利... 続きを読む

コメントの投稿

Emailアドレスは表示されません。は必須項目です。
ヒューリンクス取り扱い製品の内容や購入に関するお問い合わせはヒューリンクスサイト連絡先へお願いいたします。投稿前にその他の注意事項もご覧ください。

HULINKS サイトの新着情報