SpatialId.shape package

空間IDを任意形状で操作するパッケージ。

SpatialId.shape.cylinders module

Requirements: Python 3.9+.
円柱の空間ID取得モジュール
SpatialId.shape.cylinders.get_spatial_ids_on_cylinders(center, radius, h_zoom, v_zoom, crs=4326, is_capsule=False)
円柱を複数つなげた経路が通る空間IDを取得する。
円柱間の接続面は球状とする。
ドローンの経路や地中埋設配管が通る経路を空間IDで表現する際に使用する。
パラメータ
  • center (list[SpatialId.common.object.point.Point]) -- 円柱の中心の接続点。Pointを複数指定するリスト。 2つ目の接続点は1つ目の円柱の終点となるが、2つ目の円柱の始点にもなる。

  • radius (float) -- 円柱の半径(単位:m)

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

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

  • crs (int) -- 座標参照系

  • is_capsule (bool) -- 始点、終点が球状であるかを示す。True: カプセル / False: 円柱

戻り値

円柱を複数つなげた経路が通る空間IDのリスト

戻り値の型

list[str]

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

  • SpatialIdError -- 座標の値が不正の場合、もしくは円柱の半径が0以下の場合、エラー

  • SpatialIdError -- 入力されたEPSGコードが存在しない場合、エラー

  • SpatialIdError -- 入力されたEPSGコードが地理座標系ではない場合、エラー

注意

経度180度をまたがる点をまたがる円柱は空間ID化できない。

SpatialId.shape.point module

Requirements: Python 3.9+.
空間ID取得モジュール。
入力された地理座標から空間IDを出力する。
空間IDからその空間IDが示す頂点の座標、もしくは中心点の座標を地理座標、または、投影座標で出力する。
ユーザから入力された座標参照系をライブラリ内で空間座標系(EPSG4326)の座標に変換をし各操作をする。
CRSの指定はEPSGコードによって行う。
CRSとEPSGコードの一例は下記。

CRS(地理座標系)

EPEGコード

WGS84(GPS)

4326

日本測地系(2011)

6668

日本測地系(2011) + (高さ)

6697

日本測地系(2000)

4612

日本測地系(1892)

5132

CRS(投影座標系)

EPEGコード

Webメルカトル

3857

平面直角座標系

6669〜87

SpatialId.shape.point.get_spatial_ids_on_points(point_list, h_zoom, v_zoom, crs=4326)
地理座標オブジェクトのリストから空間IDのリストを取得する。
パラメータ
  • point_list (list[object]) -- 地理座標が格納されたオブジェクトのリスト

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

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

  • crs (int) -- ユーザ指定のCRSのEPSGコード(未指定の場合はWGS84のEPSGコード(4326)が割り当てられる)

例外
  • SpatialIdError -- pyprojを用いた変換時にInfまたはNaNが発生した場合にエラー

  • StatialIdError -- 存在しないEPSGコードが入力された場合、エラー

戻り値

空間IDのリスト

戻り値の型

list[str]

SpatialId.shape.point.f_get_spatial_ids_on_points(point_list, zoom, crs=4326)
地理座標オブジェクトのリストから空間IDのリストを取得する。
f_"がついてないAPIとの違いは以下:
入力の空間ID精度レベルを水平・垂直方向共に統一
出力の空間IDの並びは仕様通りの記載。
z/f/x/y :z{ズームレベル}/f{高さの位置}/x{経度方向の位置}/y{緯度方向の位置}
パラメータ
  • point_list (list[object]) -- 地理座標が格納されたオブジェクトのリスト

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

  • crs (int) -- ユーザ指定のCRSのEPSGコード(未指定の場合はWGS84のEPSGコード(4326)が割り当てられる)

例外
  • SpatialIdError -- pyprojを用いた変換時にInfまたはNaNが発生した場合にエラー

  • StatialIdError -- 存在しないEPSGコードが入力された場合、エラー

戻り値

空間IDのリスト

戻り値の型

list[str]

SpatialId.shape.point.get_point_on_spatial_id(spatial_id, option, crs=4326)
単一の空間IDからその空間IDの頂点座標、または中心座標を取得する。
頂点の座標は南緯、東経、上空方向は近接する頂点の座標と共有される。
座標は地理座標、または投影座標で返却される。
パラメータ
  • spatial_id (str) -- 空間ID

  • option (Enum) -- 共通クラスから取得したPoint_OptionのEnum

  • crs (int) -- ユーザ指定のCRSのEPSGコード(未指定の場合はWGS84のEPSGコード(4326)が割り当てられる)

例外
  • StatialIdError -- pyprojを用いた変換時にInfまたはNaNが発生した場合にエラー

  • StatialIdError -- 存在しないEPSGコードが入力された場合、エラー

  • StatialIdError -- 指定外のoptionを指定した場合にエラー

戻り値

空間IDの各頂点の座標が格納されたオブジェクトのリスト、または空間IDの中心点の座標

戻り値の型

list[object]

SpatialId.shape.point.f_get_point_on_spatial_id(spatial_id, option, crs=4326)
単一の空間IDからその空間IDの頂点座標、または中心座標を取得する。
頂点の座標は南緯、東経、上空方向は近接する頂点の座標と共有される。
座標は地理座標、または投影座標で返却される。
f_"がついてないAPIとの違いは以下:
入出力の空間IDの並びは仕様通りの記載。
z/f/x/y :z{ズームレベル}/f{高さの位置}/x{経度方向の位置}/y{緯度方向の位置}
パラメータ
  • spatial_id (str) -- 空間ID

  • option (Enum) -- 共通クラスから取得したPoint_OptionのEnum

  • crs (int) -- ユーザ指定のCRSのEPSGコード(未指定の場合はWGS84のEPSGコード(4326)が割り当てられる)

例外
  • StatialIdError -- pyprojを用いた変換時にInfまたはNaNが発生した場合にエラー

  • StatialIdError -- 存在しないEPSGコードが入力された場合、エラー

  • StatialIdError -- 指定外のoptionを指定した場合にエラー

戻り値

空間IDの各頂点の座標が格納されたオブジェクトのリスト、または空間IDの中心点の座標

戻り値の型

list[object]

SpatialId.shape.point.convert_projected_point_list_to_point_list(projected_point_list, projected_crs, geographic_crs=4326)

ユーザ指定の投影座標系のリストを地理座標のリストに変換する。

パラメータ
  • projected_point_list (list[object]) -- 投影座標のデータクラスオブジェクトのリスト

  • projected_crs (int) -- 入力の投影座標のCRSのEPSGコード

  • geographic_crs (int) -- 出力の地理座標のCRSのEPSGコード。指定がない場合はWGS84を使用する。

例外
  • SpatialIdError -- 入力されたEPSGコードが存在しない場合、エラー

  • SpatialIdError -- 入力されたEPSGコードが投影座標ではない場合、エラー

戻り値

地理座標のデータクラスオブジェクトのリストを返却する。

戻り値の型

list[object]

SpatialId.shape.point.convert_point_list_to_projected_point_list(point_list, projected_crs, geographic_crs=4326)

地理座標系のリストをユーザ指定の投影座標のリストに変換する。

パラメータ
  • point_list (list[object]) -- 地理座標のデータクラスオブジェクトのリスト

  • projected_crs (int) -- 出力の投影座標のCRSのEPSGコード

  • geographic_crs (int) -- 入力の地理座標のCRSのEPSGコード。指定がない場合はWGS84を使用する。

例外
  • SpatialIdError -- 入力されたEPSGコードが存在しない場合、エラー

  • SpatialIdError -- 出力のEPSGコードが投影座標ではない場合、エラー

戻り値

投影座標のデータクラスオブジェクトのリストを返却する。

戻り値の型

list[object]

SpatialId.shape.point.check_zoom(zoom)

入力の精度が0-35の範囲内か判定をする。

パラメータ

zoom (int) -- 入力された精度

戻り値

0-35の範囲内の場合True、それ以外の場合False

戻り値の型

bool

SpatialId.shape.polygons module

Requirements: Python 3.9+.
ポリゴンの空間ID取得モジュール
SpatialId.shape.polygons.get_spatial_ids_on_polygons(barrier_triangles, space_triangles, h_zoom, v_zoom, crs=4326, needs_closed_checking=True)
三角形ポリゴンの集合で表されるモデルが含まれる空間IDを取得する。
三角形ポリゴンが接しない内部の空間IDも合わせて取得する。
三角形ポリゴンに接しない内部のボクセルの内外判定は、Z方向に行う。
三角形ポリゴンの集合で表されるモデルが閉塞していない場合でも、内外判定は行われるが、
Z軸上方向に三角形ポリゴンがない場合は外部として判定する。
外部として判定された箇所の空間IDは返却される空間IDには含まれない。
内部に空間IDとして取得しない空間がある場合は、
除外する三角形ポリゴンの集合で表されるモデルとして定義する。
三角形ポリゴンの集合で表されるモデルの空間IDを取得後、
除外する三角形ポリゴンの集合で表されるモデルの空間IDを除外する。
パラメータ
  • barrier_triangles (list[SpatialId.common.object.point.Triangle]) -- 空間IDを取得する三角形ポリゴンの集合で 表されるモデル。Triangleオブジェクトを組み合わせ、複数指定する。

  • space_triangles (list[SpatialId.common.object.point.Triangle]) -- 除外する三角形ポリゴンの集合で表されるモデル。 Triangleオブジェクトを組み合わせ、複数指定する。

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

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

  • crs (int) -- 座標参照系

  • needs_closed_checking (bool) -- 閉塞チェックフラグ。Trueの場合はチェックを行う。

戻り値

三角形ポリゴンの集合で表されるモデルが含まれる空間IDのリスト

戻り値の型

list[string]

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

  • SpatialIdError -- 三角ポリゴンの3点が同一直線上に存在する場合

  • SpatialIdError -- 三角形ポリゴンのモデルが閉塞していない場合

  • SpatialIdError -- 入力されたEPSGコードが存在しない場合、エラー

  • SpatialIdError -- 入力されたEPSGコードが地理座標系ではない場合、エラー

注意

経度180度をまたがる辺を持つポリゴンは空間ID化できない。

SpatialId.shape.polygons.f_get_spatial_ids_on_polygons(barrier_triangles, space_triangles, zoom, crs=4326, needs_closed_checking=True)
三角形ポリゴンの集合で表されるモデルが含まれる空間IDを取得する。
三角形ポリゴンが接しない内部の空間IDも合わせて取得する。
三角形ポリゴンに接しない内部のボクセルの内外判定は、Z方向に行う。
三角形ポリゴンの集合で表されるモデルが閉塞していない場合でも、内外判定は行われるが、
Z軸上方向に三角形ポリゴンがない場合は外部として判定する。
外部として判定された箇所の空間IDは返却される空間IDには含まれない。
内部に空間IDとして取得しない空間がある場合は、
除外する三角形ポリゴンの集合で表されるモデルとして定義する。
三角形ポリゴンの集合で表されるモデルの空間IDを取得後、
除外する三角形ポリゴンの集合で表されるモデルの空間IDを除外する。
f_"がついてないAPIとの違いは以下:
入力の空間ID精度レベルを水平・垂直方向共に統一
出力の空間IDの並びは仕様通りの記載。
z/f/x/y :z{ズームレベル}/f{高さの位置}/x{経度方向の位置}/y{緯度方向の位置}
パラメータ
  • barrier_triangles (list[SpatialId.common.object.point.Triangle]) -- 空間IDを取得する三角形ポリゴンの集合で 表されるモデル。Triangleオブジェクトを組み合わせ、複数指定する。

  • space_triangles (list[SpatialId.common.object.point.Triangle]) -- 除外する三角形ポリゴンの集合で表されるモデル。 Triangleオブジェクトを組み合わせ、複数指定する。

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

  • crs (int) -- 座標参照系

  • needs_closed_checking (bool) -- 閉塞チェックフラグ。Trueの場合はチェックを行う。

戻り値

三角形ポリゴンの集合で表されるモデルが含まれる空間IDのリスト

戻り値の型

list[string]

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

  • SpatialIdError -- 三角ポリゴンの3点が同一直線上に存在する場合

  • SpatialIdError -- 三角形ポリゴンのモデルが閉塞していない場合

  • SpatialIdError -- 入力されたEPSGコードが存在しない場合、エラー

  • SpatialIdError -- 入力されたEPSGコードが地理座標系ではない場合、エラー

注意

経度180度をまたがる辺を持つポリゴンは空間ID化できない。