Skip to content

Instantly share code, notes, and snippets.


Jami Pekkanen jampekka

View GitHub Profile
View mjuna.geojson
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View index.html
<script src=""></script>
<script src=""></script>
<script src=""></script>
<link href="" rel="stylesheet" media="screen">
<link href="" rel="stylesheet" media="screen">
<link href="" rel="stylesheet" media="screen">
jampekka /
Created Sep 17, 2014
Gstreamer 1.0 v4l2src with Python halts
# PyGST with Gst 0.10 works fine
import gst
pipe = gst.parse_launch("""v4l2src device=/dev/video0 !
appsink sync=false max-buffers=1 drop=true name=sink emit-signals=true""")
sink = pipe.get_by_name('sink')
import numpy as np, matplotlib.pyplot as plt, sys
from scipy.ndimage.filters import gaussian_filter
def transparent_jet(cutoff=0.2):
colormap ='jet')
alphas = np.linspace(0.0, 1.0, colormap.N)
alphas[alphas < cutoff] = 0.0
alphas[alphas > cutoff] = 1.0
colormap._lut[:-3,-1] = alphas
View test.html
<h1 id="otsake"></h1>
<script type="text/javascript" src="coffee-script.js"></script>
<script type="text/javascript" src=""></script>
<script type="text/coffeescript">
otsake = $("#otsake")
otsake.text("Hello DOM!")
jampekka /
Last active Aug 29, 2015
# Motivation for this madness: I often find that simply a function is
# a nice interface objects. However, often later on a need arises that
# we need also something else in a return value / argument, which currently
# calls for refactoring of every call site. In Python this can be hacked
# around using __call__. This would be a way to hack around it in LiveScript.
# And anyway I think having separate "classes" and "objects" is a bit stupid
# historical artefact. KISS!
fobj = (f) -> (...args) ->
{zipWith, fold, map, zipAll, findIndex, objsToLists} = require "prelude-ls"
fobj = -> (...args) ->
me = {}
callable = f.apply(me, args) ? me
me.__proto__ = callable.__proto__
callable.__proto__ = me
return callable
export isScalar = (v) -> typeof v == 'number'
import numpy as np
import numpy
import math
import itertools
import random
import matplotlib.pyplot as plt
class Som(object):
"""Self-organizing map
View enginemodel.json
[[-19.150852756939567, -0.86960922500437798], [-10.0, -0.67314024428906383], [-4.0, -0.53092823365752206], [-2.5, -0.34978573520149692], [-1.7, -0.097415037510977784], [-1.2, 0.031117285095661945], [0.0, 0.26398121786496032], [3.0, 0.71245888265216406], [5.2096257357368652, 0.93516331581155065]]
def project_to_ground(pos, camera, height=0.0):
matWorldInverse = np.array(camera['matrixWorldInverse']).reshape(4, 4).T
matWorld = np.linalg.inv(matWorldInverse)
proj = np.array(camera['projectionMatrix']).reshape(4, 4).T
origin = matWorld[:,3][:-1]
deproj =, np.linalg.inv(proj))
direction =, (pos[0], pos[1], 0.5, 1.0))
direction = direction[:-1]/direction[-1]
direction -= origin