- 神山 翼 [こうやま つばさ], 2024: Python による気象・気候データ解析 I. Pythonの基礎 ・ 気候値と偏差 ・ 回帰相関分析。朝倉書店, 190 pp. ISBN 978-4-254-16138-0.
- 神山 翼, 2024: Python による気象・気候データ解析 II. スペクトル解析 ・ EOF と SVD ・ 統計検定と推定。朝倉書店, 224 pp. ISBN 978-4-254-16139-7.
A5判 横書き ペーパーバックの2巻本。いずれも、奥付によれば2024年 5月 1日発行。実際には4月下旬に発売されていた。
【Amazon.co.jp では 4月の早いうちから予約注文できたが、e-hon (トーハン) や 紀伊国屋書店の通信販売では予約をうけつけておらず、注文可能になったのは4月24日だった。わたしは e-hon で4月24日に注文したところ、もよりの書店にとどいたのは5月8日だった。このような日数がかかったのは連休にかかったせいだろう。日本資本の通信販売が、4月はじめから「近刊」の形で情報を提供したにもかかわらず、予約をうけつけなかったのは、日本の新刊書には再販売価格維持制度があり、出版社から提示された販売条件に不確定なところがあったからかと想像する。英語圏では予約購入と現物購入でねだんが多少ちがうのはあたりまえなので Amazon は気にせず予約をうけただろう。品薄になったのは、予約注文数が出版社の予想をだいぶこえていたかららしい。それがみんな Amazon にとられてしまったことになる。日本の書店・とりつぎ業者には、もうすこし予約に積極的になってほしいと思う。】
Python 言語をつかって気象データの統計的解析をする実習教科書的な本だ。計算機プログラミングの本、統計学の本、気象学の本としてそれぞれみると、いずれもものたりないだろう。しかし、気象学について操作可能な知識をもつための教育課程では、この3つを適度なレベルでくみあわせた教育が必要だ。本書は、著者がすでに授業でつかいその多くはウェブサイトで公開もしている教材をみがいたもので、その目的には役にたつだろう。なんらかのデータ解析にすでにとりくんでいて気象データを対象にくわえたい人にとっては、知っていることはそのとおりであることを確認し、気象特有のことをまなぶ形でつかえるだろう。
言語としては Python をつかっているが、Python 特有の技巧をつかっていない。また、Python の「モジュール」として、数値計算の Numpy、作図の matplotlib、地図をかく cartopy、気象・海洋などでつかわれるデータ形式 netCDF をよむための netcdf4 をつかっているが、そのほかのものに手をひろげていない。統計学的解析をしているが、そのためのモジュールではなく、相関・回帰は Numpy にその機能があるのでつかい、主成分分析は Numpy にある行列の固有値・固有ベクトルの計算の関数をつかってくみたてている。他のプログラム言語、たとえば Fortran にうつっていく人にも有用なようにしてあるのだ。
本書での Python の 実行環境は、Anaconda の Jupyter Notebook を基本とし、Google Colaboratory をつかう方法を副としてしめしている。
【わたしのほうは Linux 上で (Anaconda でいれてはいるのだが) コマンドラインで python を起動するつかいかたと、Windows 上の Anaconda の Anaconda power shell の python コマンド または Spyder でつかうことをしている。本書の記述のうち Jupyter Notebook 特有のこと (気づいたかぎりでは「!」ではじまる行をつかっているところ) について別の方法をさぐる必要があるほかは、さしつかえなさそうだ。】
本書の例文の提示のしかたは、Python を interactive につかう環境を前提としているようで、各章のあたまで その章でつかうモジュールをインポートし、データを読みこんでおいて、あとは処理を小出しに提示している。
【わたしの教材は、Fortranプログラムと同様に、完結したプログラムをつくっておいて一気に実行する方式だ。ただ、こちらの方式ではそれぞれの例文の行数が多くなるので、本にプログラム全文を収録するのはむずかしくなる。】
単純な時系列データの例としては1地点の地上気温、空間 2次元の分布をもつデータの例としては海面水温の緯度経度格子データがつかわれている。「気象」解析で海面水温は奇妙かもしれないが、「気候」ならば、海洋は気候システムの部分だし、海面は人間の行動範囲とかさなるから、もんくなしにふくまれるだろう。海面水温は陸上では定義できないことは、欠損のある格子データの例となる。また、エルニーニョ関連など、気候システム内の変動についてのいくつかの「指数」 (index, 指標) が海面水温をつかって定義されているので、海面水温データはその材料でもある。
第1巻の第1章では、Python のごく簡単な操作のつぎに、Numpy で行列演算をしてみる【わたしのばあいはこれは初級ではやらないが、主成分分析を第11章のように提示するのならば準備としてこれは必要だ。】 matplotlib でグラフの作図をしてみる。また結果をまとめる方法を紹介している (この部分は Jupyter Notebook 依存)。
第2章では 空間2次元と時間の次元をもつデータ (例として海面水温) を作図して見てみる。(この段階では地図の機能はつかわず、経度を横軸、緯度を縦軸とし、直交直線座標であるかのようにあつかっている。海岸線データなどとくみあわせたり、地図投影方法を変えることは、第10章の課題となる。)
第3章では「気候値」 (月を区別した累年平均値) を計算し、第4章では各年各月の値の気候値からの偏差を計算する。第5章では時系列の「線型 (linear, 直線的) トレンド」をもとめ、もとの値から線型トレンドをとりのぞいた時系列をも計算する。第6章では海面水温からエルニーニョの解析につかわれる指数 (index) を計算してみる。
第7章では、なんらかの基準で選抜された日時群について数量を平均する「コンポジット (composite)」という方法をやって、作図してみる。第8章では2つの変量の相関係数や直線回帰を計算する。第9章では空間分布をもつ量の相関と回帰の結果を図示する。
「主成分分析」と「経験的直交関数 (EOF) 展開」は、気象の分野ではほぼ同意語だが、本書では、空間構造を固有ベクトル、時間構造を各成分の時系列として分解する技術を「主成分分析」として第1巻第11-12章で、それを気象・海洋データに具体的に応用するところを「EOF解析」として第2巻第8章であつかっている。
第2巻の前半では時系列解析の方法をあつかう。1章で前提となるフーリエ級数の知識を簡単に提示し、1-2章でパワースペクトル、7章でクロススペクトル、3章で移動平均、4-5章でディジタルフィルタ、6章で自己相関 (ラグ (lag) 相関) をあつかっている。
つづく部分では多変量解析の方法をあつかう。8章の EOF解析 (主成分分析の応用) につづいて、9章で特異値分解 (SVD)、10章で最大共分散分析 (MCA)、11章で示強変動抽出 (IVE) をあつかっている。【このうち EOF 以外は、1980年代なかばに教育課程をおえたわたしは学ぶ機会のないままきてしまった技法である。】
最後の部分では統計的検定をあつかっている。12章で理屈、13章で平均値の t検定、14章で相関係数や回帰係数の検定および信頼区間の推定、15章でパワースペクトルの検定をあつかっている。
第1巻は気象・気候データについてのリテラシーを得ること、第2巻はそれをつかって研究をするならば知っておきたい技法を身につけることを目標としているといえるだろう。
【わたしのたちばでは、直接に教科書としてはつかわないが教材づくりの参考にし、学生には、第1巻はなるべく全部読むことをすすめ、第2巻は必要を感じた項目をえらんで読むことをすすめることになりそうだ。】
折りかえしのあとに、第1巻、第2巻の順に、目次をつける。
Continue reading →