Skip to content

Kanahiro/jismesh-raster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jismesh-raster

日本の標準地域メッシュで集計されたデータからメッシュのラスターデータを作るスクリプト

what is this

  • 標準地域メッシュは、経緯度を一定のルールで均等に分割して得られるメッシュである
  • メッシュの形状自体に意味はなく、紐付けられる集計値が重要であり、ベクターデータよりラスターデータが適している
  • 本スクリプトでは、1 メッシュに 1 ピクセルを割り当て、同時に適切なワールドファイルを出力する

対応メッシュ

下記に定義されるメッシュに対応しています。 https://www.meti.go.jp/statistics/tyo/kougyo/mesh/2003/kaisetsu/pdf/gaiyo1.pdf

標準地域メッシュ

名称 メッシュコード
1 次メッシュ(80km メッシュ) 4 桁
2 次メッシュ(10km メッシュ) 6 桁
3 次メッシュ(基準地域メッシュ・1km メッシュ) 8 桁

分割地域メッシュ

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

名称 メッシュコード
2 分の 1 地域メッシュ(500m メッシュ) 9 桁
4 分の 1 地域メッシュ(250m メッシュ) 10 桁
8 分の 1 地域メッシュ(125m メッシュ) 11 桁

統合地域メッシュ

3 次メッシュを 2 分割・5 分割して得られるメッシュ

名称 メッシュコード
5 倍地域メッシュ(5km メッシュ) 7 桁
2 倍地域メッシュ(2km メッシュ) 9 桁

出力データと仕様

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

コマンド

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

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

インストール

pip install jismesh-raster

使い方

以下の形式の 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