Terminología de los datos espaciales de Amazon Redshift - Amazon Redshift

Terminología de los datos espaciales de Amazon Redshift

Los siguientes términos se utilizan para describir algunas funciones espaciales de Amazon Redshift.

Cuadro delimitador

Un cuadro delimitador de una geometría o geografía se define como el producto vectorial (entre las dimensiones) de la extensión de las coordenadas de todos los puntos de la geometría o la geografía. En el caso de las geometrías bidimensionales, el cuadro delimitador es un rectángulo que incluye por completo todos los puntos de la geometría. Por ejemplo, un cuadro delimitador del polígono POLYGON((0 0,1 0,0 2,0 0)) es el rectángulo definido por los puntos (0, 0) y (1, 2) como sus esquinas inferior izquierda y superior derecha. Amazon Redshift calcula previamente y almacena un cuadro delimitador dentro de una geometría para acelerar los predicados geométricos y las uniones espaciales. Por ejemplo, si los cuadros delimitadores de dos geometrías no forman una intersección, estas dos geometrías no pueden formar una intersección y no pueden ser parte del conjunto de resultados de una unión espacial que utiliza el predicado ST_Intersects.

Puede usar funciones espaciales para agregar (AddBBox), eliminar (DropBBox) y determinar el soporte (SupportsBBox) para un cuadro delimitador. Amazon Redshift admite el cálculo previo de los cuadros delimitadores para todos los subtipos de geometría.

En el siguiente ejemplo, se muestra cómo actualizar las geometrías existentes en una tabla para almacenarlas con un cuadro delimitador. Si la versión del clúster es la 1.0.26809 o una posterior, todas las geometrías nuevas se crean con un cuadro delimitador calculado previamente de forma predeterminada.

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

Después de actualizar las geometrías existentes, se recomienda ejecutar el comando VACUUM en la tabla actualizada. Para obtener más información, consulte VACUUM.

Para establecer si las geometrías están codificadas con un cuadro delimitador durante una sesión, consulte default_geometry_encoding.

Validez geométrica

Los algoritmos geométricos que se utilizan en Amazon Redshift suponen que la geometría de entrada es una geometría válida. Si la entrada de un algoritmo no es válida, entonces el resultado no está definido. En la siguiente sección, se describen las definiciones de validez geométrica utilizadas en Amazon Redshift para cada subtipo de geometría.

Point (Punto)

Un punto se considera válido si se cumple alguna de las siguientes condiciones:

  • El punto es el punto vacío.

  • Todas las coordenadas de un punto son números finitos de coma flotante.

Un punto puede ser el punto vacío.

Linestring (Cadena de línea)

Una cadena de línea se considera válida si se cumple alguna de las siguientes condiciones:

  • La cadena de línea está vacía; es decir, no contiene puntos.

  • Todos los puntos de una cadena de línea no vacía tienen coordenadas que son números finitos de coma flotante.

  • La cadena de línea, si no está vacía, debe ser unidimensional; es decir, no se puede degenerar hasta convertirse en un punto.

Una cadena de línea no puede contener puntos vacíos.

Una cadena de línea puede tener puntos consecutivos duplicados.

Una cadena de línea puede tener autointersecciones.

Polygon (Polígono)

Un polígono se considera válido si se cumple alguna de las siguientes condiciones:

  • El polígono está vacío; es decir, no contiene puntos.

  • Si no está vacío, un polígono es válido si se cumplen todas las siguientes condiciones:

    • Todos los anillos del polígono son válidos. Un anillo se considera válido si se cumplen todas las siguientes condiciones:

      • Todos los puntos del anillo tienen coordenadas que son números finitos de coma flotante.

      • El anillo está cerrado; es decir, su primer punto y su último punto coinciden.

      • El anillo no tiene autointersecciones.

      • El anillo es bidimensional.

    • Las orientaciones de los anillos del polígono son consistentes. Es decir, si recorre cualquier anillo, el interior del polígono está tanto a su derecha como a su izquierda. Esto significa que, si el anillo exterior de un polígono tiene una orientación en sentido horario o antihorario, todos los anillos interiores del polígono deben tener esa misma orientación.

    • Todos los anillos interiores deben estar dentro del anillo exterior del polígono.

    • Los anillos interiores no se pueden anidar; es decir, un anillo interior no puede estar dentro de otro anillo interior.

    • Las intersecciones de los anillos interiores y exteriores solo pueden tener lugar en un número finito de puntos.

    • El interior del polígono debe estar conectado de forma sencilla.

Un polígono no puede contener puntos vacíos.

Multipoint (Multipunto)

Un multipunto se considera válido si se cumple alguna de las siguientes condiciones:

  • El multipunto está vacío; es decir, no contiene puntos.

  • Un multipunto no está vacío y todos los puntos son válidos según la definición de validez de los puntos.

Un multipunto puede contener uno o más puntos vacíos.

Un multipunto puede tener puntos duplicados.

Multilinestring (Cadena de varias líneas)

Una cadena de varias líneas se considera válida si se cumple alguna de las siguientes condiciones:

  • La cadena de varias líneas está vacía; es decir, no contiene puntos.

  • Todas las cadenas de línea de una cadena de varias líneas no vacía son válidas según la definición de validez de las cadenas de línea.

Una cadena de varias líneas no vacía que consta solo de cadenas de línea vacías se considera válida.

Una cadena de línea vacía en una cadena de varias líneas no afecta su validez.

Una cadena de varias líneas puede tener cadenas de línea con puntos consecutivos duplicados.

Una cadena de varias líneas puede tener autointersecciones.

Una cadena de varias líneas no puede contener puntos vacíos.

Multipolygon (Multipolígono)

Un multipolígono se considera válido si se cumple alguna de las siguientes condiciones:

  • El multipolígono no contiene ningún polígono (está vacío).

  • El multipolígono no está vacío y se cumplen todas las siguientes condiciones:

    • Todos los polígonos del multipolígono son válidos.

    • No hay dos polígonos en el multipolígono que puedan formar una intersección en un número infinito de puntos. En particular, esto implica que el interior de dos polígonos cualesquiera no se puede formar una intersección y que solo se pueden tocar en un número finito de puntos.

Un polígono vacío en un multipolígono no invalida al multipolígono.

Un multipolígono no puede contener puntos vacíos.

Geometry collection (Colección de geometría)

Una colección de geometría se considera válida si se cumple alguna de las siguientes condiciones:

  • La colección de geometría está vacía; es decir, no contiene geometrías.

  • Todas las geometrías de una colección de geometría no vacía son válidas.

Esta definición sigue siendo válida, aunque de manera recursiva, para las colecciones de geometría anidadas.

Una colección de geometría puede contener puntos vacíos y multipuntos con puntos vacíos.

Simplicidad geométrica

Los algoritmos geométricos que se utilizan en Amazon Redshift suponen que la geometría de entrada es una geometría válida. Si la entrada de un algoritmo no es válida, entonces la verificación de simplicidad no está definida. En la siguiente sección, se describen las definiciones de simplicidad geométrica utilizadas en Amazon Redshift para cada subtipo de geometría.

Point (Punto)

Un punto válido se considera simple si se cumple alguna de las siguientes condiciones:

  • Un punto válido siempre se considera simple.

  • Un punto vacío se considera simple.

Linestring (Cadena de línea)

Una cadena de línea válida se considera simple si se cumple alguna de las siguientes condiciones:

  • La cadena de línea está vacía.

  • La cadena de línea no está vacía y se cumplen todas las siguientes condiciones:

    • No tiene puntos consecutivos duplicados.

    • No tiene autointersecciones, excepto, posiblemente, por su primer punto y su último punto, que pueden coincidir. En otras palabras, la cadena de línea no puede tener autointersecciones, excepto en los puntos límite.

Polygon (Polígono)

Un polígono válido se considera simple si no contiene puntos consecutivos duplicados.

Multipoint (Multipunto)

Un multipunto válido se considera simple si se cumple alguna de las siguientes condiciones:

  • El multipunto está vacío; es decir, no contiene puntos.

  • No hay dos puntos no vacíos del multipunto que coincidan.

Cadenas de líneas múltiples

Una cadena de varias líneas válida se considera simple si se cumple alguna de las siguientes condiciones:

  • La cadena de varias líneas está vacía.

  • La cadena de varias líneas no está vacía y se cumplen todas las siguientes condiciones:

    • Todas sus cadenas de línea son simples.

    • Dos cadenas de línea cualesquiera de la cadena de varias líneas no forman una intersección, excepto en los puntos límites de las dos líneas.

Una cadena de varias líneas no vacía que consta solo de cadenas de línea vacías se considera vacía.

Una cadena de línea vacía en una cadena de varias líneas no afecta su simplicidad.

Una cadena de línea cerrada en una cadena de varias líneas no puede forman una intersección con ninguna otra cadena de línea en la cadena de varias líneas.

Una cadena de varias líneas no puede tener cadenas de línea con puntos consecutivos duplicados.

Multipolygon (Multipolígono)

Un multipolígono válido se considera simple si no contiene puntos consecutivos duplicados.

Geometry collection (Colección de geometría)

Una colección de geometría válida se considera simple si se cumple alguna de las siguientes condiciones:

  • La colección de geometría está vacía; es decir, no contiene geometrías.

  • Todas las geometrías de una colección de geometría no vacía son simples.

Esta definición sigue siendo válida, aunque de manera recursiva, para las colecciones de geometría anidadas.

H3

El H3 es un sistema de cuadrícula de indexación geoespacial jerárquico que permite indexar las coordenadas espaciales con una resolución de metros cuadrados. Los datos indexados se pueden unir en conjuntos de datos dispares y agregarse con diferentes niveles de precisión. El H3 admite una variedad de algoritmos y optimizaciones basados en la cuadrícula, incluidos los vecinos más cercanos, la ruta más corta, el suavizado de gradientes y más. Los índices H3 hacen referencia a celdas que pueden ser hexágonos o pentágonos. El espacio se subdivide jerárquicamente de conformidad con una resolución. H3 admite 16 resoluciones, de 0 a 15, ambas incluidas. 0 es la más basta y 15 la más fina.

Amazon Redshift proporciona las siguientes funciones espaciales de H3: