これはレイアウト確認用のダミーテキストです。
CNNがこれまでで最も多様なアメリカを地図化
見出し

Johnは、CNNの気候を専門とする上級データおよびビジュアルエディターです。彼はデータジャーナリズムで長いキャリアを持ち、この技術に不慣れな人々に教えることにも力を入れています。彼と同僚が作成した米国の人種と民族に関するドット密度マップを高く評価しており、2020年国勢調査からの主要なデータリリースからわずか数時間でどのように作成したのかをJohnに共有してもらいました。
CNNのビジュアルニュースチームは、国勢調査のデータ公開計画を注意深く監視していたため、どのような種類のデータを入手できるか、どのようなものを構築したいか、ネットワークの他のジャーナリストが必要または希望する可能性のあるものについて、いくつかの推測を立てました。
私は2010年の国勢調査の発表以来、ドット密度による人種および民族マップに触発されてきました。ニューヨーク・タイムズは、私が賞賛し、その発表直後に調査したものをまとめました(現在はFlashを使用していたため壊れていますが、2015年に新しいものを構築しました)。クーパーセンター・フォー・パブリックサービスは美しいバージョンを作成しました。また、ワシントン・ポストも同様です。
ドット密度マップの準備のために、テストデータと2010年の国勢調査データを使用して、全国ベースレイヤーを迅速に構築できるかどうかを判断するのに約1週間を費やしました。リリースは木曜日の午後1時で、私たちのアイデアは、できるだけ早く、理想的には週末前にそれを完成させることでした。
それは可能でしょうか?
国勢調査局は、実際の数値を公開する予定の形式で、ロードアイランド州の一部の郡の偽のデータを提供しました。そのため、分析のために州、郡、場所、および国勢調査区域を分類するために、データを迅速に取り込んで処理するためのPythonスクリプトを事前に構築することができました。
最初に2010年のデータを使用して、マンハッタンのドットマップを生成しました。そこは私がよく知っていて、たくさん地図を作成したことがある地域です。そのため、そのデータから、ニューヨーク市全体、次にニューヨーク州、そしてカリフォルニア州も試しました。最後に、偽のロードアイランドデータを使用しました。データが公開されたら、すぐに全国地図を作成できると確信しました。

全国ドット密度マップを迅速に構築した方法
国勢調査区域、または郵便番号レベルのデータの全国ズーム可能な地図を作成することは、以前は非常に大変な作業でした。データを処理し、有用なズームレベルまで全国の画像タイルを生成し、それらのタイルをすべて何らかの方法でホストする必要がありました。今回は、それを迅速にした3つの要素がありました。
1つ目はMapshaperです。ニューヨーク・タイムズのマシュー・ブロッホ氏によるこのツールが、データマッピングの世界にとってどれほど素晴らしい贈り物であるかを強調してもしすぎることはありません。それは信じられないほど強力です。最近、ブロッホがドット密度マップを作成するために、ポリゴンをランダムな点で埋める「-dots」コマンドを含めていることに気づきました。また、高速です。そのコマンドをスクリプトに連結することで(Makefileで実行します)、手順をすばやく繰り返すことができました。各州の国勢調査区域シェープファイルをダウンロードし、Mapshaperを使用して、人種および民族別の2020年の人口データと形状をマージしました。次に、-dotsコマンドを使用して、各区域に適切な数と色のドットをプロットし、各州のポイントでいっぱいのGeoJSONファイルを生成しました。
Mapboxが、昔のかさばる画像タイルとは対照的に、データから構築されたベクタータイルを表示できることを知っており、Ryan McCulloughによる以前の作成方法に関する投稿を見つけました。彼は私がやりたいことを正確に実行しましたが、国勢調査の住宅データを使用しました。Tippecanoeは、州のGeoJSONファイルのフォルダーを、CNN Mapboxアカウントで高速ホスティングするためにアップロードできる単一の.mbtilesファイルに変換しました。Mapbox Tiling Serviceを使用すると、Tippecanoneをインストールして自分のコンピューターでファイルを処理しなくても、これを行うことができます。
最後に、CNNの山火事マップがありました。同僚のDaniel Wolfeが率いるビジュアルニュースチームは、すでに人気のあるMapboxベースのマップを持っていました。つまり、フロントエンドをゼロから構築する必要はありませんでした。それが迅速なターンアラウンドの鍵でした。
データの課題
解決する必要のある2つの技術的な課題がありました。1つは、国勢調査区域が水域にまで及ぶことがよくあることです。そのため、区域にランダムにドットを配置すると、人々が湖や川に住むことになります。ニューヨーク市が良いテストケースであったもう1つの理由はそこにあります。正しく行わないと、ハドソン川に人が住むことになります。
重要なのは、ドットを配置する前に、各州の国勢調査区域から水域を差し引くことでした。このために、国勢調査のFTPサイトから、国内のすべての郡の「areawater」シェープファイルをダウンロードしました。(ftp2.census.gov/geo/tiger/TIGER2020/AREAWATERを指す実際のFTPクライアントを使用する方が、Webからファイルを取得するよりも簡単でした。)次に、Mapshaperの-inputコマンドを使用して、州の各郡の水ファイルを読み取り、「combine-files」フラグを使用して、それらを単一の州の水GeoJSONファイルにマージしました。
これがそのmakefileのコードです。
# 使用法: make water STATE=06
water:
# 以前に、/ftp2.census.gov/geo/tiger/TIGER2020/AREAWATERからすべての郡の水ファイルをダウンロードしたことに注意してください
# 私のコンピューターの/Volumes/jkeefe-data/2020_Census/AREAWATERに
mkdir -p ./tmp/water
rm ./tmp/water/*.*
cd /Volumes/jkeefe-data/2020_Census/AREAWATER; \
unzip -o "tl_2020_$(STATE)*.zip" -d /Users/keefe/cnnvis-census2020-dot-maps/tmp/water
npx mapshaper -i './tmp/water/*.shp' combine-files \
-simplify 40% \
-merge-layers \
-proj EPSG:4326 \
-o datawork/water/water_$(STATE).geojson(その後、この全国的な「areawater」ファイルを発見しました。これはここで役立った可能性があります。)
次に、Mapshaperの-eraseコマンドを使用して、各州の水域をその区域のGeoJSONファイルから差し引きました。
もう1つの大きなハードルは、米国東海岸では人口密度が非常に高いため、ズームアウトすると、データポイントの数が(ドットあたり150人でも)一部のベクタータイルに収まらないという事実から生じています。Tippecanoeはこれが発生すると警告し、密集した領域からフィーチャを削除する設定を提供します。しかし、私は視覚化でデータを失いたくありませんでした。
私が最初に行った修正は、ズームレベルを7に制限し、ニュージャージー州のサイズよりも大きくズームアウトできないようにすることでした。同僚のPriya Krishnakumarが、国全体を見たいと言ったとき、私もそう思いました。そして、アイデアが浮かびました。
Mapshaperのコマンドはすべてスクリプト化していたので、-dotパラメーターを調整して、ドットあたり300人と900人の2つの新しいGeoJSONファイル(およびタイルセット)を作成するのは非常に簡単でした。これらのタイルセットをMapboxにアップロードし、Mapbox Studioを使用して、各タイルセットが表示されるズームレベルを制限しました。凡例がズームレベルに応じて変わるようにすることも忘れずに。

データが最終的に公開されたとき、私たちは楽しいサプライズに見舞われました。国勢調査局は、私たちが予想していたような「全国」データファイルを作成せず、すべての人口データは州ごとにグループ化されていました。そのため、CNNの優れた全国分析と地図を作成するには、州のデータを集計する必要がありました。
チャットログによると、午後4時13分にドット密度マップに注意を向け、準備していたスクリプトを実行し、ユーザーインターフェースを調整し(同僚のSergio Hernandezによる素晴らしい改善を含む)、チームのフィードバックを取り入れました。6時間後、ドット密度マップを公開しました。
地図のスタイリング
Mapbox Studioを使用して、ドット密度ベースマップの全体的なルックアンドフィールをデザインしました。Mapbox Studioでは、土地、水、道路などの地図フィーチャを自由に制御できるのが本当に気に入っています。色だけでなく、ラベルの密度、ハロー、そして重要なこととして、何が他のものの上に表示されるかを制御できます。私は、ラベルが一番上にあり、次にデータ、そしてベースレイヤーが続くのが好きです。また、フロントエンドの表示に取り組むずっと前から、チームからのフィードバックを取り入れながら、これらすべてをライブで調整できました。
とは言うものの、Mapbox Studioで必要なものを得るには、かなりの試行錯誤が必要です。その機能の使用方法について、より明確なドキュメントとより多くの例が欲しいです。たとえば、公開後、ドットに使用した2つの色がほとんど同じに見えるという意見が寄せられました。そこで、それらを変更することにしました。

私は、製造上の理由から、GeoJSONファイルに色を変数「fill」としてエンコードしており、Mapbox Studioで「オンザフライ」で変更できると正しく想定していました。しかし、その方法を理解するのは困難でした。ドキュメントに基づいて式を作成し始めましたが、うまくいきませんでした。さらに試行錯誤を重ねた結果、データ条件を使用して必要なものを取得する方法を理解しました。
国勢調査データで構築を続ける
2020年の国勢調査データを使用した地図を公開した後、Twitterで多くの温かい反応をいただきました。私たちのオーディエンスも多くの時間を地図に費やし、国勢調査の発表から数日、数週間後でも、それは本当に共感を呼んでいるようでした。今後、国勢調査に関するストーリーがさらに展開される予定です。また、今年の後半に世帯、遺産などに関する詳細な国勢調査データが公開された際には、掘り下げるべき多くの情報があります。
ジョン様、このプロジェクトの舞台裏を共有していただきありがとうございます。CNNチームが次に何を構築するのか楽しみにしています!
国勢調査データで地図を作成していますか?ぜひお見せください。Twitterで共有してください@Mapbox。
これはレイアウト確認用のダミーテキストです。

