Quickstart

Preprocessing raw data

Convert experimental prototypical-movement (PM) sequences and velocity tables into the Markov transition matrices required by the simulator:

satyre-preprocess --idx data/ORL_IDX.txt \
                  --velo data/ORL_C.txt  \
                  --out  data/preprocessed

This creates three .npy files in data/preprocessed/.

Running a Markov-driven simulation

import numpy as np
from satyre import MarkovWalker

trans = np.load("data/preprocessed/cumsum_transition_matrix.npy")
pm_idx = np.load("data/preprocessed/pm_index_matrix.npy")
velos  = np.load("data/preprocessed/velocity_array.npy")

walker = MarkovWalker(
    trans, pm_idx, velos,
    max_steps=150_000,
    n_trials=100,
    food_mode="random",
)
results = walker.simulate_multiple()
print(f"Mean food found: {results['food_found'].mean():.1f}")

Running a Lévy-flight simulation

from satyre import LevyWalker

walker = LevyWalker(
    cauchy_alpha=1.5,
    mode="cauchy",
    max_steps=150_000,
    n_trials=100,
)
results = walker.simulate_multiple()

Analysing results

from satyre.analysis import (
    summarise_food_collected,
    step_size_distribution,
)

print(summarise_food_collected(results))
print(step_size_distribution(results["step_sizes"]))