1

我正在尝试使用 pykrige 以 3D 形式计算土壤体积。我正在使用普通克里金法,但是一旦我对数据进行了克里金法,我不确定如何将其写入 ascii 文件,这是我的代码:

from pykrige.ok3d import OrdinaryKriging3D
from pykrige.uk3d import UniversalKriging3D
import numpy as np
from matplotlib import pyplot as plt
import pandas as pd
import pykrige.kriging_tools as kt

data_in = pd.read_excel("Krig3D_data.xlsx")
data = data_in.to_numpy()

gridx = np.arange(392050, 392250, 5)
gridy = np.arange(5138395, 5138595,5)
gridz = np.arange(0.0, 5, 0.25)
                     
ok3d = OrdinaryKriging3D(
    data[:, 0], data[:, 1], data[:, 2], data[:, 3], variogram_model="linear"
)

k3d1, ss3d = ok3d.execute("grid", gridx, gridy, gridz)

我需要将 kriged 数据导出到 ascii 文件中,以便可以通过其他地方的切片对其进行可视化。

谢谢!

4

1 回答 1

0

来自GeoStat-Framework团队的 Sebastian。如果您还想按切片保存克里格数据(就像您想稍后绘制它们一样),您可以添加以下代码行:

for i, z in enumerate(gridz):
    kt.write_asc_grid(
        gridx, gridy, k3d1[:, :, i], filename="output_z{:.1}.asc".format(z)
    )

请注意,相应的 z 值将添加到文件名中,并保留一位小数。

于 2021-01-18T11:34:02.107 回答