You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OpenTURNS中获得正确显示的Kriging结果输出图形

问题根源

核心问题是绘图范围设置与实际输入坐标范围不匹配:你手动设置的[-10, 50]绘图区间不符合输入坐标的真实分布(无论你用的是UTM投影坐标还是原始经纬度坐标,观测点都落在了你设定的绘图窗口外),因此观测点无法显示,同时克里金预测范围也和实际数据区域错位。

解决步骤

  • 替换手动设置的绘图上下界,直接从输入数据中提取真实的坐标范围,确保所有观测点都在绘图窗口内
  • 为观测点云设置醒目的独立颜色,避免和克里金预测的色带颜色重叠导致看不见
  • 代码末尾添加显示/保存图片的逻辑,否则绘图不会主动渲染输出

修正后代码

import openturns as ot
import pandas as pd
from openturns.viewer import View

df = pd.read_csv("kreuzkerpenutm.csv")
inputdata = ot.Sample(df[['x','y']].values)
outputdata = ot.Sample(df[['z']].values)

dimension = 2
basis = ot.ConstantBasisFactory(dimension).build()
covarianceModel = ot.SphericalModel(dimension)
    
algo = ot.KrigingAlgorithm(inputdata, outputdata, covarianceModel, basis)
algo.run()
result = algo.getResult()
metamodel = result.getMetaModel()

# 从输入数据自动提取真实绘图范围
lower = inputdata.getMin()
upper = inputdata.getMax()
graph = metamodel.draw(lower, upper)
graph.setBoundingBox(ot.Interval(lower, upper))

# 给观测点设置醒目的红色,避免和底图色带重叠
point_cloud = ot.Cloud(inputdata)
point_cloud.setColor("red")
graph.add(point_cloud)
graph.setTitle("Kriging metamodel")

view = View(graph, legend_kw={'bbox_to_anchor':(1,1), 'loc':"upper left"})
view.getFigure().tight_layout()
# 显示绘图,也可替换为view.save("kriging_result.png")直接保存到本地
view.show()

额外排查方向

如果修改后仍有显示异常,可先打印inputdata.getMin()、inputdata.getMax()确认坐标是否正确读取;同时检查协方差模型参数拟合结果,若协方差参数拟合失效也会导致克里金预测结果异常。

内容的提问来源于stack exchange,提问作者simonericmoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:57:04