# Intern Summer 2024 - Daniele and Engineering
###### tags: `aeon-intern`
__Contributor:__ Daniele Carli
__Project:__ aeon and foot sentry
__Project length:__ 8 Weeks
__Mentors:__ Tony Bagnall, Matthew Middlehurst
__Start date:__ 24/6/24
__End date:__
__Regular meeting time:__ Friday, ??
## Project Summary
## Project Timeline
## Getting started tasks
- [x] Introduce yourself in the community Slack channels. Use __#introductions__ to introduce youself to the wider community if you have not already and __#summer-2024__ to introduce yourself and your project to other students and mentors.
- [x] Go through the contributor guide on the _aeon_ website (https://www.aeon-toolkit.org/en/stable/contributing.html).
- [x] Set up a development environment, including _pytest_ and _pre-commit_ dependencies. This will make development a lot easier for you, as you must pass the PR tests to have your code merged (https://www.aeon-toolkit.org/en/stable/developer_guide/dev_installation.html).
- [x] Review some of the important dependencies for developing aeon at a basic level:
- [x] __scikit-learn__ the interface aeon estimators extend from. We aim to keep as compatible as possible with sklearn tools.
- [x] __pytest__ for unit testing. Any code added will have to be covered by tests.
- [x] __sphinx/myst__ for documentation. Adding new functions and classes will have to be added to the API docs.
- [x] __numba__ for writing efficient functions.
- [x] Make some basic Pull Requests (PRs) to gain some experience with contributing to _aeon_ through GitHub.
- [x] Add the project time line objects to this document.
# Make notes of progress here
When reading research paper its good to read through it first to get the general gist and keywords of the paper. re read it once again and particular at the maths try to really understand the logic behind it. While doing this don't be afraid to ask questions to supervisors, us ChatGPT summary, and do your own research!
## Week 1: 24/6/24
First meeting
Data: MU data
goal: find minimum data to solve range of classification problems
Class variable: standing, sitting, sit-to-stand, stand-to-sit
Data: 6 sensors: frequency 100HZ?
<s>1. Set up share point </s>
<s>2. Set up a github repo</s>
<s>3. Write brief overview of the problem</s>
<s>4. Define it as a segmentation problem, try aeon segmenters</s>
5. Define a classification problem for six activities
### 25/6/24
Test all Segmenters
segmenters can be used for different dimensions of data, use them what they are meant for.
<s>1. ClaSP (not in the Segmentation API)</s>s>
<s>2. InfromationGainSegmenter</s>
3. GreedyGaussianSegmenter
4. EAggloSegmenter
5. HMMSegmenter
### 26/6/24
Start documenting and coding Piecewise Linear Approximation (PLA)
https://www.overleaf.com/1772952449cdwgpfqpqmqz#7a3c83
## Week 2: 1/7/24
### 3/7/24
Implemented PLA, need to comment and create tests and change code to be more towards Aeon needs.
Pr: https://github.com/aeon-toolkit/aeon/pull/1807
Paper: https://ieeexplore.ieee.org/abstract/document/989531
## Week 3: 8/7/24
Looked into fixing Catch22: Pr: https://github.com/aeon-toolkit/aeon/pull/1809.
Issue can be found: https://github.com/aeon-toolkit/aeon/issues/1384
Also another issue not just related to Catch22: https://github.com/aeon-toolkit/aeon/pull/1598
It seems that Numba supports Numpy functions, however some are not implemented correctly by numba. For Catch22 I converted C code into python, however it may be worth just creating an Aeon library for converting some
## Week 4: 15/7/24
Created tests for PLA, and contiounsly working on code quality.
Took time to learn Numba and its issues, a lot have arisen but easily readable if you convert the errors into C understanding.
Fixed Catch22, the best method was installing 'Code runner' which is a visual studio add-on which runs C code for you. After installing it you can import pycatch22 github code and run your own tests to figure out outputs.
## Week 5: 22/7/24
Found out pycatch22 gives different result to actual C code implementation, could just be library outdated and needs to be updated to github implementation.
## Week 6: 29/7/24
Fixed Catch22 and now in mean of Aeon https://github.com/aeon-toolkit/aeon/pull/1809
Numba enjoys finding division by zero errors, but not out of index array errors. Important to always test both numba on and off
Still some code quality to be done in PLA.
Read shapelets papers and dilated shapelets paper.
Tried running Iridis and still needs to do some review of it, still not very sure how to run code on it.
## Week 7: 5/8/24
Read and comment through all of RDST Code within Aeon.
Decision made is to swap Parrallel() into using Numba parallel compiler.