{
"cells": [
{
"cell_type": "markdown",
"id": "c0dabf94-1e34-4e3f-bedc-4dfc767834c6",
"metadata": {},
"source": [
"# Create realistic synthetic track\n",
"\n",
"This tutorial is going to show how generate noise simulation to create realistic synthetic tracks.\n",
"\n",
"To generate realistic noise, we used an approach described in [Ripley (2009)] and also employed in [Ménéroux (2022)]: \n",
"\n",
"With a random generator, we sampled $N$ i.i.d. unit-variance and zero-mean gaussian values, compiled in a vector $\\mathbf{x}$. It can easily be shown that, for any positive-definite matrix $\\mathbf{\\Sigma} \\in \\mathbb{R}^{n \\times n}$, the random vector $\\mathbf{y} = \\mathbf{Ax}$ where $\\mathbf{A}$ is a Cholesky factor of $\\mathbf{\\Sigma}$, is a realization of a correlated random vector $\\mathbf{Y}$ having covariance matrix $\\Sigma$. The covariance matrix $\\mathbf{\\Sigma}$ is formed with a (stationary) covariance kernel with three parameters:\n",
"\n",
"* The **type of kernel**: exponential, gaussian, and triangular models are used.\n",
"* The **amplitude** of noise: is between 0 and 5 meters, as it is quite uncommon to find building databases with more than 5 m error amplitude. If necessary, the output tables could be extended to handle large errors.\n",
"* The correlation **scope** of the noise which roughly speaking describes how far apart two errors would remain correlated (in both amplitude and direction): between 1 m (white noise) and 1000 m (global translation).\n",
"\n",
"
\n",
"In Tracklib, you need to create a kernel with a scope and then apply the noise method to a track by configure the amplitude:\n",
"
\n",
"