ПиКридж, обрабатывающий файл с 3D-данными в формате kriged

#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 добавляется к имени файла с одним десятичным знаком.