Correction of INEGI roadnet
1. An investigation was made about PostGIS or QGIS solutions to resolving road network DIS-connectivity. 2. A comparison of the RNC & OSM datasets was made to determine if any gaps exist between datasets.
Road network dis-connectivity issues were identified when examining the INEGI dataset "Información Vectorial de Localidades Amanzanadas y Números Exteriores" road network data. For the Mexican City Aguascalientes, 14,401 dangling ends/unconnected roads were identified:
|Road Dis-connectivity in Aguascalientes|
|Dangling ends were identified at all of the roadway intersections in the Aguascalientes dataset.|
Issue Resolution (Proposed)
The proposed solution to resolve the dangling ends in the roadnet data is to leverage the PostGIS Topology extension. The thought is that by loading the data into a PostGIS Topology schema that the dangling end errors would be corrected.
PostGIS Topology Loading Methodology With Aguascalientes Data
The leveraging of PostGIS topology was started on a micro-level by only focusing on the Aguascalientes road edges. This work was done by:
- Enabling the postgis_topology and postgis Postgres extensions into a local machine's database (topology_test)
- Loading the 010010001v.shp into topology_test database as 'aguacalientes_roads'
- Correcting any st_issimple errors by running a query that creates new geometries using the st_unaryunion function.
- Loading the data to PostGIS Topology
- a. Create topology schema (roads_topology)
- b. Add topology column to 010010001v
- c. Setting topology value to 010010001v topology column and creating topology nodes, edges, faces, etc.
The loading can be observed in the following SQL script: load_to_topology.sql
The loading of the INEGI Rural/Urban data to a PostGIS topology schema will eliminate the the dangling edges that were observed with the raw INEGI dataset. Unfortunately, due to data integrity issues (intersecting ways, coincident edges, etc), there would be some edges that would not be populated. But the number of edges appears to be null
Contribution by: KristenK