Another approach to interpolate data is using \textit{Radial Basis Functions} (\texttt{RBF}). A very good explanation on how they work is given in \cite{RBF} which is shortly summarized below:
A function $\phi$ for which $\phi(x)=\phi(\left\|x\right\|)$ is true is called \textit{radial}. Now to be able to interpolate, we need to find the interpolation function $s(x)$ which is the same as the given values $p_i$ in all points.
The RBF interpolation now consists of a linear combination of $\phi(\left\|x-x_i\right\|)$ for a chosen radial function $\phi$ with $n$ constants $\lambda_i$.
with $\Phi$ being a symmetric $n \times n $ matrix as $\left\|x_j-x_i\right\|=\left\|x_i-x_j\right\|$. There are many possibilities for the radial basis function $\phi(r)$. It can be for example linear ($r$), gaussian ($e^{-r^2}$) or multiquadric ($\sqrt{\left(\frac{r}{\epsilon}\right)^2+1}$) with $\epsilon$ being a constant that defaults to the approximate average distance between nodes.
As an example, consider the three points $x_1=0$, $x_1=3$ and $x_1=5$ with $p(x_1)=0.2$, $p(x_2)=0.8$ and $p(x_3)=0.1$ and choose a gaussian function for $\phi$ to get the following:
Applying the same method to a list of random points allows to interpolate their values for arbitrary other points like the green point on the sinus-like curve in Figure \ref{fig:rbf-2}. This can also be trivially extended in $m$ dimensions by replacing $x$ with an $x\in\mathbb{R}^m$ and using a norm in $\mathbb{R}^m$ for $\left\|\ \right\|$.
The scipy function \texttt{scipy.interpolate.Rbf} allows directly interpolating a value similar to \texttt{griddata} in Section \ref{sec:griddata-implementation} while using the linear function as the Radial Basis Function ($\phi(r)=r$). A difference in usage is that it only allows interpolating a single value, but as it is pretty quick it is possible to calculate multiple values sequentially.
The results from RBF interpolations can be seen in Figure \ref{fig:rbfresults}. It is far smoother with a gradient from \SIrange{0}{100}{\percent} from the top left to the bottom right corner. Only the lower mass (Figure \ref{fig:rbf1}) has a view outliers. Unlike griddata it is also possible to extrapolate to close values and still get realistic results.