Daniel Pilon Senior project officer at NRCan

Slides:



Advertisements
Similar presentations
EECE 310: Software Engineering Modular Decomposition, Abstraction and Specifications.
Advertisements

Prescriptive Analytics Part I Nick Gonzalez, 2/10/14.
Web services for Improving the development of automatic generalisation solutions Nicolas Regnauld Research & Innovarion Ordnance Survey 07 th March 2006,
An Approach to Evaluate Data Trustworthiness Based on Data Provenance Department of Computer Science Purdue University.
The Process of Interaction Design. Overview What is Interaction Design? —Four basic activities —Three key characteristics Some practical issues —Who are.
The Process of Interaction Design
The Process of Interaction Design. What is Interaction Design? It is a process: — a goal-directed problem solving activity informed by intended use, target.
Game Mathematics & Game State The Complexity of Games Expectations of Players Efficiency Game Mathematics o Collision Detection & Response o Object Overlap.
Improving UML Class Diagrams using Design Patterns Semantics Shahar Maoz Work in Progress.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Mechanics, Dynamics & Aesthetics The Complexity of Games Expectations of Players Efficiency Game Mathematics o Collision Detection & Response o Object.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Managing Data Interoperability with FME Tony Kent Applications Engineer IMGS.
Chapter 7 Visualization of Geographic Information and Generation of Information Products.
Preparing Data for Analysis and Analyzing Spatial Data/ Geoprocessing Class 11 GISG 110.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Generalization for.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
Making a Medial Object Useful in an Engineering Simulation Context.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa REQUIREMENT SPECIFICATION Today: Requirements Specification.
More on “The Huddersfield Method” A lightweight, pattern-driven method based on SSM, Domain Driven Design and Naked Objects.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Generative Programming. Automated Assembly Lines.
1 Introduction to Software Engineering Lecture 1.
The Systems Development Life Cycle
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
AGENT (Esprit 24939) 5th GIS-EC WS June99 1 Generalisation and The AGENT Project Sylvie Lamy IGN With much help from the AGENT partners (Laser-Scan, Zurich,
Chapter 5: Business Intelligence: Data Warehousing, Data Acquisition, Data Mining, Business Analytics, and Visualization DECISION SUPPORT SYSTEMS AND BUSINESS.
L9 – Generalization algorithms
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Relaxing Queries Presented by Ashwin Joshi Kapil Patil Sapan Shah.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Requirement Engineering with URN: Integrating Goals and Scenarios Jean-François Roy Thesis Defense February 16, 2007.
Esri UC 2014 | Technical Workshop | Generalization for Multi-scale Mapping Edie Punt Jamie Conley.
1 Towards Integrated Tool Support for the User Requirements Notation Jean-François Roy
Multi-cellular paradigm The molecular level can support self- replication (and self- repair). But we also need cells that can be designed to fit the specific.
Modular Decomposition, Abstraction and Specifications
CSCE 210 Data Structures and Algorithms
Chapter 13 Editing and Topology.
Review of last class Software Engineering Modeling Problem Solving
Algorithms and Problem Solving
Generalisation process and generalisation tools in Maanmittauslaitos
Presented by Munezero Immaculee Joselyne PhD in Software Engineering
Design Patterns Damian Gordon.
Complexity Time: 2 Hours.
CMPE 135: Object-Oriented Analysis and Design October 24 Class Meeting
Iterative design and prototyping
Quality Assessment in the framework of Map Generalization
Component Based Software Engineering
Object oriented system development life cycle
Abstract descriptions of systems whose requirements are being analysed
SOFTWARE DESIGN AND ARCHITECTURE
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
Mixed Reality Server under Robot Operating System
GENERAL VIEW OF KRATOS MULTIPHYSICS
Mechanics, Dynamics & Aesthetics
Overview of big data tools
Automating and Validating Edits
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Algorithms and Problem Solving
LAOS: Layered WWW AHS Authoring Model and their corresponding Algebraic Operators Alexandra I. Cristea UNESCO workshop “Personalization in Education” Feb’04.
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Human Computer Interaction Lecture 14 HCI in Software Process
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
University of Technology Civil Engineering Department Geomatics Engineering Branch / 2018– 2019 Second Class /Course two/ Digital Mapping Prepared by :
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Chapter 1: Software and Software Engineering
Presentation transcript:

Daniel Pilon Senior project officer at NRCan Using FME for Topographical Data Generalization at Natural Resources Canada Daniel Pilon Senior project officer at NRCan

Overview Map generalization at NRCan Principles of good map generalization ETL generalization patterns

Very complex: manually or automatically Map Generalization The process of reducing detail on a map Very complex: manually or automatically

Generalization Paradigm Shift Manually Comply to very strict specifications Prepackage products 250K, 1M, 7.5M Finality on its own Art Craft Process Automatically (faster turnaround) Less complex specifications On demand scale production Integrated into other products Commodity Process

Generalization Paradigm Shift Example WMS Web Mapping Service 1 : 30 000 000 1 : 7 500 000 1 : 1 000 000 1 : 250 000 1 : 50 000

Generalization Paradigm Shift Example WMS 1 : 40 000 000

Generalization Paradigm Shift Example WMS 1 : 5 000 000

Generalization Paradigm Shift Example WMS 1 : 1 000 000

Generalization Paradigm Shift Example WMS Threshold: 1: 120 000 1 : 119 000 (serving 1: 50 000) 1 : 121 000 (serving 1: 250 000)

FME for Generalization…Why? Few generalization solutions No complete generalization solution Some European solutions Very complex software to use… Tackle European problems

FME for Generalization…Why?

FME for Generalization…Why? Few generalization solutions No complete generalization solution Some European solutions Very complex software to use… Tackle European problems FME as a generalization tool… General purpose spatial manipulation engine Reliable and fast Easily add extensions (python)

Overview Map generalization at NRCan Principles of good map generalization ETL generalization patterns

The principles of Good Genralization Automation Generalization cases Simple and efficient decomposition of the tasks performed by the cartographers Objective tools to characterize map objects Tools to edit modify the spatial objects Reactive control on the map object’s state during the process Unambiguous rules in order to guide the process Measure Operator Constraint Behaviour pattern

Generalization Case It is a formalization of the cartographer’s knowledge (generalization rules) and a communication tool between the cartographer and the software engineer Generalization cases do not tell us what algorithms or what parameters to use

Generalization Case example For the Vegetation For all the Vegetation which breaks the constraint Dimension: Minimum area If the Vegetation breaks the constraint: Position proximity Aggregate the area Else Eliminate the area

The principles of Good Genralization Automation Generalization cases Simple and efficient decomposition of the tasks performed by the cartographers Objective tools to characterize map objects Tools to edit modify the spatial objects Reactive control on the map object’s state during the process Unambiguous rules in order to guide the process Measure Operator Constraint Behaviour pattern

Measures are used: Measures To calculate the characteristics of map objects (or group of map objects ) Before the generalization: to know how to generalize After the generalization: to assess the success of the applied generalization operations

Measure Examples Unary measures Length Area/Perimeter Circularity ratio Oriented Bounding box Triangulation Bounding box

Measure Examples Binary measures Spatial relationship Distance Triangulation

Measure Examples N-ary mesaures H3 H1 H2 S1 H1 H1 H3 H1 H1 H3 H2 H2 H2 Stream ordering (Strahler or Horton)

The principles of Good Genralization Automation Generalization cases Simple and efficient decomposition of the tasks performed by the cartographers Objective tools to characterize map objects Tools to edit the spatial objects Reactive control on the map object’s state during the process Unambiguous rules in order to guide the process Measure Operator Constraint Behaviour pattern

Generalization Operators Generalization operators are typical transformations applied on spatial objects. They allow the decomposition of the generalization process into several sub-problems in order to manage complexity Generalization operator are implemented using different generalization algorithms. Ex.: For line simplification: Douglas & Peucker, Lang, Sherbend

Generalization Operator Examples Selection Simplification Smoothing Collapse

Generalization Operators Examples Aggregation Typification Displacement

The principles of Good Genralization Automation Generalization cases Simple and efficient decomposition of the tasks performed by the cartographers Objective tools to characterize map objects Tools to edit modify the spatial objects Reactive control on the map object’s state during the process Unambiguous rules in order to guide the process Measure Operator Constraint Behaviour pattern

Constraints Constraints are rules applied to data in order to comply with requirements of the target map specifications (ex: An area must respect the minimum size threshold) Constraint are used: To trigger a generalization operation To assess the result of a generalization operation To achieve generalization, a feature must fulfill several constraints

The principles of Good Genralization Automation Generalization cases Simple and efficient decomposition of the tasks performed by the cartographers Objective tools to characterize map objects Tools to edit modify the spatial objects Reactive control on the map object’s state during the process Unambiguous rules in order to guide the process Measure Operator Constraint Behaviour pattern

Generalization Behaviour Provides the link between constraints, generalization operator and measures Implements mechanism for choosing algorithms and parameters Implements mechanism for choosing alternate scenarios in case of constraint failure

Generalization Behaviour Example for Line Simplification ETL Generalization Patterns Reset to the original geometry Determine an alternate algorithm and/or parameters Failed Measures on the feature Apply the algorithm on the feature Asses the results through a set of constraints Determine the algorithm to use Success

Overview Map generalization at NRCan Principles of good map generalization ETL generalization patterns

ETL Generalization Patterns General and reusable solution to a commonly occurring problem in generalization when used in an ETL context Three stages pattern Meta-algorithm pattern

Three Stages Pattern Used when generalization operator(s) are applied on different part of the same feature Solution: Create a pseudo-object representing each generalization operation to be done on the real objects Evaluate the constraint against the pseudo-objects created in 1 Apply on the real objects the pseudo-objects that meet the constraint evaluated in 2

Three Stages Pattern Example Example with amalgamator operator If you implement a one stage process

Three Stages Pattern Example Example with amalgamator operator If you implement a three stages process First create the amalgamation zones Second you remove unwanted zone Dissolve the area

Meta-Algorithm Pattern Used when it is too complex to program the behaviour and the constraint in an ETL Solution: Select the algorithm(s) Select the constraint(s) to implement Select a behaviour pattern Implement the solution in a high level language Wrap the solution in a transformer

Meta-Algorithm Pattern Example Example with Sherbend Implementation of the Wang algorithm

Meta-Algorithm Pattern Example Line simplification Basic generalization operation We all thought of the Douglas-Peucker algorithm to solve that problem… Does it simulate the work of the cartographer well enough? An example with contours

Meta-Algorithm Pattern Example Contour line simplification Red: Original contours Black: Contours with DP 50m

Meta-Algorithm Pattern Example Contour line simplification Black: Contours with DP 50m The results are unacceptable Does it simulate the work of the cartographer? No Douglas-Peucker line simplification is not doing a good job of generalizing natural features

Meta-Algorithm Pattern Example Contour line simplification Red: Original contours Black: Contours with Sherbend algorithm with a parameter of 150m The Sherbend algorithm will remove the bends below the tolerance and keep the ones above it

Meta-Algorithm Pattern Example Example with Sherbend Implementation of the Wang algorithm Implementation of constraints Self intersection Line crossing Sidedness

Meta-Algorithm Pattern Example Implementation of constraints Self intersection Line crossing Sidedness

Meta-Algorithm Pattern Example Example with Sherbend Implementation of the Wang algorithm Implementation of constraints Self intersection Line crossing Sidedness Implementation of a scenario to resolve conflicts (behaviour pattern)

Meta-Algorithm Pattern Example Scenario to resolve conflitcs Implementation of an iterative process to resolve constraints

Meta-Algorithm Pattern Example Example with Sherbend Implementation of the Wang algorithm Implementation of constraints Self intersection Line crossing Sidedness Implementation of a scenario to resolve conflicts (behaviour pattern) Creation of a new transformer

Meta-Alorithm Pattern Meta-Algrorithms can be developed by user in FME FME Python extension (Python caller) Open source libraries Shapely for spatial manipulation and spatial relationship (http://pypi.python.org/pypi/Shapely) RTree for spatial indexing (http://pypi.python.org/pypi/Rtree/) Already implemented the following meta-algorithms Douglas Peucker Convex Spike Smoothing Sherbend

Future Works Develop new generalization patterns applied to ETL Develop new meta-algorithms Start the generalization of the hydrographic network

Thank You! Questions? For more information: Daniel Pilon Natural Resources Canada dpilon@nrcan.gc.ca WWW.GEOGRATIS.GC.CA WWW.GEOBASE.CA