# 3) Basis definition basisCollection = ot.BasisCollection( 1, ot.ConstantBasisFactory(spatialDimension).build()) # Kriring algorithm algo = ot.KrigingAlgorithm(inputSample, outputSample, covarianceModel, basisCollection) algo.run() result = algo.getResult() vertices = [[1.0, 0.0], [2.0, 0.0], [2.0, 1.0], [1.0, 1.0], [1.5, 0.5]] simplicies = [[0, 1, 4], [1, 2, 4], [2, 3, 4], [3, 0, 4]] mesh2D = ot.Mesh(vertices, simplicies) process = ot.ConditionedGaussianProcess(result, mesh2D) # Get a realization of the process realization = process.getRealization() print("realization = ", repr(realization)) # Get a sample & compare it to expectation sample = process.getSample(5000) mean = sample.computeMean() print("Mean over 5000 realizations = ", repr(mean)) except: import sys print("t_ConditionedGaussianProcess_std.py", sys.exc_info()[0], sys.exc_info()[1])
covarianceModel = ot.SquaredExponential([7.63, 2.11], [7.38]) # 3) Basis definition basis = ot.ConstantBasisFactory(inputDimension).build() # Kriging algorithm algo = ot.KrigingAlgorithm(inputSample, outputSample, covarianceModel, basis) algo.setOptimizeParameters(False) # do not optimize hyper-parameters algo.run() result = algo.getResult() vertices = [[1.0, 0.0], [2.0, 0.0], [2.0, 1.0], [1.0, 1.0], [1.5, 0.5]] simplicies = [[0, 1, 4], [1, 2, 4], [2, 3, 4], [3, 0, 4]] mesh2D = ot.Mesh(vertices, simplicies) process = ot.ConditionedGaussianProcess(result, mesh2D) # Get a realization of the process realization = process.getRealization() print("realization = ", repr(realization)) # Get a sample & compare it to expectation sample = process.getSample(5000) mean = sample.computeMean() print("Mean over 5000 realizations = ", repr(mean)) # Check if one can sample the process over a mesh containing conditioning points # and 100 new points vertices = ot.Sample(inputSample) vertices.add( ot.ComposedDistribution([ot.Uniform(0.0, 10.0)] * 2).getSample(100))
graph.setAxes(True) graph.setXTitle("X") graph.setYTitle("Y") graph.setLegendPosition("topright") view = viewer.View(graph) # %% # Simulate new trajectories # ------------------------- # # In order to generate new trajectories of the conditioned gaussian process, we couild technically use the `KrigingRandomVector` class, because it provides the `getSample` method that we need. However, the `KrigingRandomVector` class was more specifically designed to create a `RandomVector` so that it can feed, for example, a function which has a field as input argument. # # This is why we use the `ConditionedGaussianProcess`, which provides a `Process`. # %% process = ot.ConditionedGaussianProcess(krigingResult, myRegularGrid) # %% trajectories = process.getSample(10) type(trajectories) # %% # The `getSample` method returns a `ProcessSample`. By comparison, the `getSample` method of a `KrigingRandomVector` would return a `Sample`. # %% # sphinx_gallery_thumbnail_number = 3 graph = trajectories.drawMarginal() graph.add(plot_data_test(x_test, y_test)) graph.add(plot_data_train(x_train, y_train)) graph.setAxes(True) graph.setXTitle("X")
print(" Delete %s" % (x_train_value)) x_test_filtered = np.delete(x_test_filtered, indices[0, 0]) else: print(" OK") return x_test_filtered # %% vertices_filtered = deleteCommonValues(np.array(x_train.asPoint()), np.array(vertices.asPoint())) # %% evaluationMesh = ot.Mesh(ot.Sample([[vf] for vf in vertices_filtered])) # %% process = ot.ConditionedGaussianProcess(krigingResult, evaluationMesh) # %% trajectories = process.getSample(10) type(trajectories) # %% # The `getSample` method returns a `ProcessSample`. By comparison, the `getSample` method of a `KrigingRandomVector` would return a `Sample`. # %% graph = trajectories.drawMarginal() graph.add(plot_data_test(x_test, y_test)) graph.add(plot_data_train(x_train, y_train)) graph.setAxes(True) graph.setXTitle("X") graph.setYTitle("Y")