#interpolation #kriging #geostatistics
#интерполяция #кригинг #геостатистика
Вопрос:
Я пытаюсь кригировать объемы почвы в 3D с помощью pykrige. Я использую обычную кригинг, но как только я закончу кригинг данных, я не уверен, как я могу записать их в файл 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, чтобы я мог визуализировать их с помощью фрагментов в другом месте.
Спасибо!
Ответ №1:
Себастьян из команды GeoStat-Framework. Если вы хотите также сохранить данные kriged по фрагментам (например, вы хотите отобразить их позже), вы можете добавить следующие строки кода:
for i, z in enumerate(gridz):
kt.write_asc_grid(
gridx, gridy, k3d1[:, :, i], filename="output_z{:.1}.asc".format(z)
)
Обратите внимание, что соответствующее значение z добавляется к имени файла с одним десятичным знаком.