A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Modelagem dinâmica espacialmente-explicíta em TerraME Dr. Tiago Garcia de Senna Carneiro TerraLAB - Laboratório INPE/UFOP para Simulação e Modelagem dos.

Apresentações semelhantes


Apresentação em tema: "Modelagem dinâmica espacialmente-explicíta em TerraME Dr. Tiago Garcia de Senna Carneiro TerraLAB - Laboratório INPE/UFOP para Simulação e Modelagem dos."— Transcrição da apresentação:

1 Modelagem dinâmica espacialmente-explicíta em TerraME Dr. Tiago Garcia de Senna Carneiro TerraLAB - Laboratório INPE/UFOP para Simulação e Modelagem dos Sistemas Terrestres F evereiro de 2010

2 Introdução ao TerraME modelos dinâmicos espacialmente-explicito

3 Ambiente de Modelagem TerraME

4 TerraLib TerraME C++ Framework C++ Signal Processing librarys C++ Mathematical librarys C++ Statistical librarys TerraML Virtual Machine TerraME: Arquitetura de Software TerraMLCompiler TerraML Language RondôniaModeldynamicaModel RICKSModelCLUEModel

5 Plugin “GPM” TerraView 3.2.0 Plugin “FillCell” TerraView 3.2.0 Integração com SIG TerraLib Databse

6 Plugin FillCell para TerraView 3.2.0 aquisição de dados

7 Motivação: homogenização de dados em formatos distintos

8 Instale o plugin “FillCell”e crie Espaços Celulares Regulares Instalação do plugin FillCell: copie o arquivo “celulas.dll” para o diretorio “c:\Arquivos de Programas\TerraView3.2.0\plugins”. Crie a grade de células na resolução desejada:

9 Preencha os atributos das células Escolha os dados de entrada: Escolha o dado de saída:

10 Estratégias de preenchimento disponiveis no plugin “FillCell”

11 PRATICA: Criando Espaço Celulares Regulares em TerraView 3.2.0 Parque Nacional das Emas, GO, Brasil

12 Aquisição dados emTerraView 3.2.0 Crie o banco de dados: “bdEmas” Importe os dados contidos no diretório “Dados Geograficos”, usando o sistema de coordenadas UTM para a zona 22 e datum SAD69:  Shape files: “Limite_pol.shp”, “Aceiros_lin.shp”, “Drenagem_lin.shp”  Imagens GeoTIFF: “Nov94-Mai00.tif” Crie uma vista chamada: “dados entrada” Nesta vista crie um tema para cada plano de informação importado. + + = + acumulolimiteaceiro drenagem

13 Crie Espaço Celulares Regulares em TerraView 3.2.0 Crie um espaço celular regular de resolução igual a 1000 x 1000. Crie um tema para o espaço celular recém criado. Preencha os atributos das células usando o plugin: fillCell.  rio: a partir de drenagem  estratégia presença  aceiro: a partir de aceiros  estratégia presença  acumlo: a partir de imagem classificada  estratégia classe majoritária, default = 0 Crie o atributo “foco”: 0  inerte, 1  queimando Gere uma legenda usando o atributo “acumulo” e o operador “valor único”

14 O Espaço Geográfico em TerraME

15 Espaços Celulares Irregulares Espaços Celulares Irregulares: (1) células quadradas de 25 X 25 km 2 ; (2) Cada polígono representando um estado brasileiro é uma célula; (3) Cada rodovia é uma célula

16 Motivação: Modelagem Multi-escala Desvantagens dos Espaços Celulares Regulares: –Escolha de uma resolução –Efeitos de borda –Agregação de atributos as células, dependendo da resolução –Falta de abstração para representar objetos em movimento ou redes geográficas.

17 Multi-escala: um estudo de caso O uso de múltiplas representações computacionais do espaço para o desenvolvimento de um modelo de desflorestamento da Amazônia Brasileira em multiplas escalas. Banco de dados “amazônia.mdb” contém: –Plano de informação 1: Estados brasileiros que compõem a Amazônia Legal (polígonos)‏ –Plano de informação 2: Rodovias brasileiras (linhas)‏ –Plano de informação 3: uma grade esparsa de células (células quadradas de 25x25m 2 )‏

18 Multi-escala: um estudo de caso 2 Submodelos (2 escalas diferentes): –Modelo de demanda  controla a quantidade de mudanças (questão “Quanto?”). Utiliza 2 espaços celulares Estados brasileiros que compõem a Amazônia Legal Rodovias brasileiras que estão localizadas nos estados da Amazônia Legal –Modelo de alocação  determina onde ocorrerão as mudanças (questão “Onde?”). Utiliza o espaço celular composto por uma grade esparsa de células.

19 Multi-escala: um estudo de caso Resultados do modelo de desflorestamento.

20 Multi-escala: um estudo de caso Resultados do modelo de pavimentação

21 Carregamento de dados em TerraME -- Loads the TerraLib cellular space csAmazonia = CellularSpace { database = "Amazonia", theme = "cells", } csAmazonia:load(); csAmazonia:loadNeighbourhood(“GPM_Amazônia"); GIS

22 Como declarar espaços celulares persistentes myCellSpace = CellularSpace { dbType = "MySQL", host = "localhost", database = "CabecaDeBoi ", user = "", password = "", layer = "cells90x90", theme = "cells", select = { “height", “capInf" }, where = "mask <> ‘noData’” }

23 Como criar espaços celulares voláteis myCellSpace = CellularSpace{ database = "", theme = "“ } for i = 1, 2, 1 do for j = 1, 2, 1 do c = Cell{ soilType = “latosolo” } c.x = i; c.y = j; myCellSpace :add( c ); end

24 Gerenciamento do Banco de Dados Geográfico -- Load cellular space from TerraLib database myCellSpace:load(); -- Save cellular spaces to TerraLib database myCellSpace:save( time, “themeName", {“cover”, “soilType”}); -- or myCellSpace:save( time, “themeName", { });

25 Referenciando células -- c is the seventh cell in the cellular space c = myCellSpace.cells[ 7 ]; -- updating the attribute “infcap” from the seventh -- cell c.infcap = 0; myCellSpace.cells[7].infCap = 0

26 Acessando os atributos das células -- regra para regenerar a floresta if( cell.cover == "abandoned" and cell.latency >= 10 ) then cell.cover = "secFor" end -- regra para simular a chuva -- LEIA NO PASSADO e ESCREVA NO PRESENTE cell.water = cell.past.water + 2; A cell value has two special attributes: latency and past. The latency attribute registers the period of time since the last change in a cell attribute value. The past attribute is a copy of all cell attribute values in the instant of the last change.

27 Como percorrer um espaço celular -- regra para simular a chuva em uma região ForEachCell( myCellSpace, function(i,cell) cell.soilWater = cell.past.soilWater + 2 return true end ) ForEachCell(cs, function(i, cell)...end)

28 Trajetórias das mudanças: imprimindo padrões espaciais Iteradores Espaciais: são funções definidas pelo modelador que mapeiam indices (atributos) dos objetos geográficos em referências a eles. it = Trajectory{ myCellSpace, function(cell) return cell.cover == "forest" end, function( c1, c2 ) return c1.dist_roads < c2.dist_roads end } it = Trajectory{ myCellSpace, function(cell) return cell.cover == "forest" end, function( c1, c2 ) return c1.dist_urban < c2.dist_urban end }

29 Como percorrer um espaço celular -- regra para simular a chuva em uma subregião ForEachCell( myTrajectory, function(i,cell) cell.soilWater = cell.past.soilWater + 2 return true end ) ForEachCell( myTrajectory, function(i, cell)...end) myTrajectory = Trajectory{ myCellSpace, function(cell) return cell.estado == “Pará” end, function( c1, c2 ) return (c1.altimetria) < (c2.altimetria) end }

30 Demo 3: Desflorestamento na Amazônia Banco de dados: c:\\TerraME\\Database\\amazonia.mdb Modelo: c:\\TerraME\\Modelos\\demo3_desflorestamento_save.lua

31 Von Neumann Neighborhood Moore Neighborhood Vizinhança em Espaços Celulares

32 Distâncias no Espaço Próximo Which objects are NEAR each other?

33 Quais objetos são mais proximos? Which objects are NEAR each other?

34 Using Generalized Proximity Matrices (GPM) Consolidated areaEmergent area

35 Euclidean space Open network Closed network D2 D1 Vizinanças TerraME são redes (grafos ponderados) [Aguiar et al., 2003]

36 Crie ou carregue vizinhaças -- Create a Moore neighborhood CreateMooreNeighborhood( myCellSpace, “neighName” ) -- Create a 3x3 neighborhood Create3x3Neighborhood(myCellSpace, filterF(), weightF(), name ) -- Create a MxN neighborhood CreateMxNNeighborhood( M, N, myCellSpace,filterF(), weightF(), name ) -- Load neighborhood from TerraLib database myCellSpace: loadTerraLibGPM(“myGPM"); -- Load neighborhood from TerraLib GAL files myCellSpace:loadGALNeighborhood("c:\\myNeigh.gal")

37 Crie vizinhaças entre espaços celulares SpatialCouppling( M, N, cs1,cs2, filterF, weightF, name ) filterF(cell, neigh)  Boolean wheighF(cell, neigh)  Real

38 Exemplo: vizinhança para simular drenagem da água da chuva -- Creates a 3x3 Neighborhood based on the cell "slope" -- only lower neighbors are considered -- Creates a 3x3 Neighborhood based on the cell "slope" Create3x3Neighborhood( csQ, function(cell,neigh) return neigh.altimetria < cell.altimetria end, function(cell, neigh) return (cell.altimetria - neigh.altimetria)/ (cell.altimetria + neigh.altimetria) end, "slope" );

39 Como percorrer uma vizinhança ForEachNeighbor( myCell, function( cell, neigh, weight) print( weight ) return true end, “myNeigh“ ); ForEachNeighbor(cell, function(), index)

40 Como percorrer vizinhanças do espaço ForEachCell( myCellSpace, function(i, cell) ForEachNeighbor( cell, function( cell, neigh, weight ) -- insert the code end, índex ) end )

41 Gravando espaços celulares regulares de TerraLib como imagens -- atributo utilizado para gerar a figura attr_name = "estado" -- valores que o atributo pode assumir attr_value = {0,1,2} -- paleta de cores attr_color = {{0,255,0},{255,0,0},{0,0,0}} -- diretorio onde as imagens serao salvas path = "c:\\TerraME\\Results“ -- tamanho da celula na imagem (em pixels) cellSize = 2......................... -- carrega o espaco celular do banco de dados TerraLib myCellSpace = LoadCellularSpace("ADO","localhost", "c:\\db_teoria.mdb“, “layerName",“themeName",{"Col","Lin","estado"})......................... for t = 1, 100 do............. CStoPNG(myCellSpace,attr_name,t,path,cellSize,attr_value,attr_color) end

42 Demo 5: Propagação de Fogo Banco de dados: c:\\TerraME\\Database\\db_teoria.mdb Modelo: c:\\TerraME\\Modelos\\demo5_SimpleFireSpreadModel.lua.lua CA 1CA 2CA 3CA 4CA 5 CA 1 0.1000.2500.2610.2730.285 CA 2 0.1130.2530.2640.2760.288 CA 3 0.1160.2560.2670.2790.291 CA 4 0.1190.2590.2700.2820.294 CA 5 0.1220.2620.2730.2850.297 QUEIMANDO INERTE -- estado do celula inerte = 0 queimando = 1 queimado = 2

43 Demo 6: Propagação de Fogo Banco de dados: c:\\TerraME\\Database\\db_emas.mdb Modelo: c:\\TerraME\\Modelos\\demo6_FireSpreadModel.lua CA 1CA 2CA 3CA 4CA 5 CA 1 0.1000.2500.2610.2730.285 CA 2 0.1130.2530.2640.2760.288 CA 3 0.1160.2560.2670.2790.291 CA 4 0.1190.2590.2700.2820.294 CA 5 0.1220.2620.2730.2850.297 QUEIMANDO INERTE

44 Neighborhood based rules & Time Rule: if ( all neighbors = 1 ) then 0 General rule form: cell.soilWater= cell. soilWater + 2; 1º step 2º step one copy of the cellular space past present update Temporal inconsistency Ver demo18 antes e seus resultados cell.soilWater= cell.past.soilWater + 2;

45 ForEachCell(myCellSpace, function(cell) end) count = 0 ; print(“Number of deforested cells: ”.. count); if ( cell.past.cover == “forest” ) then cell.cover = “deforested”; count = count + 1 ; end Runtime Rule Activity tntn t n+1 rule ? Ver demo18 antes myCellSpace:synchronize( );

46 Time Synchronization Schemes Ver demo 20 antes Sequential Processes rules1(); synchronise(); rules2(); synchronise(); Parallel Processes rules1(); rules2(); synchronise();

47 Nested-CA Model of Computation Space function is non-homogeneous Agent or Automaton

48 TerraME automata

49 TerraME Synchronization Schemes execute(automaton1); execute(automaton2); synchronize( ); execute(automaton1); synchronize( ); execute(automaton2); synchronize( ); Parallel in Space execute(agent1); execute(agent2); synchronize( ); execute(agent1); synchronize( ); execute(agent2); synchronize( ); Sequential in Space Parallel in TimeSequential in Time Processes Might Be

50 Demo 4 e 7: Rain Drenage Model Banco de dados: c:\\TerraME\\Database\\CabecadeBoi.mdb Modelo: c:\\TerraME\\Modelos\\demo4_chuva_geoBD.lua Modelo: c:\\TerraME\\Modelos\\demo7_chuva_geoBD.lua

51 O tempo em TerraME escalonadores de evento discreto

52 Relógios são escalonadores de eventos discretos (DEVS) 1:32:00Ação 1 1. 1:32:10Ação 3 2. 1:38:07Ação 2 3. 1:42:00Ação 4 4. Sol nascer Chover Plantar Colher... retorno true 1. Obtem o primeiro par 2. Executa a AÇÃO 3. Relógio =EVENTO 4. EVENTO += período

53 Timers, Events and Messages Message{ function( event ) print( event:getTime() ); rain:execute( event ); print("Rained"); return false; end } Event{ time = 1985, period = 1, priority = -1 }clock = Timer{ Pair{ Event{... }, Message{... } }, Pair{ Event{... }, Message{... } },... Pair{ Event{... }, Message{... } }

54 Demo 8: Multiplas Resoluções Temporais clock = Timer{ Pair{ Event{ time = 0, period = 1 }, Message{ function(event) print(event:getTime(), "SOL") end } }, Pair{ Event{ time = 2, period = 0.5 }, Message{ function(event) print(event:getTime(), "CHUVA") end } }, Pair{ Event{ time = 0, period = 2 }, Message{ function(event) print(event:getTime(), "DESMATAMENTO") end } } clock:execute(10)

55 Demos em TerraME Explicit space representation: demos 14 to 16 Geographic database integration: demos 17 to 20

56 Obrigado… Perguntas? Mais informações em: www.terralab.ufop.br www.terrame.org


Carregar ppt "Modelagem dinâmica espacialmente-explicíta em TerraME Dr. Tiago Garcia de Senna Carneiro TerraLAB - Laboratório INPE/UFOP para Simulação e Modelagem dos."

Apresentações semelhantes


Anúncios Google