コラム ~ 桜開花を追って
はじめに
2023年4月3~5日に山形市に、5~6日に角館、6日に盛岡に行ってきました。
普段は神奈川県在住の私、出発日の4月3日、神奈川県は既に桜が散り始めていました。山形市は桜が咲き始めて満開に向かう状態、角館は先始め、盛岡は咲いているな、という状況でした。今年はやたらと桜の開花が早いな…と多くの人が思っているのではないでしょうか。今回は、それをネタにコラムを書いてみようと思います。
山形で4月上旬に桜が満開なんて…
写真は4月4日夜の霞城公園の桜。いやぁもう満開といっていいでしょう。ちなみに桜の名所の一つ馬見ヶ崎川の河川敷は、4月6日にほぼ満開。
ここは、4月3日の昼に山形に到着した時にはまだ3部咲きぐらいでした。私は高校まで山形市で育ちました。そのころの記憶によれば、山形市の桜は4月の第二週~第三週ぐらいに咲いて、新入生や新社会人の新歓の時期に花見をするという感覚。現在住んでいる神奈川県県央はちょっと前までは入学式の時期に満開になったよなという事で、いずれにせよ今年はずいぶん早く桜が咲いたなというのが実感です。
ちなみに、山形市から約200キロメートル北の角館は、
こんな感じで咲き始めでした。この日は盛岡に移動して、凄く大きな岩が祭られている櫻山神社に詣でました。
角館(約北緯39.6度)とそれほど緯度が違わない盛岡(約北緯39.7度)では満開に近い桜に出会いました。
データで検証してみる
これ?IoT 系の定期購読マガジンのネタなの?って感じですが、IoT Technology はそもそもが現実世界の情報を収集して活用するというものですね。感覚的にこんな感じだよな…ではなく、現実世界のデータに裏図けられる事実を元に状況判断や予測を行う IT システムを実現するのに役立つのが IoT ということです。その辺りの詳細は、「IoT・Digital Twins 最初の一歩」を読んでいただくとして、本題の桜開花について考えると、「今年は早いなぁ…」とか、「今年に限らず最近早い気がするけど、やはり温暖化の影響かなぁ…」は、あくまでも私の主観であって、本当にそうなのか確認が必要だろうという事です。20年以上住んでいる神奈川県県央についてならいざ知らず、山形を離れてから既に40年以上経っていて、その間、桜が咲くころに山形に帰省していたのは記憶を辿ると2、3回?なんですね。半世紀前は4月の第二週~第三週だったとはいえ、その後どうなのかは実は全く知りません。
そんなわけでネット上で探してみると、ありました。気象庁のページです。
気象庁のデータを基に検証してみる
このサイトは、年代を辿ると、1953年から2022年までの各地の地点の桜の開花日が調べられるようになっています。例えば、2001~2010年の、盛岡、秋田、山形、東京、横浜を抜き出すと、
地点名 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 平年値 代替種目
月 日 月 日 月 日 月 日 月 日 月 日 月 日 月 日 月 日 月 日 月 日
盛岡 * 4 15 4 11 4 16 4 13 4 23 4 24 4 20 4 12 4 13 4 25 4 18
秋田 * 4 12 4 7 4 16 4 12 4 24 4 21 4 18 4 10 4 14 4 24 4 17
山形 * 4 12 4 3 4 14 4 10 4 19 4 18 4 13 4 12 4 11 4 19 4 13
東京 * 3 23 3 16 3 27 3 18 3 31 3 21 3 20 3 22 3 21 3 22 3 24
横浜 * 3 22 3 15 3 27 3 18 4 2 3 21 3 23 3 23 3 22 3 22 3 25
こんなデータが記載されています。これを見ると、2002年の山形はなんと今年とそれほど変わらない時期に桜が咲いている事が判ります。そうなんだ…
開花日が〇月〇日だと判り難いので、1月1日からの日数を計算して、グラフ化してみました。
グラフ化してみると、結構ばらつきがあるんだなというのと、折れ線が右に行くほど低くなっていて、やはり早まってきているのか?という感じですね。傾向を見るために、10年の平均値を計算してグラフ化してみます。
これを見ると、
1990年ぐらいから2010年にかけて徐々に桜開花が早まっている
ただし、東京・横浜に比べると東北地方は1996年ぐらいから早まるのが止まっている
2010年あたりで逆に開花が遅くなり2020年あたりからまた徐々に早まってきている
といったことが読み取れます。東京・神奈川については2000年初頭に比べると2週間弱早まっているのが見て取れます。また、山形についてもやはりそのぐらい1980年代に比べると早まっていて、私の高校時代を基準にした感覚と齟齬は無いようです。ただ、1990年代後半から2000年代も若干早まっているので30代の人達は、私が思っているほど早くなったとは感じていないかもしれないですね。
私が小中学校に通っていた1970年代は冬の積雪量も多かった記憶があり、小氷河期だったと聞いたことがあります。「氷河期が来る」と騒がれた1960-1980年の寒冷期は異常気象頻発 – NPO法人 国際環境経済研究所|International Environment and Economy Institute (ieei.or.jp) の記事とグラフを比べてみるのも面白いかもしれないですね。
旧暦だとどうなる?
ここまでやってきて、「そういえば、季節は、明治以降の太陽暦より、太陰暦の方が、より実状に合うよなぁ…」と思いつき、やってみることにします。
あれ?ちょっと印象違いますね。
ちなみに、旧暦は .NET Framework の JapaneseLunisolarCalendar という class を使いました。例えば、今日の旧暦が知りたければ、
var jlc = new JapaneseLunisolarCalendar();
var today = DateTime.Now;
int monthOnJLC = jlc.GetMonth(today);
int dayOfMonthOnJLC = jlc.GetDayOfMonth(today);
int dayOfYearOnJLC = jlc.GetDayOfYear(today);
で、旧暦の月、月の日、旧暦1月1日からの日が取得できます。
残念ながらこの class は、1960年以降の旧暦にしか対応していないので、それ以前のデータは省略しています。
こちらも10年平均を計算してグラフ化してみると、
こんなグラフが出来ました。2010年代の戻りはあるにしても、特に東京・横浜は、一貫して早くなっている観が感じられるグラフです。
ちなみに、旧暦の日は月齢に一致しています。一日は朔日、朔は新月なので、新月がそれぞれ月の最初の日に一致するわけです。なので旧暦の15日は満月に一致します。そして、立春(立春前日の節分かも?)を含む月が旧暦の1月になります。ちなみに朔日の前日を晦日と言い、旧暦一月一日の前日は大晦日と呼ぶことになります。太陰暦の方が季節感が合致するのかもしれませんが、正月は太陽を基準にして決められるので、どちらがよりフィットするのかは私には判断はつきません。普通我々は太陽暦で暮らしているので太陽暦で表現したほうが一般的なのは間違いないとは思います。桜の開花はその年その年の気温の動向に一番影響を受けるようなので、各年、各地点の温度のデータ(最高気温、最低気温、気圧?など)も気象庁のサイトを探せばあると思うのでそれと比べるのが一番いいかもしれませんね。
データ活用について
IoT Technology は現実世界のデータを収集するのに便利なツールです。データを収集する目的は、そのデータを活用して、現状どうなっているか、その現状の要因は何か、今後どうなっていくかを予測し、ビジネスを最適化することです。最近読んだ「数字のセンスを磨く」によれば、データ収集やデータの活用においては、数量化、比較、因果、確率、分析は、思っているほど簡単ではなく、それぞれを実践するためのセンスが必要とのことです。IoT 機器が収集できるのは現実世界のごく一部であり一側面のデータでしかありません。「IoT・Digital Twins 最初の一歩」では、IoT 機器で計測できるデータ群と、問題解決に必要なデータ群はドメインが異なり、対応付けが必要だと説明しました。
問題解決に必要なデータ群=IoT機器で計測できるデータ
であるケースは稀です。計測したデータを活用するには意味論の変換、データの取捨選択、対応付けが必要になるわけです。必要なデータが全て揃うとも限りません。IoT 機器で計測したデータを活用する場合は、
という姿勢が重要でしょうね。
IoT 機器で計測する場合には、最低限、
いつ、どこで、何を測ったか
計測したデータ項目の意味
計測方法、誤差
は明確にし、計測されたデータと共に記録しておかなければなりません。そうでなければ、数字の魔力に引っかかって、見たいもの、解釈したいものしか見えなくなってしまう恐れがあります。計測されたデータは客観的かもしれませんが、それを解釈するのは人であり主観が入り込む余地は十分あります。AI なら大丈夫じゃないかと思う人もいるかもしれませんが、恣意的にトレーニングされた AI は恣意的な回答しか出さないので、AI を活用するだけでは根本的な解決にはなりません。
ちなみに桜の開花日の定義は、
extension://elhekieabhbkpmcefcoobjddigjcaadp/https://www.data.jma.go.jp/sakura/data/sakura2012.pdf
から公開されています。
だそうで、非常に明確に決められています。昨今の画像 AI 技術を使えば、簡単に判断できそうです。開花時期に関係しそうな気温の計測は簡単そうで意外と難しいので注意が必要です。
桜の開花、満開の定義は明確でも、気象庁が観測しているのは限定的な地点、品種のみです。3月から4月にかけて、街を歩けばいたるところに桜が咲いているものです。また、桜の名所もたくさんあります。一定以上の本数の桜が咲いている場所では桜祭りが毎年開催され、屋台を出したり、付近の飲食店やお店は桜祭りに合わせてイベントを行ったりするでしょう。そのためには食材や物品の調達を桜の開花時期に合わせて行わなければなりません。桜の開花時期を見誤ってしまうと大幅な食材・物品のロスが発生したり、ビジネスチャンスを逃してしまったりすることもあるでしょう。
例えば、それぞれの場所の何か所かで気温の計測、何か所かでの画像収集用のカメラ設置を行っておき、桜の開花時期、見ごろをある程度正確に予測出来れば、その地域のビジネスを最適化できるでしょう。
地点ごとに特色があると思われるので、データ収集から始めて、データがたまってきたら Machine Lerning 等で予測モデルを作成し、ある程度正確な開花・見ごろの時期を予測できるようになるのでは、と夢想する次第。
今回の桜の開花時期の気象庁のデータは大した量ではないのですが、これぐらいのアクティビティになればそこそこのデータ量と計算力を有するそこそこの IoT ソリューションが必要になるはずです。そんな IoT ソリューションの構築には、この定期購読マガジン「Azure の最新機能で IoT を改めてやってみる」が役立つので是非ご購読ください。
データモデルについて
前のセクションで書いたような桜祭り用 IoT ソリューションを構築するには、概念モデルをベースにしたデータモデルが必要になります。
「数字のセンスを磨く」によれば、データ構造のモデルは、
階層モデル
ネットワークモデル
関係モデル
の三つがあると説明されています。私の場合は、「Art of Conceptual Modeling」で解説している、Shlaer-Mellor 法(現 eXecutable and Translatable UML)をベースにした概念情報モデルによるデータモデルを構築することになるのですが、はて、この概念情報モデルを構成する概念情報クラスと Relationship はこの3つのモデルのどれに分類されるのでしょうね?
概念情報クラスは関係モデルともいえるし、概念情報クラスを雛形にした概念インスタンスと Relationship を雛形にした概念インスタンス間のリンクによる概念インスタンス群の描像はネットワークモデルともいえるし、階層は、概念情報クラスと Relationship で表現できるし、ドメイン分割もある意味階層化だよなと、悩んでいる状況です。
この辺りのトピックについては、また、別の場所で考察してみようと思います。いずれにしろ、複雑な現実世界をたった一つの表や簡単な階層、ネットワークで表現することはまず無理でしょうね。
最後に
以上で今回は終了です。
桜の開花日から始めて、簡単な統計処理、データ活用、データモデルについて言及してみました。
面白いなぁ…と思ったら、是非、良いねをつけてくださいね。
ここから先は
Azure の最新機能で IoT を改めてやってみる
2022年3月にマイクロソフトの中の人から外の人になった Embedded D. George が、現時点で持っている知識に加えて、頻繁に…
この記事が気に入ったらチップで応援してみませんか?