MTSを使用した国勢調査からのTilingデータ:構築方法

見出し

これはレイアウト確認用のダミーテキストです。

米国勢調査局は、現在の人口統計と過去の人口統計を記述する数千もの属性とともに、列挙単位を提供しています。これらは、ビジネス分析ダッシュボードから、アメリカ進歩センターが作成したような選挙に関するストーリーまで、地図で使用されており、テキサス州ハリス郡での有権者抑圧を示すために利用されています。

国勢調査のデータセットは、生のgeojsonとしては非常に大きいものですが、タイル化すると、MTS (Mapbox Tiling Service)を使用して非常に優れたパフォーマンスを発揮します。以下は、適切な最小および最大タイルレベルの選択方法や、さまざまなズームレベルでデータを集計する方法など、MTSデータ同期コマンドラインツールを使用して国勢調査データをタイル化するために準備する方法に関する注意事項です。

MTS

MTS (Mapbox Tiling Service) の`data sync beta tool`は、簡単なコマンドとオプションの構成パラメーターを`レシピファイル`で使用して、スケーラブルなベクタータイルセットを作成します。レシピは、最大の`ズームレベル`を定義するのと同じくらい簡単で、異なるズームレベルでのデータ間の結合を定義するのと同じくらい複雑です。さまざまなユースケースの図については、レシピの例をご覧ください。

セットアップ

国勢調査データをタイル化する最初のステップは、データファイルを準備し、コマンド環境をセットアップすることです。

  1. テキサス州の国勢調査区域データをダウンロードします:https://www2.census.gov/geo/tiger/TIGER2019/TRACT/tl_2019_48_tract.zip 
  2. QGISまたはogr2ogrを使用して、国勢調査区域のシェープファイルをgeojsonに変換します。後でアラインメントの問題が発生する場合は、gdalQGISなど、投影された座標を緯度と経度に変換する変換方法を必ず使用してください。
  1. gdalがインストールされている場合、データディレクトリからターミナルでこのコマンドを実行します:`ogr2ogr tx-tracts.geojson tl_2019_48_tract.shp`
  1. MTS Data Syncをインストールし、Mapboxトークンを追加します
  2. データディレクトリからコマンド`mtsds --configure tx-tracts.geojson`を実行すると、構成ファイル、レシピテンプレートが生成され、データが行区切りgeojsonに変換されます
  3. VS Codeなどのテキストエディタでmts-recipe.jsonを開き、レシピの編集を開始します(下記参照)。
  4. `mtsds sync`を実行してデータをタイル化します 

最小および最大のズーム:

地図上に非常に詳細なジオメトリを表示する場合は、ズームレベルを計画することが重要です。デフォルトでは、mtsdsは最大ズーム5(タイルあたり約122平方キロメートル)のレシピを作成し、ジオメトリがそのズームで適切に見えるように簡略化されますが、それ以上は簡略化されません。国勢調査区域の場合、デフォルトの簡略化は、地図が最大ズーム5を超えてズームインすると、ジオメトリが過度に簡略化され、ばらばらに見えることを意味します。

最大ズームをデフォルトレベル(5)のままにすると、フィーチャが過度に簡略化される可能性があります

たとえば、投票箱のドロップボックスの場所を見つけるために、ユーザーが近隣または通りのレベルまでズームインする地図の場合、最大ズーム11がより適切です。一般的なユースケースに最適なスケールまたはズームレベルの概要については、MTSドキュメントを参照してください。  

地図が最初に読み込まれると、ズームアウトされ、ジオメトリが詳細すぎて混雑して見えます。タイルのサイズ制限により、低いズームレベルでフィーチャがドロップされる可能性もあります。

最小ズームを設定しないと、タイルが欠落する可能性があります。

この制限を回避するには、いくつかの方法があります。属性を削除する、最小ズームを制限する、または低いズームレベルでジオメトリを自動的に結合するなどです。最も簡単なのは最小ズームを制限することです。以下は、マップのズームがz8より大きくなった場合にのみ、区域を表示するレシピの例です。

{
    "version": 1,
    "layers": {
        "tx-tracts-z5": {
            "source": "mapbox://tileset-source/username/tx-tracts-src",
            "minzoom": 8,
            "maxzoom": 11
        }
    }
}

ズームレベル全体でデータを集計:

マップをさらにズームアウトして概要統計を表示できるようにするには、集計データを含む別のレイヤーを追加して、郡ごとにデータを一般化することができます。または、同じタイルセットレシピ内で、MTSはデータ属性に既にある郡のFIPSコードを使用して、国勢調査区域を自動的に結合できます。

ズームアウトすると、国勢調査区域レイヤーが郡の境界線に変わります(参照用のアイソクロンオーバーレイ付き)。

最終的なレシピ

{
    "version": 1,
    "layers": {
        "tx-tracts": {
            "source": "mapbox://tileset-source/username/tx-tracts-src",
            "minzoom": 0,
            "maxzoom": 5,
            "features": {
                "simplification": {
                    "outward_only": true,
                    "distance": 1
                },
                "attributes": {
                    "set": {
                        "key": [
                            "concat",
                            ["case", [">=", ["zoom"], 0], ["get", "STATEFP"], ""],
                            ["case", [">=", ["zoom"], 5], ["get", "COUNTYFP"], ""],
                            ["case", [">=", ["zoom"], 8], ["get", "TRACTCE"], ""]
                        ]
                    }
                }
            },
            "tiles": {
                "union": [
                    {
                        "group_by": ["key"],
                        "aggregate": {
                            "ALAND10": "sum"
                        },
                        "simplification": {
                            "distance": 4,
                            "outward_only": false
                        }
                    }
                ]
            }
        }
    }
}

このレシピを使用して作成されたインタラクティブバージョンの地図をご覧ください。

`group_by`や`union`などの高度なテクニック、およびそれらを使用してブロックレベルのデータを表示する方法の詳細については、MTSを使用した国勢調査データのタイル化に関する完全なガイドをお読みください。

公共の利益のためのアプリや研究プロジェクトで国勢調査データを使用していますか?Mapbox Communityチームがサポートできます - お問い合わせください

これはレイアウト確認用のダミーテキストです。

これはレイアウト確認用のダミーテキストです。

関連記事