view python/tests/indicators.txt @ 372:349eb1e09f45

Cleaned the methods/functions indicating if a point is in a polygon In general, shapely should be used, especially for lots of points: from shapely.geometry import Polygon, Point poly = Polygon(array([[0,0],[0,1],[1,1],[1,0]])) p = Point(0.5,0.5) poly.contains(p) -> returns True poly.contains(Point(-1,-1)) -> returns False You can convert a moving.Point to a shapely point: p = moving.Point(1,2) p.asShapely() returns the equivalent shapely point If you have several points to test, use moving.pointsInPolygon(points, polygon) where points are moving.Point and polygon is a shapely polygon.
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Tue, 16 Jul 2013 17:00:17 -0400
parents 66691c06928c
children 933670761a57
line wrap: on
line source

>>> from indicators import *
>>> from moving import TimeInterval,Trajectory

>>> indic1 = TemporalIndicator('bla', [0,3,-4], TimeInterval(4,6))
>>> indic1.empty()
False
>>> indic1.getIthValue(1)
3
>>> indic1.getIthValue(3)
>>> indic1[6]
-4
>>> indic1[7]
>>> [v for v in indic1]
[0, 3, -4]
>>> indic1 = TemporalIndicator('bla', {2:0,4:3,5:-5})
>>> indic1.getIthValue(1)
3
>>> indic1.getIthValue(3)
>>> indic1[2]
0

>>> t1 = Trajectory([[0.5,1.5,2.5],[0.5,3.5,6.5]])
>>> indicatorMap([1,2,3], t1, 1)
{(1.0, 3.0): 2.0, (2.0, 6.0): 3.0, (0.0, 0.0): 1.0}
>>> indicatorMap([1,2,3], t1, 4)
{(0.0, 1.0): 3.0, (0.0, 0.0): 1.5}