In [1]:
from sklKDE.producers import MockParams, MockProducer
from sklKDE.producers.distributions import gaussian
from sklKDE.geometry import PointAt, Window, BoundingBox, Grid
from sklKDE.datatypes import Kernel
from sklKDE.density import Density, DensityParams
from numpy import seterr
from mkl import set_num_threads
_ = seterr(over='ignore')
set_num_threads(1)
In [2]:
center = PointAt(0, 0)
window = Window(2, 4)
bounds = BoundingBox(center, window)
grid = Grid(50, 50)
params = MockParams(100, 1000, gaussian)
producer = MockProducer(params, bounds)
kernel = Kernel('gaussian', 0.1)
demand_params = DensityParams(kernel, bounds, grid, producer)
demand = Density(demand_params)
In [3]:
demand.control.start()
In [10]:
demand.control.alive
Out[10]:
In [9]:
demand.control.stop()
In [ ]:
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
%matplotlib qt5
In [ ]:
fig_size_x = 8
fig = plt.figure(figsize=(fig_size_x, fig_size_x*bounds.aspect))
ax = plt.axes()
axlabel = ax.set(xlabel='longitude', ylabel='lattitude')
contour = ax.imshow(demand.on_grid,
cmap='viridis',
extent=bounds.extent,
origin='lower')
def initialize_figure():
return contour,
def update_figure(*args):
data = demand.on_grid
contour.set_data(data)
contour.set_clim(data.min(), data.max())
return contour,
animation = FuncAnimation(fig, update_figure, interval=100, blit=True)
fig.tight_layout()
fig.show()
In [8]:
%%time
for i in range(100):
demand.at(center)
In [ ]: