1 / 79

Spatial Dynamical Modeling with TerraME

Spatial Dynamical Modeling with TerraME. Tiago Carneiro Gilberto Câmara. Dynamic Spatial Models. f (I t ). f (I t+1 ). f (I t+2 ). f ( I t+n ). F. F.

amos
Télécharger la présentation

Spatial Dynamical Modeling with TerraME

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Spatial Dynamical Modeling with TerraME Tiago Carneiro Gilberto Câmara

  2. Dynamic Spatial Models f (It) f (It+1) f (It+2) f ( It+n ) F F . . “A dynamical spatial model is a computational representation of a real-world process where a location on the earth’s surface changes in response to variations on external and internal dynamics on the landscape” (Peter Burrough)

  3. Cell Spaces • Representation • Cell Spaces • Generalized Proximity Matriz – GPM • Hybrid Automata model • Nested scales Computational Modelling with Cell Spaces

  4. TerraME - overview Model data in cellspaces Read/write data from a database

  5. 2500 m 2.500 m e 500 m Cellular Data Base Resolution

  6. TerraME functionality

  7. TerraME C++ Framework C++ Signal Processing librarys C++ Mathematicallibrarys C++ Statisticallibrarys TerraME: Software Architecture Model 1 Model 2 Model 3 Model 4 TerraML Language TerraMLCompiler TerraML Virtual Machine TerraLib

  8. TerraLib: the support for TerraME • Open source library for GIS • Data management • object-relational DBMS • raster + vector geometries • ORACLE, Postgres, mySQL, Access • Environment for customized GIS applications • Web-based cooperative development • http://www.terralib.org

  9. TerraLib Databse TerraME integration with GIS (TerraView) “GPM” Plugin TerraView 3.2.0 “FillCell” Plugin TerraView 3.2.0

  10. Conversion from GIS data to cell spaces Real world Vector geospatial data Cell space

  11. The mixed pixel problem How can you transform from vectors to cell attributes?

  12. Using “FillCell” plugin to build Cell Spaces 1. Install the FillCellplugin: Copy the file "celulas.dll" to the directory "C: \ Program Files \ TerraView3.2.0 \ plugins". 2. Build thecellspacewiththedesiredresolution

  13. Fill the attributes of the cell spaces For each data type to be transformed, there are appropriate operations

  14. Filling Cells from vector data

  15. Lua Roberto Ierusalimschy PUC-Rio, Brazil Lua and the Web

  16. -- a Lua script color = RED b = button { label = ‘OK’, x = 10, y = 20} Host Program Lua Interpreter What is Lua? • Yet Another Scripting Language • an “extension” language • implemented as a library in ANSI C Lua and the Web

  17. Why Lua? • Simple and flexible • “Simple things simple, complex things possible” • Small, Efficient, Portable • Whole library written in ANSI C, compiles the same source code in all platforms • Typical uses: MS-DOS, Windows (3.1, 95, NT), Unix (Linux, Solaris, IRIX, AIX, ULTRIX), Next, OS/2, Mac Lua and the Web

  18. Where is Lua? • Inside Brazil • Petrobras, the Brazilian Oil Company • Embratel (the main telecommunication company in Brazil) • many other companies • Outside Brazil • Lua is used in hundreds of projects, both commercial and academic • CGILua still in restricted use • until recently all documentation was in Portuguese Lua and the Web

  19. How is Lua? function fat (n) if n == 0 then return 1 else return n*fat(n-1) end end • Pascal-like Syntax. • Interpreter executes sequence of statements. • function definitions are also statements (see later) • Six types: numbers, tables, functions, strings, userdata, nil Lua and the Web

  20. My first Lua program C = 2; -- rain/t K = 0.4; -- flow coefficient q = 0; -- RULES for time = 0, 20, 1 do -- soil water q = q + C - K*q; end print(“q = "..q);

  21. Types

  22. Type nil • Different from everything else • Default variable type • Also acts as false (boolean)

  23. Type boolean • Comparison value • if (rain == true) then ....

  24. Type number • Unique native type for numbers • double (by default) a = 3 b = 3.5 c = 4.5e-8

  25. Type string • Immutable • No size limit (read large files as strings) • No termination value (‘\0’) • Powerful Pattern-matching in standard library • myname = “Werner Kuhn”;

  26. Tables • Implement associative arrays: • any value (including functions and other tables) can be used both for indices and values t = {} -- creates an empty table t[1] = "hello" t.x = print -- t.x is sugar for t[‘x’] t.x(t[1]) -- prints ‘hello’ t.next = t -- circular list Lua and the Web

  27. Constructors • Expressions to create and initialize tables • Record style • point={x=10,y=20} • print(point.y) --> 20 • List style • days={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"} • print(days[3]) --> Tue • Mixed style • points={{x=0,y=0}, point, n=2} • print(points[points.n].y) --> 20 Lua and the Web

  28. Table loc = { cover = "forest", distRoad = 0.3, distUrban = 2 }; loc.cover = “cerrado”; loc[“cover”] = “soja”; if (loc.distUrban > 1.5) then

  29. Tables in Lua loc = { cover = "forest", distRoad = 0.3, distUrban = 2 }; loc.desfPot = loc.distRoad + loc.distUrban;

  30. Tables em Lua : functions loc = { cover = "forest", distRoad = 0.3, distUrban = 2 }; ... loc.reset = function( self ) self.cover = ""; self.distRoad = 0.0; self.distUrban = 0.0; end

  31. Constructors calls function “article” article{ author="F.P.Brooks", title="The Mythical Man-Month", year=1975, } news = { {text = "New version 2.0", date = "21/05/1997"}, {text = "New example", date = "21/05/1997"}, {text = "New version: 2.1",date = "17/06/1997"}, } Lua and the Web

  32. Functions in Lua functionfat (n) if n == 0 then return 1 else return n*fat(n-1) end end

  33. function inc (x) return x+1 end inc = function (x) return x+1 end sugar Functions in Lua • First class values • Example: cloning a table t clone = {} foreach(t, function (i,e) clone[i]=e end) Lua and the Web

  34. Upvalues • Mechanism to allow functions to access non-local variables • An upvalue is a variable expression whose value is computed when the enclosing function is instantiated (and not when the function is executed) function add (x) return function (y) return y+%x end end add1 = add(1) print(add1(10)) --> 11 upvalue Lua and the Web

  35. Functions and Tables w = { redraw = function () ... end, pick = function (x,y) ... end, } if w.pick(x,y) then w.redraw() end

  36. list = {value=v, next=list} value - v next - Tables x Objects • Tables are dynamically created objects. • in the sense of Hoare list old list ... Lua and the Web

  37. function a:foo (x) ... end a.foo = function (self,x) ... end sugar sugar a:foo(x) a.foo(a,x) Objects • First-class functions+ tables = almost OO • Tables can have functions as fields • Sugar for method definition and call • Implicit parameter self

  38. My second Lua program C = 2; -- rain/t K = 0.4; -- flow coefficient q = 0; -- function rain (t) if (t < 10) then return 4 – 4*math.cos(math.pi*t/10); else return 4 – 4*math.cos(math.pi*(t-10)/10); end end -- for time = 0, 20, 1 do -- soil water q = q + rain(time) - K*q; end -- report print(“q = "..q);

  39. Standard libraries Basic String Table Math IO OS Debug Coroutine

  40. Basic Basic functions print type setmetatable pairs

  41. String String manipulation pattern matching string.find string.gsub

  42. Table • Function for table manipulation • table.insert • table.remove • table.sort

  43. rain rain rain Itacolomi do Itambé Peak Lobo’s Range My third Lua program Define a two-dimensional grid Make it rain on the grid Let water flow downwards N

  44. TerraME: Vision An Earth´s environment can be represented as a synthetic environment where analytical entities (rules) change the space properties in time. Several interacting entities share the same spatiotemporal structure.

  45. TerraLib EnviromentalModeling Framework C++ Signal Processing librarys C++ Mathematicallibrarys C++ Statisticallibrarys TerraME architecture & applications RondôniaModel DinamicaModel TROLLModel CLUEModel TerraME Language TerraME Compiler TerraME Virtual Machine TerraLib

  46. TerraME Runtime Environment

  47. The Scale Concept in TerraME Scale is a generic concept that includes the spatial, temporal, or analytical dimensions used to measure any phenomenon. Extent refers to the magnitude of measurement. Resolution refers to the granularity used in the measures. (Gibson et al. 2000)

  48. TerraME allows nested scales

  49. Nested scales are necessary for human-environmental models Diverse space partitions can have different scales

  50. TerraME extensions to Lua To build spatial dynamic models,TerraME includes new value types in LUA usingthe constructor mechanism. These values are: CellularSpace, Cell, Neighbourhood

More Related