色の知覚(1)太陽光では,新エネルギー・産業技術総合開発機構の日射データが巨大すぎてインポートできなかった.データをある程度絞り込むことで何とかならないか,試行錯誤した結果を報告する.
csv ファイルの構造をよく読む
まずはファイルの構造をよく把握しておくことが重要である.この場合,日射スペクトルデータベース解説書になる.11 ページ以降に「分光データファイルのフォーマット」という章題があり,特に表 5-6 の各行の構成をよく読む必要がある.
また,表 5-7 のリマーク値の意味もよく把握しておく必要がある.データとして有効なリマーク値は 0, 1, 2 のみであり,それ以外は意味をなさない.
テキストフィルターを活用してデータを絞り込む
今回太陽光のスペクトルデータは波長 350 nm から 1700 nm までの 1 nm ごとのデータである.一度にまとめてインポートしようとすると,メモリ溢れを起こして EXCEL がフリーズする(Power BI なら全件インポートできる).となると,何らかの規則で絞り込む必要がある.
データ件数を 10 分の 1 にするならテキストフィルター条件を 0 で終わるとする.100 分の 1 なら 00 で終わるとする.今回は 25 分の 1 にしてみた.
明言していないが,ここではWaveLength のデータ型はテキスト型である.後で数値型に変換する.
ends with のテキストを 1 ずつ加算して 25 回繰り返せば,理屈の上では全データを取得できる.
25 分の 1 でも結果は 2100 万件
かなり時間を要して取得したデータ件数は 21,099,375 件でファイルサイズは 68 MB.この 25 倍となると,概算で 5 億件,1.7 GB を超える.EXCEL で扱える範囲ではない.
それでも,ピボットグラフなら表現は可能だ.
ピボットグラフに表現する
Insert タブの Charts に PivotChart があり,押下すると PivotChart & PivotTable があるのでこれをクリックする.
Create PivotTable ではブック内のデータモデルを使用していることを確認し,このまま OK をクリックする.
先程作成した列名が表示されており,これをピボットテーブルのボックスに投入していく.
グラフの表現目的を確認する
グラフの表現目的を繰り返し確認する.「波長ごとの放射照度の日内変動」であった.
「波長ごとの」で WaveLength を Legend (Series) に投入する.これは系列になる.
「日内変動」で Hour と Minute を Axis (Categories) に投入する.これは横軸である.
「放射照度」を縦軸で表現したいので Σ Values に投入する.初期値では Sum (合計)となっているが,Average (平均)に変更する.
Year, Month, Day を Filters に投入する.Point も Filters に投入する.ここでは集約の粒度を指定することになる.
Σ 値の集計方法を合計から平均に変更する.
グラフの種類の変更
初期設定では縦棒グラフであるが,積み上げ棒グラフに変更する.
系列の間隔を詰めてゼロに
データ系列の書式の間隔を 0 とする.
結果
つくば市のデータを示す.例によって春分の日,夏至,秋分の日,冬至を代表として 3 月,6 月,9 月,12 月を示す.
北米のデータと比較すると中央寄りに分布している印象である.この分布の違いが,植生の違いや太陽光発電効率の違いに影響している可能性がある.