SpatialId.io package

ファイルからの入力を操作するパッケージ。

SpatialId.io.shapefile module

シェイプファイル(.shp)の読み込みモジュール。

Requirements: Python 3.9+.
シェイプファイル(.shp)の読み込みモジュール
SpatialId.io.shapefile.read_shapefile(filepath, encoding, h_zoom, v_zoom, crs=4326, needs_closed_checking=True)
ファイルパスを指定してShapefileを読み込み、空間ID情報に変換する。
Shapefileから1レコード単位で情報を取得するジェネレータを返却する。

Shapefileには格納されている座標情報の形状を示すShape種別という情報があり、
本モジュールにおいては以下のShape種別の空間ID変換に対応する。

Shape種別

概要

MultiPatch

複数パッチ。複数の多角形を組み合わせて立体を表現する。

MultiPatchを構成する部品のうち以下について対応する。

  • TRIANGLE_STRIPE:接続された一連の三角形。

  • TRIANGLE_FAN: 扇状の連結三角形。

パラメータfilepathに指定するパスは、.shpファイル、.dbfファイル、 Shapefileのベースネーム(/path/to/example.shpの場合/path/to/example)、 Shapefile群を含んだzipファイルのパスを指定可能である。

返却されるフィールド定義情報は、ペイロードの各要素のメタ情報を格納している。 フィールド定義情報の要素数はペイロードの要素数と一致しており、 フィールド定義情報とペイロードで同じインデックスの情報が対応している。

フィールド定義情報の各要素は4つの要素の配列で、 各要素に以下の情報が格納される。

インデックス

内容

0

フィールド名

1

フィールド種別

  • C:文字列

  • N: 数値

  • F: 浮動小数点数

  • L: 真偽値

  • D: 日付

  • M: メモ

2

フィールド長

3

フィールド種別が数値の場合の小数部の桁数

ジェネレータから返却される値の例を以下に示す。

# 空間ID
["XXXXXXXX"]
# フィールド定義情報
[
    ["building_id", "N", 10, 0],
    ["building_name", "C", 20, 0]
]
# ペイロード
[100001, "ABCビル"]
パラメータ
  • filepath (str) -- Shapefileのファイルパス

  • encoding (str) -- Shapefileの文字エンコーディング

  • h_zoom (int) -- 空間IDの水平方向精度レベル

  • v_zoom (int) -- 空間IDの垂直方向精度レベル

  • crs (int) -- Shapefileに格納されている座標の参照座標系。デフォルト値:4326(WGS84)

  • needs_closed_checking (bool) -- ポリゴンの空間ID取得時の閉塞チェックフラグ。Trueの場合はチェックを行う。

戻り値

  • 空間IDの配列、フィールド定義情報、ペイロードを返すジェネレータ

戻り値の型

collections.abc.Generator

例外
  • SpatialIdError -- 入力チェック結果が不正の場合のエラー

  • SpatialIdError -- 座標系の変換に失敗した場合

  • SpatialIdError -- Shapefileの読み込みに失敗した場合

  • SpatialIdError -- Shapefileにサポート対象外のShape種別が指定されていた場合

  • SpatialIdError -- ShapefileにおけるPointsとZの要素数が一致しない場合

  • SpatialIdError -- MultipatchのpartsとpartTypes要素数が異なっていた場合

  • SpatialIdError -- ShapefileのShape種別がMultiPatchであり、 サポート対象外のpart種別が指定されていた場合

  • SpatialIdError -- Shapefileの解析時に対象partTypeに必要な点の数が不足していた場合

  • SpatialIdError -- ShapefileのpartType要素数が0の場合

  • SpatialIdError -- Shapefileのparts要素数が0の場合

  • SpatialIdError -- ポリゴンの空間ID取得時にエラーが発生した場合

SpatialId.io.shapefile.f_read_shapefile(filepath, encoding, zoom, crs=4326, needs_closed_checking=True)
ファイルパスを指定してShapefileを読み込み、空間ID情報に変換する。
Shapefileから1レコード単位で情報を取得するジェネレータを返却する。

Shapefileには格納されている座標情報の形状を示すShape種別という情報があり、
本モジュールにおいては以下のShape種別の空間ID変換に対応する。

Shape種別

概要

MultiPatch

複数パッチ。複数の多角形を組み合わせて立体を表現する。

MultiPatchを構成する部品のうち以下について対応する。

  • TRIANGLE_STRIPE:接続された一連の三角形。

  • TRIANGLE_FAN: 扇状の連結三角形。

パラメータfilepathに指定するパスは、.shpファイル、.dbfファイル、 Shapefileのベースネーム(/path/to/example.shpの場合/path/to/example)、 Shapefile群を含んだzipファイルのパスを指定可能である。

返却されるフィールド定義情報は、ペイロードの各要素のメタ情報を格納している。 フィールド定義情報の要素数はペイロードの要素数と一致しており、 フィールド定義情報とペイロードで同じインデックスの情報が対応している。

フィールド定義情報の各要素は4つの要素の配列で、 各要素に以下の情報が格納される。

インデックス

内容

0

フィールド名

1

フィールド種別

  • C:文字列

  • N: 数値

  • F: 浮動小数点数

  • L: 真偽値

  • D: 日付

  • M: メモ

2

フィールド長

3

フィールド種別が数値の場合の小数部の桁数

f_"がついてないAPIとの違いは以下:
入力の空間ID精度レベルを水平・垂直方向共に統一
出力の空間IDの並びは仕様通りの記載。
z/f/x/y :z{ズームレベル}/f{高さの位置}/x{経度方向の位置}/y{緯度方向の位置}

ジェネレータから返却される値の例を以下に示す。

# 空間ID
["XXXXXXXX"]
# フィールド定義情報
[
    ["building_id", "N", 10, 0],
    ["building_name", "C", 20, 0]
]
# ペイロード
[100001, "ABCビル"]
パラメータ
  • filepath (str) -- Shapefileのファイルパス

  • encoding (str) -- Shapefileの文字エンコーディング

  • zoom (int) -- 空間IDの精度レベル

  • crs (int) -- Shapefileに格納されている座標の参照座標系。デフォルト値:4326(WGS84)

  • needs_closed_checking (bool) -- ポリゴンの空間ID取得時の閉塞チェックフラグ。Trueの場合はチェックを行う。

戻り値

  • 空間IDの配列、フィールド定義情報、ペイロードを返すジェネレータ

戻り値の型

collections.abc.Generator

例外
  • SpatialIdError -- 入力チェック結果が不正の場合のエラー

  • SpatialIdError -- 座標系の変換に失敗した場合

  • SpatialIdError -- Shapefileの読み込みに失敗した場合

  • SpatialIdError -- Shapefileにサポート対象外のShape種別が指定されていた場合

  • SpatialIdError -- ShapefileにおけるPointsとZの要素数が一致しない場合

  • SpatialIdError -- MultipatchのpartsとpartTypes要素数が異なっていた場合

  • SpatialIdError -- ShapefileのShape種別がMultiPatchであり、 サポート対象外のpart種別が指定されていた場合

  • SpatialIdError -- Shapefileの解析時に対象partTypeに必要な点の数が不足していた場合

  • SpatialIdError -- ShapefileのpartType要素数が0の場合

  • SpatialIdError -- Shapefileのparts要素数が0の場合

  • SpatialIdError -- ポリゴンの空間ID取得時にエラーが発生した場合

SpatialId.io.shapefile.read_shapefile_bulk(filepath, encoding, h_zoom, v_zoom, crs=4326, needs_closed_checking=True)
ファイルパスを指定してShapefileを読み込み、空間ID情報に変換する。
Shapefileの情報を一括で取得する。

返却される空間IDの配列とペイロードの配列の要素数は一致し、 同じインデックスの情報が同じレコードの情報である。

返却される値の例を以下に示す。

# 空間ID配列
[
    ["XXXXX"], # レコード#0の空間ID
    ["XXXXX", "XXXXY"], # レコード#1の空間ID
    ...
    ["XXXXZ"] # レコード#Nの空間ID
]
# フィールド定義情報
[
    ["building_id", "N", 10, 0],
    ["building_name", "C", 20, 0]
]
# ペイロード配列
[
    [100001, "Aビル"], # レコード#0の情報
    [100002, "Bビル"], # レコード#1の情報
    ...
    [100050, "XXビル"], # レコード#Nの情報
]
パラメータ
  • filepath (str) -- Shapefileのファイルパス

  • encoding (str) -- Shapefileの文字エンコーディング

  • h_zoom (int) -- 空間IDの水平方向精度レベル

  • v_zoom (int) -- 空間IDの垂直方向精度レベル

  • crs (int) -- Shapefileに格納されている座標の参照座標系。デフォルト値:4326(WGS84)

  • needs_closed_checking (bool) -- ポリゴンの空間ID取得時の閉塞チェックフラグ。Trueの場合はチェックを行う。

戻り値

  • 空間IDの配列

  • フィールド定義情報

  • ペイロードの配列

Rtyep

tuple, list, list

例外
  • SpatialIdError -- 入力チェック結果が不正の場合のエラー

  • SpatialIdError -- 座標系の変換に失敗した場合

  • SpatialIdError -- Shapefileの読み込みに失敗した場合

  • SpatialIdError -- Shapefileにサポート対象外のShape種別が指定されていた場合

  • SpatialIdError -- ShapefileにおけるPointsとZの要素数が一致しない場合

  • SpatialIdError -- MultipatchのpartsとpartTypes要素数が異なっていた場合

  • SpatialIdError -- ShapefileのShape種別がMultiPatchであり、 サポート対象外のpart種別が指定されていた場合

  • SpatialIdError -- Shapefileの解析時に対象partTypeに必要な点の数が不足していた場合

  • SpatialIdError -- ShapefileのpartType要素数が0の場合

  • SpatialIdError -- Shapefileのparts要素数が0の場合

  • SpatialIdError -- ポリゴンの空間ID取得時にエラーが発生した場合

戻り値の型

tuple[list[list[str]], list[list[Any]], list[list[Any]]]

SpatialId.io.shapefile.f_read_shapefile_bulk(filepath, encoding, zoom, crs=4326, needs_closed_checking=True)
ファイルパスを指定してShapefileを読み込み、空間ID情報に変換する。
Shapefileの情報を一括で取得する。
f_"がついてないAPIとの違いは以下:
入力の空間ID精度レベルを水平・垂直方向共に統一
出力の空間IDの並びは仕様通りの記載。
z/f/x/y :z{ズームレベル}/f{高さの位置}/x{経度方向の位置}/y{緯度方向の位置}

返却される空間IDの配列とペイロードの配列の要素数は一致し、 同じインデックスの情報が同じレコードの情報である。

返却される値の例を以下に示す。

# 空間ID配列
[
    ["XXXXX"], # レコード#0の空間ID
    ["XXXXX", "XXXXY"], # レコード#1の空間ID
    ...
    ["XXXXZ"] # レコード#Nの空間ID
]
# フィールド定義情報
[
    ["building_id", "N", 10, 0],
    ["building_name", "C", 20, 0]
]
# ペイロード配列
[
    [100001, "Aビル"], # レコード#0の情報
    [100002, "Bビル"], # レコード#1の情報
    ...
    [100050, "XXビル"], # レコード#Nの情報
]
パラメータ
  • filepath (str) -- Shapefileのファイルパス

  • encoding (str) -- Shapefileの文字エンコーディング

  • zoom (int) -- 空間IDの精度レベル

  • crs (int) -- Shapefileに格納されている座標の参照座標系。デフォルト値:4326(WGS84)

  • needs_closed_checking (bool) -- ポリゴンの空間ID取得時の閉塞チェックフラグ。Trueの場合はチェックを行う。

戻り値

  • 空間IDの配列

  • フィールド定義情報

  • ペイロードの配列

Rtyep

tuple, list, list

例外
  • SpatialIdError -- 入力チェック結果が不正の場合のエラー

  • SpatialIdError -- 座標系の変換に失敗した場合

  • SpatialIdError -- Shapefileの読み込みに失敗した場合

  • SpatialIdError -- Shapefileにサポート対象外のShape種別が指定されていた場合

  • SpatialIdError -- ShapefileにおけるPointsとZの要素数が一致しない場合

  • SpatialIdError -- MultipatchのpartsとpartTypes要素数が異なっていた場合

  • SpatialIdError -- ShapefileのShape種別がMultiPatchであり、 サポート対象外のpart種別が指定されていた場合

  • SpatialIdError -- Shapefileの解析時に対象partTypeに必要な点の数が不足していた場合

  • SpatialIdError -- ShapefileのpartType要素数が0の場合

  • SpatialIdError -- Shapefileのparts要素数が0の場合

  • SpatialIdError -- ポリゴンの空間ID取得時にエラーが発生した場合

戻り値の型

tuple[list[list[str]], list[list[Any]], list[list[Any]]]

SpatialId.io.shapefile.read_shapefile_bulk_with_aggregation(filepath, encoding, h_zoom, v_zoom, crs=4326, agg_func=None, needs_closed_checking=True)
ファイルパスを指定してShapefileを読み込み、空間ID情報に変換する。
Shapefileの情報を一括で取得する。
ペイロードについては空間IDをキー、値をペイロード配列の配列とする辞書型として返却する。
集約関数が指定された場合は、空間ID毎のペイロード配列の配列が集約関数に入力され、
集約関数の出力を当該空間IDに対する値とする。

返却される値の例を以下に示す。

# 空間ID配列
[
    ["XXXXX"], # レコード#0の空間ID
    ["XXXXX", "XXXXY"], # レコード#1の空間ID
    ...
    ["XXXXZ"] # レコード#Nの空間ID
]
# フィールド定義情報
[
    ["building_id", "N", 10, 0],
    ["building_name", "C", 20, 0]
]
# ペイロード
{
    "XXXXX": [
        [100001, "Aビル"],
        [100002, "Bビル"]
    ],
    "XXXXY": [
        [100002, "Bビル"]
    ],
    ...
    "XXXXZ": [
        [100002, "Bビル"]
    ]
}
パラメータ
  • filepath (str) -- Shapefileのファイルパス

  • encoding (str) -- Shapefileの文字エンコーディング

  • h_zoom (int) -- 空間IDの水平方向精度レベル

  • v_zoom (int) -- 空間IDの垂直方向精度レベル

  • crs (int) -- Shapefileに格納されている座標の参照座標系。デフォルト値:4326(WGS84)

  • agg_func (Callable) -- 集約関数

  • needs_closed_checking (bool) -- ポリゴンの空間ID取得時の閉塞チェックフラグ。Trueの場合はチェックを行う。

戻り値

  • 空間IDの配列

  • フィールド定義情報

  • ペイロード

戻り値の型

tuple, list, dict

例外
  • SpatialIdError -- 入力チェック結果が不正の場合のエラー

  • SpatialIdError -- 座標系の変換に失敗した場合

  • SpatialIdError -- Shapefileの読み込みに失敗した場合

  • SpatialIdError -- Shapefileにサポート対象外のShape種別が指定されていた場合

  • SpatialIdError -- ShapefileにおけるPointsとZの要素数が一致しない場合

  • SpatialIdError -- MultipatchのpartsとpartTypes要素数が異なっていた場合

  • SpatialIdError -- ShapefileのShape種別がMultiPatchであり、 サポート対象外のpart種別が指定されていた場合

  • SpatialIdError -- Shapefileの解析時に対象partTypeに必要な点の数が不足していた場合

  • SpatialIdError -- ShapefileのpartType要素数が0の場合

  • SpatialIdError -- Shapefileのparts要素数が0の場合

  • SpatialIdError -- 集約関数の実行に失敗した場合

  • SpatialIdError -- ポリゴンの空間ID取得時にエラーが発生した場合

SpatialId.io.shapefile.f_read_shapefile_bulk_with_aggregation(filepath, encoding, zoom, crs=4326, agg_func=None, needs_closed_checking=True)
ファイルパスを指定してShapefileを読み込み、空間ID情報に変換する。
Shapefileの情報を一括で取得する。
ペイロードについては空間IDをキー、値をペイロード配列の配列とする辞書型として返却する。
集約関数が指定された場合は、空間ID毎のペイロード配列の配列が集約関数に入力され、
集約関数の出力を当該空間IDに対する値とする。
f_"がついてないAPIとの違いは以下:
入力の空間ID精度レベルを水平・垂直方向共に統一
出力の空間IDの並びは仕様通りの記載。
z/f/x/y :z{ズームレベル}/f{高さの位置}/x{経度方向の位置}/y{緯度方向の位置}

返却される値の例を以下に示す。

# 空間ID配列
[
    ["XXXXX"], # レコード#0の空間ID
    ["XXXXX", "XXXXY"], # レコード#1の空間ID
    ...
    ["XXXXZ"] # レコード#Nの空間ID
]
# フィールド定義情報
[
    ["building_id", "N", 10, 0],
    ["building_name", "C", 20, 0]
]
# ペイロード
{
    "XXXXX": [
        [100001, "Aビル"],
        [100002, "Bビル"]
    ],
    "XXXXY": [
        [100002, "Bビル"]
    ],
    ...
    "XXXXZ": [
        [100002, "Bビル"]
    ]
}
パラメータ
  • filepath (str) -- Shapefileのファイルパス

  • encoding (str) -- Shapefileの文字エンコーディング

  • zoom (int) -- 空間IDの精度レベル

  • crs (int) -- Shapefileに格納されている座標の参照座標系。デフォルト値:4326(WGS84)

  • agg_func (Callable) -- 集約関数

  • needs_closed_checking (bool) -- ポリゴンの空間ID取得時の閉塞チェックフラグ。Trueの場合はチェックを行う。

戻り値

  • 空間IDの配列

  • フィールド定義情報

  • ペイロード

戻り値の型

tuple, list, dict

例外
  • SpatialIdError -- 入力チェック結果が不正の場合のエラー

  • SpatialIdError -- 座標系の変換に失敗した場合

  • SpatialIdError -- Shapefileの読み込みに失敗した場合

  • SpatialIdError -- Shapefileにサポート対象外のShape種別が指定されていた場合

  • SpatialIdError -- ShapefileにおけるPointsとZの要素数が一致しない場合

  • SpatialIdError -- MultipatchのpartsとpartTypes要素数が異なっていた場合

  • SpatialIdError -- ShapefileのShape種別がMultiPatchであり、 サポート対象外のpart種別が指定されていた場合

  • SpatialIdError -- Shapefileの解析時に対象partTypeに必要な点の数が不足していた場合

  • SpatialIdError -- ShapefileのpartType要素数が0の場合

  • SpatialIdError -- Shapefileのparts要素数が0の場合

  • SpatialIdError -- 集約関数の実行に失敗した場合

  • SpatialIdError -- ポリゴンの空間ID取得時にエラーが発生した場合