Acceder a las propiedades de ST_Raster

Complejidad: Intermedio Requisito de datos: Utilizar datos propios Objetivo: Conocer qué funciones devuelven información sobre un valor de ST_Raster y cómo utilizarlas.

El tipo ST_Raster incluye varias funciones que devuelven las propiedades de un valor de ST_Raster. En este tema se incluyen ejemplos del uso de estas funciones. Asegúrese de sustituir los valores adecuados con sus datos en los ejemplos de SQL.

Utilizar la función describe

Use la función describe para obtener una lista de propiedades de valor de ST_Raster. Al ejecutar la función describe sin un argumento se devuelven las propiedades generales del valor de ST_Raster.

Para devolver las propiedades sobre un mapa de color, si el valor ráster tiene uno, incluya el argumento del mapa de color. Si el valor ráster no tiene un mapa de color y se especifica este argumento, se devuelve un error. Si el valor de ST_Raster tiene un mapa de color, la función hasColormap devuelve el valor verdadero (1). Además de las propiedades generales del valor de ST_Raster, al especificar el argumento de mapa de color también se devuelve el índice de mapa de color que se ha aplicado.

Las propiedades de almacenamiento sobre el valor de ST_Raster pueden devolverse mediante la inclusión del argumento de almacenamiento con la función describe. Esto también enumera las propiedades de almacenamiento que ordenó el nivel de pirámide y subordenó la banda de ráster. Las propiedades de almacenamiento incluyen el mínimo, el máximo, el valor medio y la desviación estándar de los valores de píxel dentro de cada banda y nivel de pirámide. Las propiedades de almacenamiento también incluyen una cuenta de la cantidad de total de píxeles, como también el tamaño comprimido, detallado por nivel de pirámide y banda.

Devolver propiedades generales de un valor de ST_Raster

Si usa la función describe de ST_Raster sin especificar un argumento, la consulta devuelve las propiedades generales de cada valor de ST_Raster.

En los siguientes ejemplos se muestra el uso de la declaración SELECT con la función describe para devolver las propiedades generales de los valores de ST_Raster en una tabla llamada urban_areas. Solo se devuelven los registros que cumplen con los criterios de la cláusula WHERE.

Pasos:
  1. Utilice la declaración SELECT apropiada para su sistema de administración de bases de datos (DBMS).

    Oracle

    SELECT t.raster.describe() FROM URBAN_AREA t WHERE NAME = 'ALL_CITIES';
    

    PostgreSQL

    SELECT describe(raster) FROM urban_area WHERE name = 'all_cities';
    

    SQL Server

    SELECT raster.describe(NULL) FROM urban_area WHERE name = 'all_cities';
    

Devolver propiedades de almacenamiento de un valor de ST_Raster

La función describe de ST_Raster con el argumento de almacenamiento devuelve las propiedades generales de cada valor de ST_Raster, junto con las propiedades de almacenamiento.

En los siguientes ejemplos se muestra cómo utilizar la función describe con el argumento de almacenamiento para devolver las propiedades de almacenamiento de ST_Raster para la tabla urban_areas.

Pasos:
  1. Utilice la declaración SELECT apropiada para su DBMS.

    Oracle

    SELECT t.raster.describe('storage') FROM URBAN_AREA t WHERE NAME = 'ALL_CITIES';
    

    PostgreSQL

    SELECT describe(raster,'storage') FROM urban_area WHERE name = 'all_cities';
    

    SQL Server

    SELECT raster.describe('storage') FROM urban_area WHERE name = 'all_cities';
    

Devolver el índice del mapa de color de un ST_Raster

La función describe de ST_Raster con el argumento de mapa de color devuelve las propiedades generales y el índice de color de mapa de cada valor de ST_Raster. Si el valor de ST_Raster no tiene un mapa de color, se devuelve un error cuando se incluye el argumento del mapa de color.

Pasos:
  1. Utilice la declaración SELECT apropiada para su DBMS.

    Oracle

    SELECT t.raster.describe('colormap') FROM URBAN_AREA t WHERE NAME = 'ALL_CITIES';
    

    PostgreSQL

    SELECT describe(raster,'colormap') FROM urban_area WHERE name = 'all_cities';
    

    SQL Server

    SELECT raster.describe('colormap') FROM urban_area WHERE name = 'all_cities';
    

Utilizar la función hasColormap para determinar la presencia o ausencia de un mapa de color

Utilice la función hasColormap para determinar si un valor de ST_Raster tiene o no un índice de mapa de color aplicado. La función hasColormap devuelve un valor verdadero booleano si hay un índice de mapa de color; de lo contrario, devuelve uno falso.

La función hasColormap en la cláusula SELECT devuelve 1 si el valor de ST_Raster tiene un mapa de color y 0 si no lo tiene.

Pasos:
  1. Oracle

    SELECT t.raster.hasColormap(), NAME  FROM URBAN_AREA t;
    

    PostgreSQL

    SELECT hasColormap(raster), name  FROM urban_area;
    

    SQL Server

    SELECT raster.hasColormap(), name  FROM urban_area;
    

Restringir el conjunto de devolución a los registros que tienen o no un mapa de color

La función hasColormap puede agregarse a la cláusula WHERE para devolver los registros que tienen o no un mapa de color.

Pasos:
  1. Utilice la declaración SELECT apropiada para su DBMS.

    Oracle

    SELECT t.raster.describe('colormap') FROM URBAN_AREA t WHERE t.raster.hasColormap(raster) = 1;
    

    PostgreSQL

    SELECT describe(raster,'colormap') FROM urban_area WHERE hasColormap(raster) = 1;
    

    SQL Server

    SELECT raster.describe('colormap') FROM urban_area WHERE raster.hasColormap() = 1;
    

Utilizar la función hasStats para determinar si se calcularon las estadísticas de ST_Raster

La función hasStats devuelve un valor booleano verdadero si se calculó la estadística del valor de ST_Raster.

SugerenciaSugerencia:

para calcular estadísticas, use la función buildStats de ST_Raster. Para quitar las estadísticas de un ST_Raster, utilice la función deleteStats.

Utilice la función hasStats en la cláusula SELECT para determinar si las estadísticas se calcularon basadas en el valor de ST_Raster. Esta función devuelve 1 para los valores de ST_Raster que tienen estadísticas, y 0 para los que no.

Pasos:
  1. Oracle

    SELECT t.raster.hasStats(),NAME FROM URBAN_AREA t;
    

    PostgreSQL

    SELECT hasStats(raster),name FROM urban_area;
    

    SQL Server

    SELECT raster.hasStats(),name FROM urban_area;
    

La función hasStats puede aplicarse a la cláusula WHERE para especificar que la consulta devuelva los registros que tienen o no estadísticas. En estos ejemplos, la cláusula WHERE filtra solo los registros que tienen estadísticas basadas en el valor de ST_Raster. Luego, las estadísticas se quitan de esos valores ráster.

Pasos:
  1. Oracle

    UPDATE URBAN_AREA t SET raster = t.raster.deleteStats() WHERE t.raster.hasStats() = 1;
    

    PostgreSQL

    UPDATE urban_area SET raster = deleteStats(raster) WHERE hasStats(raster) = 1;
    

    SQL Server

    UPDATE urban_area SET raster = raster.deleteStats() WHERE raster.hasStats() = 1;
    

Devolver el tipo de compresión de un ST_Raster

La función getCompressionType devuelve la propiedad de comprensión de un ráster. Los cuatro tipos de compresión posibles son:

La compresión LZ77 se usa en la mayoría de los casos. Sin embargo, se usa la compresión JPEG en datos de 8 bits y tres bandas, o en datos de escalas de grises de alta variabilidad. La compresión JPEG 2000 generalmente se reserva para datos de 16 bits.

En estos ejemplos, el argumento de almacenamiento se especifica con la función describe, y la función getCompressionType se usa en la cláusula WHERE para devolver solo los valores de ST_Raster que tienen compresión JPEG.

Pasos:
  1. Utilice la declaración SELECT apropiada para su DBMS.

    Oracle

    SELECT t.raster.describe('storage') FROM URBAN_AREA t WHERE t.raster.getCompressionType() = 'JPEG';
    

    PostgreSQL

    SELECT describe(raster,'storage') FROM urban_area WHERE getCompressionType(raster) = 'JPEG';
    

    SQL Server

    SELECT raster.describe('storage') FROM urban_area WHERE raster.getCompressionType() = 'JPEG';
    

Determinar el tipo de interpolación de pirámide de un valor de ST_Raster

El tipo de interpolación de pirámide es el algoritmo durante la construcción de la pirámide. La función getInterpolationType del tipo ST_Raster devuelve el tipo de interpolación que se utilizó para crear la pirámide. Si la pirámide no está presente, la función devuelve un valor nulo. Existen tres tipos de interpolación posibles: NEAREST, BILINEAR y BICUBIC.

Generalmente, se usa el tipo de interpolación de pirámide de vecino más próximo, siempre que se no puede utilizarse una bilineal. Se favorece el tipo bilineal porque generalmente proporciona un producto más suave. Sin embargo, debido a que el tipo Bilineal no mantiene el valor de píxeles del nivel anterior, no puede utilizarse en datos con mapa de color y no tiene sentido para datos de píxeles que tienen menos de 8 bits.

Estas consultas devuelven el tipo de interpolación de pirámide de todos los valores de ST_Raster que tienen una pirámide.

Pasos:
  1. Oracle

    SELECT t.raster.getInterpolationType() FROM URBAN_AREA t WHERE t.raster.getPyramidLevel() > 0;
    

    PostgreSQL

    SELECT getInterpolationType(raster) FROM urban_area WHERE getPyramidLevel(raster) > 0;
    

    SQL Server

    SELECT raster.getInterpolationType() FROM urban_area WHERE raster.getPyramidLevel() > 0;
    

Determinar el tipo de intercalación de banda de un valor de ST_Raster

El tipo ST_Raster es compatible con la intercalación de banda secuencial (BSQ) y contigua (BIP).

NotaNota:

ArcObjects y las aplicaciones basadas en ArcObjects, como ArcGIS for Desktop, solo leen datos almacenados como BSQ.

La intercalación BIP se aplica solo a datos de tres bandas y 8 bits que se almacenan como una banda única en secuencia (r0, g0, b0, r1, g1, b1 … rn, gn, bn), mientras que BSQ almacena las bandas por separado en orden secuencial (r0...rn),(g0...gn),(b0...bn).

Las siguientes consultas devuelven el tipo de intercalación para cada valor de ST_Raster en la columna ST_Raster de una tabla.

Pasos:
  1. Oracle

    SELECT t.raster.getInterleaveType() FROM URBAN_AREA t;
    

    PostgreSQL

    SELECT getInterleaveType(raster) FROM urban_area;
    

    SQL Server

    SELECT raster.getInterleaveType() FROM urban_area;
    

Determinar el tipo de píxel de un ST_Raster

La función getPixelType devuelve el tipo de píxel de un valor de ST_Raster. El tipo ST_Raster admite los siguientes tipos de píxeles:

Estas declaraciones de actualización crean pirámides para todos los valores de ST_Raster en la columna ST_Raster, pero solo si el tipo de píxel del valor de ST_Raster es un entero sin signo de 8 bits.

Pasos:
  1. Oracle

    UPDATE URBAN_AREA t SET raster = t.raster.buildPyramid('bilinear') WHERE t.raster.getPixelType() = 'UINT8';
    

    PostgreSQL

    UPDATE urban_area SET raster = buildPyramid(raster,'bilinear') WHERE getPixelType(raster) = 'UINT8';
    

    SQL Server

    UPDATE urban_area SET raster = raster.buildPyramid('bilinear') WHERE raster.getPixelType() = 'UINT8';
    

Temas relacionados

9/11/2013