私たちは「スマート」な世界を目指しながら、それが自然現象に与えるダメージを軽視しています。環境保護主義者の間で高まっている懸念のひとつに、地球温暖化による気候の変化があります。この気候変動は、動物やその生息地にも影響を及ぼしています。多くの動物は、気候の変化に対応するために、その特徴を変えたり、別の生息地に移動したりしています。
名門大学LSUの科学者たちは、アマゾンの熱帯雨林で40年以上にわたってデータを収集しました。気温や降水量といった気候変動の指標とともに、さまざまな種類の鳥の翼の大きさや質量を測定したのです。すべての鳥の質量と翼の長さに対して、それらを記録した年だけでなく、その前の年の気温と降水量のデータも使います。
GridDBを使ったデータセットのエクスポートとインポート:
GridDBは、高いスケーラビリティとインメモリNo SQLデータベースで、並列処理により高いパフォーマンスと効率性を実現します。IoTやビッグデータ技術に対応した時系列データベースに最適化されています。GridDBのpythonクライアントを利用することで、GridDBとpythonアプリケーションを簡単に接続し、リアルタイムにデータのインポートやエクスポートに利用することができます。
ライブラリ:
いくつかのpythonライブラリを使用して、データの前処理と視覚的な分析を行う予定です。
- Pandas: 特にデータフレームを扱う際に多く利用されるPythonのライブラリ。
- Matplotlib: 基本的なプロットを用いてデータを視覚的に表現するための主要なライブラリ。
- Seaborn: 複雑なプロットを描画する上級者向けライブラリ。
前処理:
データセットがデータフレームの形で変数 “data “に保存されました。
データセットには分析で使用しないカラムがいくつか含まれているので、メモリ消費を最小限に抑え、分析の時間効率を最大化するために、それらをデータフレームから削除することにします。
データフレームに残っている、分析に使用する列は以下のとおりです。
- species: 鳥の学名
- spMeanMass: このデータセットにおけるこの種の平均質量
- spMeanWing: このデータセットにおけるこの種の平均翼長
- spMeanMW: このデータセットにおけるこの種の質量と翼の比率の平均値
- year: 捕獲した年
- mass: 鳥の質量(g)
- wing: 翼弦長(mm)
- mw:質量と翼の測定値の比率(両方ある場合)
- temp_lag0_dry: 捕獲した季節(乾季)の平均気温(℃)
- temp_lag2_dry: 前年の乾季の平均気温(℃)
- precip_lag0_dry: 捕獲時期(乾季)の総降水量(mm)
- precip_lag2_dry: 前年の乾季の総降水量(mm)
また、各行を個別に追跡するのに役立つ主キーカラムを導入する必要があります。インデックスをリセットして、名前を ‘ID’ に変更します。
これで前処理が完了したので、データフレームをCSVで保存し、GridDBにエクスポートすることにします。
GridDBへのデータセットの書き出し:
では、GridDBにデータをアップロードします。そのために、前処理されたCSVファイルをpandasで読み込み、データフレームに保存します。
ここで、行情報を挿入する前にデータベースのデザインを生成できるように、GridDBにカラム情報を渡すためのコンテナを作成します。
これでデータベースの設計ができたので、GridDBにデータを簡単に挿入することができます。
GridDBからデータセットをインポートする:
GridDBデータベースからデータを問い合わせるのに、SQLコマンドに似たTQLを使用することにします。データを取得する前に、データの行を抽出するコンテナを作成し、データフレームに保存します。
次のステップは、列情報の順に行を抽出してデータフレームに保存し、データの可視化と分析に使用することです。
これでデータがpandasのデータフレーム “data “に保存され、引き続きプロジェクトに使用できるようになりました。
データ解析と可視化:
データを掘り下げ、気候条件と鳥の特徴の変化の間のパターンを発見します。気候条件は以下の 2 つを用います。
- 気温 (Temperature)
- 降水量 (Precipitation)
「MW」という列を使い、鳥の翼長に対する質量の比から、特徴がどのように変化しているかを判断することにします。
まず、データを種と年にグループ分けして、種によって質量翼長比がどのように経年変化するかを調べることから分析を始めてみましょう。残りの列の平均を取ることによって、「年」と「種」の2つの列を使ったデータフレームでグループ化します。
さらに深く掘り下げるには、すべての種の折れ線グラフを個別に可視化すればよいです。
ほとんどのプロットで、一般的な傾向は同じで、質量/翼長比は時間とともに減少し、これは翼長が時間とともに増加すると質量が減少することを意味します。これを理解するために、上のコマンドのプロットのいくつかを紹介します。
図1-4: 種の質量-翼長の経時変化
次に、気候指標が時間とともにどのように変化しているかを探っていきます。そのために、まず、データを年ごとにグループ分けします。そして、seabornライブラリを使って、気温と降水量の年次変化をグラフにします。
以下のグラフが生成されます。
。
図5および6: 気候指標の経年変化
結論:
時間の経過とともに気温は上昇し、降水量は減少しており、鳥類を含む動物にも影響が及んでいると結論づけることができます。鳥の質量は減少し、翼の長さは気候の変化に適応するために長くなっています。すべての解析は、バックエンドにGridDBデータベースを使用することで、シームレスかつ効率的に統合することができました。
ブログの内容について疑問や質問がある場合は Q&A サイトである Stack Overflow に質問を投稿しましょう。 GridDB 開発者やエンジニアから速やかな回答が得られるようにするためにも "griddb" タグをつけることをお忘れなく。 https://stackoverflow.com/questions/ask?tags=griddb