Terminologia per i dati spaziali di Amazon Redshift - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Terminologia per i dati spaziali di Amazon Redshift

I seguenti termini vengono utilizzati per descrivere alcune funzioni spaziali di Amazon Redshift.

Riquadro di delimitazione

Un riquadro di delimitazione di una geometria o di un'area geografica è definito come il prodotto incrociato (attraverso le dimensioni) delle estensioni delle coordinate di tutti i punti della geometria o dell'area geografica. Per le geometrie bidimensionali, il rettangolo di delimitazione è un rettangolo che include completamente tutti i punti della geometria. Ad esempio, un rettangolo di selezione del poligono POLYGON((0 0,1 0,0 2,0 0)) è il rettangolo definito dai punti (0, 0) e (1, 2) come gli angoli in basso a sinistra e in alto a destra. Amazon Redshift precalcola e memorizza un riquadro di delimitazione all'interno di una geometria per velocizzare i predicati geometrici e i join spaziali. Ad esempio, se i riquadri di delimitazione di due geometrie non si intersecano, queste due geometrie non possono intersecarsi e non possono trovarsi nel set di risultati di un join spaziale utilizzando il predicato ST_Intersects.

È possibile utilizzare le funzioni spaziali per aggiungere (AddBBox), eliminare (DropBBox) e determinare il supporto (SupportsBBox) per un riquadro di delimitazione. Amazon Redshift supporta il precalcolo dei riquadri di delimitazione per tutti i sottotipi di geometria.

L'esempio seguente mostra come aggiornare le geometrie esistenti in una tabella per memorizzarle con un riquadro di delimitazione. Se il cluster è alla versione 1.0.26809 o successiva, tutte le nuove geometrie vengono create con un riquadro di delimitazione precalcolato per impostazione predefinita.

UPDATE my_table SET geom = AddBBox(geom) WHERE SupportsBBox(geom) = false;

Dopo aver aggiornato le geometrie esistenti, si consiglia di eseguire il VACUUM comando sulla tabella aggiornata. Per ulteriori informazioni, consulta VACUUM.

Per impostare se le geometrie sono codificate con un riquadro di delimitazione durante una sessione, consultare default_geometry_encoding.

Validità geometrica

Gli algoritmi geometrici utilizzati da Amazon Redshift presuppongono che la geometria di input sia una geometria valida. Se un input a un algoritmo non è valido, il risultato non è definito. La sezione seguente descrive le definizioni di validità geometrica utilizzate da Amazon Redshift per ciascun sottotipo di geometria.

Point (Punto)

Un punto è considerato valido se una delle seguenti condizioni è vera:

  • Il punto è il punto vuoto.

  • Tutte le coordinate dei punti sono numeri a virgola mobile finiti.

Un punto può essere il punto vuoto.

Linestring

Una linestring è considerata valida se una o più delle seguenti condizioni è vera:

  • La linestring è vuota, ovvero non contiene punti.

  • Tutti i punti in una linestring non vuoto hanno coordinate che sono numeri a virgola mobile finiti.

  • La linestring, se non vuota, deve essere unidimensionale, ovvero non può degenerare su un punto.

Una linestring non può contenere punti vuoti.

Una linestring può avere punti consecutivi duplicati.

Una linestring può avere auto-intersezioni.

Polygon

Un poligono è considerato valido se una o più delle seguenti condizioni è vera:

  • La linestring è vuota, ovvero non contiene anelli.

  • Se non è vuoto, un poligono è valido se si verificano tutte le condizioni seguenti:

    • Tutti gli anelli del poligono sono validi. Un anello è considerato valido se una o più delle seguenti condizioni è vera:

      • Tutti i punti dell'anello non vuoto hanno coordinate che sono numeri a virgola mobile finiti.

      • L'anello è chiuso, cioè il suo primo punto e il suo ultimo punto coincidono.

      • L'anello non ha auto-intersezioni.

      • L'anello è bidimensionale.

    • Gli anelli del poligono hanno orientamenti coerenti. In altre parole, se si attraversa un qualsiasi anello, l'interno del poligono è alla destra o alla sinistra dell'utente. Ciò significa che se l'anello esterno di un poligono è orientato in senso orario o antiorario, tutti gli anelli interni del poligono devono avere lo stesso orientamento in senso antiorario o orario.

    • Tutti gli anelli interni devono trovarsi all'interno dell'anello esterno del poligono.

    • Gli anelli interni non possono essere nidificati, ovvero un anello interno non può trovarsi all'interno di un altro anello interno.

    • Gli anelli interni ed esterni possono intersecarsi solo in un numero limitato di punti.

    • L'interno del poligono deve essere collegato semplicemente.

Un poligono non può contenere punti vuoti.

Multipoint

Un multipunto è considerato valido se una o più delle seguenti condizioni è vera:

  • Il multipunto è vuoto, ovvero non contiene punti.

  • Un multipunto non è vuoto e tutti i punti sono validi in base alla definizione di validità del punto.

Un multipunto può contenere uno o più punti vuoti.

Un multipunto può avere punti duplicati.

Multiinestring

Una funzione multilinestring è considerata valida se una o più delle seguenti condizioni è vera:

  • La multilinestring è vuota, ovvero non contiene punti.

  • Tutte le linee in una multilinestring non vuota sono valide in base alla definizione di validità della linea.

Una multilinestring non vuota costituita solo da linee vuote è considerata valida.

Una linestring vuota in una multilinestring non influisce sulla sua validità.

Una multilinestring può avere linestring con punti consecutivi duplicati.

Una multilinestring può avere auto-intersezioni.

Una multilinestring non può contenere punti vuoti.

Multipolygon

Un multipoligono è considerato valido se una o più delle seguenti condizioni è vera:

  • Il multipoligono non contiene poligoni (è vuoto).

  • Il multipoligono non è vuoto e quanto riportato di seguito è vero:

    • Tutti i poligoni nel multipoligono sono validi.

    • Due poligoni nel multipoligono non possono intersecarsi in un numero infinito di punti. In particolare, ciò implica che l'interno di due poligoni non può intersecarsi e che possono toccare solo in un numero finito di punti.

Un poligono vuoto in un multipoligono non invalida un multipoligono.

Un multipoligono non può contenere punti vuoti.

Raccolta geometrica

Una raccolta geometrica è considerata valida se una o più delle seguenti condizioni è vera:

  • La raccolta geometrica è vuota, ovvero non contiene geometrie.

  • Tutte le geometrie in una raccolta geometrica non vuota sono valide.

Questa definizione si applica ancora, anche se in modo ricorsivo, per le raccolte geometriche nidificate.

Una raccolta geometrica può contenere punti vuoti e multipunto con punti vuoti.

Semplicità geometrica

Gli algoritmi geometrici utilizzati da Amazon Redshift presuppongono che la geometria di input sia una geometria valida. Se un input a un algoritmo non è valido, il controllo della semplicità non è definito. La sezione seguente descrive le definizioni di semplicità geometrica utilizzate da Amazon Redshift per ciascun sottotipo di geometria.

Point (Punto)

Un punto valido è considerato semplice se una o più delle seguenti condizioni è vera:

  • Un punto valido è sempre considerato semplice.

  • Un punto vuoto è considerato semplice.

Linestring

Una linestring è considerata semplice se una o più delle seguenti condizioni è vera:

  • La linestring è vuota.

  • La linestring non è vuota e si verificano tutte le condizioni seguenti:

    • Non ha punti consecutivi duplicati.

    • Non ha auto-intersezioni, tranne possibilmente per il suo primo punto e ultimo punto, che possono coincidere. In altre parole, la linestring non può avere auto-intersezioni tranne nei punti limite.

Polygon

Un poligono valido è considerato semplice se non contiene punti consecutivi duplicati.

Multipoint

Un multipunto valido è considerato semplice se una o più delle seguenti condizioni è vera:

  • Il multipunto è vuoto, ovvero non contiene punti.

  • Due punti non vuoti del multipunto non coincidono.

Multilinestring

Una multilinestring valida è considerata semplice se una o più delle seguenti condizioni è vera:

  • La multilinestring è vuota.

  • La multilinestring non è vuota e si verificano tutte le condizioni seguenti:

    • Tutte le relative linestring sono semplici.

    • Qualsiasi due linestring della multilinestring non si intersecano, tranne nei punti che sono punti limite delle due linee.

Una multilinestring non vuota costituita solo da linestring vuote è considerata vuota.

Una linestring vuota in una multilinestring non influisce sulla sua semplicità.

Una linestring chiusa in una multilinestring non può intersecarsi con qualsiasi altra linestring nella multilinestring.

Una multilinestring non può avere linestring con punti consecutivi duplicati.

Multipolygon

Un multipoligono valido è considerato semplice se non contiene punti consecutivi duplicati.

Raccolta geometrica

Una raccolta geometrica valida è considerata semplice se una o più delle seguenti condizioni è vera:

  • La raccolta geometrica è vuota, ovvero non contiene geometrie.

  • Tutte le geometrie in una raccolta geometrica non vuota sono semplici.

Questa definizione si applica ancora, anche se in modo ricorsivo, per le raccolte geometriche nidificate.

H3

H3 è un sistema a griglia di indicizzazione geospaziale gerarchico che offre un modo per indicizzare le coordinate spaziali fino a una risoluzione di metro quadrato. I dati indicizzati possono essere uniti tra diversi set di dati e aggregati a diversi livelli di precisione. H3 consente una serie di algoritmi e ottimizzazioni basati sulla griglia, tra cui i cui vicini più prossimi, il percorso più breve, l'ottimizzazione dei gradienti e altro ancora. Gli indici H3 fanno riferimento a celle che possono essere esagoni o pentagoni. Lo spazio è suddiviso gerarchicamente in base a una risoluzione. H3 supporta 16 risoluzioni da 0 a 15, entrambi compresi. di cui 0 è la risoluzione più grossolana e 15 la più granulare.

Amazon Redshift fornisce le seguenti funzioni spaziali H3: