Raspberry Piならテキストよりバイナリか

[最終更新] 2016年7月25日

テキストファイルは便利です。なにしろわかりやすい。単純明快。csv形式は最高のフォーマットの一つだと思います。あらゆるデータはできるだけcsvで残しておきたいものです。

スポンサーリンク

人にわかりやすいテキスト、コンピュータにわかりやすいバイナリ

しかし人間にとってわかりやすいものはコンピュータにとってはわかりづらい。逆も又然り。コンピュータにテキストファイルを読み込ませるのは存外時間がかかる。もちろんそれが10kB程度のデータであれば何の問題もありませんが、100MBのテキストファイルとなるとどうか。昨今のコンピュータは非常に早いので、それでも問題ないかもしれませんが、やはり一瞬でというわけにはいきますまい。まして最近の小型化の流れ…Raspberry Piのような、そういった小型のコンピュータボードではどうか。なかなか厳しくなってきます。

Raspherry Pi に相応しいのは…

そんなわけでコンピュータに優しいバイナリでのデータ出力というものが必要なのはいまだに変わらず。最近Raspberry Pi(以下RPi)で4MB程度のcsvデータを読み込ませたのですが、PythonのNumPyを利用して13秒程度かかりました(RPi、というよりARMではPythonの実行速度がとりわけ遅いという報告もあるようです。実際Rでは3-4秒程度で読み込めた)。これはちょっと厳しい…。それをいったんバイナリデータに変換し(1.6MBになりました)、再度Pythonで読み込んでみると、こちらは60ms。瞬時。

これはバイナリにせざるを得ないなぁということで、バイナリとなるとデータフォーマットをどうしようか、という面倒臭い問題があります。可読性、汎用性を考えると、独自フォーマットはあまり気が進みません。

気象系のデータなのですが、気象系ではNetCDFというオープンなフォーマットがであるようなので、そういった標準のものを採用したいところですが、ニッチなジャンルだからか日本語の情報が少なく、調べていくとなかなかしんどそうです。主要な言語でライブラリがあるので、使うだけならすぐできそうですが、得体の知れないフォーマットを使いたくはありませんし、そうなると勉強しないと。float型でデータを吐き出すだけならフォーマットも何もなかろうしそれでもいいかな、とか、いやせっかくなのだからもうちょっと真面目に頑張ろう、とか、悩ましいところです。

関連コンテンツ

関連記事

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。