2012-05-03 8 views
2

Smart Houseの約12個のセンサーからデータを収集するアプリケーションがあります。これは、次の表形式のMySQLデータベースにデータを格納する。収集されたセンサーデータ分析のソフトウェア

CREATE TABLE IF NOT EXISTS `datapoints` (
    `PointID` int(11) NOT NULL, 
    `System` varchar(50) NOT NULL, 
    `Sensor` varchar(50) NOT NULL, 
    `Value` varchar(50) NOT NULL, 
    `Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    PRIMARY KEY (`PointID`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

Systemフィールドは、センサーをグループ化するために、例えば、「空気」システムは「温度」及び「湿度」センサ、および "を有していますソーラーパネル "システムには"電力生産量(kW) "と"生産量(kWh) "があります。フィールドはすべてvarcharです。センサーから複数のデータ型が入っていて、元のデータベース設計者が簡単に解決策をとったからです。 (このデータ構造はあまり効率的ではありませんが、変更するには遅すぎます)

センサーには、気温、湿度、ソーラーパネルの出力、太陽熱温水器の温度などが含まれています。

ここでは毎日数万点のデータポイントを収集するこのデータベースを用意しています。今までは、データベースにクエリを送信して、時間の経過とともにセンサデータのグラフを作成するアプリケーションを使用しました。しかし、現在は数ギガバイトのデータがあり、最終的にはロギングハードウェア上のストレージスペースが使い果たされます。

私はデータから統計を収集して削除する方法を探しています。私は[Google Analytics | Piwik | Awstats]を選択します。問題は、どこから始めたらいいかわからないということです。私は、例えば、より最近の時代から、より詳細なデータを見ることができるようにしたい:時間ごとのデータの全てのデータ

  • 1週間分の毎日のデータの
  • 1か月分の

    • 1日分を
    • 私は毎週、毎月の統計を永久に保ちたいと思う。

    しかし、私はあまりデータを平滑化したくありません。最終的には、データをスムーズにする必要がありますが、可能な限り詳細に保ちたいと思います。例えば、電力生産に大きなスパイクがある場合、毎週のデータで毎時のデータにスムージング(低い)してから、もう一度(下げる)、その後週次のデータで再び(下げる)平均の平均はすべての点の平均と同じではないため、スパイクがあったことは反映されません。

    既にこれを行うソフトウェアはありますか?そうでない場合は、何が良い方法ですか?どの言語でもできますが、他のプロジェクトメンバーがすでに知っている言語で、ロギングハードウェアが既に設定されているため、優先順位は.NET、PHP、またはC(Windowsの順)です。

  • 答えて

    1

    あなたはデータの問題が非常に大きく、潜在的にオープンエンドなので、あなたの問題を解決するツールはないと思います。あなたは、あなたの特定の問題のために独自のツールを開発する必要があるでしょう。

    私は科学と工学のコミュニティで使用されているPythonベースのツールを見てください。これには、対話的なデータ分析と視覚化のためにIPythonMatplotlibが含まれます。大きなデータ配列の処理と処理にはNumpyScipyを使用してください。最後に、深刻な番号の処理を行う必要がある場合は、SciKit Learnとしてください。

    幸運。

    関連する問題