designing and performing geographic analysis processes with giscase cirano iochpe, guillermo n....

21
Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V. da Rocha UFRGS – Instituto de Informática { ciochpe, hess, claudior, abinotto, vargas }@inf.ufrgs.br

Upload: julian-kelley

Post on 11-Jan-2016

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

Designing and Performing Geographic Analysis Processes with GISCASE

Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V. da Rocha

 UFRGS – Instituto de Informática

{ ciochpe, hess, claudior, abinotto, vargas }@inf.ufrgs.br

Page 2: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

• Introduction

• GeoFrame-A Framework

• GISCASE’S Architecture

• Implementation

• Conclusions and Future Work

Main Topics

Page 3: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

Introduction

Each GIS tool supports its own logical model for both data and process design.

A need:

Models and tools that help the definition / design of geographic data and analysis processes.

Tools used in GDB design could be candidates (ex: MADS, GeoOOA, GeoFrame), if they also supported process definition.

GeoFrame-A: an extension to the GeoFrame Framework that aims to support the design of geographic analysis processes.

Our proposal:

GISCASE: software tool that implements GeoFrame-A concepts. It generates programs that can perform geographic analysis processes.

Page 4: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

The GeoFrame Framework:

GeoFrame is an object oriented conceptual framework on the basis of the Unified Modeling Language (UML) (Lisboa, 2000).

It supports geographic database design by providing a set of classes that can be instatiated as well as specialized, and extended.

GeoFrame-A:

Extension that supports the design of geographic analysis processes (Ruschel, 2003).

Metadata

Process

PhenomenonGeographic

Geometadata

ObjectGeographic

FieldGeographic

ObjectSpatial

<<instantiate>>

<<instantiate>>

represents represents

FieldRepresentation

* *

0...1

parameter

parameter

1...*

0...11...*

PGeoFrame-A

NonGeographicObject

The GeoFrame-A Framework

Page 5: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

GeoFrame-A uses UML 2 diagrams to specify processes:

-Class Diagram: external specification

Each geographic process type is represented as an Activity Class.

The GeoFrame-A Framework

Page 6: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

-Activity Diagram: internal specification

Data represented as object nodes;

Operations modeled as activity nodes;

Both data and control flow possible.

A set of basic geoprocessing operations {DS (Dissolve) ; OV (Overlay) ; SS (Spatial Selection) ; BF (Buffer) ...}

The GeoFrame-A Framework

Page 7: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

The GISCASE Tool

GISCASE is a free software developed at UFRGS that generates source code in a programming language which, when compiled and executed, performs geographic analysis processes.

The specification uses UML activity diagrams including GeoFrame-A concepts.

Spatial classes are represented through spatial tables in a GDB.

Operations must be implemented on a GIS software API.

First implementation relies upon TerraLib.

Page 8: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

Graphical EditorGPtoXML

Poseidon

GisCaseMain Window

XMI Parser

XMIXML

GPRules

XML Parses(Syntactic and

Semantic validation)

XMLtoGISGenerator

XML

Compiler

SQL /C++

XMLschema

GISdata model

GIS API

GISCASE’s Architecture

Page 9: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

GisCase Main Window: Manages GISCASE’s workflow.

Elements: navigation panel, text editor, message window

GISCASE’s Architecture

Page 10: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

Graphical Editor

Activity diagrams: CASE tool Poseidon UML (Community Edition)

GISCASE’s Architecture

Page 11: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

GPtoXML Parser

Reads the XMI file and performs a semantic analysis.

Result: a clean XML file, from which code generation is possible.

GISCASE’s Architecture

Page 12: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

Elements from the XMI file are coded into a new XML file, based on a XML-Schema (the XML encode for GeoFrame-A).

GPtoXML Parser

<UML:CallAction xmi.id = 'I20699am10384031526mm7fce' name = '' isSpecification = 'false' isAsynchronous = 'false'> <UML:Action.script> <UML:ActionExpression xmi.id = 'I20699am10384031526mm7f99' language = 'java' body = 'DS_1'/> </UML:Action.script> </UML:CallAction>

<Spatial ObjectNodeId="GisCase_AC2"> <Name>GisCase_DS_1</Name> <Representation>polygon</Representation> <TableName>GisCase_DS_1</TableName></Spatial>

<xs:element name="Action" substitutionGroup="aux2"> <xs:complexType> <xs:sequence> <xs:element ref="Name"/> <xs:element ref="Input" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Output" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="ActionId" type="xs:ID" use="required"/> <xs:attribute name="Persistent" type="xs:integer" use="optional"/> </xs:complexType></xs:element>

XMI File

XML-Schema

Generated XML File

GISCASE’s Architecture

Page 13: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

CodOp CodPar NumParBF Line 1BF Point 1BF Polygon 1BF Constant 2

Object nodes serve as either input or output for Action nodes.Each action node can have one or more input nodes but only one output.

Actions are verified within GP Rules database:• Number of inputs for each action;• Data types of the inputs and outputs.

CodOp RefIn RefOutBF Line PolygonBF Point PolygonBF Polygon Polygon

GPtoXML Parser

GISCASE’s Architecture

Page 14: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

XMLtoGIS Generator

Generates source code from the XML specification.

GISCASE’s Architecture

Page 15: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

For each GIS software an API is needed in order to map GeoFrame-A operations onto the logical model of the GIS software.

XMLtoGIS Generator

bool GcBuffer(string inLayerName, TeGeomRep inRepName, string outLayerName, double dist, TeAdo* db){ TeLayer* inLayer = new TeLayer(inLayerName);

db->loadLayer(inLayer);TeProjection* proj = inLayer->projection ();...TePolygonSet bufferPol;TeLayer* outLayer = new TeLayer(outLayerName, db, inLayer->box(), inLayer->projection());int layerId = outLayer->id();db->Buffer(tableRep, inRepName ,objsIn, bufferPol, dist);outLayer->addPolygons(bufferPol); }

This module generates the source code that accesses the GIS operations through its API, passing respective parameters when needed.

The source code generated must be compiled and linked with the required GIS libraries, or interpreted within the GIS software environment.

Mapping the buffer operation to TerraLib

GISCASE’s Architecture

Page 16: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V
Page 17: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

Implementation

Component Requisites Adopted

Graphical Editor

must implement an actitivy diagram and generate a XML-like output

Gentleware's Poseidon (Community Edition)

GIS API

must manage a GDB and functions of geographic analysis TerraLib from INPE

Interfaceplatform with interface components Eclipse Platform

As a free software project sponsored by CNPq, all the external components adopted are free software.

Interface and parsers built in Java: free software, platform independent, easy to parse XML files

GISCASE’s exclusive Library to access TerraLib API developed in C++

Page 18: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

Implementation

The XMLtoGIS module generates a main procedure and appends the source code for the operations used in the process from the library GcGeoOperations for TerraLib.

int main(){ string dbname = "C:\GeoDB\Geoinfo.mdb"; TeAdo* db = new TeAdo(); db->connect("localhost","","",dbname,0)) cout << "Erro em conetar-se via ADO: " << db->errorMessage() << endl; TeAdoPortal* dbPortal = new TeAdoPortal(db); TeDatabasePortal* portal = dbPortal; TeInitQuerierStrategies(); val = GcDissolve("Municipality","GisCase_DS_1","IDADMREGION",db, portal); if (!val)

cout << "Erro na função GcDissolve!" << endl; val = GcOverlay("GisCase_DS_1","River_Basin","Region_by_Basin","AND",db, portal); if (!val)

cout << "Erro na função GcOverlay!" << endl; portal->freeResult(); db->close(); return 0;}

Page 19: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

Implementation

GcGeoOperations Library for TerraLib

Source code that maps the main procedure to TerraLib library and TerraView functions.

Operations implemented in the first version:

• GcSelection: selects objects by attributes

• GcRegionSelection: selects objects inside a polygon

• GcSpatialSelection: selects objects through a spatial predicate

• GcBuffer: creates a polygon with a specified distance

• GcOverlay: does the overlay of two sets of spatial objects

• GcDissolve: generalizes the input objects through an attribute

• GcCentroid: finds the centroid of a polygon

• GcAlgebra: updates attributes in one layer (SQL Update)

• GcDistance: mesures the distance of two geometries

Page 20: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

• Prepare a GDB, compatible to the GIS API, with the input data

• In the GISCASE tool:

- Design the process in the graphical editor

- Verify semantics and generate source code

• Compile and execute (for TerraLib, with Visual Studio)

• Verify the results in a map viewer (ex: TerraView)

Workflow to perform a geographic analysis process with GISCASE:

Page 21: Designing and Performing Geographic Analysis Processes with GISCASE Cirano Iochpe, Guillermo N. Hess, Cláudio Ruschel, Alécio P. D. Binotto, Luciana V

Contributions:

• a XML schema able to define a geographic process

• complements a set of applications developed with TerraLib

• a modular and extendable architecture to design geographic process

• a learning tool to programmers

Future work:

• to implement other geographic analysis operations still using TerraLib

• code generation for other GIS platforms

• allow the use of a script language as an alternative to the graphical editor