val model: StatisticalMeshModel = StatismoIO.readStatismoMeshModel(ssmFile).get
val gausKernel = GaussianKernel[_3D](stdDev) * magnitude
val matrixValuedKernel : MatrixValuedPDKernel[_3D,_3D] = UncorrelatedKernel[_3D](gausKernel)
val combKernel = model.gp.interpolateNearestNeighbor.cov + matrixValuedKernel
val zeroMean = VectorField(RealSpace[_3D], (pt:Point[_3D]) => Vector(0,0,0))
val gp = GaussianProcess (zeroMean,combKernel)
val sampler = RandomMeshSampler3D(model.mean, 500, 42)
val lowrankGP : LowRankGaussianProcess[_3D, _3D] = LowRankGaussianProcess.approximateGP(gp, sampler, nModes)
val extModel : StatisticalMeshModel = StatisticalMeshModel(model.mean, lowrankGP)