¿Beneficios de las funciones multiparte?

28

Multiparte puntos, líneas, polígonos y se aplican en casi todos los SIG, pero ¿qué beneficios, si los hay, ofrecen?

En una base de datos relacional, los atributos compartidos por diferentes características se pueden almacenar una vez, y los ID se pueden usar para vincularlos con registros de geometría separados. Entonces, ¿las características multiparte son un legado del almacenamiento de datos de archivos planos?

texto alternativo

geographika
fuente

Respuestas:

35

Si su software no admite funciones de varias partes, es posible que tenga que hacer esfuerzos extraordinarios y complicados para ejecutar operaciones espaciales. Por ejemplo, la intersección de dos polígonos puede, en general, tener más de un componente conectado. Es conveniente, tanto algorítmica como conceptualmente, suponer que tal intersección devuelve un solo objeto (un polígono multiparte) en lugar de un número arbitrario de polígonos. (Por las mismas razones, es útil admitir varias formas de entidades nulas y degeneradas, por ejemplo, polígonos que tienen una extensión pero área cero o incluso polígonos con ubicaciones pero ni extensión ni área. Estas cosas pueden surgir de operaciones geométricas; apoyarlas elimina una gran cantidad de post-procesamiento exigente caso por caso y puede evitar que desaparezca la información útil).

Desde el punto de vista de la base de datos relacional, las características multiparte hacen posible la normalización: cuando un atributo es inseparable de una colección de polígonos, desea representar esa colección como un solo objeto. Un buen ejemplo sería una característica que represente a casi cualquier país del mundo que tenga una costa, porque el país probablemente incluye algunas islas. ¿Realmente quiere obligar a su RDBMS a hacer una copia de los atributos del país para cada pequeña isla? Probablemente no. Ni siquiera quiere (o necesita) mantener múltiples copias de un puntero a los atributos, tampoco.

¿Cómo representaría una red o un árbol de ramificación si no fuera una polilínea coordinada?

Desde el punto de vista de las estructuras de datos matemáticos o algorítmicos, permitir una función multiparte es una simplificación, no una complicación. Para admitir polígonos conectados de forma múltiple (anillos y polígonos con "agujeros") ya necesita el aparato para representar polígonos de varias partes.

Finalmente, los objetos "vectoriales" y su típica "representación de espagueti" tienen su origen en la teoría de los complejos simpliciales . (Es solo a través de esta conexión algo tenue con la teoría de la topología que el término "topología" se convirtió en SIG, que de otra manera no usa esencialmente nada de esa teoría). Esa teoría requiere y se beneficia de características de múltiples partes. De hecho, tener un solo componente no es parte de la definición de un complejo simplicial, sino que resulta ser una propiedad especial que disfrutan algunos de ellos (según lo detecta el rango de su grupo de homología cero)) Como tal, la "parte única" no es una propiedad definitoria, sino que es solo una cualidad topológica en el mismo sentido que tener un anillo o un "agujero" en un polígono es una cualidad topológica (relacionada con el rango del primer grupo de homología) .

whuber
fuente
1
Muy buena respuesta. No estoy 100% convencido de usar características de varias partes para normalizar una base de datos: cada polígono todavía tiene propiedades únicas, como área y longitud, y una consulta como "cuánto del área de Grecia está formada por islas" se hace difícil de responder sin dando a cada polígono atributos.
geographika
2
@geographika Yours es un buen ejemplo de por qué se necesita flexibilidad para representar entidades (espaciales o no) con bases de datos. Para estirarlo aún más, uno podría argumentar que los polígonos individuales necesitan ser "explotados" en sus anillos exterior e interior para responder preguntas como "¿cuánto del área de Grecia está formada por lagos?" Cualquier estructura de base de datos facilitará ciertas consultas y otras más difíciles; parte del buen diseño de la base de datos, por lo tanto, debe incluir la consideración de los usos previstos de la base de datos. Un buen DBMS (espacial) proporcionará mecanismos para convertir entre diferentes estructuras.
whuber
2
+1 Gran respuesta. Sin embargo, podría valer la pena discutir los inconvenientes de rendimiento de las características de varias partes. Tome una clase de características de polilínea de autopistas de EE. UU. Donde las características de carreteras se dividen en los límites estatales. Cree una segunda clase de entidad disolviendo el nombre de la carretera, lo que da como resultado que la I-10 abarque todo el continente. Ahora compare el rendimiento de la herramienta Identificar. A menos que la estrategia de indexación espacial de ESRI haya cambiado, será más lenta en la clase de características multiparte ya que hay muchos más MBR que se superponen entre sí. Se examina cada coordenada de cada entidad cuyo MBR se superpone al punto.
Kirk Kuykendall el
@ Kirk Buen punto. Sin embargo, sus ejemplos apuntan a deficiencias en la tecnología de ESRI más de lo que resaltan problemas en principio. La identificación de una característica por medio de una estructura de datos espaciales razonablemente eficiente pero simple, como un quadtree, debe tener un rendimiento O (log (N)) (después del almacenamiento en caché inicial de una estructura de datos almacenados). La división de cada una de las N características (presumiblemente grandes) en un promedio de K piezas (presumiblemente moderadas o pequeñas en comparación con N) aumenta log (N) a log (N) + log (K), lo que, dadas las presunciones, es prácticamente imperceptible
whuber
1
@Dandy Gracias por resaltar la distinción entre una geometría de varias partes y una mera colección de piezas. No creo que todos los tipos de características de múltiples partes necesariamente "limiten" sus componentes; es probable que esto dependa de la implementación, lo que indica que el concepto de "múltiples partes" contiene algunas variaciones sutiles.
whuber
12

Imagine unir datos de población a una tabla de polígonos de una parte que representan países. Dependiendo de cómo se haga la unión, o cada isla obtendría la población completa de ese país o solo un polígono del conjunto obtendría la población completa. Sin representar al país como un polígono de varias partes, debe distribuir la población (innecesariamente compleja e imprecisa) o juntar los polígonos antes de unirse, en cuyo caso esencialmente terminará con un polígono de varias partes nuevamente.

Sean
fuente