In [1]:
from plume.client import TaskPlumeClient
import plume.error_estimation as eest
%pylab inline


Populating the interactive namespace from numpy and matplotlib

In [25]:
reload(eest)


Out[25]:
<module 'plume.error_estimation' from '/Volumes/Home/blubb/Documents/programming/uni/master/plume/plume/error_estimation.py'>

In [24]:
area = np.array([[-140, 140], [-140, 140], [-80, 0]])
num_samples = 4000
proposal_std = 3

In [4]:
client = TaskPlumeClient()
client.connect_to('127.0.0.1', 10000)
client.init('TaskPlumeMultiSourceGaussianDispersionDefaultControls')

In [5]:
client.reset()

In [26]:
sources = client.get_sources()
positions = np.concatenate([eest.sample_with_metropolis_hastings(
    client, s, area, int(num_samples / len(sources)), proposal_std)[0] for s in sources])

In [27]:
figure(figsize=(12, 4))
subplot(1, 2, 1)
scatter(positions[:, 0], positions[:, 1])
scatter(sources[:, 0], sources[:, 1], c='r')
xlim((-150, 150))
ylim((-150, 150))
subplot(1, 2, 2)
scatter(positions[:, 0], positions[:, 2])
scatter(sources[:, 0], sources[:, 2], c='r')
xlim((-150, 150))
ylim((-80, 0))


Out[27]:
(-80, 0)

In [10]:
locations = client.get_locations()
figure(figsize=(12, 4))
subplot(1, 2, 1)
scatter(locations[:, 0], locations[:, 1], c='r')
xlim((-150, 150))
ylim((-150, 150))
subplot(1, 2, 2)
scatter(locations[:, 0], locations[:, 2], c='r')
xlim((-150, 150))
ylim((-80, 0))


Out[10]:
(-80, 0)

In [101]:
print(mean(values), std(values), values.max())
gtval = client.get_samples(locations)
print(mean(gtval), std(gtval), max(gtval))


(0.0014041217791349976, 0.0011121114091414636, 0.010687346763474223)
(0.0014750049953700523, 0.0017004838314537804, 0.01160740930025755)

In [28]:
client.disconnect()

In [ ]: