Data Requirements¶
Whether its used for estimating parameter values or for simulating data, the SceneWalk model expects data to come in the following structure:
Scan Path Information¶
x and y positions in degrees of visual angle. The origin of the data is expected to be at the bottom left.
fixation durations in seconds
the image number (should start at 1)
These data (x, y, duration, image) should be organized as a list of list of numpy arrays like so: Subjects[Trial[Scanpath[]]]
. So each scanpath is a numpy array and then all the scanpaths go into a list of trials for one subject. Lastly all trial lists are added to a list of all subjects.
Densities and Range¶
the data range in degrees of visual angle as
[[xmin, xmax],[ymin, ymax]]
a list of ‘priority maps’. We use empirical fixation density maps but it is possible to use model generated saliency maps. By default the model expects 128x128 densities, but it can be configured to accept different resolutions. The densities should sum to 1 and be 128x128 pixel numpy arrays
Folder Structure¶
In the utils.loadData submodule we assume that the above information has been saved to a folder called npy
, where each bullet point is a separate .npy
file, with some name, but ending in “_x.npy”, “_y.npy”, “_dur.npy”, “_im.npy”, “_range.npy”, and “_densities.npy”.
The folder structure for datasets is therefore as follows:
|--DATA
|-- Dataset1
|-- npy
|-- d1_x.npy
|-- d1_y.npy
|-- d1_im.npy
|-- d1_dur.npy
|-- d1_densities.npy
|-- d1_range.npy
|-- Dataset2
|-- npy
|-- d2_x.npy
|-- d2_y.npy
|-- d2_im.npy
|-- d2_dur.npy
|-- d2_densities.npy
|-- d2_range.npy
Example¶
In the Utils.loadData Module¶
If you have set up a DATA folder as shown above you can use the inbuilt loading functions to import the data. However you must inform the library where to look for this folder. There are 4 options to tell the module where to look for data:
you pass the the path to the
utils.loadData.load_data()
function directly. Use an absolute path the to npy folder.you can set the path at the top of your script like so:
from scenewalk.utils import loadData loadData.DATA_PATH = "My/Path/DATA"
you can place a
config.yml
file into your working directory (seeconfig_sample.yml
)you can place a
config.yml
file into thescenewalk_model/scenewalk
directory (seeconfig_sample.yml
)
Once this is set up, the data loading should work as shown in the examples of this documentation.