200 likes | 265 Views
B.Sc. Matej Gomboši. Determining differences between two sets of polygons. Laboratory for Geometric Modelling and Multimedia Algorithms Faculty of Electrical Engineering and Computer Science University of Maribor. www.uni-mb.si/~gemma. Introduction. Parcel records on paper - cadastre
E N D
B.Sc. Matej Gomboši Determining differences between two sets of polygons Laboratory for Geometric Modelling and Multimedia Algorithms Faculty of Electrical Engineering and Computer Science University of Maribor www.uni-mb.si/~gemma
Introduction • Parcel records on paper - cadastre • Computer supported cadastre • Database changes • Keeping database up-to-date • Finding and analyzing changes • Working with changes in geometry and attributes • Lack of appropriate commercial solutions (ESRI, ArcView) • Integrated solution for GIS environments
Introduction Difference ?
Formulation • Let P be a polygon made up of vertices v1, v2, ..., vn and edges e1, e2, ..., en connecting them. • Let S be a set of polygons P1, P2, ..., Pn. Each Pican have arbitrary shape and number of vertices. • Find a set of polygons D, which represents the difference between S1 and S2. D contains changed polygons P1, P2, ..., Pm, which belong to S1 or S2.
Strategies • Brute force approach • Localized search approch • Speed and stability considerations • Separate aplications for different problems (need for integration)
Basic idea • Comparison of S1 and S2 based on polygon edges • Removing equal edges • What remains represents changes • Analyzing remaining edges
Data objects Polygon Edge • Sets of polygons from ESRI files (SHP) • Organized data structures in memory • Edge as main object • p1,p2 • Polygon info • Hole info “Work table” • Uniform plane subdivision • Binary search tree in cells • Sorted edges
“Work table” • binary search tree in each cell • pointers to tree roots
Polygon edge information • Coordinates - p1(x1,y1), p2(x2,y2) • Polygon info • polygon index • set indicator (S1 or S2) • index of the surrounding polygon • Counter • Hole info • hole index (locally inside a polygon)
Edge clasification Counter values!
Algorithm • Acquiring polygon sets from ESRI database • Inserting edges into uniform plane subdivison • Updating already existing edges • Removing of equal edges • Analyzing remaining edges • Storing changes
Problems at comparing attributes Non-simple polygon Contains regular(green) and non-regular(gray) holes Finding correct polygon index to compare attributes
Arithmetic problems • Possible errors of overlaping edges • Measuring error (+/- 12cm) • Epsilon tolerance at comparing the vertices
Time complexity • Inserting edges • O(n*log m) • n – total num. of edges • m – average num. of edges in a cell • Analyzing changes • O(n*log m) • n – number of cells • m - average num. of edges in a cell
Practical results 20.000 edges 8.000 polygons 1.000 changes 5 seconds with database access
Conclusions • New efficient algorithm for specific geometric problem • Works on large sets of polygons as found in GIS application • Simple implementation • Efficient use of known speed-up techniques • Easy integration into other GIS environments (dll) • Robust (no problems with geometric boundary cases) • Succesfully used in practice