<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>D3.js on Data Visualization Japan</title>
        <link>https://data-visualization.jp/tags/d3.js/</link>
        <description>Recent content in D3.js on Data Visualization Japan</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja-jp</language>
        <lastBuildDate>Mon, 28 Dec 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://data-visualization.jp/tags/d3.js/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>LT：田島 将太／はじめての Data Viz が Twitter で100万回見られた話 ― Observable のススメ</title>
        <link>https://data-visualization.jp/lt-observable-gender-gap/</link>
        <pubDate>Mon, 28 Dec 2020 00:00:00 +0000</pubDate>
        
        <guid>https://data-visualization.jp/lt-observable-gender-gap/</guid>
        <description>&lt;p&gt;Data Visualization Japan Meetup 2020（2020年12月28・29日開催）における、田島 将太さんのLTです。&lt;/p&gt;
&lt;p&gt;なお本記事は自動字幕をもとに整文していますが、&lt;strong&gt;この動画の字幕は認識精度が低く&lt;/strong&gt;、固有名詞や専門用語の誤認識が多く含まれていました。文脈から復元していますが、細部は動画でご確認ください。&lt;/p&gt;
&lt;hr&gt;
&lt;div class=&#34;video-wrapper&#34;&gt;
    &lt;iframe loading=&#34;lazy&#34; 
            src=&#34;https://www.youtube.com/embed/gDRkSe8AL1A&#34; 
            allowfullscreen 
            title=&#34;YouTube Video&#34;
    &gt;
    &lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;本日は「はじめてのデータビジュアライゼーションが Twitter で100万回見られた話」をします。&lt;/p&gt;
&lt;p&gt;特に、&lt;strong&gt;編集部とデータジャーナリストが同じ方向を向いて作業するための言語化&lt;/strong&gt;、それから&lt;strong&gt;試行錯誤しながらチャートを作って発信できるツールである Observable&lt;/strong&gt; について紹介したいと思っています。&lt;/p&gt;
&lt;h2 id=&#34;自己紹介&#34;&gt;自己紹介
&lt;/h2&gt;&lt;p&gt;昨年まで前職のスマートニュースで事業開発とデータ分析をしていまして、今年はメディアコンサルタントとして、文藝春秋さんやフジテレビさんなど5社ほどのお手伝いをしていました。&lt;/p&gt;
&lt;h2 id=&#34;完成した記事&#34;&gt;完成した記事
&lt;/h2&gt;&lt;p&gt;こちらが完成した記事です。ハフポストさんの記事の中に&lt;strong&gt;チャートが3つ埋め込まれています&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;日本のジェンダーギャップを、国際比較の観点や議会の女性割合といった切り口で可視化するもので、&lt;strong&gt;テキストとグラフが相互に情報を補いながら理解を促すコンテンツ&lt;/strong&gt;になっています。&lt;/p&gt;
&lt;p&gt;真ん中のものはアニメーションになっていて、**これが Twitter で100万回再生されました。**1945年から2020年まで、&lt;strong&gt;各国の議会における議員の女性比率の推移&lt;/strong&gt;が分かるコンテンツです。&lt;/p&gt;
&lt;h2 id=&#34;企画の発端&#34;&gt;企画の発端
&lt;/h2&gt;&lt;p&gt;普段メディアコンサルティングをしている市場調査から、&lt;strong&gt;Web メディアの戦略として取るべき柱の一つがデータジャーナリズムにある&lt;/strong&gt;と考えていました。&lt;/p&gt;
&lt;p&gt;ただ国内の事例を見ると、日経ビジュアルデータさんなど&lt;strong&gt;かなり本格的で気合の入ったコンテンツが多く&lt;/strong&gt;、お話しする編集部の方が「&lt;strong&gt;自分たちにはできないんじゃないか&lt;/strong&gt;」と感じてしまうものが多いように感じていました。&lt;/p&gt;
&lt;p&gt;そこで今回は——&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;特設ページを作らない&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CMS の改修をせずに&lt;/strong&gt;大きなインパクトを出す&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;編集者と協力して一緒に作り上げる&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ということを目指して取り組みました。&lt;/p&gt;
&lt;h2 id=&#34;始める前に言語化したこと&#34;&gt;始める前に言語化したこと
&lt;/h2&gt;&lt;p&gt;そのために、まず始める前に3点を言語化して共有することから企画を動かしていきました。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;読者に価値を提供できるか&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;チームの理解を得られるか&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;作成コストを抑えられるか&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;なぜハフポストにデータ可視化が必要なのか&#34;&gt;なぜハフポストにデータ可視化が必要なのか
&lt;/h3&gt;&lt;p&gt;ハフポストが感じていた課題として、&lt;strong&gt;扱う社会問題は社会的な合意形成が十分に取れていないものが多く、簡単に主張のぶつけ合いや誹謗中傷に陥りやすい&lt;/strong&gt;というものがありました。&lt;/p&gt;
&lt;p&gt;そこで&lt;strong&gt;データによって、政治的イデオロギーに左右されないアジェンダ設定をすることで、会話の出発点とする&lt;/strong&gt;ことを目指しました。&lt;/p&gt;
&lt;h3 id=&#34;インパクトの言語化&#34;&gt;インパクトの言語化
&lt;/h3&gt;&lt;p&gt;データビジュアライゼーションによって得られるインパクトを、&lt;strong&gt;社会へのインパクト&lt;/strong&gt;と&lt;strong&gt;ビジネス上のインパクト&lt;/strong&gt;に分けて言語化しました。&lt;/p&gt;
&lt;p&gt;この段階で実は編集部の理解を得られていたので、&lt;strong&gt;ビジネス上のインパクトを KPI に落とし込むところは実際にはやっていない&lt;/strong&gt;のですが、こういったことを言語化してきました。&lt;/p&gt;
&lt;h3 id=&#34;読者に提供する価値&#34;&gt;読者に提供する価値
&lt;/h3&gt;&lt;p&gt;データ可視化が読者に提供する価値を、3層で想定しました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;機能的価値&lt;/strong&gt;：テキストを読まなくても興味を持てる／テキストを理解する助けになる&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;感情的価値&lt;/strong&gt;：社会問題という「正解の分からないトピック」について、&lt;strong&gt;客観性の高い理解ができて安心する&lt;/strong&gt;のではないか&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;社会的価値&lt;/strong&gt;：データを見ることで他人からどう思われたいか——&lt;strong&gt;データに基づいて議論ができる、論理的でスマートな人物だと思われたい&lt;/strong&gt;という価値を提供できるのではないか&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;グラフを作る上での指針&#34;&gt;グラフを作る上での指針
&lt;/h2&gt;&lt;p&gt;グラフを作る上で、まず指針を決定しました。&lt;strong&gt;これはまだ私の中では仮の指針で、今回のイベントを通して考えを深めたい&lt;/strong&gt;と思っています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;インクルーシブであること&lt;/strong&gt; ——グラフのタイトルで主張を固定するのではなく、&lt;strong&gt;グラフを見た人がいろんな解釈をできるように&lt;/strong&gt;する&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;再利用できること&lt;/strong&gt; ——インパクトを最大限に出すために、1回で終わりではなく何度も使えるように&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;わかりやすいこと&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;公共性を持つこと&lt;/strong&gt; ——ソースや取得先のデータに透明性を持たせる、色覚特性のある方に配慮する、など&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ここまでが Why と What の話です。ここからは &lt;strong&gt;How&lt;/strong&gt; のお話をします。&lt;/p&gt;
&lt;h2 id=&#34;ツール--observable&#34;&gt;ツール ― Observable
&lt;/h2&gt;&lt;p&gt;今回データビジュアライゼーションに使ったのが &lt;strong&gt;Observable&lt;/strong&gt; というツールです。&lt;/p&gt;
&lt;p&gt;これは何かというと、&lt;strong&gt;Jupyter Notebook と GitHub と Excel を混ぜたような、JavaScript で動作するデータジャーナリストのためのツール&lt;/strong&gt;です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Jupyter Notebook のように&lt;/strong&gt;、ノートブックという形で動き、一つ一つのセルに JavaScript や HTML を定義して&lt;strong&gt;対話的にコンテンツを作成できる&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub のように&lt;/strong&gt;、ノートブックのインポートやフォーク——他人のものを簡単にコピーすること——ができるので、&lt;strong&gt;コミュニティの資産の上に立つのが非常に簡単&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Excel のように&lt;/strong&gt;、リアクティブなデータフローで&lt;strong&gt;セルが依存関係の順に実行される&lt;/strong&gt;。そのため微調整や依存関係の把握が非常に簡単&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こういった特徴は、今回のような——&lt;strong&gt;初挑戦で要件が変わりやすく、D3.js を学びながらサイトを作成し、CMS の改修をせずにアニメーションを記事に埋め込む&lt;/strong&gt;——という条件に非常にぴったりでした。&lt;/p&gt;
&lt;p&gt;実際に見てみるとこんな感じです。それぞれのセルで関数が定義されていて、右上に依存関係が出てきます。&lt;strong&gt;このチャート自体も、コミュニティのサンプルをフォークして自分でカスタマイズして作ったもの&lt;/strong&gt;です。&lt;/p&gt;
&lt;h2 id=&#34;読者の反応&#34;&gt;読者の反応
&lt;/h2&gt;&lt;p&gt;今回のアニメーションに対する読者の反応です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「&lt;strong&gt;日本の女性参画の進みがいかに遅いか&lt;/strong&gt;が分かりやすかった」&lt;/li&gt;
&lt;li&gt;「北欧はともかく、&lt;strong&gt;メキシコや南アフリカがすごいのが意外だった&lt;/strong&gt;」&lt;/li&gt;
&lt;li&gt;「女性が少ないことに何が問題なのか」&lt;/li&gt;
&lt;li&gt;「候補者に女性が少ないだけなのではないか」&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;批判的な意見もありましたが、**日本の議会の女性比率が低いという「事実」そのものを疑う発言は、観測範囲では見当たりませんでした。**これは議論の形成に貢献できたのかなと思っています。&lt;/p&gt;
&lt;p&gt;そして、こうした反応は&lt;strong&gt;次のコンテンツにつながります。&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「女性が少ないことは何が問題なのか」→ &lt;strong&gt;「（女性が少ないことで）犠牲にしてきた何か」というテーマで新しい記事&lt;/strong&gt;を書くことで会話を生み出せるかもしれない&lt;/li&gt;
&lt;li&gt;「候補者に女性が少ないだけなのでは」→ &lt;strong&gt;候補者男女均等法&lt;/strong&gt;についてハフポストが次に出すことで、議論が進みやすくなるのではないか&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;学び&#34;&gt;学び
&lt;/h2&gt;&lt;p&gt;今回のアニメーションを通した学びとして——&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;メディアの皆様へ&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;**データのありかを知っているのは編集部です。**協業なくしてコンテンツは生まれません&lt;/li&gt;
&lt;li&gt;ぜひ&lt;strong&gt;データ好きをクリエイターとして仲間にしてください&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;遠慮しないで What と Why を伝えてほしい&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;データジャーナリストの皆様へ&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observable が非常に使いやすいぞ&lt;/strong&gt;、ということをお伝えしたいと思います&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以上です。&lt;/p&gt;</description>
        </item>
        <item>
        <title>大野 圭一朗／今あえてコードから可視化を作る場合のツール</title>
        <link>https://data-visualization.jp/code-based-viz-tools/</link>
        <pubDate>Mon, 28 Dec 2020 00:00:00 +0000</pubDate>
        
        <guid>https://data-visualization.jp/code-based-viz-tools/</guid>
        <description>&lt;p&gt;Data Visualization Japan Meetup 2020（2020年12月28・29日開催）における、大野 圭一朗さん（カリフォルニア大学サンディエゴ校 医学部）の講演です。生物学研究のためのツール開発という立場から、現代のコードベース可視化の実践を紹介します。&lt;/p&gt;
&lt;hr&gt;
&lt;div class=&#34;video-wrapper&#34;&gt;
    &lt;iframe loading=&#34;lazy&#34; 
            src=&#34;https://www.youtube.com/embed/Sgs96_gCLMk&#34; 
            allowfullscreen 
            title=&#34;YouTube Video&#34;
    &gt;
    &lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;カリフォルニア大学サンディエゴ校の医学部で勤務しています、大野と申します。&lt;/p&gt;
&lt;p&gt;大学に勤務していると言っても&lt;strong&gt;研究者ではなく、あくまでソフトウェア開発者&lt;/strong&gt;という立場です。大学はある種の非営利団体なので、その中に他の団体と共同でいろんなプロジェクトが立ち上がり、そちらの組織にも名前が入っていたりするのですが、基本的にはサンディエゴをベースに大学の中でソフトウェアを開発しています。&lt;/p&gt;
&lt;p&gt;この会はオーディエンスの方がいろんな分野から来られているので、&lt;strong&gt;テクニカルなことばかりに集中してもなかなか面白くない可能性がある&lt;/strong&gt;ので、今回は長めのイントロとして私がやっているようなことをお話ししながら、最終的に技術的な部分を紹介する、という形で進めたいと思います。&lt;/p&gt;
&lt;h2 id=&#34;生物学と可視化&#34;&gt;生物学と可視化
&lt;/h2&gt;&lt;p&gt;研究室のタイトル的なものは、以前は「&lt;strong&gt;ネットワークバイオロジー&lt;/strong&gt;」を掲げていましたが、今はもっと広く「&lt;strong&gt;ゲノミクス&lt;/strong&gt;」というカテゴリーで考えていただければいいと思います。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ゲノミクスという性質上、生物すべてに共通するもの&lt;/strong&gt;なので、扱う生物種は本当にいろいろです。もともとは技術的な制約から&lt;strong&gt;酵母&lt;/strong&gt;などから始まって、今は人間の疾患や哺乳類の研究をしている研究者もたくさんいます。&lt;/p&gt;
&lt;h3 id=&#34;2020年という特殊な年&#34;&gt;2020年という特殊な年
&lt;/h3&gt;&lt;p&gt;2020年の主役はこれですよね——&lt;strong&gt;コロナウイルスの実際の遺伝配列（シーケンス）&lt;/strong&gt; です。&lt;/p&gt;
&lt;p&gt;そういうこともあって、今年は一般のメディアも含めて&lt;strong&gt;生物学に関係する用語が飛び交った年&lt;/strong&gt;だったと思います。&lt;strong&gt;PCR（ポリメラーゼ連鎖反応）&lt;/strong&gt; という言葉を聞かない人はいないでしょうし、それに使う&lt;strong&gt;プライマー&lt;/strong&gt;、ゲノムを解析してウイルスの&lt;strong&gt;系統樹&lt;/strong&gt;を作る技術、そしてワクチンの話題で &lt;strong&gt;mRNA&lt;/strong&gt; という言葉が毎日登場する。&lt;/p&gt;
&lt;p&gt;私たちは特定の生物種を研究しているというより、&lt;strong&gt;汎用的に使える手法——いわゆるバイオインフォマティクス——でいろんな生物種を研究している&lt;/strong&gt;ので、COVID-19 に関する共同研究者の仕事を紹介しながら、可視化との関わりをお話しします。&lt;/p&gt;
&lt;h3 id=&#34;生物学のデータはほぼすべて公開されている&#34;&gt;生物学のデータはほぼすべて公開されている
&lt;/h3&gt;&lt;p&gt;生物学分野のデータは、特殊なものを除いて&lt;strong&gt;ほぼすべて公開データとして誰でもアクセスできる&lt;/strong&gt;ようになっています。&lt;/p&gt;
&lt;p&gt;リンクの先へ行くと、実際に&lt;strong&gt;リファレンスのゲノム&lt;/strong&gt;——このコロナウイルスのゲノムデータにアクセスできます。ウイルスというのは非常に効率がいいと言ったら変ですが、&lt;strong&gt;情報量としては本当に3万文字くらいで表せるゲノム情報で、今の世界をぐちゃぐちゃにしている&lt;/strong&gt;という感じです。&lt;/p&gt;
&lt;p&gt;データとしては本当に単純で、&lt;strong&gt;FASTA&lt;/strong&gt; という名前のフォーマットで、情報量もそれほど大きくありません。&lt;/p&gt;
&lt;p&gt;ただ、元のファイルには &lt;strong&gt;ATGC という文字列が並んでいるだけ&lt;/strong&gt;で、**これを見て何か分かる人間は基本的にいません。**なのでコンピュータの力を借りて、今わかっている情報をその上に乗せたり、&lt;strong&gt;ゲノムブラウザ&lt;/strong&gt;というインタラクティブなツールを使ったりしながら、研究者は日々研究しているわけです。&lt;/p&gt;
&lt;h3 id=&#34;タンパク質相互作用ネットワーク&#34;&gt;タンパク質相互作用ネットワーク
&lt;/h3&gt;&lt;p&gt;ウイルスが人間に対して何か悪さをして、最終的に疾患として現れる——それがなぜ起こるかというと、&lt;strong&gt;ウイルスのタンパク質と、ホストである人間側のタンパク質が何らかの相互作用を行う&lt;/strong&gt;からです。&lt;/p&gt;
&lt;p&gt;そういうものを解析するとき、&lt;strong&gt;相互作用はグラフ＝ネットワークとして表せる&lt;/strong&gt;ので、&lt;strong&gt;シンプルなネットワーク図で全体のインタラクションを把握できるようにする&lt;/strong&gt;わけです。&lt;/p&gt;
&lt;p&gt;この論文では、網羅的に解析した結果をネットワーク図として表しています。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;薬というのは「この病気が出てきたからすぐ作ろう」というのは無理&lt;/strong&gt;だというのは、今年の状況を見てこられた方は皆わかると思います。開発に非常に時間がかかるのに対して、ウイルスは待ってくれない。&lt;/p&gt;
&lt;p&gt;そこで研究者や医師が最初に考えるのは——&lt;strong&gt;すでに臨床試験が終わって他の病気に使われている薬があって、それが同じような作用機構で同じようなタンパク質をターゲットにするなら、この病気にも使えるんじゃないか&lt;/strong&gt;ということ。この &lt;strong&gt;ドラッグリパーパシング&lt;/strong&gt;の研究でこういったネットワーク可視化が実際に使われています。&lt;/p&gt;
&lt;p&gt;余談ですが、この論文は&lt;strong&gt;被引用数が970&lt;/strong&gt;。&lt;strong&gt;せいぜい半年ほどでこんな引用数が出るのは普通ではない&lt;/strong&gt;ので、いかに今、世界中の研究者がこの部分に寄ってたかって研究しているかが端的に分かる数字だと思います。&lt;/p&gt;
&lt;h3 id=&#34;生物学で使われる可視化の種類&#34;&gt;生物学で使われる可視化の種類
&lt;/h3&gt;&lt;p&gt;ネットワークは生物学で使われる可視化のごく一部です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;アライメントビュー&lt;/strong&gt; ——塩基配列やアミノ酸配列を比較するとき。昔は目でやっていた時代もあったようですが、基本は機械で並べて、&lt;strong&gt;どこが変異しているのか&lt;/strong&gt;を目で見られるようにする&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ゲノムブラウザ&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;タンパク質の構造ビューア&lt;/strong&gt; ——タンパク質は&lt;strong&gt;3次元構造の状態によって働きが決まる&lt;/strong&gt;ので、その3次元の状態を見られるようにする&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ネットワーク図&lt;/strong&gt; ——相互作用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;系統樹&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Nextstrain&lt;/strong&gt; に行くと、系統樹と世界中への伝播をダッシュボード的に作り上げたソフトウェアがあります。&lt;strong&gt;研究ツールと報道ツールの中間くらい&lt;/strong&gt;という印象を私は受けました。生物学で使うツールは、&lt;strong&gt;複数の異なった形のデータを統合してダッシュボード的にし、そこで探索的な可視化を行う&lt;/strong&gt;ということが割と頻繁に起こります。&lt;/p&gt;
&lt;h3 id=&#34;データ型と可視化手法の対応&#34;&gt;データ型と可視化手法の対応
&lt;/h3&gt;&lt;p&gt;COVID-19 関連研究で使われる情報を、コンピュータの用語に置き換えると——&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;生物学のデータ&lt;/th&gt;
          &lt;th&gt;計算機的には&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;遺伝子配列&lt;/td&gt;
          &lt;td&gt;文字列&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;3次元構造&lt;/td&gt;
          &lt;td&gt;座標＋文字（アミノ酸）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;薬剤との相互作用&lt;/td&gt;
          &lt;td&gt;グラフ構造&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;感染経路&lt;/td&gt;
          &lt;td&gt;グラフ構造&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;系統樹&lt;/td&gt;
          &lt;td&gt;ツリー&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;つまり——&lt;strong&gt;ウイルスの研究に限らず、計算機はある種、生物を研究するためのインフラ的な立場&lt;/strong&gt;になっている。だから私のような立場の人間が存在するわけで、&lt;strong&gt;本業は生物学者のためのツールやインフラを整えること&lt;/strong&gt;です。&lt;/p&gt;
&lt;h3 id=&#34;余談--犬の年齢&#34;&gt;余談 ― 犬の年齢
&lt;/h3&gt;&lt;p&gt;私の職場から出た論文の一つに面白いものがあって、ニューヨーク・タイムズでも記事になりました。&lt;/p&gt;
&lt;p&gt;昔から「&lt;strong&gt;人間と犬の年齢を比べるときは7を掛ければいい&lt;/strong&gt;」という説がありました。俗説なのかサイエンスのデータに基づいたものなのか私は知らないのですが、&lt;strong&gt;実際に調べてみるともう少し違うカーブを描くんじゃないか&lt;/strong&gt;、というのを私の職場の大学院生が論文にして出したんです。犬という身近な動物を使った研究だったこともあって、日本語でもニュースになっているのを見つけました。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ゲノミクスは生物に共通する基盤を研究している&lt;/strong&gt;ので、生物種としては本当にいろんなものを扱っています。とはいえ&lt;strong&gt;研究予算が集中するのは難易度の高い疾患&lt;/strong&gt;なので、どうしてもがんなどを研究する場合が多いです。&lt;/p&gt;
&lt;h2 id=&#34;私たちの仕事&#34;&gt;私たちの仕事
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;遺伝子から、最終的に生物上に現れるフェノタイプ（表現型）を予測したり、その関連性を調べたり&lt;/strong&gt;——そういったことを計算機を使って研究している職場です。&lt;/p&gt;
&lt;p&gt;中でも私たちは&lt;strong&gt;ネットワークやパスウェイ&lt;/strong&gt;——化学物質と人間のタンパク質、あるいはタンパク質同士が集合したコンプレックス、そういったもの同士の&lt;strong&gt;反応経路や作用の仕組み&lt;/strong&gt;を中心に研究しています。がんの研究、DNA のダメージを修復する機構、老化とは何か——そういうものを分子生物学的に研究しているのを、計算機側からサポートしています。&lt;/p&gt;
&lt;p&gt;実際に何をやっているかというと——&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;解析の部分&lt;/strong&gt;：研究者が書いたプロトタイプ的なコードやアルゴリズムを、&lt;strong&gt;一般の生物学者が使えるようなツールにまとめる&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可視化の部分&lt;/strong&gt;（私が主にいるチーム）：&lt;strong&gt;新しい可視化手法そのものを開発・研究するのではなく&lt;/strong&gt;、可視化研究者が作ってある程度評価の定まった手法を組み合わせて、&lt;strong&gt;より複雑な探索的可視化ができるアプリケーションを作る&lt;/strong&gt;。あるいは論文に合わせてカスタムのツールを作って最終的な図を作成する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;バイオインフォマティクスという言葉は分かりにくいのですが、&lt;strong&gt;やっていることは意外と地味で、普通のソフトウェアエンジニアがやっているようなこと&lt;/strong&gt;です。&lt;/p&gt;
&lt;h3 id=&#34;インフラ整備とお金&#34;&gt;インフラ整備とお金
&lt;/h3&gt;&lt;p&gt;インフラ整備には必ずお金の問題が出てきます。**こういうソフトウェアは基本的にそれ自身がお金を生みません。**使う人が多くても、その人からお金を取るというよりは、&lt;strong&gt;どこかからお金をもらってきて開発する&lt;/strong&gt;という形になります。&lt;/p&gt;
&lt;p&gt;毎年いろんなグラント（助成金）に応募するのですが、面白いファンディングソースとして &lt;strong&gt;Chan Zuckerberg Initiative&lt;/strong&gt; があります。Facebook のザッカーバーグさんと奥さんがやっている慈善団体で、そこが「&lt;strong&gt;Essential Open Source Software for Science&lt;/strong&gt;」という枠を作って、&lt;strong&gt;科学研究の分野で広くインフラ的に使われているソフトウェアに対してお金を出しましょう&lt;/strong&gt;という基金を運営しています。&lt;/p&gt;
&lt;p&gt;私たちも応募して通ったのですが、サイトを見ると &lt;strong&gt;pandas、Bokeh、NumPy、Jupyter、Binder&lt;/strong&gt; など、聞いたことがあるプロジェクトがいくつもあります。&lt;strong&gt;これだけ広く使われているソフトウェアでも、持続的に開発していくのは難しいという現状&lt;/strong&gt;があるので、非常にありがたい基金です。&lt;strong&gt;日本も含めて、起業家の方なども含めてこういったサポートができるといいな&lt;/strong&gt;と思ったりしました。&lt;/p&gt;
&lt;h3 id=&#34;作っているもの&#34;&gt;作っているもの
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;NDEx&lt;/strong&gt; ——生物学方面で使うネットワークやパスウェイの共有サイトのようなものです。&lt;strong&gt;Pfizer や Roche&lt;/strong&gt; といった製薬会社も資金を出してくれています。パブリックにできないデータについては、彼らが自前のサーバーにデプロイして機密性のあるデータをそちらで使う。それとは別に私たちがパブリックのサーバーも運営していて、&lt;strong&gt;キュレーターが、たとえば今年なら COVID-19 関連の信頼性のあるネットワークデータをコレクションとしてまとめる&lt;/strong&gt;、といったことをしています。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cytoscape&lt;/strong&gt; ——汎用のネットワーク可視化ソフトです。比較的大規模なものから、人間が手で描くようなパスウェイ図まで可視化できます。&lt;strong&gt;もともとは私のボスが2003年ごろに開発し始めたもので、2020年現在も続いている。この「継続させる」というのが非常に難しいのがこの分野のソフトウェアの特徴&lt;/strong&gt;ですが、なんとか生き残っています。&lt;/p&gt;
&lt;h2 id=&#34;カスタムツールを作る&#34;&gt;カスタムツールを作る
&lt;/h2&gt;&lt;p&gt;私たちに関して言うと&lt;strong&gt;探索的な可視化ツールを作る&lt;/strong&gt;のですが、データの特殊性もあってニーズが複雑で、&lt;strong&gt;研究者が見たいものも研究内容によってだいぶ変わる&lt;/strong&gt;ので、カスタムのツールを作る必要性はずっとあります。&lt;/p&gt;
&lt;p&gt;最近作っているのが &lt;strong&gt;HiView&lt;/strong&gt; です。&lt;strong&gt;巨大なネットワークに対して階層的なクラスタリングを行い、その階層を circle packing で表現して、どんどん展開して中に入っていけるブラウザ&lt;/strong&gt;と、それに対応する各種データを表示するダッシュボードです。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ただ、技術的な要素を見ていくと特殊なことは何もやっていません。&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;階層構造の部分：&lt;strong&gt;D3 の circle packing&lt;/strong&gt; をベースに、インタラクションを後から追加&lt;/li&gt;
&lt;li&gt;ネットワーク（node-link diagram）：&lt;strong&gt;Cytoscape.js&lt;/strong&gt;（これも私たちのチームが作っている JavaScript ライブラリ）&lt;/li&gt;
&lt;li&gt;バーチャートなど：1から作る必要もないので &lt;strong&gt;react-vis&lt;/strong&gt;（Uber が最初に作ったライブラリ）&lt;/li&gt;
&lt;li&gt;UI：&lt;strong&gt;Material-UI&lt;/strong&gt;（大元のデザインは Google、オープンソースの実装として React で使える）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;使っている技術の要素は本当にシンプル&lt;/strong&gt;です。つまり——&lt;strong&gt;基本的なパターンはだいたい有り物のツールでカバーできる。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;**データの種類と量が決まれば、自ずと使える手法が決まり、最近は実装まで手に入る。**このあたりは昔に比べるとずいぶん楽になったと思います。&lt;/p&gt;
&lt;p&gt;手法についても、**何を見せたいかがあって、データの種類と量が決まれば、「これは散布図」「これはヒストグラム」とかなり自動的に決まってくる。**チートシートのようなサイトもいくつかあるので、&lt;strong&gt;必要なものが実装も含めて手に入るかをまず調べるのが、最近は大事&lt;/strong&gt;になってきています。&lt;/p&gt;
&lt;h3 id=&#34;それでも自分でコードを書く必要があるケース&#34;&gt;それでも自分でコードを書く必要があるケース
&lt;/h3&gt;&lt;p&gt;大きく3つだと思います。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;大量のデータがある&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;比較的複雑なインタラクションが必要&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可視化手法自体を作らなければならない&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;3つ目はどちらかというと可視化自体を研究している研究者の領域なので、私はあまり踏み込みません。今日は&lt;strong&gt;1と2&lt;/strong&gt;について実例を交えてお話しします。&lt;/p&gt;
&lt;h3 id=&#34;問題の複雑さ&#34;&gt;問題の複雑さ
&lt;/h3&gt;&lt;p&gt;一番簡単なのは&lt;strong&gt;単一種類のデータを可視化したい&lt;/strong&gt;というケース。これは Excel でもライブラリでも比較的簡単に作れます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;データ型が増えれば、それに対応する違う種類のチャートを作らなければならない。&lt;strong&gt;逆に&lt;/strong&gt;データは単一でもものすごい量がある&lt;/strong&gt;と、既存の手法にただ読み込ませるだけで大丈夫か、というケースが出てくる。&lt;/p&gt;
&lt;p&gt;そして&lt;strong&gt;大量の、いろんな種類のデータをそれぞれ相互につなげて、アクションに基づいて見え方が変わる&lt;/strong&gt;——そうなるとかなり複雑になっていきます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;私が主に作業しているのはこのあたりで、構成要素自体は1から作らなくても、量的な問題や特殊なインタラクションに時間を割いています。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;-複雑なインタラクション--plotly-dash&#34;&gt;① 複雑なインタラクション ― Plotly Dash
&lt;/h2&gt;&lt;p&gt;**Tableau のようなコマーシャルツールでもある程度双方向性のあるダッシュボードは作れます。**もちろん限界があって、&lt;strong&gt;描きたいコンポーネントがなかったり、必要なインタラクションがなかったり&lt;/strong&gt;する場合はどうしても自分で書かざるを得ない。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ただ、ほとんどの人——特に分析自体をやって最終的な可視化まで作っている人——にとって、JavaScript で1から書くのはハードルが高い。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;いま、データ分析者にとって &lt;strong&gt;Python&lt;/strong&gt; は非常に大きな存在です。&lt;strong&gt;「Python で1から書けてしまえば楽だろうな」と思っている人は多い&lt;/strong&gt;と思います。&lt;/p&gt;
&lt;p&gt;そこで &lt;strong&gt;Plotly Dash&lt;/strong&gt; です。&lt;strong&gt;JavaScript を書かなくてもインタラクティブな Web アプリケーション／ダッシュボードが作れてしまう&lt;/strong&gt;ツールキットです。&lt;/p&gt;
&lt;p&gt;Plotly（カナダの会社だと思います）のビジネスモデルはエンタープライズエディションの方で、&lt;strong&gt;可視化部分はオープンソース&lt;/strong&gt;なので、Dash も基本機能は全部フリーで使えます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;実例を見るのが一番早い&lt;/strong&gt;と思いますが、基本的な部品が全部揃っているので、&lt;strong&gt;それを組み合わせて割と複雑なダッシュボードを Python のみで構築できる。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;今は「1か0か」ではなく、こういう中間的なツールキットもある&lt;/strong&gt;ので、データ分析側にいる人はこのあたりも考慮するといいと思います。&lt;/p&gt;
&lt;p&gt;ちょっとびっくりしたのですが、**英語の書籍も出ていないような気がするのに、日本語で書籍が出ていました。**興味がある方は見てもらうと実際どういうものか分かると思います。&lt;/p&gt;
&lt;p&gt;また、Plotly から&lt;strong&gt;私たちのカナダのコラボレーター&lt;/strong&gt;——Cytoscape.js を作っている同僚——にアプローチがあって、&lt;strong&gt;Cytoscape.js を Dash で使えるコンポーネント「Dash Cytoscape」&lt;/strong&gt; が用意されています。その解説もこの日本語書籍にはかなりページを割いて書いてあります。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;もちろん限界はあって、描画部分までいじりたくなると、最終的にはモダンフロントエンドと呼ばれるジャングルに入るしかない。&lt;strong&gt;ただ&lt;/strong&gt;そこまで行く前に、今公開されているコンポーネントで目的のアプリケーションが作れるかどうかをちゃんと試した方がいい。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;私の同僚もこれで作り始めたのはいいけれど、データ量的に対応できなくて最終的に私に仕事が回ってきたこともある&lt;/strong&gt;ので、そのあたりの見積もりも大事です。&lt;/p&gt;
&lt;h2 id=&#34;-大量のデータ--deckgl&#34;&gt;② 大量のデータ ― deck.gl
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;可視化のアプリケーションを書く＝ほぼ Web ブラウザで見る&lt;/strong&gt;という流れになってきています。&lt;/p&gt;
&lt;p&gt;私は&lt;strong&gt;ネットワーク描画&lt;/strong&gt;をかなり長く扱っているのですが、&lt;strong&gt;100万や200万といったノード・エッジをシンプルな node-link diagram で表す&lt;/strong&gt;——そんなものをブラウザで実行するのは、&lt;strong&gt;昔はあまり考えられませんでした。今は技術的に可能になってきている。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;ユースケース&#34;&gt;ユースケース
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;エッジ数の多い密なネットワークを、シンプルに node-link で表示したい。でも数がめちゃくちゃ多い。&lt;strong&gt;そして&lt;/strong&gt;全体の傾向を見たい&lt;/strong&gt;——クラスタリングを施した後、クラスター同士が密に固まった状態をざっと表示して、&lt;strong&gt;同時に Google マップのようにズームイン・ズームアウトもできるといいよね&lt;/strong&gt;という、&lt;strong&gt;無茶なお願いをしてくる人がいる&lt;/strong&gt;わけです。&lt;/p&gt;
&lt;p&gt;有り物で自由にそういうことができるものはないので、&lt;strong&gt;作るとしたらどのくらいの手間か&lt;/strong&gt;を考え始めました。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;私たちは最終的なアプリケーションを作る人間で、解きたい課題があってそれに技術を持ってくる形&lt;/strong&gt;なので、&lt;strong&gt;CG の専門家もいないし GPU に詳しい人間もいない。&lt;strong&gt;できるだけ&lt;/strong&gt;ハイレベルな API を持つライブラリ&lt;/strong&gt;があればな、と探していたところ——都合のいいものがありました。&lt;/p&gt;
&lt;h3 id=&#34;deckgl&#34;&gt;deck.gl
&lt;/h3&gt;&lt;p&gt;もともと &lt;strong&gt;Uber&lt;/strong&gt; が作っていたライブラリです。&lt;/p&gt;
&lt;p&gt;彼らのサイトを見ると**地理空間データの例が非常に多い。**日本だと食べ物の配達のイメージが強いと思いますが、&lt;strong&gt;彼らがメインで最初に始めたのは配車サービス&lt;/strong&gt;なので、そちらのデータを可視化したい欲求があったのだと思います。&lt;/p&gt;
&lt;p&gt;**ただ実際は汎用的なツールです。**もともと Uber で作られましたが、&lt;strong&gt;今後は比較的オープンな体制で作っていくことも決定している&lt;/strong&gt;ようなので、ロックインもあまり心配しなくて大丈夫だと思います。&lt;/p&gt;
&lt;p&gt;deck.gl を使った例として &lt;strong&gt;kepler.gl&lt;/strong&gt; があります。地理空間データを手間少なく地図に重ねて表示できるツールで、&lt;strong&gt;下で走っているのが deck.gl&lt;/strong&gt; です。&lt;/p&gt;
&lt;p&gt;**よく間違われるのですが、例が地理空間可視化ばかりなだけで、実際は汎用のツールキットなのでいろんなことができます。**Uber は自動運転の研究もやっていたので、&lt;strong&gt;その結果を可視化するようなものも全部これで作っている&lt;/strong&gt;と、開発者のワークショップで聞きました。&lt;/p&gt;
&lt;h3 id=&#34;なぜ自分たちで作ろうと思ったか&#34;&gt;なぜ自分たちで作ろうと思ったか
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;100万を超えるエッジやノードを持ったデータの概要（オーバービュー）を見たい&lt;/strong&gt;というのが主なモチベーションです。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;クラスター同士がそれぞれ近い場所に集まって、カラーコーディングされて、必要に応じてさらにデータレイヤーを上に乗せられる&lt;/strong&gt;——そういう&lt;strong&gt;巨大な白地図のようなものが作れればいいな&lt;/strong&gt;というので始まりました。&lt;/p&gt;
&lt;h3 id=&#34;deckgl-の考え方--レイヤーの集合&#34;&gt;deck.gl の考え方 ― レイヤーの集合
&lt;/h3&gt;&lt;p&gt;deck.gl は&lt;strong&gt;レイヤーの集合&lt;/strong&gt;で作ります。基本的な考えは「&lt;strong&gt;可視化したいものを、いくつかのレイヤーに分割して表現できないか&lt;/strong&gt;」。散布図用のレイヤー、直線を引くだけのシンプルなレイヤー——そういうプリセットを重ね合わせて作ります。&lt;/p&gt;
&lt;p&gt;グラフを描画したい場合は、&lt;strong&gt;ノードを表示し、ラベルを付け、ノード同士を線で繋ぎ、必要に応じて背景を描く。&lt;strong&gt;つまり&lt;/strong&gt;ノードレイヤーとエッジレイヤーを別々に既存のもので作ればいい。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;技術スタックは下から——&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;WebGL&lt;/strong&gt;（ブラウザ技術）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;luma.gl&lt;/strong&gt;（Uber が作った、WebGL に対するもう少し高レベルな API のラッパー）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deck.gl&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;レイヤー自体の描き方は割と簡単に切り替えられる&lt;/strong&gt;ので、2次元から3次元に切り替えて、&lt;strong&gt;複数のレイヤーが重なった3次元空間の表現——2.5次元と呼んだりします——もやろうと思えばできます。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;実例&#34;&gt;実例
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;40万ノードくらい&lt;/strong&gt;のものです。&lt;strong&gt;あらかじめ Python でクラスタリングを施し、レイアウトしたものを描画しています。&lt;strong&gt;さすがに&lt;/strong&gt;分析やレイアウトをオンザフライでやるのは現実的ではない&lt;/strong&gt;ので、そこは別でやっています。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ただズームやパンといった基本的な部分については、このくらい何も考えずにやっても普通に描けるパフォーマンスが、今の機械・ライブラリ・ブラウザのおかげで出るようになっている。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;50万ノード&lt;/strong&gt;くらい入れると、ここまで行くと&lt;strong&gt;もう単なるメッシュにしか見えない&lt;/strong&gt;のですが、&lt;strong&gt;何も考えずとも比較的こういうものを deck.gl で作れる&lt;/strong&gt;ということが確認できました。&lt;/p&gt;
&lt;h3 id=&#34;d3js-とどう違うのか&#34;&gt;D3.js とどう違うのか
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;ちゃんとライブラリに合った役割を割り当てるのが大事&lt;/strong&gt;です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;D3.js&lt;/strong&gt;：&lt;strong&gt;カラーパレットの生成や circle packing の計算といった、数学的なライブラリとして使う&lt;/strong&gt;のは今でも非常に便利。&lt;strong&gt;それが今後のメインの使い方として正しくなってくる&lt;/strong&gt;と思います&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;deck.gl&lt;/strong&gt;：&lt;strong&gt;ひたすら力技で大量のデータを描く&lt;/strong&gt;ユースケースに異常に向いている&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし&lt;strong&gt;巨大なデータを一気に描画する場合、その場で解析やレイアウトを行うのは現実的ではない&lt;/strong&gt;ので、&lt;strong&gt;その部分は大きな計算機であらかじめ計算しておいて、どこかに蓄積する。&lt;strong&gt;こういう&lt;/strong&gt;役割分担が今後は大事&lt;/strong&gt;になってくると思います。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;D3.js でチャートを作る作業自体は面白い&lt;/strong&gt;んですけれども、&lt;strong&gt;最近はいろんなものがすでにあるので、既存のものを利用する。「自前で作らないと気が済まない」という欲求と戦うのが、今後は結構大事&lt;/strong&gt;だと思います。&lt;/p&gt;
&lt;p&gt;今の段階では単純にメモリに流し込んだものを無理やり描いているだけなので、実用的なアプリケーションにするには、&lt;strong&gt;1000万といったオブジェクトがあってもダイナミックにロードすれば、ブラウザでも十分扱える&lt;/strong&gt;はずで、そういう仕組みができないかを今やっている最中です。&lt;/p&gt;
&lt;p&gt;生物学的な話からスタートしましたが、まとめとしては——&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;比較的複雑なアプリケーションを作る場合でも、必要なツールキットは非常によく整備されている。まずそれを使えないかよく考える&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;足りない場合は、中間的な Dash を使う&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;それでもできない場合は、deck.gl で自前のレンダリングを書く&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;作る側としてはどんどん便利な世界になってきている&lt;/strong&gt;ので、ぜひこのあたりも試してみてください。以上です。&lt;/p&gt;</description>
        </item>
        <item>
        <title>Cameron Beccario／地球を作り上げる：世界天気のアニメーション地図</title>
        <link>https://data-visualization.jp/building-earth/</link>
        <pubDate>Tue, 26 Dec 2017 00:00:00 +0000</pubDate>
        
        <guid>https://data-visualization.jp/building-earth/</guid>
        <description>&lt;p&gt;Data Visualization meetup 2017（2017年12月26日・Indeed Tokyo 目黒オフィス開催）における、Cameron Beccario さんの講演です。世界の気象データをリアルタイムに可視化する &lt;a class=&#34;link&#34; href=&#34;https://earth.nullschool.net/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;earth&lt;/a&gt; の作者が、その動機・構築・反響・そこから得た教訓を語ります。&lt;/p&gt;
&lt;p&gt;本セッションは英語で行われました。以下は日本語に翻訳・整文したものです。なお**末尾の質疑応答は、質問者が日本語で話しているにもかかわらず自動字幕が英語として認識してしまっているため、質問文を復元できませんでした。**回答から推測できる範囲で構成しています。&lt;/p&gt;
&lt;hr&gt;
&lt;div class=&#34;video-wrapper&#34;&gt;
    &lt;iframe loading=&#34;lazy&#34; 
            src=&#34;https://www.youtube.com/embed/jR754hHMnhA&#34; 
            allowfullscreen 
            title=&#34;YouTube Video&#34;
    &gt;
    &lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;こんにちは。Cameron Beccario と申します。お招きいただきありがとうございます。&lt;/p&gt;
&lt;p&gt;最初にお断りしておくと、&lt;strong&gt;今日は Indeed の社員としてではなく&lt;/strong&gt;、Indeed に入る前に個人で作ったプロジェクトについてお話しします。それから、英語で失礼します。Twitter は @cambecc です。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;earth&lt;/strong&gt; というのが私のプロジェクトの名前です。&lt;strong&gt;Web の技術を学ぶために作った風の地図（wind map）&lt;/strong&gt; です。今夜は4つのトピックについてお話しします——&lt;strong&gt;動機・構築・反響・教訓&lt;/strong&gt;です。&lt;/p&gt;
&lt;h2 id=&#34;自己紹介&#34;&gt;自己紹介
&lt;/h2&gt;&lt;p&gt;私はもともとアメリカ中西部、アイオワ州シーダーラピッズの出身です。&lt;strong&gt;何もありません。トウモロコシと豚だけです。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;アイオワ州立大学でコンピュータ工学の学位を取り、その後シアトルに移ってマイクロソフトで5年間働きました。少し飽きてきたので、日本に来て日本語を勉強することにしました——**いまこうして英語で話しているわけですが。**その後いくつかの会社を経て、最終的に Indeed でソフトウェアエンジニアとして働いています。&lt;/p&gt;
&lt;h2 id=&#34;動機--無職の夏&#34;&gt;動機 ― 無職の夏
&lt;/h2&gt;&lt;p&gt;2013年の夏、&lt;strong&gt;私は無職でした。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;**切手を集めていました。**エンジニアが切手を集めている——&lt;strong&gt;あまり良い兆候ではありません。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;何か新しいスキルを学ぶためのプロジェクトが必要でした。&lt;strong&gt;HTML5 と JavaScript&lt;/strong&gt; をやりたいと思っていた。**JavaScript は知りませんでした。**そしてデータ可視化。でも何を作るか。&lt;/p&gt;
&lt;h3 id=&#34;インスピレーション&#34;&gt;インスピレーション
&lt;/h3&gt;&lt;p&gt;そこで素敵なインスピレーションを見つけました。2012年に見つけた &lt;strong&gt;hint.fm/wind&lt;/strong&gt; というサイトです。Google の（当時はまだ別の場所にいた）二人の研究者が作ったものです。&lt;/p&gt;
&lt;p&gt;これを見たとき、私は思いました。「&lt;strong&gt;これは本当にクールだ。ブラウザでこんなことができるのか。すごい。&lt;/strong&gt;」しかも基本的にリアルタイムです。最終更新の時刻が出ている。&lt;/p&gt;
&lt;p&gt;「これを参考にして、自分でも何か作れるんじゃないか」と思いました。それに——**私は天気が好きなんです。**大きな嵐、澄み切った空、雪。&lt;strong&gt;恐ろしくて、同時に美しい。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;「よし、風の地図を作ろう。良いプロジェクトになりそうだ」と。&lt;/p&gt;
&lt;h3 id=&#34;道具とデータ&#34;&gt;道具とデータ
&lt;/h3&gt;&lt;p&gt;何を使うか調べ始めて、&lt;strong&gt;D3&lt;/strong&gt; を見つけました。今日も先ほど話に出ていましたね。D3 で綺麗な地図を作る方法を説明した良いチュートリアルがありました。長いチュートリアルでしたが。&lt;strong&gt;地図は問題なし。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ではデータはどこから取るのか。&lt;strong&gt;そもそもそんなデータは存在するのか。どうやって見つけるのか。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;調べると、&lt;strong&gt;アメリカ国立気象局（US National Weather Service）&lt;/strong&gt; が &lt;strong&gt;GFS&lt;/strong&gt; という気象モデルを持っていることが分かりました。スーパーコンピュータ上で3時間ごとに走るシミュレーションで、**そのデータが無料で公開されている。**FTP サイトがあって、ファイルをすぐにダウンロードできる。&lt;strong&gt;非常に奇妙なフォーマットですが&lt;/strong&gt;、とにかく無料でダウンロードできる。&lt;/p&gt;
&lt;h2 id=&#34;構築--4つの段階&#34;&gt;構築 ― 4つの段階
&lt;/h2&gt;&lt;p&gt;どこから始めるか。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;最初の勝利は、ブラウザに世界地図を表示できたこと&lt;/strong&gt;でした。D3 を使って。「これはすごい。地図さえ出せるなら、このプロジェクトはやれる」と思いました。&lt;/p&gt;
&lt;p&gt;次のステップは、それを&lt;strong&gt;球体&lt;/strong&gt;にすること。これも D3 がサポートしています。とても良くできている。&lt;/p&gt;
&lt;p&gt;そして&lt;strong&gt;気象データを使って、緯度経度グリッドの個々の点に色を付ける&lt;/strong&gt;。色を塗り始めると、それらしく見えてきます。さらにデータ点と点の間を&lt;strong&gt;バイリニア補間&lt;/strong&gt;で埋めると、滑らかな球体になります。&lt;/p&gt;
&lt;p&gt;しかしこれは色だけです。&lt;strong&gt;私が欲しかったのは動くアニメーションでした。そしてそれが難しかった。本当に難しかった。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;どうやればいいのか理解するために、たくさんのことを試しました。そして最終的に分かった。デモをお見せします。&lt;/p&gt;
&lt;h3 id=&#34;デモ&#34;&gt;デモ
&lt;/h3&gt;&lt;p&gt;これがサイトです。&lt;strong&gt;3時間ごとに更新される、ほぼライブのデータ&lt;/strong&gt;です。地球を回転させたり、ズームインしたりできます。いま通り過ぎた気象システムが見えますね。&lt;/p&gt;
&lt;p&gt;メニューから他の種類のデータも見られます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ジェット気流&lt;/strong&gt; ——南極上空のジェット気流が見えます。なかなか面白い&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;波（ocean waves）&lt;/strong&gt; ——先ほどの嵐のシステムが大きな波を作っているのが分かります&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;海流（ocean currents）&lt;/strong&gt; ——これも綺麗ですね&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;時間を前後に動かせる&lt;/strong&gt;ので、過去に遡ってどう変化したかも見られます。D3 なので&lt;strong&gt;投影法も変えられます&lt;/strong&gt;。こんな変わったものにもできる。ちょっと楽しい。&lt;/p&gt;
&lt;p&gt;そして &lt;strong&gt;PM2.5&lt;/strong&gt;。……ええ、**中国、ありがとう。**ひどいですね。&lt;/p&gt;
&lt;p&gt;ただ &lt;strong&gt;PM2.5 は汚染物質だけではありません。&lt;strong&gt;砂や埃、海からの塩分も PM2.5 に分類されます。ですから&lt;/strong&gt;汚染源がどこなのかを理解することが重要&lt;/strong&gt;です。&lt;/p&gt;
&lt;h3 id=&#34;4つのレイヤー&#34;&gt;4つのレイヤー
&lt;/h3&gt;&lt;p&gt;地球は&lt;strong&gt;4つのレイヤー&lt;/strong&gt;でできています。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;SVG&lt;/strong&gt; の地球&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTML5 canvas&lt;/strong&gt; ——アニメーションが起きる場所&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WebGL&lt;/strong&gt; ——色。最初は canvas でしたが、性能のために WebGL に切り替えました&lt;/li&gt;
&lt;li&gt;もう一枚の &lt;strong&gt;SVG&lt;/strong&gt; ——縁を綺麗に整えるため&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;アニメーションの仕組み&#34;&gt;アニメーションの仕組み
&lt;/h3&gt;&lt;p&gt;気象データをダウンロードすると、&lt;strong&gt;ベクトル場&lt;/strong&gt;が得られます。この場の上に粒子を描きたい。&lt;/p&gt;
&lt;p&gt;やり方はこうです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;一度に短いセグメントを1本だけ描く&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;毎フレーム、そのベクトルが指す方向を見て、その方向に描く&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;前のフレームで描いたセグメントをフェードさせる&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;速度を上げる&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;粒子を増やす。もっと増やす。もっと増やす&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;それであの効果になります。&lt;/p&gt;
&lt;h3 id=&#34;球体の歪みという難題&#34;&gt;球体の歪みという難題
&lt;/h3&gt;&lt;p&gt;先ほど「球体の歪みが難題だった」と言いました。なぜ難しいか。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;気象データは風を「北向き」「東向き」で示します。&lt;strong&gt;しかし&lt;/strong&gt;画面上の「北」は、場所によって上だったり、右だったり、下だったりする。&lt;/strong&gt;「東」も同じです。&lt;/p&gt;
&lt;p&gt;ですから&lt;strong&gt;すべての点について、ベクトルをどう変換するかという歪みを求めなければならない。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;東だけを見てみましょう。同じことをします——場を描いて、粒子を1ステップずつ動かして、速度を上げる。……そう、&lt;strong&gt;これがこのプロジェクトで一番大変な部分でした。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;gpu-の-arcsine-が壊れている&#34;&gt;GPU の arcsine が壊れている
&lt;/h2&gt;&lt;p&gt;色は最初 canvas で実装しましたが、WebGL に切り替えました。&lt;/p&gt;
&lt;p&gt;**最初の実装はこうでした。地球を回転させると、色が消えてしまう。**良くないですね。&lt;/p&gt;
&lt;p&gt;そこで&lt;strong&gt;フラグメントシェーダ&lt;/strong&gt;を書きます。フラグメントシェーダとは、要するに&lt;strong&gt;ピクセルの色を作る小さなプログラム&lt;/strong&gt;で、GPU 上で走ります。&lt;strong&gt;GLSL&lt;/strong&gt; で書きます。すべてのブラウザがサポートしています。&lt;/p&gt;
&lt;p&gt;これが最も単純なフラグメントシェーダです。「このピクセルの RGB はこれ」を返すだけ。&lt;/p&gt;
&lt;p&gt;風の地図では、&lt;strong&gt;すべてのピクセルについて、それがどの緯度経度に当たるかを求め、その緯度経度の風速を調べ、色にマッピングする。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;そして、&lt;strong&gt;この「XY から緯度経度へ」の部分が難しい&lt;/strong&gt;のです。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;正射図法（orthographic projection）&lt;/strong&gt; ——地球を眺めるような投影法の洒落た名前です——を使っていて、これには X と Y から緯度経度を計算する公式があります。それを GLSL で、フラグメントシェーダで書ける。&lt;strong&gt;素晴らしい。動く。しかも猛烈に速い。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;バグ報告&#34;&gt;バグ報告
&lt;/h3&gt;&lt;p&gt;しかし**バグがありました。**あるユーザーがこの画像をメールで送ってきました。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;どこがおかしいか分かりますか？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;すべてが南にずれている&lt;/strong&gt;のです。しかも奇妙なことに、**画面上で下にずれているのではなく、「南に」ずれている。**経度は問題なさそうで、ちゃんと合っている。南にずれているのに、**イタリアは大丈夫そう、アフリカも大丈夫そう。**本当に奇妙でした。&lt;/p&gt;
&lt;p&gt;そこでフラグメントシェーダを見始めました。&lt;strong&gt;この緯度の値に何か問題がある。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;項を見ていきます。**問題はここではありえない。経度は正しいし、経度も同じ項を使っている。**同じ、同じ、基本的に全部同じ項です。&lt;strong&gt;では、なぜ緯度だけがおかしいのか。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;**緯度は arcsine を使っている。**これはユーザーのマシンの GPU のハードウェアに組み込まれた関数です。&lt;/p&gt;
&lt;p&gt;「arcsine が間違っているなんてありえるのか」と思いました。そこで小さなプログラムを作って、そのユーザーに走らせてもらいました。&lt;/p&gt;
&lt;p&gt;これが、そのユーザーのコンピュータでの arcsine の出力です。&lt;strong&gt;CPU で動く JavaScript と、GPU で動く WebGL。一致しません。arcsine が間違っている。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;対処&#34;&gt;対処
&lt;/h3&gt;&lt;p&gt;どうするか。**arcsine を近似すればいい。**簡単です。誰かがすでに書いてくれています。&lt;strong&gt;掛け算と足し算だけで arcsine を近似する式&lt;/strong&gt;があります。&lt;/p&gt;
&lt;p&gt;それを追加して、&lt;strong&gt;自前の arcsine を作りました。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;そのユーザーは「ありがとう、これでサイトが使えるようになった。&lt;strong&gt;私は地球温暖化を信じていないけどね&lt;/strong&gt;」と。&lt;/p&gt;
&lt;p&gt;……&lt;strong&gt;地球温暖化を信じていない人のために、あれだけの作業をしたとは。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;教訓&#34;&gt;教訓
&lt;/h3&gt;&lt;p&gt;**GPU はゲームのために設計されていて、計算のために設計されているわけではありません。**高価な GPU なら別ですが。そのユーザーの arcsine のハードウェア実装には、&lt;strong&gt;ゲームの世界では問題ないが計算では問題になる最適化&lt;/strong&gt;が入っていたのです。7年落ちの GPU でした。&lt;/p&gt;
&lt;p&gt;ただ、**サイトに小さなテストを仕込んで、arcsine が壊れているユーザーがどれくらいいるか調べてみました。約3％です。**訪問者の3％。&lt;strong&gt;理由は分かりません。とても奇妙です。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;アーキテクチャ--月50ドル&#34;&gt;アーキテクチャ ― 月50ドル
&lt;/h2&gt;&lt;p&gt;サイトの構成についても少しお話しします。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;すべて静的&lt;/strong&gt;です。&lt;strong&gt;Amazon S3&lt;/strong&gt; に置いて、その前に &lt;strong&gt;CloudFlare&lt;/strong&gt;。CloudFlare は無料の CDN、S3 は安い。&lt;strong&gt;サイトの運用コストは月50ドルほど&lt;/strong&gt;です。&lt;/p&gt;
&lt;p&gt;気象データは国立気象局から自前のサーバーが取ってきて、&lt;strong&gt;JSON ファイルに変換して S3 にアップロードする&lt;/strong&gt;だけ。**S3 は狂ったようにスケールするし、維持すべきサーバーが無い。**これが本当に素晴らしい。&lt;/p&gt;
&lt;h2 id=&#34;反響--4800万人&#34;&gt;反響 ― 4,800万人
&lt;/h2&gt;&lt;p&gt;スケールする。ではローンチだ。&lt;strong&gt;誰か見に来てくれるだろうか。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Twitter と Facebook で、友人に向けて公開しました。これが Google Analytics です。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ローンチ当日：64訪問。そして何も起きない。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;「あれだけ作業して、これか」と思いました。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;翌日：3万訪問。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;そして次の週、その次の週と、&lt;strong&gt;バイラルに広がっていきました。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;2013年から2017年まで、&lt;strong&gt;累計4,800万ユーザー、1億3,800万セッション。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;グラフのピークは&lt;strong&gt;台風、嵐、熱波&lt;/strong&gt;です。&lt;strong&gt;地球上で何も起きていないときは、トラフィックはごくわずか。ほとんどゼロ。でも何かが起きると、人が来る。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;最も忙しかったのは、イギリスを直撃したハリケーンのとき。1日で200万セッション&lt;/strong&gt;でした。&lt;/p&gt;
&lt;p&gt;NASA、アル・ゴア、Forbes などが Twitter で言及してくれました。**テレビでもかなり使われています。**BBC、それから NHK も時々使っています。The Weather Channel も。&lt;/p&gt;
&lt;p&gt;学術誌でもアートワークとして使われました。&lt;em&gt;Nature Climate Change&lt;/em&gt; など。&lt;/p&gt;
&lt;p&gt;**誰かがビールを作りました。**私には教えてくれませんでしたが。&lt;strong&gt;そのビールが本当に欲しかった。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;そして、とても興味深いアートワークを作った人もいます。&lt;strong&gt;これは布です。カナダのアーティストが作った刺繍作品&lt;/strong&gt;で、彼女は20点を制作して、あの投影法をもとにした個展を開きました。&lt;/p&gt;
&lt;h2 id=&#34;教訓-1&#34;&gt;教訓
&lt;/h2&gt;&lt;h3 id=&#34;-ユーザビリティ--誰もメニューの場所を知らない&#34;&gt;① ユーザビリティ ― 誰もメニューの場所を知らない
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;誰もメニューがどこにあるか分かりません。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;自分では気が利いていると思ったのです。綺麗で良いデザインだと。でも**一度いじったことがある人以外、誰もメニューに気づかない。**これは直さないといけません。&lt;/p&gt;
&lt;h3 id=&#34;-この可視化は厳密には正しくない&#34;&gt;② この可視化は、厳密には正しくない
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;この可視化は間違っています。&lt;/strong&gt;「間違い」は言い過ぎかもしれません。**誤解を招く、正確でない。**理由を説明します。&lt;/p&gt;
&lt;p&gt;これは&lt;strong&gt;ある時点のスナップショット&lt;/strong&gt;をアニメーションさせたものです。&lt;strong&gt;時計は動いていません。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;では、あの動きは何なのか。&lt;strong&gt;あれは時間の中の動きではありません。ベクトル場の中の動きです。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;粒子を1つ取って軌跡を描くと、&lt;strong&gt;流線（streamline）&lt;/strong&gt; が得られます。流線とは、&lt;strong&gt;ある瞬間における線&lt;/strong&gt;です。&lt;/p&gt;
&lt;p&gt;**しかし天気はそう動きません。ベクトル場は時間とともに変化する。**この嵐は右に移動していきます。時計が動いている状態で同じ粒子を描くと、&lt;strong&gt;まったく違う軌跡&lt;/strong&gt;になります。&lt;strong&gt;こちらの方が現実に近い。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;しかし私の風の地図で見えているのは、最初の方——流線です。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ですから、**これは誤解を招くし、厳密には正しくない。**ただ、&lt;strong&gt;人々はそれをあまり気にしません。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;でも、**私たちがデータ可視化を作るときには、正直でなければなりません。**ユーザーに対して正直であり、&lt;strong&gt;その可視化が何を意味しているのかを正確に説明しなければならない。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;私はまだ、これをサイトの訪問者にうまく説明する方法を見つけられていません。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;なお、このサイトのローンチ以降、**粒子アニメーションはあちこちで使われるようになりました。**気象局、CNN、The Weather Channel、NHK。よく似たものが出てきています。&lt;/p&gt;
&lt;h3 id=&#34;-データが無料であることの意味&#34;&gt;③ データが無料であることの意味
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;地理データは無料。フレームワークは無料。帯域も（実質）無料。Twitter で受けた助けもすべて無料。そして気象データが無料。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;無料のデータは、私のような人間——職がなくて、ただ何かを作りたいだけの人間——に、途方もない可能性を開きます。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;**これは何十億ドルもの代物です。ロケット、衛星、スーパーコンピュータ。それを私が無料で使える。私たち全員が無料で使える。**これは非常に大きな教訓です。&lt;/p&gt;
&lt;p&gt;ただし——**ヨーロッパ気象局、そして日本の気象庁のデータは無料ではありません。**月に数万円かかります。&lt;strong&gt;日本の気象庁のデータをぜひ使いたいのですが、手に入れられません。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;以上です。ありがとうございました。&lt;/p&gt;
&lt;h2 id=&#34;質疑応答&#34;&gt;質疑応答
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;以下は、日本語での質問に対する Cameron さんの回答です。**自動字幕が日本語の質問を英語として誤認識しているため、質問文そのものは復元できませんでした。**回答の内容から質問を推測して見出しを付けています。&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;——このプロジェクトは一人で作ったのですか。制作期間はどのくらいですか。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;はい、一人です。&lt;strong&gt;7月に始めて、12月に公開しました。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;最初に&lt;strong&gt;東京だけのプロトタイプ&lt;/strong&gt;を作りました。これがそのプロトタイプですが、ほとんど何もできません。これを見た人たちが「&lt;strong&gt;埼玉に住んでいるんだけど&lt;/strong&gt;」「&lt;strong&gt;沖縄に住んでいるんだけど、自分の場所の天気はどう見るの&lt;/strong&gt;」と言ってきた。それで地球全体を作ることにしたのです。&lt;strong&gt;5か月かかりました。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;職がないと、時間はいくらでも使えます。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;——サイトを作っていて発見した、面白い場所はありますか。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;たくさんあります。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;南極周辺の風&lt;/strong&gt;です。気づきにくいのですが、**この海には風を遮る陸地がまったくない。**だから風はひたすら加速していく。「&lt;strong&gt;吠える40度（roaring 40s）&lt;/strong&gt;」と呼ばれていて、常に非常に荒れています。&lt;strong&gt;風を減速させる陸地が無いからです。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;そして——**南極を見せてくれる天気サイトが、他にどれだけありますか。**たいていは決まった窓しか見せてくれない。&lt;strong&gt;でもこれはおもちゃなので、探索して発見できるのです。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;もう一つ面白いのが&lt;strong&gt;極渦（polar vortex）&lt;/strong&gt; です。これは成層圏で、いまは北半球の冬なので&lt;strong&gt;北極上空に非常に強い渦&lt;/strong&gt;があります。夏になるとこれが南極側に移ります。&lt;strong&gt;探索して面白い場所は、本当にたくさんあります。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;——データフォーマットについて教えてください。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;差分符号化&lt;/strong&gt;をするフォーマットです。**PNG に少し似ていて、3点から平面を予測して、その差分（デルタ）を符号化する。**これが非常によくできています。&lt;/p&gt;
&lt;p&gt;アーキテクチャ全体にもたくさんの工夫があります。&lt;strong&gt;S3 と CloudFlare でサーバー無し、すべて静的。ロジックはすべてブラウザにある。つまり私のではなく訪問者の CPU を使っている。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;最後にもう一つ。&lt;strong&gt;S3 が非常に安いので、私はデータを消していません。&lt;strong&gt;2013年から&lt;/strong&gt;3時間ごとのデータがすべて残っていて、いま数年分あります。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ありがとうございました。&lt;/p&gt;</description>
        </item>
        
    </channel>
</rss>
