Benefícios dos recursos de várias partes?

28

Pontos, linhas e polígonos multipartes são implementados em quase todos os SIG, mas que benefícios, se houver, eles oferecem?

Em um banco de dados relacional, os atributos compartilhados por diferentes recursos podem ser armazenados uma vez e os IDs usados ​​para vinculá-los a separar os registros geométricos. Então, os recursos de várias partes são um legado do armazenamento de dados de arquivos simples?

texto alternativo

geographika
fonte

Respostas:

35

Se o seu software não suportar recursos com várias partes, talvez seja necessário um esforço extraordinário e complicado para executar operações espaciais. Por exemplo, a interseção de dois polígonos pode, em geral, ter mais de um componente conectado. É conveniente, tanto algoritmicamente quanto conceitualmente, supor que essa interseção retorne um único objeto (um polígono de várias partes) em vez de um número arbitrário de polígonos. (Pelas mesmas razões, é útil oferecer suporte a várias formas de recursos nulos e degenerados - por exemplo, polígonos com uma extensão, mas zero de área, ou mesmo polígonos com localizações, mas nem extensão nem área. Essas coisas podem surgir de operações geométricas; elimina muito pós-processamento exigente caso a caso e pode impedir que informações úteis desapareçam.)

Do ponto de vista relacional do banco de dados, os recursos de várias partes possibilitam a normalização: quando um atributo é inseparável de uma coleção de polígonos, você deseja representar essa coleção como um único objeto. Um bom exemplo seria uma característica que representa quase todos os países do mundo com litoral, porque o país provavelmente inclui algumas ilhas. Deseja realmente forçar seu RDBMS a fazer uma cópia dos atributos do país para cada pequena ilha? Mais provável que não. Você também não deseja (ou precisa) manter várias cópias de um ponteiro para os atributos.

Como você representaria uma rede ou uma árvore ramificada, se não como uma multi-polilinha coordenada?

Do ponto de vista da matemática ou das estruturas de dados algorítmicos, permitir um recurso de várias partes é uma simplificação, não uma complicação. Para suportar polígonos multiplamente conectados (anéis e polígonos com "orifícios"), você já precisa do aparelho para representar polígonos de várias partes.

Finalmente, os objetos "vetoriais" e sua típica "representação de espaguete" têm sua origem na teoria dos complexos simpliciais . (É somente através dessa conexão um tanto tênue com a teoria da topologia que o termo "topologia" chegou ao GIS, que de outra forma não usa essencialmente nada dessa teoria.) Essa teoria requer e se beneficia de recursos com várias partes. De fato, ter apenas um único componente não faz parte da definição de um complexo simplicial, mas acaba sendo uma propriedade especial desfrutada por alguns deles (como detectado pela classificação de seu grupo de homologia zero )) Como tal, "peça única" não é uma propriedade definidora, mas é apenas uma qualidade topológica no mesmo sentido que ter um anel ou um "orifício" em um polígono é uma qualidade topológica (relacionada à classificação do primeiro grupo de homologia) .

whuber
fonte
1
Resposta muito boa. Não estou 100% convencido sobre o uso de recursos de várias partes para normalizar um banco de dados - cada polígono ainda possui propriedades únicas, como área e comprimento, e uma consulta como "quanto da área da Grécia é composta de ilhas" fica difícil de responder sem dando atributos a cada polígono.
geographika
2
@geographika O seu é um bom exemplo de por que é preciso flexibilidade na representação de entidades (espaciais ou não) com bancos de dados. Para ampliar ainda mais, pode-se argumentar que polígonos individuais precisam ser "explodidos" em seus anéis externo e interno para responder a perguntas como "quanto da área da Grécia é composta de lagos?" Qualquer estrutura de banco de dados pode facilitar determinadas consultas e outras mais difíceis; parte do bom design do banco de dados, portanto, deve incluir a consideração dos usos pretendidos do banco de dados. Um bom SGBD (espacial) fornecerá mecanismos para converter entre diferentes estruturas.
whuber
2
+1 ótima resposta. Pode valer a pena discutir as desvantagens de desempenho dos recursos de várias partes. Veja uma classe de polilinhas das rodovias americanas, onde as características da rodovia estão divididas nos limites do estado. Crie uma segunda classe de característica dissolvendo o nome da estrada, resultando na I-10 em todo o continente. Agora compare o desempenho da ferramenta Identify. A menos que a estratégia de indexação espacial da ESRI tenha mudado, ela será mais lenta na classe de featurart de várias partes, pois há muito mais MBRs que se sobrepõem. Cada coordenada de cada recurso cujo MBR se sobrepõe ao ponto é examinada.
Kirk Kuykendall
@ Kirk Bom ponto. Seus exemplos apontam para deficiências na tecnologia da ESRI mais do que destacam problemas em princípio. A identificação de um recurso por meio de uma estrutura de dados espaciais razoavelmente eficiente, mas simples, como uma quadtree, deve ter desempenho O (log (N)) (após o cache inicial de uma estrutura de dados armazenada). A divisão de cada um dos N recursos (supostamente grandes) em uma média de K pedaços (presumido moderado ou pequeno em comparação com N) aumenta o log (N) para o log (N) + log (K), que - dadas as suposições - é praticamente imperceptível.
whuber
1
@Dandy Obrigado por destacar a distinção entre uma geometria de várias partes e uma mera coleção de peças. Não acho que todos os tipos de recursos com várias partes necessariamente "restrinjam" seus componentes; isso provavelmente depende da implementação - o que indica que o conceito de "parte múltipla" contém algumas variações sutis.
whuber
12

Imagine juntar dados da população a uma tabela de polígonos de peça única representando países. Dependendo de como você faz a junção, todas as ilhas receberiam a população completa desse país ou apenas um polígono do conjunto receberia a população completa. Sem representar o país como um polígono de várias partes, é necessário repartir a população (desnecessariamente complexa e imprecisa) ou coletar os polígonos antes de ingressar. Nesse caso, você acaba basicamente com um polígono de várias partes.

Sean
fonte