SlideShare una empresa de Scribd logo
1 de 13
8 Consulta de Datos
Espaciales
OBJETIVOS
•Explicar el modelo de consulta de Oracle Spatial
•Describir y comparar los operadores espaciales y funciones
•Describir las relaciones topológicas utilizadas por los operadores espaciales y funciones
•Utilizar SDO_FILTER, SDO_RELATE, y EL operador SDO_ <RELATIONSHIP>
•Diferenciar entre el operador SDO_RELATE y la función SDO_GEOM.RELATE
Algunos ejemplos de las consultas típicas de los datos espaciales:
¿Cuál de los millones de caminos en los EE.UU. tienen cierta relación con el estado de
Texas?
¿Que condados están dentro del estado de New Hampshire?
¿Cuál es el total de la población en una zona rectangular de interés?
¿Qué interestatales interactúan con el Condado de Passaic?
¿Qué tipo de relaciones topológica tiene el estado de Nueva Jersey con sus condados?
1 EJEMPLOS DE CONSULTAS ESPACIALES
2 FILTROS PRIMARIOS Y SECUNDARIOS
El filtro primario compara aproximaciones de geometrías, por lo que el resultado no es
exacto.
Las optimizaciones del Interior, se aplican a los candidatos que se pone.
Las comparaciones de geometría son hechas sólo cuando sea necesario.
3 MODELO DE CONSULTA OPTIMIZADA
4 OPERADORES ESPACIALES
Usar un índice espacial para ofrecer un rendimiento óptimo
Requieren un índice espacial la primera geometría especificada en el operador
Debe ser utilizado en la cláusula WHERE de una consulta
Incluye:
SDO_FILTER:
Realiza sólo un filtro primario
SDO_RELATE y SDO_ <RELATIONSHIP>
Realiza un filtro primario y secundario
5 PLANTILLA DE SINTAXIS DE OPERADORES ESPACIALES
SDO_<operator_name>(
<geometry-1>,
<geometry-2> ) = 'TRUE'
Los operadores espaciales siguen una plantilla para su sintaxis.
<geometry-1> es la columna del tipo de SDO_GEOMETRY que se busca. La columna
debe ser espacialmente indexada.
<geometry-2> es la ventana de consulta.
Con los operadores espaciales, especifique siempre TRUE en mayúsculas. No
especifique <> 'false' o = 'true'.
6 FUNCIONES Y PROCEDIMIENTOS ESPACIALES
•No utilice los índices espaciales
•Puede ser utilizado en pequeñas tablas que espacialmente no son indexadas.
•Puede ser utilizado en la lista SELECT o la cláusula WHERE
•Debe estar en el mismo sistema de coordenadas si se requieren dos geometrías
•Puede ser aplicado en el conjunto de resultados de un operador espacial
•Función espacial discutido en esta lección:
SDO_GEOM.RELATE: Para determinar la relación entre dos geometrías sin necesidad
de utilizar un índice espacial
7 OPERADOR SDO_FILTER
SDO_FILTER ( <geometry-1>,<geometry-2> ) = 'TRUE'
SDO_FILTER:
•Sólo lleva a cabo la operación filtro primario
•Utiliza el índice espacial para identificar el conjunto de objetos espaciales potencialmente
interactúan con una ventana de consulta
•Debe ser utilizado como una expresión en la cláusula WHERE
Evalúa como True para los pares de aproximación de geometría que actúan recíprocamente
<geometry-1>: Es la búsqueda de la columna
<geometry-2>: Es la ventana de consulta
Buscar todos los condados que interactúan con una zona rectangular. El resultado es aproximado.
Conocer todos los municipios cuya aproximaciones interactúan con un área
rectangular:
SELECT c.county, c.totpop
FROM proj_counties c
WHERE sdo_filter (
c.geom,
sdo_geometry (2003, 32775, null,
sdo_elem_info_array (1,1003,3),
sdo_ordinate_array (1720300,1805461,
1820000, 2210000))
) = 'TRUE';
Nota: Todos los operadores espaciales retornar true o false. Al escribir las consultas
espaciales, siempre prueba con = 'TRUE' nunca, el uso <> 'FALSE' o = 'true'.
8 RELACIONES ESPACIALES CON FILTROS SECUNDARIOS
Para determinar la relación espacial entre dos geometrías, aplicar un filtro secundario.
Las relaciones espaciales se basan principalmente en la topología y la distancia.
Cada objeto espacial tiene un límite, un exterior y un interior.
9 RELACIONES TOPOLÓGICAS ESPACIALES
ANYINTERACT:
Devuelve TRUE si las geometrías no son disjuntas
Es una máscara óptima, ya que no tiene que determinar la relación entre geometrías
Sólo determina que las geometrías no son disjuntas
10 OPERADOR SDO_RELATE
SDO_RELATE
( <geometry-1>,
<geometry-2>,
'MASK=<mask>'
) = 'TRUE'
•Realiza tanto filtros primarios como secundarios procesando una consulta
•Utiliza el filtro secundario para garantizar que que sólo los objetos de candidato
que interactúan recíprocamente son seleccionados
•Evalúa como True para las geometrías que tienen la relación topológica
especificada por <mask>
<geometry-1> es la capa que desea buscar.
Debe ser una columna de una tabla
Debe ser del tipo SDO_GEOMETRY
Deben ser indexados
<geometry-2> es la ventana de consulta.
Es una variable o columna de una tabla
Debe ser del tipo SDO_GEOMETRY
<mask> identifica la relación espacial de la prueba.
Algunos valores de palabra clave de máscara válidos son: CONTAINS,
COVERS, ANYINTERACT, ON, TOUCH
Múltiples máscaras son combinadas así: 'INSIDE+COVEREDBY'
Encontrar todos los condados que INSIDE+COVEREDBY del estado de New Hampshire
SELECT c.county, c.state_abrv
FROM geod_counties c,
geod_states s
WHERE s.state = 'New Hampshire'
AND sdo_relate (c.geom,
s.geom,
'mask=INSIDE+COVEREDBY')
='TRUE';
Nota: Para un rendimiento óptimo, crear un índice no espacial en GEOD_STATES
(estado).
Encontrar todos los condados vecinos al condado de Passaic en Nueva
Jersey
SELECT c1.county, c1.state_abrv
FROM geod_counties c1,
geod_counties c2
WHERE c2.state = 'New Jersey'
AND c2.county = 'Passaic'
AND sdo_relate (c1.geom,
c2.geom,
'mask=TOUCH')='TRUE';
Ejemplo ANYINTERACT de: SDO_RELATE
Buscar todas las ciudades en una zona rectangular:
SELECT c.city, c.pop90
FROM geod_cities c
WHERE sdo_relate (
c.location,
sdo_geometry (2003, 8307, null,
sdo_elem_info_array (1,1003,3),
sdo_ordinate_array (-109,37,-102,40)),
'mask=ANYINTERACT') ='TRUE';
Para las consultas de punto-en-polígono, use la máscara ANYINTERACT si
no le importa devolver los puntos que caen en la frontera;
ANYINTERACT es una operación SDO_RELATE muy rápida.
Debido a GEOD_CITIES contiene sólo datos de puntos, para el
funcionamiento óptimo, el índice debería haber sido creado con
LAYER_GTYPE = PUNTO.
11 RECTÁNGULO OPTIMIZADO GEODÉSICO
•Rectángulos optimizados geodésicos pueden ser representados internamente como un
MultiPolygon.
•El rectángulo R está dentro del primer polígono, no está dentro del segundo
MultiPolygon.
12 USO DE SDO_RELATE CON PL/SQL
Encuentre el total de la población en una zona rectangular:
set serveroutput on;
DECLARE
rectangle sdo_geometry;
total_population number;
BEGIN
rectangle := sdo_geometry (2003, 8307, null,
sdo_elem_info_array (1,1003,3),
sdo_ordinate_array (-109,37,-102,40));
SELECT sum(c.totpop) into total_population
FROM geod_counties c
WHERE sdo_relate (c.geom, rectangle,
'mask=ANYINTERACT') = 'TRUE';
dbms_output.put_line('Population = '||
total_population||'.');
END;
/
13 USO DEL OPTIMIZADOR DE PISTA ORDERED
•Para un rendimiento óptimo, cuando la ventana de consulta proviene de una tabla,
utilice el /* +ordered */ sugerencia de optimizador.
•La pista ORDERED instruye al optimizador para usar índices en tablas en el orden que
se enumeran en la cláusula FROM.
•Lista de la tabla de la primera ventana de la consulta en la cláusula FROM.
•Esto permite a Oracle Optimizer para encontrar la ventana de consulta, y luego buscar
la capa espacial.
Buscar todas las carreteras interestatales que interactúan con un condado:
14 OPERADORES DE RELACIÓN SIMPLIFICADA
Cada valor de máscara de SDO_RELATE tiene su correspondiente operador de
relación simplificada.
El nombre de operador es de la forma SDO _ <la RELACIÓN> donde <la
RELACIÓN> puede ser ANYINTERACT, DENTRO, CUBIERTAS, SE
SUPERPONE, SOBRE, COVEREDBY, etcétera.
<geometry1>: columna de búsqueda
<geometry2>: ventana de consulta
Buscar todos los Condados al rededor del condado Passaic en New
Jersey:
Anteriormente:
15 CONSULTA PARA OBTENER GEOMETRÍAS DISJUNTAS
SDO_<RELATIONSHIP> (<geometry1>, <geometry2>) = 'TRUE'
SELECT /*+ ordered */ a.county
FROM geod_counties b,
geod_counties a
WHERE b.county = 'Passaic'
AND b.state = 'New Jersey'
AND SDO_TOUCH(a.geom,b.geom) = 'TRUE';
. . .
AND SDO_RELATE(a.geom,b.geom,
'MASK=TOUCH') = 'TRUE';
•No hay un operador independiente o relación de máscara para obtener geometrías
disjuntas.
•Para obtener geometrías disjuntas, utiliza la lógica de la siguiente consulta:
•De todas las geometrías, menos las geometrías que tiene interacción.
•Geometrías que no interactúan o son disjuntas se devuelven.
SELECT city, state_abrv
FROM geod_cities
MINUS
SELECT /*+ ordered */ c.city, c.state_abrv
FROM geod_states s, geod_cities c
WHERE sdo_anyinteract(c.location,s.geom) = 'TRUE'
AND s.state_abrv='CA';
16 TRANSFORMACIONES DE SISTEMA DE COORDENADA
IMPLÍCITAS
En un operador espacial, la geometría de la ventana de consulta puede ser diferente
del sistema de coordenadas de la capa de la geometría que se busca.
La ventana de consulta, se transforma automáticamente al sistema de coordenadas de
la capa
Buscar todos los condados en el estado de New Hampshire.
El estado de New Hampshire es proyectada en un sistema de coordenadas.
Los condados están en un sistema de coordenadas geodésicas.
s.geom implícitamente transformado al sistema de coordenadas de la capa de c.geom.
SELECT /*+ ordered */ c.county, c.state_abrv
FROM proj_state s,
geod_counties c
WHERE s.state = 'New Hampshire'
AND sdo_inside (c.geom,s.geom)='TRUE';
17 Función SDO_GEOM.RELATE
SDO_GEOM.RELATE
( <geometry-1>, '<mask>', <geometry-2>, <tolerance> )
= '<relationship>'
Se examinan dos objetos de la geometría para determinar su relación espacial
Realiza una consulta exacta (filtro secundario)
Devuelve verdadero o falso para una máscara de ANYINTERACT
Devuelve la relación de igualdad si se utiliza cualquier otra máscara, devuelve FALSE si
la relación especificada en la máscara no existe entre la geometría
Determinar la relación del estado de Nueva Jersey a sus condados:
La consulta devuelve:
SELECT c.county,
sdo_geom.relate (s.geom,'determine',c.geom, 0.5)
relationship
FROM geod_states s,
geod_counties c
WHERE s.state = 'New Jersey'
AND s.state = c.state;
COUNTY RELATIONSHIP
------------------------------- --------------
Atlantic COVERS
Cape May COVERS
Cumberland COVERS
Essex CONTAINS
Buscar todos los condados alrededor de Nueva Jersey:.
La función no aprovecha un índice espacial.
Utilice SDO_RELATE (o cualquiera de los operadores SDO_ <RELATIONSHIP>) en su lugar.
SELECT c.county, c.state
FROM geod_states s,
geod_counties c
WHERE s.state = 'New Jersey'
AND sdo_geom.relate(c.geom,'touch',s.geom, 0.5)
='TOUCH';
18 ¿SDO_RELATE o SDO_GEOM.RELATE?
Utilice SDO_RELATE:
En la mayoría de los casos, ya que un índice espacial es más selectivo que cualquier otro
índice
Utilice SDO_GEOM.RELATE:
Cuando un índice no espacial es más selectivo que el índice espacial
Comparando solamente una geometría
Considere el siguiente ejemplo:
Datos: La tabla de US_IMAGERY tiene 10 millones de imágenes de satélite.
El índice no espacial sobre el porcentaje CLOUD_COVER
Índice de la longitud de onda no espacial
Índice espacial en GEOM, que es la medida de cada imagen
Consulta: Encuentre todas las imágenes en los Estados Unidos con el porcentaje
CLOUD_COVER = 0 (el día muy claro) y la WAVELENGTH = 400.
¿Qué pasa si la combinación de CLOUD_COVER y predicados WAVELENGTH son mucho
más selectivas que los predicado espaciales?
El predicado espacial devuelve solo cinco millones filas.
Predicados no espacial sola devuelven 15 filas.
Respuesta: Utilice SDO_GEOM.RELATE.
SELECT i.image_id
FROM us_areas a,
us_images i
WHERE i.cloud_cover = 0
AND i.wavelength = 400
AND a.area = 'Eastern US'
AND sdo_geom.relate(i.geom, 'anyinteract', a.geom, 0.5)
='TRUE';

Más contenido relacionado

Destacado

Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6Jorge Ulises
 
Oracle Spatial de la A a la Z - Unidad 3
Oracle Spatial de la A a la Z - Unidad 3Oracle Spatial de la A a la Z - Unidad 3
Oracle Spatial de la A a la Z - Unidad 3Jorge Ulises
 
Oracle Spatial de la A a la Z - Unidad 7
Oracle Spatial de la A a la Z - Unidad 7Oracle Spatial de la A a la Z - Unidad 7
Oracle Spatial de la A a la Z - Unidad 7Jorge Ulises
 
Oracle Spatial de la A a la Z - Unidad 2
Oracle Spatial de la A a la Z - Unidad 2Oracle Spatial de la A a la Z - Unidad 2
Oracle Spatial de la A a la Z - Unidad 2Jorge Ulises
 
Oracle Spatial de la A a la Z - Unidad 10
Oracle Spatial de la A a la Z - Unidad 10Oracle Spatial de la A a la Z - Unidad 10
Oracle Spatial de la A a la Z - Unidad 10Jorge Ulises
 
Oracle Spatial de la A a la Z - Unidad 4
Oracle Spatial de la A a la Z - Unidad 4Oracle Spatial de la A a la Z - Unidad 4
Oracle Spatial de la A a la Z - Unidad 4Jorge Ulises
 
Android de la A a la Z - Unidad 9
Android de la A a la Z - Unidad 9Android de la A a la Z - Unidad 9
Android de la A a la Z - Unidad 9Jorge Ulises
 
Android de la A a la Z - Introducción
Android de la A a la Z - IntroducciónAndroid de la A a la Z - Introducción
Android de la A a la Z - IntroducciónJorge Ulises
 
Administración de base de datos oracle - sesion 11
Administración de base de datos oracle  -  sesion 11Administración de base de datos oracle  -  sesion 11
Administración de base de datos oracle - sesion 11Sefira111
 
Oracle spatial de la A a la Z - INTRO
Oracle spatial de la A a la Z - INTROOracle spatial de la A a la Z - INTRO
Oracle spatial de la A a la Z - INTROJorge Ulises
 
Analisis geografico con oracle
Analisis geografico con oracleAnalisis geografico con oracle
Analisis geografico con oraclewalteromero
 
Manual completo-oracle-español-spanish-by-silex
Manual completo-oracle-español-spanish-by-silexManual completo-oracle-español-spanish-by-silex
Manual completo-oracle-español-spanish-by-silexAngel Lucas
 
Introdución a PostGis
Introdución a PostGisIntrodución a PostGis
Introdución a PostGisMarco Carranza
 
Intro To PostGIS
Intro To PostGISIntro To PostGIS
Intro To PostGISmleslie
 
Introducción a base de datos Oracle
Introducción a base de datos OracleIntroducción a base de datos Oracle
Introducción a base de datos Oraclepajaro5
 
Introducción a SQL sobre Oracle
Introducción a SQL sobre OracleIntroducción a SQL sobre Oracle
Introducción a SQL sobre OracleRaúl Galíndez
 

Destacado (18)

Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6
 
Oracle Spatial de la A a la Z - Unidad 3
Oracle Spatial de la A a la Z - Unidad 3Oracle Spatial de la A a la Z - Unidad 3
Oracle Spatial de la A a la Z - Unidad 3
 
Oracle Spatial de la A a la Z - Unidad 7
Oracle Spatial de la A a la Z - Unidad 7Oracle Spatial de la A a la Z - Unidad 7
Oracle Spatial de la A a la Z - Unidad 7
 
Oracle Spatial de la A a la Z - Unidad 2
Oracle Spatial de la A a la Z - Unidad 2Oracle Spatial de la A a la Z - Unidad 2
Oracle Spatial de la A a la Z - Unidad 2
 
Oracle Spatial de la A a la Z - Unidad 10
Oracle Spatial de la A a la Z - Unidad 10Oracle Spatial de la A a la Z - Unidad 10
Oracle Spatial de la A a la Z - Unidad 10
 
Oracle Spatial de la A a la Z - Unidad 4
Oracle Spatial de la A a la Z - Unidad 4Oracle Spatial de la A a la Z - Unidad 4
Oracle Spatial de la A a la Z - Unidad 4
 
Android de la A a la Z - Unidad 9
Android de la A a la Z - Unidad 9Android de la A a la Z - Unidad 9
Android de la A a la Z - Unidad 9
 
Oracle Spatial de la A a la Z - JUGM 2010
Oracle Spatial de la A a la Z - JUGM 2010Oracle Spatial de la A a la Z - JUGM 2010
Oracle Spatial de la A a la Z - JUGM 2010
 
Android de la A a la Z - Introducción
Android de la A a la Z - IntroducciónAndroid de la A a la Z - Introducción
Android de la A a la Z - Introducción
 
Administración de base de datos oracle - sesion 11
Administración de base de datos oracle  -  sesion 11Administración de base de datos oracle  -  sesion 11
Administración de base de datos oracle - sesion 11
 
Oracle spatial de la A a la Z - INTRO
Oracle spatial de la A a la Z - INTROOracle spatial de la A a la Z - INTRO
Oracle spatial de la A a la Z - INTRO
 
Analisis geografico con oracle
Analisis geografico con oracleAnalisis geografico con oracle
Analisis geografico con oracle
 
Manual completo-oracle-español-spanish-by-silex
Manual completo-oracle-español-spanish-by-silexManual completo-oracle-español-spanish-by-silex
Manual completo-oracle-español-spanish-by-silex
 
Introdución a PostGis
Introdución a PostGisIntrodución a PostGis
Introdución a PostGis
 
Intro To PostGIS
Intro To PostGISIntro To PostGIS
Intro To PostGIS
 
Introducción a base de datos Oracle
Introducción a base de datos OracleIntroducción a base de datos Oracle
Introducción a base de datos Oracle
 
Introducción a SQL sobre Oracle
Introducción a SQL sobre OracleIntroducción a SQL sobre Oracle
Introducción a SQL sobre Oracle
 
Base de Dato Oracle
Base de Dato OracleBase de Dato Oracle
Base de Dato Oracle
 

Similar a Consulta de Datos Espaciales con Oracle Spatial

Similar a Consulta de Datos Espaciales con Oracle Spatial (7)

Sql1
Sql1Sql1
Sql1
 
Informe Práctica 4
Informe Práctica 4Informe Práctica 4
Informe Práctica 4
 
Análisis estadístico de acumulación de tolerancias.
Análisis estadístico de acumulación de tolerancias.Análisis estadístico de acumulación de tolerancias.
Análisis estadístico de acumulación de tolerancias.
 
Presentación result set
Presentación result setPresentación result set
Presentación result set
 
Fundamentos sql
Fundamentos sqlFundamentos sql
Fundamentos sql
 
Practica 4
Practica 4Practica 4
Practica 4
 
Sentencia select
Sentencia selectSentencia select
Sentencia select
 

Más de Jorge Ulises

Android de la A a la Z - Unidad 8
Android de la A a la Z - Unidad 8Android de la A a la Z - Unidad 8
Android de la A a la Z - Unidad 8Jorge Ulises
 
Android de la A a la Z - Unidad 7
Android de la A a la Z - Unidad 7Android de la A a la Z - Unidad 7
Android de la A a la Z - Unidad 7Jorge Ulises
 
Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6Jorge Ulises
 
Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5Jorge Ulises
 
Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3Jorge Ulises
 
Android de la A a la Z - Unidad 2
Android de la A a la Z - Unidad 2Android de la A a la Z - Unidad 2
Android de la A a la Z - Unidad 2Jorge Ulises
 
Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Jorge Ulises
 
Android de la A a la Z - Unidad 11
Android de la A a la Z - Unidad 11Android de la A a la Z - Unidad 11
Android de la A a la Z - Unidad 11Jorge Ulises
 

Más de Jorge Ulises (8)

Android de la A a la Z - Unidad 8
Android de la A a la Z - Unidad 8Android de la A a la Z - Unidad 8
Android de la A a la Z - Unidad 8
 
Android de la A a la Z - Unidad 7
Android de la A a la Z - Unidad 7Android de la A a la Z - Unidad 7
Android de la A a la Z - Unidad 7
 
Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6
 
Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5
 
Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3
 
Android de la A a la Z - Unidad 2
Android de la A a la Z - Unidad 2Android de la A a la Z - Unidad 2
Android de la A a la Z - Unidad 2
 
Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1
 
Android de la A a la Z - Unidad 11
Android de la A a la Z - Unidad 11Android de la A a la Z - Unidad 11
Android de la A a la Z - Unidad 11
 

Último

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 

Último (19)

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Consulta de Datos Espaciales con Oracle Spatial

  • 1. 8 Consulta de Datos Espaciales OBJETIVOS •Explicar el modelo de consulta de Oracle Spatial •Describir y comparar los operadores espaciales y funciones •Describir las relaciones topológicas utilizadas por los operadores espaciales y funciones •Utilizar SDO_FILTER, SDO_RELATE, y EL operador SDO_ <RELATIONSHIP> •Diferenciar entre el operador SDO_RELATE y la función SDO_GEOM.RELATE Algunos ejemplos de las consultas típicas de los datos espaciales: ¿Cuál de los millones de caminos en los EE.UU. tienen cierta relación con el estado de Texas? ¿Que condados están dentro del estado de New Hampshire? ¿Cuál es el total de la población en una zona rectangular de interés? ¿Qué interestatales interactúan con el Condado de Passaic? ¿Qué tipo de relaciones topológica tiene el estado de Nueva Jersey con sus condados? 1 EJEMPLOS DE CONSULTAS ESPACIALES
  • 2. 2 FILTROS PRIMARIOS Y SECUNDARIOS El filtro primario compara aproximaciones de geometrías, por lo que el resultado no es exacto. Las optimizaciones del Interior, se aplican a los candidatos que se pone. Las comparaciones de geometría son hechas sólo cuando sea necesario. 3 MODELO DE CONSULTA OPTIMIZADA
  • 3. 4 OPERADORES ESPACIALES Usar un índice espacial para ofrecer un rendimiento óptimo Requieren un índice espacial la primera geometría especificada en el operador Debe ser utilizado en la cláusula WHERE de una consulta Incluye: SDO_FILTER: Realiza sólo un filtro primario SDO_RELATE y SDO_ <RELATIONSHIP> Realiza un filtro primario y secundario 5 PLANTILLA DE SINTAXIS DE OPERADORES ESPACIALES SDO_<operator_name>( <geometry-1>, <geometry-2> ) = 'TRUE' Los operadores espaciales siguen una plantilla para su sintaxis. <geometry-1> es la columna del tipo de SDO_GEOMETRY que se busca. La columna debe ser espacialmente indexada. <geometry-2> es la ventana de consulta. Con los operadores espaciales, especifique siempre TRUE en mayúsculas. No especifique <> 'false' o = 'true'. 6 FUNCIONES Y PROCEDIMIENTOS ESPACIALES •No utilice los índices espaciales •Puede ser utilizado en pequeñas tablas que espacialmente no son indexadas. •Puede ser utilizado en la lista SELECT o la cláusula WHERE •Debe estar en el mismo sistema de coordenadas si se requieren dos geometrías •Puede ser aplicado en el conjunto de resultados de un operador espacial •Función espacial discutido en esta lección: SDO_GEOM.RELATE: Para determinar la relación entre dos geometrías sin necesidad de utilizar un índice espacial 7 OPERADOR SDO_FILTER SDO_FILTER ( <geometry-1>,<geometry-2> ) = 'TRUE'
  • 4. SDO_FILTER: •Sólo lleva a cabo la operación filtro primario •Utiliza el índice espacial para identificar el conjunto de objetos espaciales potencialmente interactúan con una ventana de consulta •Debe ser utilizado como una expresión en la cláusula WHERE Evalúa como True para los pares de aproximación de geometría que actúan recíprocamente <geometry-1>: Es la búsqueda de la columna <geometry-2>: Es la ventana de consulta Buscar todos los condados que interactúan con una zona rectangular. El resultado es aproximado. Conocer todos los municipios cuya aproximaciones interactúan con un área rectangular: SELECT c.county, c.totpop FROM proj_counties c WHERE sdo_filter ( c.geom, sdo_geometry (2003, 32775, null, sdo_elem_info_array (1,1003,3), sdo_ordinate_array (1720300,1805461, 1820000, 2210000)) ) = 'TRUE'; Nota: Todos los operadores espaciales retornar true o false. Al escribir las consultas espaciales, siempre prueba con = 'TRUE' nunca, el uso <> 'FALSE' o = 'true'.
  • 5. 8 RELACIONES ESPACIALES CON FILTROS SECUNDARIOS Para determinar la relación espacial entre dos geometrías, aplicar un filtro secundario. Las relaciones espaciales se basan principalmente en la topología y la distancia. Cada objeto espacial tiene un límite, un exterior y un interior. 9 RELACIONES TOPOLÓGICAS ESPACIALES
  • 6. ANYINTERACT: Devuelve TRUE si las geometrías no son disjuntas Es una máscara óptima, ya que no tiene que determinar la relación entre geometrías Sólo determina que las geometrías no son disjuntas 10 OPERADOR SDO_RELATE SDO_RELATE ( <geometry-1>, <geometry-2>, 'MASK=<mask>' ) = 'TRUE' •Realiza tanto filtros primarios como secundarios procesando una consulta •Utiliza el filtro secundario para garantizar que que sólo los objetos de candidato que interactúan recíprocamente son seleccionados •Evalúa como True para las geometrías que tienen la relación topológica especificada por <mask> <geometry-1> es la capa que desea buscar. Debe ser una columna de una tabla Debe ser del tipo SDO_GEOMETRY Deben ser indexados <geometry-2> es la ventana de consulta. Es una variable o columna de una tabla Debe ser del tipo SDO_GEOMETRY <mask> identifica la relación espacial de la prueba. Algunos valores de palabra clave de máscara válidos son: CONTAINS, COVERS, ANYINTERACT, ON, TOUCH Múltiples máscaras son combinadas así: 'INSIDE+COVEREDBY' Encontrar todos los condados que INSIDE+COVEREDBY del estado de New Hampshire
  • 7. SELECT c.county, c.state_abrv FROM geod_counties c, geod_states s WHERE s.state = 'New Hampshire' AND sdo_relate (c.geom, s.geom, 'mask=INSIDE+COVEREDBY') ='TRUE'; Nota: Para un rendimiento óptimo, crear un índice no espacial en GEOD_STATES (estado). Encontrar todos los condados vecinos al condado de Passaic en Nueva Jersey SELECT c1.county, c1.state_abrv FROM geod_counties c1, geod_counties c2 WHERE c2.state = 'New Jersey' AND c2.county = 'Passaic' AND sdo_relate (c1.geom, c2.geom, 'mask=TOUCH')='TRUE';
  • 8. Ejemplo ANYINTERACT de: SDO_RELATE Buscar todas las ciudades en una zona rectangular: SELECT c.city, c.pop90 FROM geod_cities c WHERE sdo_relate ( c.location, sdo_geometry (2003, 8307, null, sdo_elem_info_array (1,1003,3), sdo_ordinate_array (-109,37,-102,40)), 'mask=ANYINTERACT') ='TRUE'; Para las consultas de punto-en-polígono, use la máscara ANYINTERACT si no le importa devolver los puntos que caen en la frontera; ANYINTERACT es una operación SDO_RELATE muy rápida. Debido a GEOD_CITIES contiene sólo datos de puntos, para el funcionamiento óptimo, el índice debería haber sido creado con LAYER_GTYPE = PUNTO. 11 RECTÁNGULO OPTIMIZADO GEODÉSICO •Rectángulos optimizados geodésicos pueden ser representados internamente como un MultiPolygon. •El rectángulo R está dentro del primer polígono, no está dentro del segundo MultiPolygon.
  • 9. 12 USO DE SDO_RELATE CON PL/SQL Encuentre el total de la población en una zona rectangular: set serveroutput on; DECLARE rectangle sdo_geometry; total_population number; BEGIN rectangle := sdo_geometry (2003, 8307, null, sdo_elem_info_array (1,1003,3), sdo_ordinate_array (-109,37,-102,40)); SELECT sum(c.totpop) into total_population FROM geod_counties c WHERE sdo_relate (c.geom, rectangle, 'mask=ANYINTERACT') = 'TRUE'; dbms_output.put_line('Population = '|| total_population||'.'); END; / 13 USO DEL OPTIMIZADOR DE PISTA ORDERED •Para un rendimiento óptimo, cuando la ventana de consulta proviene de una tabla, utilice el /* +ordered */ sugerencia de optimizador. •La pista ORDERED instruye al optimizador para usar índices en tablas en el orden que se enumeran en la cláusula FROM. •Lista de la tabla de la primera ventana de la consulta en la cláusula FROM. •Esto permite a Oracle Optimizer para encontrar la ventana de consulta, y luego buscar la capa espacial. Buscar todas las carreteras interestatales que interactúan con un condado:
  • 10. 14 OPERADORES DE RELACIÓN SIMPLIFICADA Cada valor de máscara de SDO_RELATE tiene su correspondiente operador de relación simplificada. El nombre de operador es de la forma SDO _ <la RELACIÓN> donde <la RELACIÓN> puede ser ANYINTERACT, DENTRO, CUBIERTAS, SE SUPERPONE, SOBRE, COVEREDBY, etcétera. <geometry1>: columna de búsqueda <geometry2>: ventana de consulta Buscar todos los Condados al rededor del condado Passaic en New Jersey: Anteriormente: 15 CONSULTA PARA OBTENER GEOMETRÍAS DISJUNTAS SDO_<RELATIONSHIP> (<geometry1>, <geometry2>) = 'TRUE' SELECT /*+ ordered */ a.county FROM geod_counties b, geod_counties a WHERE b.county = 'Passaic' AND b.state = 'New Jersey' AND SDO_TOUCH(a.geom,b.geom) = 'TRUE'; . . . AND SDO_RELATE(a.geom,b.geom, 'MASK=TOUCH') = 'TRUE'; •No hay un operador independiente o relación de máscara para obtener geometrías disjuntas. •Para obtener geometrías disjuntas, utiliza la lógica de la siguiente consulta: •De todas las geometrías, menos las geometrías que tiene interacción. •Geometrías que no interactúan o son disjuntas se devuelven.
  • 11. SELECT city, state_abrv FROM geod_cities MINUS SELECT /*+ ordered */ c.city, c.state_abrv FROM geod_states s, geod_cities c WHERE sdo_anyinteract(c.location,s.geom) = 'TRUE' AND s.state_abrv='CA'; 16 TRANSFORMACIONES DE SISTEMA DE COORDENADA IMPLÍCITAS En un operador espacial, la geometría de la ventana de consulta puede ser diferente del sistema de coordenadas de la capa de la geometría que se busca. La ventana de consulta, se transforma automáticamente al sistema de coordenadas de la capa Buscar todos los condados en el estado de New Hampshire. El estado de New Hampshire es proyectada en un sistema de coordenadas. Los condados están en un sistema de coordenadas geodésicas. s.geom implícitamente transformado al sistema de coordenadas de la capa de c.geom. SELECT /*+ ordered */ c.county, c.state_abrv FROM proj_state s, geod_counties c WHERE s.state = 'New Hampshire' AND sdo_inside (c.geom,s.geom)='TRUE'; 17 Función SDO_GEOM.RELATE SDO_GEOM.RELATE ( <geometry-1>, '<mask>', <geometry-2>, <tolerance> ) = '<relationship>' Se examinan dos objetos de la geometría para determinar su relación espacial Realiza una consulta exacta (filtro secundario) Devuelve verdadero o falso para una máscara de ANYINTERACT Devuelve la relación de igualdad si se utiliza cualquier otra máscara, devuelve FALSE si la relación especificada en la máscara no existe entre la geometría
  • 12. Determinar la relación del estado de Nueva Jersey a sus condados: La consulta devuelve: SELECT c.county, sdo_geom.relate (s.geom,'determine',c.geom, 0.5) relationship FROM geod_states s, geod_counties c WHERE s.state = 'New Jersey' AND s.state = c.state; COUNTY RELATIONSHIP ------------------------------- -------------- Atlantic COVERS Cape May COVERS Cumberland COVERS Essex CONTAINS Buscar todos los condados alrededor de Nueva Jersey:. La función no aprovecha un índice espacial. Utilice SDO_RELATE (o cualquiera de los operadores SDO_ <RELATIONSHIP>) en su lugar. SELECT c.county, c.state FROM geod_states s, geod_counties c WHERE s.state = 'New Jersey' AND sdo_geom.relate(c.geom,'touch',s.geom, 0.5) ='TOUCH'; 18 ¿SDO_RELATE o SDO_GEOM.RELATE? Utilice SDO_RELATE: En la mayoría de los casos, ya que un índice espacial es más selectivo que cualquier otro índice Utilice SDO_GEOM.RELATE: Cuando un índice no espacial es más selectivo que el índice espacial Comparando solamente una geometría
  • 13. Considere el siguiente ejemplo: Datos: La tabla de US_IMAGERY tiene 10 millones de imágenes de satélite. El índice no espacial sobre el porcentaje CLOUD_COVER Índice de la longitud de onda no espacial Índice espacial en GEOM, que es la medida de cada imagen Consulta: Encuentre todas las imágenes en los Estados Unidos con el porcentaje CLOUD_COVER = 0 (el día muy claro) y la WAVELENGTH = 400. ¿Qué pasa si la combinación de CLOUD_COVER y predicados WAVELENGTH son mucho más selectivas que los predicado espaciales? El predicado espacial devuelve solo cinco millones filas. Predicados no espacial sola devuelven 15 filas. Respuesta: Utilice SDO_GEOM.RELATE. SELECT i.image_id FROM us_areas a, us_images i WHERE i.cloud_cover = 0 AND i.wavelength = 400 AND a.area = 'Eastern US' AND sdo_geom.relate(i.geom, 'anyinteract', a.geom, 0.5) ='TRUE';