SpatialId.io package
ファイルからの入力を操作するパッケージ。
SpatialId.io.shapefile module
シェイプファイル(.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取得時にエラーが発生した場合