2014-01-10

JSONでGPV, あるいは「データとホームページの対立」の止揚

このあいだ、Cameron Beccario 氏の作った風流線のサイトが話題になっていましたね。
ふと気がついて調べてみると、これはとてつもない革命的な変化を体現しているんですよ。

描画はすべて JavaScript で行われています。GIFやPNGなどの画像ファイルは一切使われていません。ぐりぐり視点を変えても、通信は一切行われません。時間や高度を変えたときだけ、通信が行われるのですが、そこでロードされる風データは、なんとJSON形式です。
http://earth.nullschool.net/data/weather/current/current-wind-isobaric-500hPa-gfs-1.0.json
ついでに、海岸線データもJSONです。
http://earth.nullschool.net/data/earth-topo.json?v2
こっちはきれいな GeoJSON ですかね。

これまで、ネットワークを使った資料提供とひとくちにいっても、次の大きな2択があって、どちらかを選ばねばならないという状況がありました。私だけの思いこみではないでしょう。
データ提供
バイナリファイルをサーバに置いてダウンロードさせる。形式はGRIB、netCDF、あるいはnus.tar.gzなど。
いずれにしても気象界に特殊なものであって、利用者側でインストールしたソフトウェアを使ってバイナリファイルを解析しないと意味のある出力は得られない。
そのかわり、自由に再加工できる。
一般向けホームページ
HTMLをサーバにおいてブラウザで閲覧させる。数表を書く、画像を貼りこむなどする。画像ならば形式はPNGやJPEG/JFIFなど。
ほぼ誰でも持っているブラウザさえあれば追加のソフトウェアなしで閲覧できる。
そのかわり、画像は天気図としてレンダリングが完了したものであって、別の見栄えには再加工が困難である。
この二項対立への対処として、まず現れたのがサーバサイド描画です。ユーザが見栄えの諸元を指定して、サーバにリクエストを出すと、画像が返ってくるというものです。ブラウザで見られる画像が返ってくれば特別なソフトウェアは不要ですし、利用者のニーズに応じた見栄えを選ぶことができて、データ提供に(及ばないまでも)近い自由度が利用者には与えられます。

具体的にはOGC WMSだけ挙げておけばいいでしょう。透明PNGとか、ブラウザのレイヤという技を駆使して、複数の情報を重ねあわせて表示するのも広く行われます。我が国ではGISアクションプラン2010で推進されていますし、気象界でいうなら OGC MetOcean DWG が多数時間次元拡張などのベストプラクティスをまとめています。すばらしいですね。

でも、欠点もあります。スケールしないのです。

なにしろ、一人ひとりのお客様に別の絵を描いてお渡しするわけですから、他のお客様に流用もできません。利用者数に比例して計算負荷がかかります。一般公衆が興味をもつ気象実況なんかだと、万単位、たぶん百万単位のユーザが同時アクセスなどということがありうるわけですが、そんなアクセスに耐えるサーバ、とてもじゃないけど用意出来ません。

サーバがだめなら、クライアントがあるじゃない、となるわけです。

そこで現れたのは地図タイリングです。具体的にはグー…地理院地図を挙げておきましょう。マウスでぐりぐり場所を変えたりズームできるわけですが、縮尺は離散的に設定されており、地図は描画済みのもの256×256ピクセルのの画像群としてサーバに用意されていて、それを必要なところだけダウンロードしてきて貼り合わせて表示するようになっています。

これで、計算負荷はあらかじめ準備できるようになりました。がしかし、見栄えの自由度が減ってしまいます。地形図のように、常識的な見栄えが決まっているものならば唯一または少数の選択肢を用意すればよいのですが、500 hPa面気温をどういう色遣いにしたいのかは、状況によるといわざるを得ない人が多いでしょう。

そこで今回の真打が登場するわけです。

いまどきのブラウザは、JavaScriptで絵が描けちゃったりします。なので、JavaScriptで自然に扱える形式のデータをウェブに置いておけば、ブラウザ上で描画できるわけです。JSONはそういうファイル形式の代表的なものです。

しかし、いくらなんでも数万点オーダー(360×180=64,800)の格子点データをJSONで表現して、ブラウザ内で解析して描画するなんていったらメモリ的にも演算能力的にも無理だろうと思い込んでいたのですが、いつのまにかそんなことが携帯端末ですらできる時代になっていたわけです。

結局、JSONで表現された格子点データは、気象に特化したソフトウェアをインストールすることなしに利用できて、しかも再利用の可能性が一切損なわれていないわけです(nullschool.netでは色は変えられないようですが、原理的には可能であることは容易に見て取れます)。

つまるところ、上の二項対立は見事に止揚されたわけです。あるいは、全球1度格子予報値がスモールデータになったといえるかもしれません。

実をいうと、私は16年前からそういうことを考えてきました。なので、やられた、という感傷もなくはないのですが、自分ひとりでなんでもできるわけではないおっさんであることはよくわかっています。文明の進歩を素直に喜びたいと思います。

0 件のコメント:

コメントを投稿