8
7

More than 3 years have passed since last update.

[jismesh-raster]地域メッシュデータをかんたんに可視化しよう

Last updated at Posted at 2021-08-28

TL;DR

  • 地域メッシュデータのCSVからかんたんに位置情報つきTIFを作れるツールをつくったよ
  • pip install jismesh-rasterでインストールできるよ

サンプル

スクリーンショット 2021-08-28 22.30.39.png
スクリーンショット 2021-08-28 22.31.05.png

はじめに

  • 標準地域メッシュは、経緯度を一定のルールで均等に分割して得られるメッシュです
  • メッシュの形状自体に意味はなく、紐付けられる集計値が重要なので、ベクターデータよりラスターデータが適している(わざわざベクターデータにして頂点の座標を保持する必要はないということです)
  • 本スクリプトでは、1 つメッシュに 1 ピクセルを割り当て、同時に適切な位置情報を付与したワールドファイルを出力します

対応メッシュ

標準地域メッシュおよび分割地域メッシュに対応しています

標準地域メッシュ

メッシュ番号 詳細 メッシュコード
1 80km メッシュ 4 桁
2 10km メッシュ 6 桁
3 1km メッシュ 8 桁

分割地域メッシュ

3 次メッシュを基準し、任意の回数 4 分割して得られるメッシュ

メッシュ番号 詳細 メッシュコード
4 500m メッシュ 9 桁
5 250m メッシュ 10 桁
6 125m メッシュ 11 桁

インストール

pip install jismesh-raster

使い方

コマンド

必須項目:
  csvfile 読み込むCSVファイル
  output  データの保存先絶対パス

optional arguments:
  --meshcol  メッシュコードのカラムを0から始まる番号、デフォルトは0
  --valuecol 値のカラムを0から始まる番号、デフォルトは1
  --method 集計方法、mean, median, min, max, stddev, sum
  --nodata   データがないメッシュにセットする値、デフォルトは-9999.0
  --noheader CSVにヘッダーが無い場合に入力

具体例

以下の形式の CSV を例とする(出典:全国の人流オープンデータ

mesh1kmid,prefcode,citycode,year,month,dayflag,timezone,population
53394519,13,13101,2019,01,0,0,13533
53394519,13,13101,2019,01,0,1,5818
53394519,13,13101,2019,01,2,2,26039
53394528,13,13101,2019,01,0,0,27561
53394528,13,13101,2019,01,1,2,57219
53394528,13,13101,2019,01,2,0,73526
  • 上記 CSV はmeshdata.csv、出力する TIF ファイルをmesh.tifとする
  • メッシュコードのカラムは左端から数えて 1 列目のmesh1kmid、メッシュ画像にしたい値は 8 列目のpopulationである
  • このスクリプトでは 0 をスタートとして数えるので、0列目、7列目と読み替える
  • もし複数行にわたって同一のメッシュコードが存在する場合は、その合計値を求める
  • データが存在しない部分の値は-999999.0とする
jismesh-raster meshdata.csv mesh.tif --meshcol 0 --valuecol 7 --method sum --nodata -999999.0
  • meshcolのデフォルト値は0なので、今回の場合省略出来る
  • nodataのデフォルト値は-9999.0なので、それでもよければ省略出来る
jismesh-raster meshdata.csv mesh.tif --valuecol 7 --method sum
  • CSV の複数行にわたって同一のメッシュコードが存在する場合に methodを指定されていないとエラーとなる

以下のような CSV の場合

53394519,13533
53394519,5818
53394519,26039
53394528,27561
53394528,57219
53394528,73526
  • ヘッダー行が無い場合はnoheaderオプションを指定する
  • valuecolのデフォルト値は1なので、上記の場合省略出来る
jismesh-raster meshdata.csv mesh.tif --method mean --noheader

出力データと仕様

  • .tif ファイル
    • 拡張子は必ずしも.tifではなく、コマンド引数で指定したファイル名となる
    • Float32
    • Single band
    • GeoTiff ではないことに留意(ヘッダーは書き込まれていない)
    • CSV に存在するメッシュが全て含まれる最小の解像度となる
  • .tfw ファイル
    • .tif ファイルと同名で書き出される
    • 経緯度で設定されている(つまり CRS はEPSG:4326
8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7