Georreferenciacion qgis+bender+postgis

geoprocesos
qgis
postgis
bender
Autor/a

Elio Lagunes-Díaz

Fecha de publicación

18 de enero de 2023

A partir de un archivo PDF “Vectores en Restitucion con lotificacion El faro-Model” se procedió a hacer la georreferenciación; el archivo contiene vectores de los lotes, así como curvas de nivel y otros elementos de referencia, así como 4 puntos con coordenadas en projección EPSG:32613.

Ejemplo de referencia presente en el mapa_

A partir de estos puntos se hizo un proceso de vector affining con el plugin Bender para QGIS, enlazando a los puntos de las capas originales con los puntos manualmente digitalizados de las coordenadas.

x            y             punto
498013.857   2142920.689   1
497974.348   2142985.984   2
498007.6256  2143057.2148  3
498236.5387  2143093.5155  4
496903       2144824       5

y convertidas a formato GPKG con el comando:

ogr2ogr -f GPKG puntos_ref.gpkg -a_srs EPSG:32613  -oo X_POSSIBLE_NAMES=x -oo Y_POSSIBLE_NAMES=y puntos_ref.csv

Una vez realizada la transformación affine se revisó visualmente el resultado y se observó que no coincidían plenamente los polígonos de los predios con elementos del paisaje de una imagen de satélite (Bing)

Desfazamiento de las carreteras posterior a la primer transformación affine

Problemática de la transformación

Las capas de lotificación provistas no están bien georreferenciadas en el proyecto de AutoCAD, aparentemente fueron capturadas de un plano de construcción. Lo que confirma la problemática es la presencia de una capa bien georreferenciada, que aparece bien ubicada en la imagen.

Ubicación correcta de la capa de ANP del archivo como línea Roja y el archivo de ANPs de Conabio como línea negra punteada

Re-georreferenciación

Para acomodar los polígonos de los predios geoespacialmente en su lugar, se procedió a hacer una re-transformación affine, con el plugin Bender para QGIS.

Límites desfazados y almacenados como polígonos en el PDF

Polígonos correctos, salvando el derecho de vía

Una vez reacomodados los polígonos se realizó el siguiente postproceso, para tener polígonos correctos de los predios:

  1. Reparación de geometrías.
processing.run("native:fixgeometries", {'INPUT':'merged.gpkg' ','METHOD':1,'OUTPUT':'TEMPORARY_OUTPUT'})
  1. Disolución de polígonos conjuntos (los límites de los predios estaban almacenados como polígonos, no como líneas).
processing.run("native:dissolve", {'INPUT':'fixed_geometries','FIELD':[],'SEPARATE_DISJOINT':False,'OUTPUT':'TEMPORARY_OUTPUT'})
  1. La capa disuelta fue cargada en PostGIS para usar la función st_approximatemedialaxis la cual nos arroja una línea central entre los límites de los predios (que son polígonos en el PDF).
    1. Carga a PostGIS:
    ogr2ogr -f "PostgreSQL" PG:"dbname='inecol'" poligonos_capturados.gpkg -nlt MULTIPOLYGON -nln
    predios_capturados
    1. Consulta SQL para sacar el eje central (En QGIS, menú database)
    select st_approximatemedialaxis(st_makevalid(geom)) as geom from predios_capturados
  2. Se uso la función Polygonize de QGIS-processing:
processing.run("native:polygonize", {'INPUT':'capa_medialaxis.gpkg|layername=capa0_medialaxis','KEEP_FIELDS':False,'OUTPUT':'TEMPORARY_OUTPUT'})