Sistemas de Informações Geográficas Unidade 5: Análise de Dados Prof. Cláudio Baptista 2010.1 Medidas em SIG O cálculo de comprimentos, perímetros e áreas é uma aplicação comum em SIG Em raster, estas medidas são aproximações, ao invés de valores exatos Ex.: Em Raster, existem mais de uma resposta à pergunta: qual a distância entre A e B? Onde A e B são dois pontos numa linha Uma solução é usar a distância Euclidiana AB2 = AC2 + CB2 Outra solução é usar distância de Manhattan Medidas em SIG B A C Distância Euclidiana B A Distância Manhattan Medidas em SIG Para obter perímetro e área em raster devemos multiplicar o número de células que compõem os limites pela resolução de cada célula do grid. Medidas em SIG Em Vector, as medidas são calculadas usando o teorema de Pitáguras para obter-se a distância Euclidiana. Geometria é usada para calcular perímetros e áreas Estas medidas podem ser armazenadas como atributos de modo que só precisam ser calculadas uma única vez. Consultas espaciais Exemplos de esquemas 1) Unidades admnistrativas Consultas espaciais Exemplos de esquemas 2) Rodovias entre cidades Consultas espaciais Exemplos de esquemas 3) Uso da Terra (Land Use) cada pedaço de terra no mapa represnta um tema: • agricultura • habitação • floresta Consultas espaciais Consultas de referência Tipos Alfanumérico Espacial Interativa Consultas espaciais Consultas de referância Alfa_ADM1: Número de habitantes da cidade de Campina Grande Alfa_AMD2. Lista das cidades do estado da Paraíba Alfa_ADM3. Número de habitantes no Brasil Alfa_Rodovia1: Número de linhas na primeira seção da BR 230 Alfa_Rodovia2: Nome de todas as seções que constituem BR-116. Consultas espaciais Consultas de referância Espac-ADM4. Cidades adjacentes à cidade Cajazeiras num mesmo estado Espac_ADM5. Mostre o estado da Paraíba Espac_ADM6. Cidades maiores do que a maior cidade da Paraíba Espac_Rodov3. Tamanho da rodovia BR-230 Espac_ADM_Rodo1. Mostre as rodovias que passam pelo estado da Paraíba Consultas espaciais Consultas de referência Espac_ADM_UT1. Mostre todas as áreas residenciais na cidade de Recife Espac_ADM_UT2. Faça um overlay dos temas de unidades administrativas e uso da terra INTER_ADM7. Descrição da cidade apontada na tela INTER_ADM8. Cidades que interteptam um dado retângulo na tela Consultas espaciais Consultas de referência INTER_ADM9. Partes de cidades dentro de um dado retângulo na tela INTER_Rodo5. Descrição de uma seção apontada na tela INTER_Rodo6. Descrição da rodovia cuja seção está sendo apontada na tela Relacionamentos Espaciais Disjoint Contain Equal Meet Cover Overlap Relacionamentos Espaciais Vários tipos Topológico: disjoint, overlap, contains (reflexivo inside), meet, equal, cover( reflexivo covered_by) Direcional: left, right, above, below, north, south, east, west, northeast, northwest, southest, southwest Métrico: area, perimeter, length, distance, far, near, buffer Rede: connected, next, previous, shortest_path Conjunto: intersection, union, difference, equals Estendendo Modelo de Dados com TDA Espaciais Conceitos básicos: Com TDA (Tipo Abstrato de Dados) Espaciais, uma objeto espacial, é considerado como uma lista de operações que podemos executar neste independente de sua representação interna. Exemplo: Interseção de dois objetos Modelo Espacial (estrutura de dados) versus Modelo Geográfico (representação de entidades do mundo real Estendendo Modelo de Dados com TDA Espaciais Escolha de tipos apropriados Pontos Polygon lineString lineString complex Polygon set Misturado Estendendo Modelo de Dados com TDA Espaciais Definindo Operações sobre TDA Espaciais O resultado de uma operação espacial pode ser um tipo atômico (integer, real, boolean) ou um dos três tipos espaciais: ponto, linha, polígono Estendendo Modelo de Dados com TDA Espaciais Ex. Interseção entre objetos espaciais A B AB = 2 Polígonos;ou 2 polígonos e 1 linha; ou 2 polígonos, 1 ponto e 1 linha Estendendo Modelo de Dados com TDA Espaciais API do TDA Região: PointInRegion (região, ponto): boolean (testa se um ponto pertence a uma região) Overlaps(região, região):boolean ( testa se duas regiões interceptam Clipping(região, retângulo): região (computa a interseção de uma região e um retângulo retornando uma região (possivelmente vazia)) Intersection(região, regiào): região (retorna a interseção de duas regiões, retorna uma região (possivelmente vazia) Estendendo Modelo de Dados com TDA Espaciais API do TDA Região: Meets (região, região): boolean (testa a adjacência de duas regiões) Area( região) : real (retorna a área da região) União (set{região}) : região (recebe um conjunto de regiões e retorna uma região que representa a união das regiões de entrada. Estendendo Modelo de Dados com TDA Espaciais API do TDA Linha: pointInLine(linha, ponto): boolean (testa a interseção entre a linha e um ponto length(linha):real (computa o comprimento de uma linha) overlapsLinhaRegião(linha, região): boolean (testa a interseção entre uma linha e uma região) Estendendo Modelo de Dados com TDA Espaciais API do TDA Ponto: distance(region, ponto): real (computa a distância entre um ponto e as bordas de uma região) distance(ponto, ponto): real (computa a distância entre dois pontos) Projetando TDA Espaciais Operações Unárias com resultado Boolean. • Testam um objeto espacial com relação a uma propriedade dada. Exemplo teste de conectividade Operações Unárias com resultado escalar • computar uma área, um comprimento, perímetro de um objeto espacial Operações Unárias com resultado Espacial • transformações topológicas (preservam os relacionamentos topológicos) : rotação, translação, mudança de escala, simetria. • Outras operações: buffer, boundary, MBR, centroid Projetando TDA Espaciais Operações Unárias com resultado Boolean. • Testam um objeto espacial com relação a uma propriedade dada. Exemplo teste de conectividade Operações Unárias com resultado escalar • computar uma área, um comprimento, perímetro de um objeto espacial Operações Unárias com resultado Espacial • transformações topológicas (preservam os relacionamentos topológicos) : rotação, translação, mudança de escala, simetria. • Outras operações: buffer, boundary, MBR, centroid Projetando TDA Espaciais Operações Binárias com resultado espacial • operações de conjunto: interseção, união, diferença • Ex. Parte das rodovias dentro do estado da Pb Operações Binárias com resultado Boolean • usados seleção e junção espacial • Predicados topológicos: intersects, contains, adjacent, enclosed_by, windowing • Predicados de direção: acima, Norte • Predicados métricos: distância Projetando TDA Espaciais Operações Binárias com resultado escalar distância entre uma rodovia e uma cidade Algumas observações importantes: • A interseção de dois polígono é um conjunto de poligonos • A interseção de uma linha e uma região retorna vários pontos (não necessariamente uma linha) • A união de dois linestrings (polylines) não é um linestring • A diferença de dois polígonos sem buracos pode ser um polígono com buraco Explorando relacionamentos entre Objetos espaciais Uma definição formal dos relacionamentos espacias se faz necessária para clarificar os vários entendimentos destes relacionamentos entre usuários Enfocaremos relacionamentos topológicos entre dois objetos no plano. Seja b(A) = boundary (borda) do objeto A e i (A) = interior do objeto A Explorando relacionamentos entre Objetos espaciais b(A) b(B) i(A)i(B) b(A)i(B) {} {} {} ~{} {} {} i(A)b(B) Relacionamento {} A disjoint B {} A meets B ~{} {} ~{} ~{} {} ~{} {} {} A equals B A inside B ~{} {} ~{} ~{} ~{} ~{} ~{} ~{} ~{} {} {} ~{} {} ~{} ~{} ~{} B covers A B inside A A covers B A overlaps B Onde: {} representa conjunto vazio e ~{} representa conjunto não-vazio Uso do modelo OR para funcionalidade espacial Usando SGBDOR (Objeto-Relacional) permite usuários não só usar os tipos definidos pelo SGBD como também definir e usar TADs. Criando o BD para aplicação Administrativa Create table Pais ( codigo integer, nome varchar(30), geometria polígono, primary key (codigo)); create table Estado ( codigo integer, nome varchar(30), codPais int, geometria polígono, primary key(codigo), foreign key(codPais) references Pais(codigo)) Uso do modelo OR para funcionalidade espacial Create table Cidade ( codigo integer, nome varchar(30), populacao: int, codEstado int, geometria polígono, primary key (codigo), foreign key(codEstado) references Estado(codigo) ); Obs. Poderiamos ter apenas a geometria em cidades e ai derivaríamos para estado e país, porém é muito custoso computar a geometria de um estado através da união de todos as cidades e assim por diante! E o atributo população que está apenas na cidade? Uso do modelo OR para funcionalidade espacial Aplicação de Rodovias Create table Rodovia ( codigo int, nome varchar(5), tipo varchar(2), primary key(2) ); create table Secao( codigo int, nome varchar(4), númeroLinhas int, cidadeIni varchar(30), cidadeFim varchar(30), geometria line, primary key(codigo), foreign key(cidadeIni) references Cidade, foreign key(cidadeFim) references Cidad create table SeçãoRodovia ( codSecao int, numeroSecao int, codRodovia int, primary key(codSecao, codRodovia), foreign key (codSecao) references Secao(codigo), foreign key(codRodovia) references Rodovia(codigo) ) Uso do modelo OR para funcionalidade espacial Aplicação de Rodovias create table Secao( codigo int, nome varchar(4), númeroLinhas int, cidadeIni varchar(30), cidadeFim varchar(30), geometria line, primary key(codigo), foreign key(cidadeIni) references Cidade, foreign key(cidadeFim) references Cidade); create table cidade ( nome varchar(30), populacao int, geometria poligono, primary key(nome)) Uso do modelo OR para funcionalidade espacial Aplicação Uso da Terra create table UsoTerra ( nomeRegiao varchar(30), tipoUsoTerra varchar(30)m geometria poligono, primary key(nomeRegiao) ); Uso do modelo OR para funcionalidade espacial Consultas : ALFA_ADM1: Número de habitantes do estado da Paraíba select populacao from Estado where nome = ‘Paraiba’ ALFA_ADM2: Liste os nomes das cidades no estado da Paraiba select nome from Estado e, Cidade c where e.codigo = c.codigo and e.nome = ‘Paraiba’ Uso do modelo OR para funcionalidade espacial Consultas : ALFA_ADM3. Número de habitantes do Brasil select sum(c.populacao) from Pais p, Estado e, Cidade c where p.nome = ‘Brasil’ and e.codigo = c.codEstado and p.codigo = e.codPais ALFA_R1: Número de linhas na primeira seção da BR-230 select s.numeroLinhas from RodoviaSecao rs, Rodovia r, Secao s where r.codigo = rs.codRodovia and rs.codSecao = s.codigo and r.nome = ‘BR230’ and rs.numeroSecao = 1 Uso do modelo OR para funcionalidade espacial Consultas : Alfa_R2. Nomes de seções que constituem a BR230 select s.nome from RodoviaSecao rs, Rodovia r, Secao s where r.nome = ‘BR230’ and r.codigo = rs.codRodovia and rs.codSecao = s.codigo ESPAC_ADM4. Cidades adjacentes à cidade de Cajazeiras no mesmo estado select c1.nome from Cidade c1, Cidade c2 where c2.nome = ‘Cajazeiras’ and c1.codEstado = c2.codEstado and Meets (c1.geometria, c2.geometria) Uso do modelo OR para funcionalidade espacial Consultas : ESPAC_ADM5. Mostre o estado da Paraíba select geometria from Estado where nome = ‘Paraiba’ SE a geometria tivesse sido armazenada apenas nas cidades a query anterior ficaria select RegionUnion(c.geometria) from Cidade c, Estado where e.codigo = c.codEstado and e.nome = ‘Paraiba’ Uso do modelo OR para funcionalidade espacial Consultas : ESPAC_ADM6: Cidades maiores do que a maior cidade da Paraíba select nome from Cidade where Area(geometria) > (select max (Area(c.geometria)) from Cidade c, Estado e where e.codigo = c.codEstado and e.nome = ‘Paraiba’) Uso do modelo OR para funcionalidade espacial Consultas : ESPAC_R3. Comprimento da rodovia BR230 select sum(Length(s.geometria)) from Rodovia r, RodoviaSecao rs, Secao s where r.nome = ‘BR230’ and r.codigo = rs.codRodovia and rs.codSecao = s.codigo ESPAC_ADMR1. Todas as rodovias que passam pela Paraíba select distinct r.nome from Estado e, Rodovia r, RodoviaSecao rs, Secao s where e.nome = ‘Paraiba’ and r.codigo = rs.codRodovia and rs.codSecao = s.codigo and Overlaps (s.geometria, e.geometria) Uso do modelo OR para funcionalidade espacial Consultas : ESPAC_ADM_UT1. Mostre todas as áreas residenciais na cidade de Recife select Intersection(u.geometria, c.geometria) from Cidade c, UsoTerra u where c.nome = ‘Recife’ and u.tipoUsoTerra = ‘area residencial’ and Overlaps(u.geometria, c.geometria) ESPAC_ADM_UT2: Overlay de temas de cidades e uso da terra select c.nome, u.tipoUsoTerra, Intersection(c.geometria, u.geometria) from Cidade c, UsoTerra u where Overlaps(c.geometria, u.geometria) Uso do modelo OR para funcionalidade espacial Consultas : INTER_ADM7. Descrição da cidade apontada na tela select nome, populacao from Cidade where PointInRegion(geometria, @point) INTER_ADM8. Cidades que interceptam um dado retângulo na tela select nome from Cidade where OverlapsRect(geometria, @rectangle) Uso do modelo OR para funcionalidade espacial Consultas : INTER_ADM9. Partes de cidade que estão dentro de um dado retângulo na tela select Clipping(geometria, @rectangle) from Cidade where Overlaps(geometria, @rectangle) INTER_R5. Descrição da seção apontada na tela select nome, numeroLinhas from Secao where PointInLine(geometria, @point) Uso do modelo OR para funcionalidade espacial Consultas : INTER_R6. Descrição das rodovias cuja seção está apontada na tela select r.nome, r.tipo from RodoviaSecao rs, Rodovia r, Secao s where rs.codRodovia = r.codigo and rs.codSecao = s.codigo and PointInLine(s.geometria, @ point) Análise: Básica Operações espaciais Vector determinação de centróide medidas espaciais análise de buffer agregação espacial overlays e joins espaciais Raster análise de vizinhança modelagem Raster Operações não espaciais seleção de registros • tabular via SQL • ‘information clicking’ com cursor agregação de registros análise estatistica joins de tabelas Análise: Avançada & Especializada Avançada análise de superfície análise de proximidade nearest neighbor layer distance matrix layer análise de rede roteamento • shortest path (2 points) • travelling salesman (n points) Especializada Processamento e classificação de Imagem de Sensoriamento Remoto modelagem raster modelagem de superfícies 3-D estatísticas espaciais funcionalidade especializada modelo de transportes modelo de uso da terra modelo hidrológico etc. Operações Espaciais: Centróide ou Mean Center Ponto de balanço para distribuição espacial n X n i X i 1 i ,Y i 1 n n representação de ponto para um polígono--análogo à média pode ser ponderado pela ‘magnitude’ de cada ponto (análogo à média ponderada) usado para Y sumarizar mudança ao longo do tempo numa distribuição (ex. Centróide da população do Brasil a cada 10 anos) colocar labels em polígonos centroide fora do polígono Note: muitas aplicações ArcView calculam apenas um “psuedo” centroid: as coordenadas do MBR do polígono! Operações Espaciais: Medidas Espaciais Comentários: possíveis métricas de distância: Medidas Espaciais: medidas de distância entre pontos de ponto ou raster para um polígono entre centroides de polígonos área de um polígono perímetro de um polígono forma (shape) de um polígono cálculo de volume ex. para reservatórios determinação de direção ex. nuvens de fumaça linha reta/linha aérea métrica de blocos de cidade (manhattan metric) distância através de rede forma (shape) é medido por: = 1.0 para círculo perimetro = 1.13 para quadrado area x 3.54 = número grande para polígono irregular Operações Espaciais: buffer zones região dentro de distância ‘x’ units buffer em qualquer objeto: ponto, linha ou polígono Implementado em Arcview 3.2 com Theme/Create buffers em ArcGIS 8.1 com Tools/Buffer Wizard point buffers line buffer polygon buffer Exemplos buffer de 200 metros ao redor de uma propriedade buffer de 100 ft de um rio limitando desenvolvimento buffer de zona de 3 km dos limites de uma cidade mostrando a sua área distrital usado para definir (ou excluir) áreas como opção para futura análise Operações Espaciais:agregação espacial districting/redistricting agrupar polígonos contíguos em distritos polígonos originais preservados Regionalização (ou dissolving) agrupar poligonos em regiões contíguas bordas dos polígonos originais dissolvidas Critérios de agrupamento podem ser: classificação agrupar poligonos em regiões não-contíguas bordas originais usualmente dissolvidas formal (baseados em caracteristicas dos objetos) ex. vizinhança de cidades funcional (baseado em links): ex. zonas de comutação Pode ser: contíguo não-contíguo Bordas originais de polígonos podem ser:: preservadas removidas (dissolving) Exemplos: zonas de escola a zonas universitárias (funcional districting) blocos de cidade em distritos legislativos (formal districting) criação de distritos de polícia (funct. reg.) criação de mapa de vizinhança de cidade(form. reg.) agrupando dados de censo em segmentos de marketing --yuppies, nerds, etc (class.) Districting: elementary school attendance zones grouped to form junior high zones. Regionalization: census tracts grouped into neighborhoods Classification: cities categorized as central city or suburbs soils classified as igneous, sedimentary, metamorphic Operações Espaciais Spatial Joins e Overlays Exemplos atribuir amostras ambientais selecionar features numa camada, ou (pontos) para o censo para criar uma nova camada estimar exposição per capita usado para integrar dados com diferentes (ponto em poligono) propriedades espaciais (ponto v. poligono) identificar terrenos atravessados pode fazer overlay de polígonos em: por uma rodovia para estudo de pontos (ponto em poligono) vizinhança linhas (linha em poligono) (poligono em linhas) outros poligonos (poligono em poligono) integrar dados de censo com diferentes possíveis combinações de dados de casas para vender lógica Booleana (poligono em poligono) • Union (A or B) Join do tema cidades capital com • Intersection (A and B) • A and not B ; not (A and B) tema todas cidades para calcular pode fazer overlay de pontos em: a distância de cidade para a Pontos, que encontra e calcula a distância capital de estado mais próxima ao ponto mais próximo em outro tema (ponto em ponto) combina duas (ou mais) camadas para: Linha, que calcula a distância para a linha mais próxima Exemplo: Spatial Matching: Clipping e Erasing •CLIP - extrai as features do mapa que sobrepõe com região selecianada para o clip. •ERASE - apaga as features do mapa que sobrepõe com os poligonos da região selecianada para o erase. Exemplo: Spatial Matching via Overlay de Polígono-em-Polígono Uso da terra a. Bacias de Atlântico Drenagem Golfo c. b. A. G. Camada combinada aA bA bG aG cA cG Os dois temas ( uso da terra & bacias de drenagem) não têm bordas comuns. O SIG cria uma camada combinada permitindo o cálculo de uso da terra por bacia de drenagem. Operações Espaciais: modelagem baseada em raster Processos podem ser: Local: um célula apenas Vizinhança: células relativas as outras Zonal: células numa dada seção Global: todas células Operações não Espaciais: Tabular crie consulta usando SQL (com junções ou não) Gráfico (selecione pela localização) com cursor no mapa (use Select Features tool) num ponto dentro de um retângulo dentro de um raio (circulo) ao redor de um ponto Saída pode ser: registros highlighted numa tabela, e features highlighted num mapa simultaneamente Novas tabelas e mapa layers Exemplos Use SQL query para selecionar todos os CEPs cuja média de arrecadação é superior a R$2.000,00 identificar CEPs dentro de um raio de 5 KM radius of vários potenciais sites de comércio mostrarcasas à venda no mapa, e clique para obter uma foto da casa selecionada e dados adicionais Aplicações Avançadas: Análise de Rede Roteamento menor caminho entre dois pontos instruções de direção (localizar um hotel a partir do aeroporto) travelling salesman: menor caminho conectando n pontos Districting baseado em rede rota de ônibus, serviços de entrega Em todos os casos, ‘distância’ pode ser medida em km, tempo, custo ou outros (ex. diâmetro de um cano de água, esgoto etc.). Atributos de arcos ou nodos (ex. rua mão única, não pode dobrar à esquerda) pode também ser crítico. expande o site ao longo da rede até um critério (tempo, distância, custo, object count) ser alcançado; então atribuir área ao distrito criar áreas de marketing, etc essencialmente network-based buffering Alocação baseada em rede atribui localizações ao centro mais próximo baseado na viagem ao longo da rede atribuir clientes a entregadores de pizza.