9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Teradata Vantage™ - 地理空間データ型 [リリース番号:17.20 リリース日:2022年6月]の翻訳です。

4Dアナリティクス シリーズのコンテンツです。

主なユースケース

GeoSpatialユースケース一覧.png

ST_Geometryデータ型

データベース内の幾何学図形を作成および操作するためのST_Geometryデータ型を提供しています。ST_Geometryは、ユーザー定義型(UDT)として実装されます。Vantage内では、ST_Geometryをインスタンス化できる型にしています。

タイプ 説明
ST_Point(点) 0次元のジオメトリ。2次元座標空間の1点を表わします。
ST_LineString(線分) 1次元ジオメトリ。通常は、2点間の直線補間で使用する点列として格納されます。
ST_Polygon(多角形) 2次元ジオメトリ。1つの外部境界と0以上の内部境界で構成されます。各内部境界では、穴を定義します。
ST_GeomCollection(複合ジオメトリ) ST_Geometry値の0個以上の集合です。
ST_MultiPoint(点の集合) 0次元ジオメトリの集合です。この集合の構成要素はST_Pointの値に制限されます。
ST_MultiLineString(線分の集合) 1次元ジオメトリの集合です。この集合の構成要素はST_LineStringの値に制限されます。
ST_MultiPolygon(多角形の集合) 2次元ジオメトリの集合です。この集合の構成要素はST_Polygonの値に制限されます。
GeoSequence(線分+タイムスタンプ) ST_LineStringの拡張です。地理空間情報に加えて、タイムスタンプなどの追跡情報も格納できます。GeoSequenceは、TeradataがSQL/MM Spatialに加えた拡張です。

地理空間データ形式

データ形式 説明
既知のテキスト形式 ベクトル幾何学を表現するためのマークアップ言語です。
既知のバイナリ形式 地理的および幾何学的データをバイナリで表すための形式です。
既知のテキスト形式の拡張(ESRI互換) EWKT形式は既存のWKT形式の先頭にSRID識別子が追加されます。
既知のバイナリ形式の拡張(ESRI互換) EWKT形式は既存のWKB形式の先頭にSRID識別子が追加されます。

地理空間分析における関数及びメソッド一覧

GeoSpacialメソッド一覧.png

GeoImport & GeoExport

TDGeoImportとTDGeoExportは、地理空間データとESRI、MapInfo、およびTIGER/Lineデータ形式と互換性のある形式を相互変換するためにTeradataが提供しているユーティリティです。

Teradata GeoImport ユーティリティ

Teradata GeoImport は、ESRI、MapInfo、および TIGER/Line データ ソースからレイヤーを変換し、データをデータベースにロードします。
Teradata GeoImport ユーティリティ.png

対応形式
  • TIGER/Line files
  • ESRI Shapefiles
  • MapInfo

Teradata GeoExport ユーティリティ

Teradata GeoExport は、Teradata Geospatial データを、ESRI、MapInfo、および TIGER/Line データ フォーマットと互換性のあるフォーマットに変換します。
Teradata GeoExport ユーティリティ.png

対応形式
  • TIGER/Line files
  • ESRI Shapefiles
  • KML
  • MapInfo

地理空間データの表示

ツール 説明
MapServer MapServerとTeradataとのインターフェースには、MSTDPlugin.dllというプラグインDLLを使用します。MapServerプラグインは、Teradata Community Developer Zoneから入手できます。
Google Maps Google Maps/Google Earth APIを使用して連携します。Google Maps/Google Earth APIの利用にはライセンスが必要です。詳細については、Google Maps/Google Earth APIs Terms of Serviceを参照してください
テーブル作成
create.sql
CREATE TABLE sample_cities(     
   skey INTEGER,     
   cityName VARCHAR(40),      
  cityShape ST_GEOMETRY);   /* データ型としてST_GEOMETRYを使用 */

CREATE TABLE sample_streets(      
  skey INTEGER,      
  streetName VARCHAR(40),      
  streetShape ST_GEOMETRY); /* データ型としてST_GEOMETRYを使用 */
データの挿入
Insert.sql
/* 都市のロケーションの範囲情報をポリゴンで入力 */
INSERT INTO sample_cities    VALUES(0, 'Oceanville', 'POLYGON((1 1, 1 3, 6 3, 6 0, 1 1))');   
INSERT INTO sample_cities    VALUES(1, 'Seaside', 'POLYGON((10 10, 10 20, 20 20, 20 15, 10 10))’); 

/* 道路の線分情報を入力 */
INSERT INTO sample_streets   VALUES(1, 'Main Street', 'LINESTRING(2 2, 3 2, 4 1)');    
INSERT INTO sample_streets   VALUES(1, 'Coast Blvd', 'LINESTRING(12 12, 18 17));
メソッドの利用
Method.sql
/* 道路が都市内にあるかを確認する。 */
SELECT streetName, cityName  
 FROM sample_cities, sample_streets   
WHERE streetShape.ST_Within(cityShape) = 1   /* ST_Withinメソッドで同フォが年に含まれる(1)かを確認 */
ORDER BY cityName;

各関数の使い方については、段階的にTeradata Vantageドキュメンテーションに対するリンクを追加していきますので、Teradata Vantageドキュメンテーションのマニュアルを参照して、利用方法の確認をお願いします。

最小外接のメソッド

メソッド 説明
MBR 2Dジオメトリを囲める最小サイズの矩形を定義します。
MBB 3Dジオメトリを囲める最小サイズのボックスを定義します。
Intersects MBRまたはMBB値が同じデータ型の別の値と空間的に交差するかどうかをテストします。
XMin MBRまたはMBBの最小x座標値(FLOAT値)を返します。
MBRの場合、これは左下隅のx座標になります。
MBBの場合、これは左下隅前部のx座標になります。
YMin MBRまたはMBBの最小y座標値(FLOAT値)を返します。
MBRの場合、これは左下隅のy座標になります。
MBBの場合、これは左下隅前部のy座標になります。
ZMin MBBの最小z座標値(FLOAT値)を返します。これは、左下隅前部のz座標です。
XMax MBRまたはMBBの最大x座標値(FLOAT値)を返します。MBRの場合、これは右上隅のx座標になります。MBBの場合、これは右上隅後部のx座標になります。
YMax MBRまたはMBBの最大y座標値(FLOAT値)を返します。
MBRの場合、これは右上隅のy座標になります。
MBBの場合、これは右上隅後部のy座標になります。
ZMax MBBの最大z座標値(FLOAT値)を返します。これは、右上隅後部のz座標です。

ジオメトリー・メソッド

メソッド 説明
ST_MBR ST_Geometry値のMBR (最小外接矩形)を返します。
MBB 3D ST_Geometryを囲む3D最小外接ボックス(MBB)を返します。
Make_2D 3D ST_Geometray値を2D ST_Geometry値に変換し、オプションとして、2Dジオメトリが適切に形成されていることを検証します。このメソッドは、3Dジオメトリからz座標を削除します。
SimplifyPreserveTopology 指定された距離の許容範囲内に入る点を削除して2Dジオメトリを簡易化します。
ST_3DDistance 2つのST_Geometry値の間の距離を返します。ST_3DDistanceでは、自身に渡されたジオメトリにz座標値がある場合、z座標が考慮されます。
ST_AsBinary ST_Geometry値のWKB (Well-Known Binary)表現を返します。
ST_AsText ST_Geometry値のWKT (Well-Known Text)表現を返します。
ST_AsBoundary ST_Geometry値の境界を返します。
ST_Buffer ST_Geometry値からの距離が指定の距離以下であるすべての点を返します。
ST_Centroid ST_PolygonまたはST_MultiPolygon値の数学的重心を返します。
ST_Contains ST_Geometry値が空間的に他のST_Geometry値を含むかどうかを確認します。
ST_ConvexHull ST_Geometry値の凸包を返します。
ST_CoordDim ジオメトリの座標次元を返します。
ST_Crosses ST_Geometry値が空間的に他のST_Geometry値を横断しているかどうか確認します。
ST_Difference 2つのST_Geometry値の点集合の差集合を表現するST_Geometry値を返します。
ST_Dimension ST_Geometryタイプの次元を返します。
ST_Disjoint ST_Geometry値が空間的に他のST_Geometry値と分離しているかどうかを確認します。
ST_Distance 2つのST_Geometry値の間の距離を返します。
ST_Envelope ST_Geometry値の外接矩形を返します。
ST_Equals ST_Geometry値が空間的に他のST_Geometry値と等しいかどうかを確認します。
ST_GeometryType ST_Geometry値のST_Geometryタイプを返します。
ST_Intersection 2つのST_Geometry値の点集合の積集合を表現する値のST_Geometryタイプを返します。
ST_Is3D ST_Geometry値にz座標値があるかどうかをテストします。
ST_IsEmpty ST_Geometry値が空集合と合致するかどうかを確認します。
ST_IsSimple ST_Geometry値に、自己交差による接触点などの幾何学的特異点がないことを確認します。
ST_IsValid ST_Geometry値が、完全に形式化されていることを確認します。
ST_MaxX ST_Geometry値の最大x座標を返します。
ST_MaxY ST_Geometry値の最大y座標を返します。
ST_MaxZ ST_Geometry値の最大z座標を返します。
ST_MinX ST_Geometry値の最小x座標を返します。
ST_MinY ST_Geometry値の最小y座標を返します。
ST_MinZ ST_Geometry値の最小z座標を返します。
ST_Overlaps ST_Geometry値が空間的に他のST_Geometry値と重なるかどうかを確認します。
ST_Relate ST_Geometry値が空間的に他のST_Geometry値と関連するかどうかを確認します。
ST_SRID ST_Geometry値の空間参照系の識別子を取得および設定します。
ST_SymDifference 2つのST_Geometry値の点集合の対称差を表現するST_Geometry値を返します。
ST_Touches ST_Geometry値が他のST_Geometry値と空間的に接触しているかどうかを確認します。
ST_Transform 指定の空間参照系に変換したST_Geometry値を返します。
ST_Union 2つのST_Geometry値の点集合の和集合を表現するST_Geometry値を返します。
ST_Within ST_Geometry値が他のST_Geometry値に空間的に含まれるかどうかを確認します。
ST_WKBToSQL 指定したST_Geometry値を返します。
ST_WKTToSQL 指定したST_Geometry値を返します。

ポイント・メソッド

メソッド 説明
ST_SpheroidalBufferMBR 点から指定された距離内にあるすべての点の緯度と経度の最大値と最小値を表わすMBRを返します。地球は球体としてモデル化されます。
ST_SphericalDistance 半正矢関数(Haversine Formula)を使用して地球上の2つの球面座標間の球面距離を返します。
ST_X ST_Point値のX座標を取得および設定します。
ST_Y ST_Point値のY座標を取得および設定します。
ST_Z ST_Point値のz座標を取得および設定します。

線分メソッド

メソッド 説明
ST_3DIsClosed z座標を計算に入れて、3D LineStringまたは3D MultiLineStringが閉じているかどうかをテストします。
ST_3DLength z座標を計算に入れて、3D LineStringまたはMultiLineStringの長さを返します。
ST_EndPoint ST_LineStringまたはGeoSequence値の終点を返します。
ST_IsClosed ST_LineString、GeoSequenceまたはST_MultiLineString値を表現するST_Geometryタイプが、閉じているかどうか確認します。
ST_IsRing ST_LineStringまたはGeoSequence値を表現するST_Geometryタイプが環になっているかどうかを確認します。
ST_Length ST_LineString、GeoSequenceまたはST_MultiLineString値を表現するST_Geometryタイプの測定長を返します。
ST_Line_Interpolate_Point ST_LineStringまたはGeoSequence値を表現するST_Geometryタイプ上で、指定された距離の比率で直線を補間する点データを返します。
ST_NumPoints このメソッドは、ST_LineStringまたはGeoSequence値を表現するST_Geometryタイプに含まれる点データの数を返します。
ST_PointN ST_LineStringまたはGeoSequence値を表現しているST_Geometryタイプから指定した点データを返します。
ST_StartPoint ST_LineStringまたはGeoSequence値の始点を返します。

ポリゴン・メソッド

メソッド 説明
ST_Area ST_PolygonまたはST_MultiPolygonの面積測定値を返します。ST_MultiPolygonの場合、コンポーネント ポリゴンの面積測定値の合計を返します。
ST_ExteriorRing ST_Polygon値を表現するST_Geometryタイプの外周を取得および設定します。
ST_InteriorRingN ST_Polygon値を表現するST_Geometryタイプの指定した内周を返します。
ST_NumInteriorRing ST_Polygon値を表現するST_Geometryタイプの内周の数を返します。
ST_Perimeter ST_Polygonの境界長、またはST_MultiPolygonのコンポーネント ポリゴンの境界長の合計を返します。
ST_PointOnSurface ST_Polygon、またはST_MultiPolygonのコンポーネント ポリゴンの1つ以上と必ず空間的に交差する点を返します。

複合ジオメトリ・メソッド

メソッド 説明
ST_GeometryN 複合ジオメトリ型(ST_GeomCollection、ST_MultiPoint、ST_MultiLineString、またはST_MultiPolygon)の1つのコンポーネント メンバーのジオメトリを返します。返される要素は、集合の位置で指定されます。
ST_NumGeometries 複合ジオメトリ型(ST_GeomCollection、ST_MultiPoint、ST_MultiLineString、またはST_MultiPolygon)を構成する別個のジオメトリの数を返します。

ジオ・シークエンス・メソッド

メソッド 説明
Clip 2つのタイムスタンプ入力引数間にある点データのサブセットと、それに関連するデータを格納するGeoSequence値を返します。
GetFinalT GeoSequenceの最後の点のTimeStamp値を返します。
GetInitT GeoSequenceの最初の点のTimeStamp値を返します。
GetUserFld GeoSequenceタイプのfldIndexで指定した点データのindexで指定したユーザー フィールドを返します。
GetUserFldCount GeoSequenceの各点に関連付けられたユーザー フィールドの数を返します。
HeadingN GeoSequenceの指定した点の見出しを返します。
LinkID GeoSequence内で指定した点のリンクIDを取得および設定します。

空間のフィルタ処理操作メソッド

メソッド 説明
Intersects_MBB 3Dジオメトリが指定のMBBと空間的な共有部分を持つかどうかをテストします。
MBB_Filter 2つの3DジオメトリのMBBに空間的な共有部分があるかどうかをテストします。
MBR_Filter 2つの2DジオメトリのMBRに空間的な共有部分があるかどうかをテストします。
Within_MBB 指定のMBBの境界内に3Dジオメトリが空間的に含まれているかどうかをテストします。

地理空間システム関数

メソッド 説明
DataSize 次のTeradata変数の最大長の複合データ型のいずれかについて、バイト単位でデータ長を返します。(DATASET/JSON/ST_Geometry/XML)
FROM_MGRS Military Grid Reference System (MGRS)の座標を、ST_GEOMETRY点オブジェクトに変換します。
GeomFromGeoJSON GeoJSON標準に準拠するJSON文書をST_Geometryオブジェクトに変換します。
GeoJSONFromGeom ST_Geometryオブジェクトを、GeoJSON標準に準拠しているJSON文書に変換します。
GeoSequenceFromRows 各点のデータを行に格納しているテーブルを取り込み、GeoSequenceオブジェクトを返すテーブル関数です。
GeoSequenceToRows ST_Geometryタイプで表現されたGeoSequence入力引数を受け取り、各行がGeoSequenceオブジェクトに含まれる点になる表行を返す表関数です。出力行のサイズは固定され、最大10個のユーザー フィールドが許容されます。
PolygonSplit PolygonSplit
TO_MGRS ST_GEOMETRY点オブジェクトを、Military Grid Reference System (MGRS)の座標に変換します。

地理空間UDF

メソッド 説明
SphericalDistance 半正矢関数(Haversine Formula)を使用して地球上の2つの球面座標間の球面距離をメートル単位で返します。
SpheroidalDistance 2点の球面座標間の距離をメートル単位で返します。
ST_GeomFromText 指定したST_Geometry値を返すユーザー定義関数です。
ST_GeomFromWKB 指定したST_Geometry値を返すユーザー定義関数です。

地理空間のテーブル演算子

メソッド 説明
AggGeom ST_Geometryオブジェクトのグループの合併または共通部分を返します。
GeoMetryToRows ST_Geometryオブジェクトを取り、ジオメトリ オブジェクトの点ごとに出力行を生成します。
PolygonSplit ST_Geometryポリゴン タイプを含んだ表を許可し、該当するポリゴンを小さいサブポリゴンのセット(各サブポリゴンの頂点は元のポリゴンより少ない)に再帰的に処理する表演算子。

おわりに

警告
この本書はTeradata Vantageドキュメンテーションよりトピックに必要な情報を抜粋したものです。掲載内容の正確性・完全性・信頼性・最新性を保証するものではございません。正確な内容については、原本をご参照下さい。
また、修正が必要な箇所や、ご要望についてはコメントをよろしくお願いします。

Teradata Vantageへのお問合せ

Teradata Vantage へのお問合せ

9
1
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
9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?