Sampling


In [1]:
using AutomotiveDrivingModels
using Distributions
using AutoScenes
using AutoViz
using NGSIM


INFO: Recompiling stale cache file /home/tim/.julia/lib/v0.4/AutoScenes.ji for module AutoScenes.

In [2]:
trajdata = load_trajdata(1);

In [3]:
using Interact
using Cairo

roadway = trajdata.roadway
nothing



In [4]:
const REGIONS = Dict{ASCIIString, SubSceneExtractParams}(
  "101A" => SubSceneExtractParams(VecSE2(1966406.608, 570903.793, 2.382), 100.0, 27.0),  
  "101B" => SubSceneExtractParams(VecSE2(1966501.608, 570804.793, 2.425), 100.0, 25.0),
  "101C" => SubSceneExtractParams(VecSE2(1966406.608, 570903.793, 2.382), 100.0, 25.0),
  "80A"  => SubSceneExtractParams(VecSE2(6042777.824, 2133302.509, 1.684)),
  "80B"  => SubSceneExtractParams(VecSE2(6042697.824, 2134372.509, 1.745)),
  )


Out[4]:
Dict{ASCIIString,AutoScenes.SubSceneExtractParams} with 5 entries:
  "80A"  => AutoScenes.SubSceneExtractParams(VecSE2({6042777.824, 2133302.509},…
  "101B" => AutoScenes.SubSceneExtractParams(VecSE2({1966501.608, 570804.793}, …
  "101A" => AutoScenes.SubSceneExtractParams(VecSE2({1966406.608, 570903.793}, …
  "80B"  => AutoScenes.SubSceneExtractParams(VecSE2({6042697.824, 2134372.509},…
  "101C" => AutoScenes.SubSceneExtractParams(VecSE2({1966406.608, 570903.793}, …

In [5]:
dset = pull_scene_dataset(trajdata, REGIONS["101B"])
length(dset)


Out[5]:
736

In [6]:
sg = SceneGenerator(dset.factors, (Normal(1.0), Normal(0.5), Normal(0.5), Normal(0.1)), 2)


Out[6]:
SceneGenerator(burnin=2)

In [8]:
scene, source, structure, roadway = sample(sg, dset)

overlays = SceneOverlay[Overwash(RGBA(1.0,1.0,1.0,0.7)), SceneStructureOverlay(structure)]
render(scene, roadway, overlays, cam=SceneFollowCamera(3.0))


Out[8]:

In [11]:
using Interact

starting_scene_index = rand(1:length(dset))
source = dset.sources[starting_scene_index]
scene, structure, roadway = get_scene_structure_and_roadway!(Scene(), dset, starting_scene_index)
overlays = SceneOverlay[Overwash(RGBA(1.0,1.0,1.0,0.7)), SceneStructureOverlay(structure)]

@manipulate for i in 1 : 1000

    overlays = SceneOverlay[Overwash(RGBA(1.0,1.0,1.0,0.7)), SceneStructureOverlay(structure)]
    render(scene, roadway, overlays, cam=SceneFollowCamera(3.0))
    
    metropolis_hastings_step!(scene, structure, roadway, sg.factors,
                         sg.propsal_distribution, sg.Δ_propose, sg.mem, sg.rec)
    
    render(scene, roadway, overlays, cam=SceneFollowCamera(3.0))
end


Out[11]:

In [8]:
sdset = sample(5, sg, dset)
length(sdset)


Out[8]:
5

In [9]:
scene, roadway = get_scene_and_roadway!(Scene(), sdset, dset.trajdatas, 1)

render(scene, roadway, cam=SceneFollowCamera(3.0))


VecE2(1966513.695, 570798.113)
Out[9]:

In [10]:
outpath = "scenedataset_test.dat"
open(io->write(io, sdset), outpath, "w")

In [11]:
sdset2 = open(io->read(io, SceneDataset), outpath, "r")

scene, roadway = get_scene_and_roadway!(Scene(), sdset2, dset.trajdatas, 2, all_vehicles=false)

render(scene, roadway, cam=SceneFollowCamera(3.0))


VecE2(1966500.630, 570809.025)
Out[11]:

In [ ]: