Vantaggi delle funzionalità multipart?


28

Punti, linee e poligoni multipart sono implementati in quasi tutti i GIS, ma quali vantaggi offrono?

In un database relazionale gli attributi condivisi da diverse funzionalità possono essere memorizzati una volta e gli ID utilizzati per collegarli a record di geometria separati. Quindi le funzionalità multipart sono un'eredità di archiviazione dei dati di file flat?

testo alternativo

Risposte:


35

Se il tuo software non supporta funzionalità multiparte, potresti dover compiere lunghezze straordinarie e complicate per eseguire operazioni spaziali. Ad esempio, l'intersezione di due poligoni può, in generale, avere più di un componente collegato. È conveniente, sia algoritmicamente che concettualmente, supporre che una tale intersezione restituisca un singolo oggetto (un poligono multipart) anziché un numero arbitrario di poligoni. (Per gli stessi motivi è utile supportare varie forme di caratteristiche nulle e degenerate, ad esempio poligoni con estensione ma area zero o persino poligoni con posizioni ma né estensione né area. Queste cose possono derivare da operazioni geometriche; supportarle elimina molte elaborazioni post-elaborazione minuziose caso per caso e può impedire la scomparsa di informazioni utili.)

Dal punto di vista del database relazionale, le funzionalità multipart rendono possibile la normalizzazione: quando un attributo è inseparabile da una raccolta di poligoni, si desidera rappresentare tale raccolta come un singolo oggetto. Un buon esempio sarebbe una caratteristica che rappresenta quasi tutti i paesi del mondo che hanno una costa, perché il paese probabilmente include alcune isole. Vuoi davvero forzare il tuo RDBMS a fare una copia degli attributi del paese per ogni piccola isola? Molto probabilmente no. Non si desidera nemmeno (o non è necessario) conservare più copie di un puntatore agli attributi.

Come rappresenteresti una rete o un albero ramificato se non come una multi-polilinea coordinata?

Dal punto di vista della matematica o delle strutture di dati algoritmici, consentire una funzione multipart è una semplificazione, non una complicazione. Al fine di supportare i poligoni collegati in modo multiplo (anelli e poligoni con "buchi") è già necessario l'apparato per rappresentare poligoni in più parti.

Infine, gli oggetti "vettoriali" e la loro tipica "rappresentazione di spaghetti" hanno la loro origine nella teoria dei complessi simpliciali . (È solo attraverso questa connessione alquanto tenue con la teoria della topologia che il termine "topologia" lo ha trasformato in GIS, che altrimenti non utilizza essenzialmente nulla di quella teoria.) Tale teoria richiede e beneficia di caratteristiche multi-parte. In effetti, avere un solo componente non fa parte della definizione di un complesso simpliciale, ma si rivela piuttosto una proprietà speciale di cui alcuni godono (come rilevato dal grado del loro gruppo di omologia zeroth). In quanto tale, la "parte singola" non è una proprietà determinante, ma è solo una qualità topologica nello stesso senso in cui avere un anello o un "buco" in un poligono è una qualità topologica (correlata al rango del primo gruppo di omologia) .


1
Risposta molto bella. Non sono convinto al 100% di utilizzare funzionalità multipart per normalizzare un database: ogni poligono ha ancora proprietà uniche come area e lunghezza e una domanda come "quanta area della Grecia è costituita da isole" diventa difficile rispondere senza dando ad ogni poligono gli attributi.
geographika,

2
@geographika Yours è un buon esempio del motivo per cui è necessaria flessibilità nel rappresentare entità (spaziali o meno) con database. Per estenderlo ulteriormente, si potrebbe anche sostenere che i singoli poligoni devono essere "esplosi" nei loro anelli esterno e interno per rispondere a domande come "quanta parte della Grecia è costituita da laghi?" Qualsiasi data struttura del database renderà alcune query facili e altre più difficili; parte di una buona progettazione del database deve quindi includere la considerazione degli usi previsti del database. Un buon DBMS (spaziale) fornirà meccanismi per la conversione tra diverse strutture.
whuber

2
+1 Ottima risposta. Tuttavia, potrebbe valere la pena discutere degli svantaggi delle prestazioni rispetto alle funzionalità multipart. Prendi una polilinea di classe di autostrade statunitensi in cui le caratteristiche dell'autostrada sono divise ai confini dello stato. Crea una seconda featureclass dissolvendoti sul nome dell'autostrada, risultando con I-10 che attraversa il continente. Ora confronta le prestazioni dello strumento Identify. A meno che la strategia di indicizzazione spaziale di ESRI non sia cambiata, sarà più lenta sulla classe di caratteristiche multipart poiché ci sono molti più MBR che si sovrappongono. Viene esaminata ogni coordinata di ogni feature il cui MBR si sovrappone al punto.
Kirk Kuykendall il

@Kirk Ottimo punto. I tuoi esempi indicano carenze nella tecnologia ESRI più di quanto evidenzino problemi in linea di principio, tuttavia. L'identificazione di una caratteristica mediante una struttura di dati spaziali ragionevolmente efficiente ma semplice, come un quadrifoglio, dovrebbe avere prestazioni O (log (N)) (dopo la memorizzazione nella cache iniziale di una struttura di dati memorizzata). Dividere ciascuna delle N caratteristiche (presumibilmente grandi) in una media di K pezzi (presunti moderati o piccoli rispetto a N) aumenta il registro (N) al registro (N) + registro (K), che - date le presunzioni - è praticamente impercettibile.
whuber

1
@Dandy Grazie per aver evidenziato la distinzione tra una geometria multiparte e una semplice collezione di pezzi. Non credo che tutti i tipi di funzioni multi-parte "vincolino" necessariamente i loro componenti; ciò dipende probabilmente dall'implementazione, il che sottolinea che il concetto di "multiparte" contiene alcune sottili variazioni.
whuber

12

Immagina di unire i dati della popolazione a una tabella di poligoni a parte singola che rappresentano i paesi. A seconda di come si fa l'unione, o ogni isola otterrebbe l'intera popolazione di quel paese o solo un poligono dell'insieme otterrebbe l'intera popolazione. Senza rappresentare il paese come un poligono in più parti, è necessario ripartire la popolazione (inutilmente complessa e imprecisa) o raccogliere i poligoni insieme prima di unirsi, nel qual caso si finisce sostanzialmente con un poligono in più parti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.