El software gvSIG OA Digital Edition 2010 tiene herramientas de topología para encontrar pseudo nodos en geometría lineal. Configuré la tolerancia de clúster 0.00002 y el número máximo de errores -10000 para la geometría lineal de conteo de enlaces 20000. Pero resultado infructuoso.
¿Hay alguna solución que encuentre pseudo nodos en el software SIG gratuito?
Necesito superponer pseudo nodos (una solución a este problema: usar la topología de herramientas de ArcInfo, pero la prioridad para mí es usar software libre). La geometría lineal creó varios usuarios en QGIS 1.8.0 en la base de datos PostGIS (v. 2.0.1).
Agregue una nueva imagen: 12 características lineales con tres pseudo nodos en A (línea 4/5), B (línea 6/7), C (línea 9/10). Los pseudo nodos deberían ser puntos en su lugar: dos entidades lineales con intersección en un punto (nodo) deberían ser una entidad lineal (línea 4/5 - línea 4, ...).
¿Es posible hacer una solicitud en PostGIS, lo que dará como resultado una capa de pseudo nodos?
Agregue una nueva imagen de pseudo nodos de ejemplos: si recibo pseudo nodos de capa de punto de capa lineal (rectificaciones azules), corregí los siguientes errores en la capa lineal: A - agregue geometría faltante, B - línea ajustada en la intersección, C - elimine el pseudo nodo.
Respuestas:
Aquí una solución genérica, que puede mejorar con PostGIS o cualquier otro software compatible con OGC.
Su problema es "encontrar pseudo nodos" ... Pero creo que es un poco más, "encontrar no pseudo nodos y unir líneas de pseudo nodos". Mi solución puede usarse para ambos.
Oferta de estándares OGC:
ST_Boundary (geom) : para detectar los nodos de las líneas
ST_Dump (geom) : para poner cada nodo individual en un registro de tabla SQL.
ST_DWithin, ST_Equals, ST_SnapToGrid, ST_Snap se pueden usar para la tolerancia al cambio. Estoy usando ST_DWithin.
Podemos suponer que su problema principal se puede especificar con estos objetos y propiedades,
solo hay segmentos de línea (de una tabla en línea) ), representados por una geometría LINESTRING ... No probé con MULTILNE, si tiene geometrytype = MULTIPOINT, puede dividir y emitir MULTILINEs con ST_Dump y ST_LineMerge;
cada segmento de línea tiene un gid (ID de geometría) y un idline (ID de color) .
Entonces, el primer paso es obtener los nodos que provienen de unir líneas,
NOTA: usar cachés porque son más rápidos que las vistas. Use "EXPLAIN SELECT ..." para verificar el tiempo de CPU, puede llevar mucho tiempo.
Aquí se detectan ciclos y líneas continuas (del mismo color) como
ncolors=1
puntos, y los pseudo nodos porncolors=2
puntos, por lo que tiene una capa con esos puntos.Su tabla de "nodos buenos" está con los "puntos delimitadores" originales y sin "pseudonodos".
fuente
array_distinct
función no citada es de una biblioteca postgres.cz . Cualquier otro error, informe, puedo agregar más explicaciones aquí.geom
athe_geom
. (ST_Dump (x)) permanece como geom, no es un atributo de la base de datos.Refractions Research ha creado una herramienta Line Cleaner que parece hacer lo que usted desea.
El código fuente se puede encontrar en GitHub.
fuente
Solución no libre: transformador FME + MRF + SmartCleaner
Solución gratuita GRASS v.clean (El último QGIS 1.8.0 con herramientas GRASS es la forma más fácil de usarlo) y otras herramientas de limpieza de topología
fuente
Aquí hay pasos para encontrar sus pseudo nodos usando OpenJump y un SIG gratuito.
QGIS y gvSIG tienen el complemento Sextante, por lo que estos mismos pasos también deberían funcionar,
la unión espacial puede ser ligeramente diferente.
Usé la versión 1.2 para probar.
- guarde la
caja de herramientas Sextante de puntos finales de línea , topología, extraiga puntos finales de líneas -> endpt_0
- separe las líneas de la
caja de herramientas Sextante, herramientas para capas de línea, unir líneas adyacentes
- guarde la caja de
herramientas Sextante de puntos finales de línea sin dividir , topología, extraiga los puntos finales de línea -> endpt_1
- los puntos finales eliminados por "Unir líneas adyacentes" son pseudo nodos
Herramientas, Consultas, Consulta espacial,
Capa de origen "endpt_0"
Relación "Interseca"
Habilite la capa "endpt_1"
o haga clic en Complemento Resultado
fuente
DIST > 0
como expresión. Además, todos los geoprocesos se pueden encadenar en un modelo SEXTANTE para crear una nueva herramienta, por ejemplo, "Buscar pseudonodes" .Solución para encontrar pseudo nodos (y otras reglas de topología) disponibles en QGIS 1.9.0 master (2.0) - plugin "Topology Checker". Enlaces: complemento de Topology Checker en YouTube , complemento de Topology Checker en GitHub
fuente
Con PostGIS, puede usar una versión modificada de la consulta para encontrar los colgantes discutidos en este tema , ya que los pseudonodos son nodos que interceptan 2 cadenas lineales y los colgantes son nodos que interceptan 1 cadena lineal.
fuente