Name

Topology_Load_Tiger — Tigerデータの定義領域をPostGISトポロジにロードして、Tigerデータをトポロジの空間参照系に投影変換し、トポロジの許容精度にスナップします。

Synopsis

text Topology_Load_Tiger(varchar topo_name, varchar region_type, varchar region_id);

説明

Tigerデータの定義領域をPostGISトポロジにロードします。フェイス、ノード、エッジは対象トポロジの空間参照系に投影変換され、点は対象トポロジの許容精度にスナップされます。生成されたフェイス、ノード、エッジは、元のTigerデータのフェイス、ノード、エッジの識別値を維持するので、将来、データセットをより簡単にTigerデータに一致させることができます。処理の詳細に関する要約を返します。

これはデータの区域改訂に使えますが、ストリートの中心線に沿って新たに形成されるポリゴンと重ならないポリゴンとが必要です。

[Note]

この関数はPostGISトポロジモジュールとTigerデータに依存しています。詳細情報については、Chapter 9, トポロジSection 2.2.3, “コンフィギュレーション”を参照して下さい。対象領域を含むデータを持っていない場合には、トポロジは作られません。トポロジ関数を使ってトポロジが生成されない場合も失敗します。

[Note]

ほとんどのトポロジ評価エラーは許容範囲の問題です。エッジの投影変換の後にポイントが準備できなかったり、エッジからずれる場合にあたります。トポロジ評価に失敗する状況を改善するには、精度を下げます。

必須引数:

  1. topo_name データを納めるPostGISトポロジの名前

  2. region_type 境界種別。現在はplacecountyとだけに対応しています。今後増やす予定です。これは境界を定義するために見るテーブルです。tiger.placetiger.county等があたります。

  3. region_id TIGERではgeoidと呼ばれるものです。テーブルで領域の一意の識別子です。placeではtiger.placeテーブルのplcidfpカラムで、郡ではtiger.countryテーブルのcntyidfpカラムで保持します。

Availability: 2.0.0

例: マサチューセッツ州ボストン市のトポロジ

マサチューセッツ州ボストンのトポロジをマサチューセッツ州フィート平面 (2249)、許容範囲0.25フィートで生成し、ボストンのTigerデータのフェイス、エッジ、ノードをロードします。

SELECT topology.CreateTopology('topo_boston', 2249, 0.25);
createtopology
--------------
   15
-- 60,902 ms ~ 1 minute on windows 7 desktop running 9.1 (with 5 states tiger data loaded)
SELECT tiger.topology_load_tiger('topo_boston', 'place', '2507000');
-- topology_loader_tiger --
29722 edges holding in temporary. 11108 faces added. 1875 edges of faces added.  20576 nodes added.
19962 nodes contained in a face.  0 edge start end corrected.  31597 edges added.

-- 41 ms --
SELECT topology.TopologySummary('topo_boston');
 -- topologysummary--
Topology topo_boston (15), SRID 2249, precision 0.25
20576 nodes, 31597 edges, 11109 faces, 0 topogeoms in 0 layers

-- 28,797 ms to validate yeh returned no errors --
SELECT * FROM
    topology.ValidateTopology('topo_boston');

       error       |   id1    |    id2
-------------------+----------+-----------
      

例: マサチューセッツ州サフォーク郡のトポロジ

マサチューセッツ州サフォークのトポロジを、マサチューセッツ州メートル平面 (26986)、許容範囲0.25メートルで生成し、サフォークのTigerデータのフェイス、エッジ、ノードをロードします。

SELECT topology.CreateTopology('topo_suffolk', 26986, 0.25);
-- this took 56,275 ms ~ 1 minute on Windows 7 32-bit with 5 states of tiger loaded
-- must have been warmed up after loading boston
SELECT tiger.topology_load_tiger('topo_suffolk', 'county', '25025');
-- topology_loader_tiger --
 36003 edges holding in temporary. 13518 faces added. 2172 edges of faces added.
 24761 nodes added.  24075 nodes contained in a face.  0 edge start end corrected.  38175 edges added.
-- 31 ms --
SELECT topology.TopologySummary('topo_suffolk');
 -- topologysummary--
 Topology topo_suffolk (14), SRID 26986, precision 0.25
24761 nodes, 38175 edges, 13519 faces, 0 topogeoms in 0 layers

-- 33,606 ms to validate --
SELECT * FROM
    topology.ValidateTopology('topo_suffolk');

       error       |   id1    |    id2
-------------------+----------+-----------
 coincident nodes  | 81045651 |  81064553
 edge crosses node | 81045651 |  85737793
 edge crosses node | 81045651 |  85742215
 edge crosses node | 81045651 | 620628939
 edge crosses node | 81064553 |  85697815
 edge crosses node | 81064553 |  85728168
 edge crosses node | 81064553 |  85733413