47 lines
1 KiB
Python
47 lines
1 KiB
Python
import json
|
|
import time
|
|
|
|
import git
|
|
import numpy as np
|
|
|
|
import context_maps
|
|
from walker import Walker
|
|
|
|
# Use the following parameters to simulate and save a trajectory of the walker
|
|
|
|
seed = 42
|
|
sigma_i = 3
|
|
sigma_j = 4
|
|
size = 200
|
|
i, j = (50, 100)
|
|
n_iterations = 1000
|
|
# USE map_type hills
|
|
random_state = np.random.RandomState(seed)
|
|
|
|
# STEP 1: Create a context map
|
|
context_map = context_maps.hills_context_map_builder(size)
|
|
|
|
# STEP 2: Create a Walker
|
|
walker = Walker(sigma_i, sigma_j, context_map)
|
|
|
|
# STEP 3: Simulate the walk
|
|
|
|
trajectory = []
|
|
for _ in range(n_iterations):
|
|
i, j = walker.sample_next_step(i, j, random_state)
|
|
trajectory.append((i, j))
|
|
|
|
# STEP 4: Save the trajectory
|
|
curr_time = time.strftime("%Y%m%d-%H%M%S")
|
|
np.save(f"sim_{curr_time}", trajectory)
|
|
|
|
|
|
# STEP 5: Save the metadata
|
|
# lookup git repository
|
|
repo = git.Repo(search_parent_directories=True)
|
|
sha = repo.head.object.hexsha
|
|
|
|
with open('meta.txt', 'w') as f:
|
|
f.write(f'I estimated parameters at {curr_time}.\n')
|
|
f.write(f'The git repo was at commit {sha}')
|