In [1]:
from plume.client import TaskPlumeClient
import plume.error_estimation as eest
%pylab inline
In [25]:
reload(eest)
Out[25]:
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]:
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]:
In [101]:
print(mean(values), std(values), values.max())
gtval = client.get_samples(locations)
print(mean(gtval), std(gtval), max(gtval))
In [28]:
client.disconnect()
In [ ]: