aboutsummaryrefslogtreecommitdiff
path: root/pixelmappers
diff options
context:
space:
mode:
Diffstat (limited to 'pixelmappers')
-rw-r--r--pixelmappers/GaussianMapper.py10
-rw-r--r--pixelmappers/SimpleMapper.py5
-rwxr-xr-xpixelmappers/WindGaussianMapper.py18
3 files changed, 31 insertions, 2 deletions
diff --git a/pixelmappers/GaussianMapper.py b/pixelmappers/GaussianMapper.py
index c82f243..883a95d 100644
--- a/pixelmappers/GaussianMapper.py
+++ b/pixelmappers/GaussianMapper.py
@@ -1,8 +1,16 @@
from operationscore.PixelMapper import *
import util.Geo as Geo
class GaussianMapper(PixelMapper):
+ """GaussianMapper is a PixelMapper which weights pixels around an event proportional to a
+ gaussian surface. Specify:
+ <Height> -- The height of the gaussian surface
+ <Width> -- The width of the gaussian surface
+ <MinWeight> -- the minimum weight event that can be returned
+ <CutoffDist> -- the maximum radius considered
+ """
+
def mappingFunction(self, eventLocation, screen):
- returnPixels = [] #TODO: consider preallocation and trimming
+ returnPixels = []
[x,y] = eventLocation
potentialPixels = screen.pixelsInRange(x-self.CutoffDist, \
x+self.CutoffDist)
diff --git a/pixelmappers/SimpleMapper.py b/pixelmappers/SimpleMapper.py
index 19d44c4..1568de3 100644
--- a/pixelmappers/SimpleMapper.py
+++ b/pixelmappers/SimpleMapper.py
@@ -2,6 +2,10 @@ from operationscore.PixelMapper import *
import util.Geo as Geo
import sys
class SimpleMapper(PixelMapper):
+ """SimpleMapper is a PixelMapper which maps events to the nearest Pixel. It also supports
+ strings of the form:
+ {x}>5, {y}<10, {x}*{y}<{x}, etc. (Conditons, separated by commas. and and or may also be
+ used)."""
def mappingFunction(self, eventLocation, screen):
if type(eventLocation) == type(tuple()):
bestDist = sys.maxint
@@ -19,7 +23,6 @@ class SimpleMapper(PixelMapper):
return []
else:
#{x}>5,{y}<k
- #TODO: we should probably encapsulate this somewhere
ret = []
eventLocation = eventLocation.replace('{x}', 'pixel.location[0]')
eventLocation = eventLocation.replace('{y}', 'pixel.location[1]')
diff --git a/pixelmappers/WindGaussianMapper.py b/pixelmappers/WindGaussianMapper.py
new file mode 100755
index 0000000..c5d77ca
--- /dev/null
+++ b/pixelmappers/WindGaussianMapper.py
@@ -0,0 +1,18 @@
+from operationscore.PixelMapper import *
+import util.Geo as Geo
+import math
+class WindGaussianMapper(PixelMapper):
+ def mappingFunction(self, eventLocation, screen):
+ returnPixels = [] #TODO: consider preallocation and trimming
+ [x,y] = eventLocation
+ potentialPixels = screen.pixelsInRange(x-self.CutoffDist, x)
+ for (xloc,pixel) in screen.pixelsInRange(x-self.CutoffDist, x):
+ pixelDistx = math.fabs(pixel.location[0] - x)
+ pixelDisty = math.fabs(pixel.location[1] - y)
+ if pixelDistx < self.CutoffDist:
+ if pixelDisty < 30:
+ w = Geo.windtrail(pixelDistx, pixelDisty, self.Height, 0, self.Width)
+ if w > self.MinWeight:
+ returnPixels.append((pixel, w))
+
+ return returnPixels