Automated and Human-Assisted Conflation Using the JCS Conflation Suite Presented at GeoTec 2003 Vancouver, BC Martin Davis, Technical Architect mbdavis@vividsolutions.com Conflation with JCS Overview of Conflation • “Conflation” is a very broad term • Conflation problems need to be precisely defined in order to be automated • Conflation algorithms difficult to generalize • Still awaiting “Grand Unifying Theory” of conflation Conflation with JCS Overview of Conflation Terminology • Matching – identifying features or data elements which represent the same real-world entity • Alignment – whether two features or data elements have coincident geometry • Adjustment – altering geometry or attributes of matched features to make them align • Reference –dataset to be conflated to (usually of greater spatial accuracy) • Subject – dataset to be matched or adjusted Conflation with JCS Overview of Conflation Problem Categorization • Horizontal – conflation between adjacent datasets e.g. Boundary Alignment • Vertical – conflation between datasets covering the same area e.g. Coverage Alignment, Road Network Matching • Internal – conflation between items in a single dataset e.g. Coverage Cleaning Conflation with JCS Overview of Conflation Automated VS Human-Assisted • Automated uses algorithm(s) to match and adjust features automatically. May not be able to fix 100% of problems • Human-Assisted use manual editing tools to adjust features Assisted by automated tools to detect problems, perform precise adjustment Conflation with JCS Overview of Conflation Workflow • • • • • Acquire Datasets Data Preparation & Validation (QA) Problem Detection and Visualization Automated Conflation Human-assisted Conflation (if necessary) • Persist Updated Data Conflation with JCS The JCS Conflation Suite Project • Project sponsor: Dr. Mark Sondheim - Base Mapping and Geomatic Services Branch, MSRM • With support from: GeoConnections Ministry of Sustainable Resource Management, Province of BC • Project Timeline Initiated: March 2002 Finish: ~March 2003 Conflation with JCS The JCS Conflation Suite • Goals: Address real-world conflation problems Leverage existing spatial tools and modern software development techniques Open development philosophy Build toolbox for performing conflation • JCS written in 100% pure Java • JCS is Open Source (GPL license) Conflation with JCS JCS Architecture • JCS provides: API GUI • Built using: Java Topology Suite (JTS) Unified Mapping Platform (JUMP) Conflation with JCS JTS Topology Suite • Implementation of OpenGIS Consortium Simple Features Specification • Open-Source, 100% Java • Goals: Fast, production quality Robust Explicit precision model Conflation with JCS JTS Topology Suite Geometry Model and Operations • Geometry model: Points, LineStrings, Polygons, collections • Spatial predicates (using Dimensionally Extended 9-Intersection Model) • Boolean operations, buffer, convex hull, centroid, etc. Conflation with JCS JUMP Unified Mapping Platform • 100% pure Java • Open Source (GPL license) • Both API and GUI • Goals: Rich GUI environment for developing spatial algorithms, visualizing data and output Interactive environment for supporting human-assisted spatial processes Leverage capabilities of Java platform for spatial processing Easily extensible Conflation with JCS JUMP - API • Features with attributes and geometry • Feature Collections • Spatial Access Methods Quadtree, STR-Tree, Binary Interval Tree • Warping Affine Transform Bilateral Interpolated Triangulation • Dataset I/O Well Known Text, GML, ESRI Shapefile Conflation with JCS JUMP Workbench • Multi-Window GUI • Supports multiple layers of spatial data; rich styling options • Provides GUI for JUMP API functions • Geometry & Attribute editing • Easily extensible via Plugin framework Conflation with JCS Conflation in JCS Overview • Provides tools for: Dataset QA Problem detection Automated Conflation Human-assisted conflation (manual edits) • Kinds of conflation algorithms Coverage Alignment Road Network Matching Conflation with JCS Coverage Alignment Problem Subtypes • Boundary Alignment e.g. Municipal Parcels “Horizontal Conflation” • Coverage Cleaning “Internal Conflation” • General Coverage Alignment e.g. aligning suburb boundaries to parcels “Vertical Conflation” Conflation with JCS Coverage Alignment Algorithm • Key idea: Lines that are “close” should be identical • Match Line segments Hausdorff distance < tolerance Relative angle < tolerance • Adjust Vertices Snap close vertices Add or merge vertices if necessary • Heuristics: Do not break topology Minimize change to existing vertices Conflation with JCS Coverage Cleaning Error Detection Conflation with JCS Coverage Cleaning Automated Alignment Conflation with JCS Coverage Cleaning QA of Automated Process Conflation with JCS Coverage Cleaning Manual Tools – Vertex Snapping Conflation with JCS Boundary Alignment Error Detection Conflation with JCS Boundary Alignment Automated Conflation Conflation with JCS General Coverage Alignment Error Detection Conflation with JCS General Coverage Alignment Automated Conflation Conflation with JCS Road Network Matching Problem Example Conflation with JCS Road Network Matching Algorithm • Match Nodes and Edges based on weighting • Node Match weight Distance between nodes Topology match between incident edges • Edge Match weight Hausdorff distance between edges Relative length of edges For “straight edges”, relative angle Conflation with JCS Road Network Matching Matching & Visualization Conflation with JCS Road Network Matching Warping based on Matching Conflation with JCS Further Development • New / improved conflation algorithms Complete Road Network Matching tools Improve Coverage Alignment algorithm Alignment to natural boundaries E.g. Admin Boundary / Heights-of-land Stream Network matching (Refractions Research) • Additional JUMP functionality Colour-theming by attribute More flexible GML support • JTS improvements Robustness of spatial functions, buffer Conflation with JCS