Skip to content

infant-cognition-tampere/fixationmodel-py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fixationmodel-py

A least-squares offline method to test if tracked gaze points resemble a fixation.

1. Install

With pip:

$ pip install fixationmodel

2. Usage

A data structure we call pointlist is used for point sequences. It is a list of points, where each point is a list [x, y].

The usage is simple:

>>> import fixationmodel
>>> rawdata = [
    [130.012, 404.231],
    [129.234, 403.478],
    [None, None],
    [133.983, 450.044],
    ...
]
>>> results = fixationmodel.fit(rawdata)
>>> print(results)
{
    'centroid': [344.682, 200.115],
    'mean_squared_error': 0.000166802
}

3. API

3.1. fixationmodel.fit(gazepointlist)

Parameter:

  • gazepointlist: a list of [x, y] points i.e. a list of lists.

Return dict with following keys:

  • centroid: a list [x, y], the most probable target of the fixation
  • mean_squared_error: the average squared error for a point.

3.2. fixationmodel.version

Gives the current version string:

>>> fixationmodel.version
'1.2.3'

4. For developers

4.1. Virtualenv

Use virtualenv:

$ virtualenv -p python3.5 fixationmodel-py
$ cd fixationmodel-py
$ source bin/activate
...
$ deactivate

4.2. Testing

Follow instructions to install pyenv and then either run quick tests:

$ python3.5 setup.py test

or comprehensive tests for multiple Python versions in tox.ini:

$ pyenv local 2.6.9 2.7.10 3.2.6 3.3.6 3.4.3 3.5.0
$ eval "$(pyenv init -)"
$ pyenv rehash
$ tox

Validate README.rst at http://rst.ninjs.org/

4.3. Publishing to PyPI

Follow python packaging instructions:

  1. Create an unpacked sdist: $ python setup.py sdist
  2. Create a universal wheel: $ python setup.py bdist_wheel --universal
  3. Go to PyPI and register the project by filling the package form by uploading fixationmodel.egg-info/PKG_INFO file.
  4. Upload the package with twine:
    1. Sign the dist: $ gpg --detach-sign -a dist/fixa...0.1.2*
    2. Upload: twine upload dist/fixa...0.1.2* (will ask your PyPI password)
  5. Package published!

Updating the package takes same steps except the 3rd.

5. Versioning

Semantic Versioning 2.0.0

6. License

MIT License

About

A measure of how well gaze data resembles a fixation

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages