Name

Topology_Load_Tiger — Charge une région définie de données tiger dans une topologie PostGIS et transforme les données tiger en référence spatiale de la topologie et en s'adaptant à la tolérance de précision de la topologie.

Synopsis

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

Description

Charge une région définie de données tigrées dans une topologie PostGIS. Les faces, les nœuds et les arêtes sont transformés dans le système de référence spatiale de la topologie cible et les points sont adaptés à la tolérance de la topologie cible. Les faces, les nœuds et les arêtes créés conservent les mêmes identifiants que les faces, les nœuds et les arêtes des données Tiger d'origine, de sorte que les ensembles de données puissent à l'avenir être plus facilement réconciliés avec les données Tiger. Renvoie un résumé des détails du processus.

Cela peut s'avérer utile, par exemple, pour les données de redécoupage, lorsque les polygones nouvellement formés doivent suivre les lignes centrales des rues et que les polygones résultants ne doivent pas se chevaucher.

[Note]

Cette fonction repose sur les données Tiger ainsi que sur l'installation du module topologique PostGIS. Pour plus d'informations, voir Chapter 9, Topologie et Section 2.2.3, “Configuration de la compilation”. Si vous n'avez pas chargé de données couvrant la région concernée, aucun enregistrement topologique ne sera créé. Cette fonction échouera également si vous n'avez pas créé de topologie à l'aide des fonctions de topologie.

[Note]

La plupart des erreurs de validation de la topologie sont dues à des problèmes de tolérance : après la transformation, les points des arêtes ne s'alignent pas tout à fait ou ne se chevauchent pas. Pour remédier à cette situation, vous pouvez augmenter ou réduire la précision si vous obtenez des échecs de validation de la topologie.

Arguments requis :

  1. topo_name Le nom d'une topologie PostGIS existante dans laquelle charger les données.

  2. region_type Type de région délimitée. Actuellement, seuls place et county sont pris en charge. Il est prévu d'en avoir plusieurs autres. Il s'agit de la table à consulter pour définir les limites de la région, par exemple tiger.place, tiger.county

  3. region_id C'est ce que TIGER appelle le geoid. Il s'agit de l'identifiant unique de la région dans la table. Pour la table place, il s'agit de la colonne plcidfp dans tiger.place. Pour la table county, il s'agit de la colonne cntyidfp dans tiger.county

Disponibilité : 2.0.0

Exemple : Boston, Massachusetts Topologie

Créez une topologie pour Boston, Massachusetts dans Mass State Plane Feet (2249) avec une tolérance de 0,25 pied, puis chargez dans Boston city tiger faces, edges, nodes.

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
-------------------+----------+-----------
      

Exemple : Suffolk, Massachusetts Topologie

Créez une topologie pour Suffolk, Mass State Plane Meters (26986) avec une tolérance de 0,25 mètre, puis chargez dans le schéma tiger du comté de Suffolk les faces, edges, nodes.

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