8 votos

Smallworld > FME > PostGIS > QGIS, manejo de tipos de geometría

Estoy migrando datos de Smallworld vía FME/SpatialBiz Plugin a un entorno PostgreSQL/PostGIS y luego intentando abrir las tablas resultantes con QGIS 2.12.1. El problema surge, porque Smallworld soporta múltiples geometrías por registro y para las áreas realmente no difiere entre polígonos curvos, multipolígonos, donuts,... y polígonos simples también.

Básicamente mi proceso FME (que desagrega múltiples geometrías y sólo mantiene 'geometrías de área' [sinónimo de cualquier tipo de polígono en Smallworld] de un nombre especial) se ejecuta sin errores, pero al abrir las tablas PostGIS en QGIS obtengo dos entradas para cada tabla (ver abajo), una de ellas con un tipo espacial definido (CurvePolygon por ejemplo), la otra me permite seleccionar el tipo de geometría manualmente.

Añadido:

SELECT * FROM public.klrg_statistik_bezirk WHERE ST_isValid(geom) <> true

Me da error: Tipo de geometría desconocido: 10 - CurvaPolígono

Strange behavior adding postgis layers in QGIS

Independientemente de si lo hago o no, obtengo el siguiente error (warning rsp.):

Error referred to above

("Tipo de geometría no soportado 'tipo desconocido' en la capa '...'") ... que aparece una y otra vez al añadir otras capas, reabrir el proyecto QGIS, etc.

Extrañamente, los datos parecen mostrarse correctamente en QGIS, como puede verse aquí:

enter image description here

A primera vista, no hay ningún problema, al editar estos datos PostGIS QGIS, pero no estoy shure si no surgen problemas en el futuro.

En el proceso de FME intenté arreglar esto exponiendo el atributo de formato 'postgis_type' y estableciendo su valor a 'postgis_multisurface' por ejemplo como se indica en la documentación de los escritores postgis de FME (creo que multisurface es el tipo de geometría de elección cuando los tipos de polígono de cualquier tipo se mezclan todos juntos ...).

Exposing format attribute in the PostGIS write feature type properties

Setting postgis_type to 'postgis_multisurface' via AttributeCreator transformer

Mis preguntas son: ¿Cómo tengo que interpretar este comportamiento de QGIS? ¿Podría haber alguna manera de arreglar esto en FME, o es necesario algún postprocesamiento en PostGIS? ¿De qué tipo? ¿Son estas las preguntas correctas?

Edición: Añadidas capturas de pantalla del espacio de trabajo de FME

FME Workspace left part with SpatialBizPlugin reader / transformers

FME Workspace parte izquierda con SpatialBizPlugin lector / transformadores. ¡Tenga en cuenta lo que los desagregadores / GeometryPropertyExtractors / Testers hacer!

FME Workspace left part with Geometry validators / PostGIS writers

Espacio de trabajo FME parte derecha (directamente detrás de AttributeKeeprs). ¡¡¡Tenga en cuenta que todas las características pasan el GeometryValidators!!!

... que están configurados así:

GeometryValidator configuration

5voto

DBM Puntos 51

Una solución a este problema es cortar las características en segmentos de línea con 2 vértices cada uno con el Chopper transformador y, a continuación, reconstruir las zonas utilizando el AreaBuilder (en caso de entrada multipolígono esto resulta en id's ambiguos las áreas se construyen de, el Aggretgator transformador vuelve a hacer multipolígonos).

Dado que al construir zonas se pierden atributos, éstos pueden recuperarse a partir de las características de entrada mediante Fusión de funciones .

Como resultado tengo (multi)polígonos rectos en mi PostGIS (ya no hay polígonos curvos).

Utilizando ArcStroker transformador no es necesario ya que el Chopper es hacer la segmentación en segmentos de arco.

https://www.safe.com/transformers/chopper/

Edita:

Y además aquí hay otra respuesta al problema de fme postgis writer. Para evitar que el escritor de la creación de geometrías genéricas, tenemos que establecer ya la directiva de escritura crear columna de geometría genérica a false al añadir el escritor como se muestra a continuación ....

enter image description here

... para definir explícitamente el tipo de geometría para cada tipo de característica:

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X