Integration of user-provided time series algorithms¶
The YATSM package provides some time series algorithms as part of the project, but developers can also build and integrate their own algorithms into the suite of time series algorithms that can be utilized by programs like yatsm line or yatsm pixel.
YATSM uses the setuptools module concept of “entry points” to
enumerate time series algorithms. YATSM algorithms are registered into a
group based on the type of algorithm – there are entry point groups for
algorithms that find change as separate from algorithsm which postprocess
existing change results. Both categories link an entry point name to a
class or function usable within the YATSM package. For example, from the
setup.py
installation setup script:
[yatsm.algorithms.change]
CCDCesque=yatsm.algorithms.ccdc:CCDCesque
This entry point definition links the name of the algorithm, “CCDCesque”, to
the module (yatsm.algorithms.ccdc
) containing the relevant
time series algorithm class, yatsm.algorithms.ccdc.CCDCesque
. Users
select the “CCDCesque” algorithm by defining it their configuration files.
Using entry points, you can create your own algorithms, distribute them in separate Python packages, and YATSM will be able to find them and enable them to work within the YATSM package.
Behind the scenes¶
YATSM uses the function iter_entry_points
from the setuptools module to
find and load all entry points associated with the YATSM package.
Todo
Create example yatsm_algorithms
repository to act as a template for
including additional algorithms via setuptools.