雨雲レーダーを❝サクッと❞Mapboxにプロットしてみる

2 min read 2

2021/02/24 追記

なんかぶっ壊れた
調べるのでまた後で来てほしい
>> 気象庁のサイトが全面リニューアルしたせいでぶっ壊れてました
>> やる気出たら直す

前置き

雨雲レーダーの無料APIがなぁぁぁぁぁぁぁぁぁぁぁぁああああああああああああああああああい
そう、無いんです
いや、無かったが正しい
ここは雨雲レーダーの無料APIがある世界線なので、サクサクっとプロットしていきます

第一章 高解像度降水ナウキャストとの出会い

気象庁が運用している 高解像度降水ナウキャスト というサービスがあります。
これは6段階のズーム機能と、降水量が9段階で分かる機能を備えた、無料で使える雨雲レーダーです。

高解像度降水ナウキャストの利用規約

今回の犠牲者ソースは高解像度降水ナウキャストなので、プログラムからアクセスしても良いかどうかがキモになってきます。

下記 高解像度降水ナウキャスト 使い方→利用上の注意事項 から引用

当ホームページは、通常のブラウザで閲覧することを前提に各種情報を掲載しております。自動巡回ソフト等による、定期的、自動的な気象データ等の収集等は、サーバーに負荷がかかる等の理由から、原則としてご遠慮いただいております。ご理解お願いします。

下記 気象庁 | 著作権・リンク・個人情報保護について から引用

気象庁ホームページのコンテンツの利用について
 気象庁ホームページで公開している情報(以下「コンテンツ」といいます。)は、どなたでも以下の(1)~(7)に従って、複製、公衆送信、翻訳・変形等の翻案等、自由に利用できます。商用利用も可能です。また、数値データ、簡単な表・グラフ等は著作権の対象ではありませんので、これらについては本利用ルールの適用はなく、自由に利用できます。
 コンテンツ利用に当たっては、本利用ルールに同意したものとみなします。

ということで、自動的な気象データ等の収集等は、サーバーに負荷がかかる等の理由から、原則としてご遠慮いただいておりますはAPIには適用されないとみなします。
ご遠慮なので深く考えない

第二章 APIの作成

無料APIがあると言ったな、正確には作ったが正しい。

高解像度降水ナウキャストのラスタイメージを解析

解析というか目grepに近い。

  • 1タイル = 256px x 256px
  • 雨雲がないピクセルはアルファ値が0、あるピクセルは255
  • 0~1mm/h = #f2f2ff
  • 1~5mm/h = #a0d2ff
  • 5~10mm/h = #218cff
  • 10~20mm/h = #0042ff
  • 20~30mm/h = #faf500
  • 30~50mm/h = #ff9901
  • 50~80mm/h = #fe2803
  • 80mm/h~ = #b50167

以上を踏まえて適当に変換サーバーを.....

作ったものがこちらになります

普段はNode.jsを使用していますが、画像処理が遅いのとgolangを勉強したかったので、golangで書いています。
日本全範囲のタイルを約2秒で取得できます。

https://github.com/come25136/radnowc_image_to_json
ピクセルを数値に変換してJSONで返しています。詳細はGitHubをご覧ください。

第三章 Mapboxにプロット

したものがこちらになります。
描画軽量化や見栄えの関係上、データを市松模様にしています。
コードはCodeSandboxをご覧ください。fetchとforをぶん回しているだけです。
※プロット完了まで数秒かかります。

デモ用のAPIはちゃんとCDN通したりブラウザにキャッシュさせたりしてるので安心して下さい。
また、Vercel(radnowc.momizi.dev/api)に変換サーバーをデプロイしていますので、データソースの規約範囲内でご自由にお使いください。
無料プランで稼働させています。

おわり

地味に台湾の雨雲も計測されてて笑った