Acceder a las propiedades de ST_Raster
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 subordenadas 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.
-
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.
-
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.
-
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.
-
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.
-
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.
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.
-
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.
-
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:
- NONE: no se usó ninguna compresión para almacenar los datos.
- LZ77: LZ77 usa una compresión de longitud que no tiene pérdidas y se utiliza mejor en datos de baja variabilidad o donde no se pueden utilizar otros algoritmos de compresión.
- JPEG: JPEG significa Joint Photographic Experts Group, el comité que desarrolló el estándar de compresión. JPEG es un tipo de compresión con pérdida de información. La compresión JPEG solo puede aplicarse a datos de 8 bits que no tienen un índice de mapa de color.
- JP2: este es el tipo de compresión basado en ondículas JPEG 2000. Este tipo de compresión puede aplicarse a datos de 8 y 16 bits.
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.
-
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.
-
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).
ArcObjects y las aplicaciones basadas en ArcObjects, como ArcGIS 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.
-
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:
- 1bit: datos de 1 bit
- 4bit: datos de 4 bits
- uint8: entero de 8 bits sin signo
- int8: entero de 8 bits con signo
- uint16: entero de 16 bits sin signo
- int16: entero de 16 bits con signo
- uint32: entero de 32 bits sin signo
- int32: entero de 32 bits con signo
- float: número de punto flotante y precisión simple
- double: número de punto flotante y precisión doble
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.
-
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';