CHANGES
=======

* Update ci-pipeline.yml
* Delete to\_averaged\_timesurface.py~
* New HATS version: bug fixes and performance improvement (8x faster on CIFAR10DVS)
* Changed coordinates data types on CIFAR10 from unsigned to signed to avoid overflow in transforms
* Revert "Corrected overflow for unsigned event coordinates when computing the time surfaces positions."
* Revert "Bug correction (wrote int32 instead of np.int32 in astype())."
* Bug correction (wrote int32 instead of np.int32 in astype())
* Corrected overflow for unsigned event coordinates when computing the time surfaces positions

1.0.18
------

* Adjusted file extension so aedat4 in CIFAR10DVS for continuos unzipping issue
* Update README.md

1.0.17
------

* Update requirements.txt
* rework wrapping\_own\_data notebook
* exclude large datasets tutorial notebook, clarify ToFrame transform question
* update documentation to execute notebooks on RTD and re-use NMNIST testing dataset
* check string representation of transforms
* Set equal number of workers for cells and time surfaces (thanks Gregor for the suggestion)
* Bug fixes (wrong jobs division between cells and time surfaces
* Added test on both linear and exponential decay for AveragedTimesurface
* Added num\_workers to AveragedTimesurface; added exception handling for joblib; modified test function for AveragedTimeSurface
* Added histograms array implementation and modified test routine for ToAveragedTimesurface
* Update ci-pipeline.yml
* Update ci-pipeline.yml

1.0.16
------

* add automatic tonic.\_\_version\_\_ using pbr
* fix FlipPolarity to flip pols from 0 to 1 and vice versa, plus take into account bools
* Update README.md
* Update test\_representations.py
* add test\_transform\_flip\_polarity\_bools
* Fix frames test
* Add test to change for polarity>1 in frame generation
* Fix frame generation for audio data with polarity>1
* blacken the whole package
* add convenience transform ToImage
* delete tonic/version.py as pbr now taking care of that
* blacken all tests
* improve ToFrame tests slightly
* Update requirements.txt
* Update ci-pipeline.yml
* Update ci-pipeline.yml
* add requirements file
* use pbr for automatic versioning

1.0.15
------

* bump version to 1.0.15

1.0.14
------

* Update README.md
* Update ci-pipeline.yml
* Update ci-pipeline.yml
* fix change of API for approx() in pytest 7.x
* Split CachedDataset into MemoryCachedDataset and DiskCachedDataset

1.0.13
------

* update SHD and CIFAR10DVS documentation
* bump version to 1.0.13
* update NMNIST download link
* doc strings updated
* Update ci-pipeline.yml
* Update ci-pipeline.yml
* Update ci-pipeline.yml
* move librosa requirement to setup.py, move audio tests and remove requirements.txt
* removing pytorch transforms
* revert download\_utils.py and fix comment
* changed to stable dataset download source
* fix google drive upload problem
* catch up with 1.0.12 version
* add CIFAR10-DVS dataset

1.0.12
------

* bump version to 1.0.12
* make ToFrame transform also work with audio data
* Fix h5py multithreading issue for SHD/SSC on MacOS
* add str comment to drop\_pixel\_raster
* added identify pixel function for frames and rasters
* added unit test for test transform for raster
* added package identify\_hot\_pixel\_raster
* added identify frequency and transforms
* fix the if statement for events condition: event.dtype.names is not None
* add contional statement for DropPixel function
* add drop pixel raster function, this supports both frame and raster
* Change compression to boolean
* Compression flag added to the CachedDataset class. -> Defaults to lzf
* add note to CachedDataset documentation

1.0.11
------

* fix bug where the length of dataset would not be inferred correctly when dataset=None
* Update ci-pipeline.yml

1.0.10
------

* bump version to 1.0.10
* Update ci-pipeline.yml
* enable Windows test suite and documentation building in CI pipeline
* fix TUM-VIE wrong recording name. Should be bike-night instead of bike-dark
* Update .readthedocs.yml
* Delete pypi-publish.yml

1.0.9
-----

* TUMVIE dataset in 1.0.9
* update datasets documentation
* add TUM-VIE dataset
* Update and rename testing\_and\_coverage.yml to ci-pipeline.yml
* separate test requirements from install requirements
* delete unused download utils
* remove loris as a dependency completely and with it NCARS and Navgesture
* update github workflows

1.0.8
-----

* version 1.0.8: change frame dtype to int16 and catch OSError in SlicedDataset
* add reset\_cache parameter to CachedDataset
* exclude vscode folder
* bump version to 1.0.6
* update SlicedDataset to be able to write slice metadata of different length to disk
* update DSEC sensor size
* Update training\_snn.rst
* Update training\_snn.rst
* fix flaky batch collation test
* return structured np event array in DSEC
* added placeholder for divisive normalization
* version 1.0.4
* also catch OSError when looking for cached file to accomodate for outdated h5py package version
* bump version to 1.0.3
* check if sample is not already torch tensor during batch collation
* normalize as a standlone function
* DSEC docstring clarification
* bump version to 1.0.2
* update DSEC dataset to include recording parameter
* using librosa for fix length
* delete debug print message
* added sos filters from scipy
* Update version.py
* add typing\_extensions as requirement
* Update version.py
* Update release\_notes.rst
* Update index.md
* Update README.md
* tutorial notebooks update

v1.0.0
------

* add aermanager reference for slicing methods
* add new tutorial notebook on large datasets
* update release notes
* exclude metadata folder
* Caching now works with multi-data
* slice more efficiently when using metadata
* fix issue with non-matching image shapes in VPR
* update CachedDataset
* half wave rectification added
* update DAVIS dataset
* update SlicedDataset to contain filepath for metadata
* add AERmanager ref to io.py
* rename flip\_probability and drop\_probability to p
* notebooks can be downloaded now on documentation site
* added length to cached dataset to work with dataloader
* format DSEC
* update tutorial notebooks
* update dataset docstrings
* exchange dataset order in doc
* add DSEC dataset
* butter filter coefficients converted to floats
* remove a few lines of unused code
* fix flaky TimeSkew test
* removed debug messages
* add more dataset tests
* blacken everything
* add GPS data to VPR dataset
* more dataset refactoring..
* added some release notes for v1
* update DAVIS, HSD, MVSEC, Navgesture and NTIDIGITS
* refactored ASLDVS, DVSGesture, NCALTECH, NCARS, NMNIST, POKERDVS datasets to use \_check\_exists function for fast loading
* redo dataset tests and have first working example for DVSGesture. No dataset extraction anymore at every call
* Update training\_snn.rst
* Update README.md
* add nmnist animation to tutorial
* update representation tests
* Update codecov.yml
* Update codecov.yml
* Update codecov.yml
* Update codecov.yml
* Create codecov.yml
* Update to\_voxel\_grid.py
* added noise transform
* filterbank code bug fix + tests
* update documentation
* fix issue in DAVIS dataset where some recordings don't have IMU data
* add favicon
* not executing notebooks remotely anymore
* move torchvision requirement to docs/requirements
* add torchvision requirement
* see if docs release now works after local install
* install package locally on readthedocs
* update documentation to include API reference and tutorials
* update a few docstrings
* wip added butter filters
* update docstrings
* added Bin transform
* check transforms are not performed in-place
* add NumpyAsType test
* added dummy standardize data length transform
* drop pixel test
* add parser functions to tonic
* change to sphinx\_book\_theme
* update some datasets to output the correct format
* start to update documentation
* update plotting util function
* fix time surface transform mixed up dimensions
* fix mixed up width and height dimension in voxel grid and Frame transform
* exclude .idea folder
* Update requirements.txt
* disable dataset tests
* reformat datasets to use dtypes
* transform now works on events and events only, no event\_data tuple anymore
* remove ToSparseTensor transform
* update some datasets with new tuple output
* make all tests but Slicing / Caching pass
* event transform tests passing
* flip tests pass
* denoising test passes
* refactor tests
* blacken everything
* removing ordering from tests
* make first RandomCrop tests pass again
* replace create\_random\_input\_with\_ordering with create\_random\_input
* sed all [xytp]\_indices
* test folder layout restructure
* replace [x,y,t,p]\_loc strings
* blacken everything before string replacements
* start to refactor the test utils to use dtypes
* separate functional slicing from classes, reorganize package structure a bit
* make Python 3.7 compatible by importing Protocol from typing\_extensions
* hash parent class transform and target\_transform
* sensor size in test acquired from dataset
* added a parameter to save a number of copies of an item to the cache
* fix for ToFrame() transform
* changes in dataset
* fix to utils in test
* changes in dataset transforms
* transforms fix in tests
* freeze dataclasses in order to make them hashable
* added documentation
* wip
* added implementation of caching functionality
* add tests for sparse and dense transforms and batch collation
* make all tests pass again
* refactored event transforms
* refactor random flips and downsampling transforms
* sliced dataset implemented
* tests for slicing implemented
* added scipy to requirements
* dummy tests added. require implementation
* SlicedDataset added
* added SliceAtTimePoints slicer
* Three slicers from aermanager added
* Added initial version of Slicer and SliceByTime
* Denoise and DropEvent refactor
* update RandomCrop transform
* replace numpy.histogramdd with numpy.add for performace increase
* add global time surface possibility
* assertion change
* add temporal alignment transform
* added floor
* fix spatial downsampling
* update documentation
* update workflow to trigger on push

v0.4.6
------

* bump version
* update github workflow
* pypi publish workflow
* now also return sensor\_size from functional transform where necessary, such as crop or resize. Also blacken everything
* flexible sensor size

v0.4.5
------

* bump version to 0.4.5
* add Downsample instead of Subsample transform and incorporate MaskHotPixel into DropPixel transform. Rename DropEvents to DropEvent
* update documentation
* NCALTECH101 now returning floats
* Turns torch labels into tensors
* Solved nmnist integrity test. Fixes #117

v0.4.4
------

* bump version to 0.4.4
* fix wrong parameter name in plotting function and change value tensor in pytorch sparse tensor to float type
* add tests for transform wrappers
* refactor dataset tests not to use parameterized but purely pytest instead
* refactor numpy functional tests to use pytest instead of parameterized

v0.4.3
------

* bump version to 0.4.3
* add citations to datasets
* introduce Subsample transform
* remove assertion from TimeSkew method
* provide nmnist events as floats
* fix timeSkew test edge case
* update spatial and time jitter methods and docstrings

v0.4.2
------

* bump version to 0.4.2
* fix formatting in ToFrame docstring
* improve documentation for ToFrame method
* bump version
* update documentation
* add SMNIST to documentation
* add missing overlap and include\_incomplete parameters to ToFrame transform
* add comments
* move downloaded files into smnist directory
* put SHD and SSC data in hsd subfolder when downloading
* considerably improve ToFrame() transform, allowing for 4 different slicing methods
* add classes
* completed spiking s-mnist dataset
* whitespace
* started implementing s-mnist
* minor documentation changes
* readme update: importing only DataLoader
* add citation
* broken crop: temporary fix
* minor documentation modifications

v0.4.0
------

* bump version to 0.4.0
* break out pytorch dependencies
* update documentation to reflect non dependency on pytorch, add page that explains how to wrap your own dataset
* add first support for tensorflow sparse tensors, remove custom dataloader
* add custom dataloader class
* remove direct PyTorch and PyTorch Vision dependencies from package
* update dataset documentation
* Update README.md
* Update README.md
* update documentation
* move matplotlib import statement into function as it is an optional dependency

v0.3.10
-------

* bump version to 0.3.10
* add polarity dimension to N-TIDIGITS dataset and convert timestamps to microseconds
* add sparse tensor support for audio datasets
* split random input event generator function into vision and audio dataset events
* add polarity dimension to SHD and SSC datasets and convert timestamps to microseconds to be compatible with transforms
* add plt.show() to plot util function

v0.3.9
------

* bump version to 0.3.9
* improve documentation
* fix time\_filter parameter rename
* update documentation
* split torch tests from numpy tests
* add channel dimension to sparse tensor transform
* update VPR dataset

v0.3.8
------

* bump version
* rework collate function for batching operations. Now works with sparse tensors instead of numpy event arrays
* renamed VPR dataset and added documentation
* removed import and target transform from VPR dataset
* It should be pol - see https://github.com/event-driven-robotics/importRosbag/blob/master/importRosbag/messageTypes/dvs\_msgs\_EventArray.py
* Fixes for VPR dataset

v0.3.6
------

* Update index.rst
* Update README.md
* set minimum importRosbag version and bump version
* set importRosbag log level for DAVIS and MVSEC datasets
* fix events order in MVSEC
* bump version
* small documentation fix
* update documentation
* update dataset description
* make MVSEC dataset work
* small documentation update
* add return values for dataset doc
* remove guess\_event\_ordering\_numpy as not reliable
* automatic sensor\_size for n-caltech101 and plot\_event\_grid
* refactor dataset tests
* add first version of mvsec dataset, download from google drive is not reliable
* add visual place recognition dataset
* add importRosbag to loris deps
* add rosbag python package, switch to .rosbag files for DAVIS dataset
* delete comment in NCARS
* avoid extracting archive again when download=False for NMNIST
* change N-Caltech101 dropbox db link and also calculate sensor\_size on the fly since different for every recording
* fix NMNIST and NTIDIGITS download links, dropbox somehow changed their API
* add DAVIS event camera dataset
* remove 'suggested dataset' section from docs
* do not include dataset test for travis..
* add N-TI DIGITS dataset
* black formatted everything
* minor documentation fix
* improve dataset parameter documentation
* add requirements file back in for readthedocs
* small documentation fix
* deleted requirements file
* deactivate datasets tests
* bump version
* add Heidelberg Spiking Datasets
* update TimeJitter transform
* update contribute doc
* sort\_timestamps update
* sort\_timestamps
* Update spatial\_jitter.py
* improve plotting function
* mirror ASL-DVS samples vertically
* update docs for plotting function
* change to new plotting function plot\_event\_grid
* add ToVoxelGrid representation
* Update README.md
* fix travis dependencies, all tests passing
* make all tests (dataset, functional, transforms) pass
* refactored functional tests to use parameterized
* start refactoring tests using parameterized. FlipLR and Crop working
* add MaskHotPixel transform
* Update README.md
* bump version to 0.3.1
* update navgesture-sit zip
* add ASL-DVS dataset
* ignore data dir symlink

0.3.0
-----

* add NavGesture dataset
* fix NCARS sensor size by subtracting minimum y-value from all events
* update package description
* bump version
* add a few newlines
* update Compose description
* make tests pass again. spatial and temporal jitter can now cause negative coordinates
* modify spatial jitter to filter events in a single line
* bump version
* fix folder name error
* fix obsolete call to MaskIsolated
* Update README.md
* bump version
* change IBMGesture to DVSGesture
* update README
* add batch example to docs
* bumped version
* add tests for pokerdvs, ncars and ncaltech101 datasets
* use floats for poker and ncars datasets
* when in Python, always FLOAT

0.2.0
-----

* bump version
* update docs conf
* add NMNIST for first\_saccade\_only
* deactivate dataset tests for now
* migrate list of datasets to docs
* renamed MaskIsolated to Denoise
* contribute doc update
* add contribute doc page
* add trasparent white logo for docs
* add transform descriptions
* docstring args for datasets
* docs update
* ironing out readthedocs errors....
* add requirements.txt to .readthedocs
* prevent readthedocs from failing
* modify .readthedocs.yml
* modify .readthedocs.yml
* modify .readthedocs.yml
* add .readthedocs.yml
* add dataset tests download flag
* merge master
* integrate target transforms into transforms
* fix \_\_all\_\_ for transforms and add UniformNoise
* refactor docs
* batch support by padding with collate function
* convert pol of 0 into -1 when converting to sparse tensor
* change nmnist to batch reading
* tests for averaged time surface + cleanup
* add sparse tensor conversion
* remove python2 inheritance compatibility
* make ncars pytorch compatible
* parameterize dataset tests
* update README
* add parameterized
* exclude data folder
* make ncaltech101 pytorch compatible
* include pytorch DataLoader
* make ibmgesture pytorch compatible
* make nmnist pytorch compatible
* make pokerdvs pytorch compatible
* removed copy classes for Dataset, DataLoader, utils
* add torch to requirements
* fix tests
* add torchvision to requirements
* fix NCALTECH101 url
* small fix for linear decay where - values not zeroed
* add manifest file
* add average time surface to correct location
* move average script
* update README
* update README
* modified setup classifier
* setup and doc versioning from tonic.\_\_version\_\_
* automatically include submodules
* update setup.py
* update logo
* add logo
* package rename to tonic
* first version of average time surfaces
* clean up avg surf test
* there's a step missing that shapes the time surface
* initial average ts. imcomplete implementation
* update README
* add ncaltech101
* added utils function to plot rate-coded frames
* added links for TI Digits and TIMIT
* Update README.md
* all datasets so far now output time in us
* integer labels for poker pips
* integer labels for ncars
* add NCARS classification dataset
* small fix for ratecoded frame generation
* repackaged poker dvs toy data set
* introduce tanh to ratecoded transform
* add ToRatecodedFrame transform
* flesh out merge\_pols for rate-coded frames
* update README
* bump version to 0.0.3
* update flip documentation
* fix flip UD transform
* fix flipLR transformation
* make loris optional
* add transform test
* introduce merge\_pols and interpolate params
* remove sparse package dep
* rename drop\_event to drop\_events
* add to\_ratecoded\_frames
* renamed labels to targets
* add target transforms Repeat and ToOneHotEncoding
* correct assertions and skip testclass for now
* move import to dataset class
* add IBMGesture data set tests
* add NMNIST data set tests
* move download and extraction methods to dataset class, introduce target\_transformation
* shorten README
* add travis integration
* don't pass images after time surface creation
* formatting transforms
* update documentation
* moved timesurface creation to functional section
* add flags to spatial and temporal jitter to select if events should be dropped if negative / outliers
* added mask\_isolated transform wrapper and doc entry
* added tests for mask\_isolated method
* add method mask\_isolated
* var renaming
* clipping spatially jittered events that lie outside sensor size
* clipping negative time stamps after time jitter tranformation
* add option to use single saccade for nmnist
* improve docs rendering
* add representations to init
* add pokerdvs toy dataset
* add pokerdvs dataset
* correct typo
* Add representation example to README
* add doc for timesurface repr
* change file encoding
* add representation modifications
* fix bug where dataloader would always return one entry to little
* add dataset method for total number of events
* improve testTimeSkew
* fix mix ev stream method name
* fix refractory period method
* indicate IBM gestures data set availability in README
* dataloader minor rewrite
* new link for ibmgesture
* new link for ibmgesture
* added ibmgetsture in datasets.init script
* ibmGesture added
* add documentation instructions to README
* update index.rst
* fix docstrings to comply with google version of docstrings
* refrac period
* mix\_ev\_streams docstring
* add .rst files for each method
* change drop\_event encoding
* update docstrings for crop, drop\_event and flip\_pol
* add docs directory
* exclude docs build directory
* update instructions in README
* add assertions for dtypes
* methods support int32 dtype
* add support for tests with int events
* fix dtype detection in time jitter
* improve instructions
* make time jitter work with int arrays
* change nmnist events dtype to uint32 to half memory footprint
* add tqdm as dep
* add example use case to readme
* added testTimeSkewFlipPolarityFlipLR and fixed timeSkew method
* improve transforms test readability
* order tests alphabetically and remove duplicates
* fix tests after merging all PRs
* added new ASL-DVS dataset
* add testDropoutFlipUD
* add images and multi\_image to all transform calls
* added assertions to check that X and Y have been altered for testTimeReversalSpatialJitter
* added assertion for images for testTimeReversalSpatialJitter
* test for time reversal and time jitter in one transformation
* add multi image and time reversal test
* add images to transform interface that are passed from one transform to the next
* added time jitter transforms test
* removed sensor\_size from spatial and time jitter methods
* fix st\_transform test
* remove EMNIST data set
* added all transforms except mix\_event\_stream to interface
* fix sensor size
* fix applying transforms to dataset
* renamed files, fix StopIteration for dataloader
* add initial transforms interface on top of functional transforms
* remove structured array dtypes and add sensor\_size and ordering to NMNIST data set
* raise StopIteration at end of dataset
* add NMNIST dataset, base classes and utils
* add ATIS planes data set
* added test for st transform
* fixed indent
* corrected names and time\_skew inclusion
* add method for time jitter
* avoid list comprehension to speed up transform
* setup.py
* Create LICENSE.txt
* added test testMixEvTxyp
* testCropTxyp
* add test testTemporalFlipTxyp
* added testRefractoryPeriodTxyp
* harden testSpatialJitter
* add test testSpatialJitterTxyp
* add test testEventDropoutTxyp
* add test testFlipUDtxyp
* add test testFlipLRtxyp
* make random event input generation more general
* assert necessary elements are in ordering even when not guessing order
* refactor tests to remove prints and warnings
* event dropout tests added
* remove sorting after noise generation as this is done after blending with original events anyway
* speed up generation of noise events and improve test
* added generic ordering on input event vector
* corrected errors and added packages to method
* added st\_transform.py for spatial temporal transformation of events method
* create fixed number of noise events
* Update README.md
* Update README.md
* Update README.md
* linear time skew function & test
* add n-caltech101 db link
* Update docstring
* Initial implmentation of a cropping function
* Fix docstring
* Initial numpy time reversal implementation
* fix mixing of arrays of different length and code clean up
* use mix\_ev\_streams to blend uniform noise into main event stream
* create noise arrays for positive and negative events
* mix\_ev test and minor changes
* Import numpy as used in utils.py
* Add numpy based event polarity flipping
* replace for loop with simple addition
* changed the code to use axis 0 as event indices
* implemented dropout code
* dropout module code
* dropout module code
* dropout module added
* add spatial jitter method using multivariate Gaussian distribution
* event mixing of arbitrary streams
* remove print and del statements
* refractory period parameter in seconds rather than micro seconds
* add refractory period method
* Address review comments
* Fix sensor\_size index in flip\_ud\_numpy docstring
* Add up/down flipping with numpy
* Fix ordering of X and Y in utils
* fix non-existing np.numeric and add check for np ndarrays with dtypes
* Change to isclose instead of strict equality
* Add docstring to test utility
* add python black doc link
* Fixed shape issue and added more channel options
* Install instructions for pre-commit
* Add description to function docstring
* Functional example, tests, precommit
* Update README.md
* add EML implementation paper
* add links to some data sets
* initial commit
