100 likes | 274 Views
GIS CUP 13 – Team Project. Introduction. GIS-focused algorithm competition The 2013 contest is about geo-fencing location-based advertisements child location services Each group needs to submit their source code and program outputs.
E N D
Introduction • GIS-focused algorithm competition • The 2013 contest is about geo-fencing • location-based advertisements • child location services • Each group needs to submit their source code and program outputs. • Program can also be submitted in the GIS CUP competition.
Problem Definition • Input: A set of possibly overlapping regions (polygons with and without interior rings) and a set of points. • Output: Pair each input point with one or more of the input polygons such that a given spatial condition is satisfied between the polygon and the point. • Points max 1 million and Regions max 500. • spatial predicates: • INSIDE • WITHIN n
Problem Definition contd. • The input points are associated with an ID and the same point might appear multiple times in the input (moving points). • Each instance of the input point may appear zero or more times in the output. • Different instances of the input point may be associated with different polygons in the output. • The polygons are also associated with a unique ID (moving regions). • The points should always look at the latest position of the polygon to find the right association.
Evaluation Criteria • The time to process all the input data will be the main criterion for the evaluation of the solution. • The accuracy of the result. • Example: If you process all the input points in 5 minutes but only 1000 points are accurately associated with the right polygon, then the rate will be 1000 points per 5 minutes. • For a test run, one of the predicates (INSIDE|WITHIN n) will be tested. There will be several test runs with different sets of input points and polygons. And the rate of processing of the points is averaged over all the test runs.
Example • Geofence < "INSIDE" | "WITHIN n" > <PointInputFilePath> <PolygonInputFilePath> <OutputFilePath> • Point format: • POINT:ID:Sequence:<gml Point> • Polygon format: • POLYGON:ID:Sequence:<gml Polygon> • Output file format: • ID:Sequence::ID:Sequence • Command example: • Geofence INSIDE points.txt polygons.txt out.txt
Example contd. Points in points.txt file: • POINT:1:501:<gml:PointsrsName="EPSG:" xmlns:gml="http://www.opengis.net/gml"><gml:coordinates decimal="." cs="," ts=" ">1.0,1.0 </gml:coordinates></gml:Point> • POINT:2:502:<gml:PointsrsName="EPSG:" xmlns:gml="http://www.opengis.net/gml"><gml:coordinates decimal="." cs="," ts=" ">100.0,1.0 </gml:coordinates></gml:Point> • POINT:1:503:<gml:PointsrsName="EPSG:" xmlns:gml="http://www.opengis.net/gml"><gml:coordinates decimal="." cs="," ts=" ">2.0,1.0 </gml:coordinates></gml:Point> • POINT:1:504:<gml:PointsrsName="EPSG:" xmlns:gml="http://www.opengis.net/gml"><gml:coordinates decimal="." cs="," ts=" ">11.0,1.0 </gml:coordinates></gml:Point>
Example contd. Polygons in polygons.txt file • POLYGON:1:1: <gml:PolygonsrsName="EPSG:" xmlns:gml="http://www.opengis.net/gml"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates decimal="." cs="," ts=" ">0.0,0.0 5.0,0.0 5.0,5.0 0.0,5.0 0.0,0.0 </gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs></gml:Polygon> • POLYGON:2:2: <gml:PolygonsrsName="EPSG:" xmlns:gml="http://www.opengis.net/gml"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates decimal="." cs="," ts=" ">20.0,20.0 25.0,20.0 25.0,25.0 20.0,25.0 20.0,20.0 </gml:coordinates></gml:LinearRing></gml:outerBoundaryIs><gml:innerBoundaryIs><gml:LinearRing><gml:coordinates decimal="."cs="," ts=" ">21.0,21.0 22.0,22.0 23.0,21.0 21.0,21.0 </gml:coordinates></gml:LinearRing></gml:innerBoundaryIs></gml:Polygon> • POLYGON:1:503: <gml:PolygonsrsName="EPSG:" xmlns:gml="http://www.opengis.net/gml"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates decimal="." cs="," ts=" ">10.0,0.0 15.0,0.0 15.0,5.0 10.0,5.0 10.0,0.0 </gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon>
Example contd. • Correct output in output.txt file • 1:501::1:1 • 1:503::1:1 • 1:504::1:503