はじめに
本記事では、Mapboxを使用して人口データを地図上で視覚的に表現する方法をご紹介します。具体的には、国土数値情報ダウンロードサイトから入手した「メッシュ別将来推計人口データ」をMapbox上でどのように表示するかを解説します。
ステップ1: 人口データのダウンロード
まず、国土数値情報ダウンロードサイトから「メッシュ別将来推計人口データ」をダウンロードします。これらのデータは、日本全国を一定のメッシュで区切った形式で提供されており、それぞれのメッシュ内の将来推計人口が記載されています。
ステップ2: データ形式の変換
ダウンロードされたファイルはShapefile形式です。Mapboxで使用するためには、このデータをGeoJSON形式に変換する必要があります。Pythonを使用してこの変換を行います。以下はPythonでの変換プロセスの一例です。
import zipfile
import os
import geopandas as gpd
# アップロードされたzipファイルのパス
zip_file_path = '1km_mesh_suikei_2018_shape_20.zip'
# Zipファイル名から拡張子を取り除いて解凍先のディレクトリ名を設定
unzip_dir, _ = os.path.splitext(zip_file_path)
# Zipファイルを解凍
with zipfile.ZipFile(zip_file_path, 'r') as zip_ref:
zip_ref.extractall(unzip_dir)
# 解凍されたファイルのリストを取得
extracted_files = os.listdir(unzip_dir)
# 解凍されたファイルのリストを取得し、.shpファイルを見つける
extracted_files = os.listdir(unzip_dir)
shp_file = None
for file in extracted_files:
if file.endswith('.shp'):
shp_file = os.path.join(unzip_dir, file)
break
# .shp ファイルが見つかったことを確認
if shp_file is None:
raise Exception("No .shp file found in the extracted files.")
# Reading the shapefile using Geopandas
gdf = gpd.read_file(shp_file)
# Converting to GeoJSON format
geojson_path = unzip_dir + '_geojson.json'
gdf.to_file(geojson_path, driver='GeoJSON')
geojson_path
(fletを使ってデスクトップアプリを作成してみましたが、コンパイルがうまくできず、しばらくお待ちください。)
ステップ3: Mapboxのセットアップ
MapboxのWebサイトにアクセスし、アカウントを作成またはログインします。Mapbox Studioを開き、「New style」を選択します。ここでは、既存の「Classic Style」から好みのスタイルを選ぶことができます。
ステップ4: データレイヤーの追加
作成したスタイルの地図上に「Add new layer or component」をクリックし、「Data visualization」を選択します。ここで、先ほど変換したGeoJSONファイルをアップロードします。
ステップ5: 可視化のカスタマイズ
GeoJSONファイルをアップロードした後、Mapboxでは様々な「Visualization type」を選択できます。例えば、人口密度に応じて色の濃さを変える、または人口の多い地域を高いバーで表現するなどが可能です。データに含まれる年度や種類を選んだり、色や高さなどを調整して、目的に合った視覚的表現を試みてください。
まとめ
Mapboxを利用することで、複雑な人口データを直感的かつ美しく可視化することが可能です。このプロセスを通じて、データをより深く理解し、他者に伝える際の有力なツールとすることができます。