Pyvista 问题:为什么我在结果中看不到我的数据?

Pyvista question: Why I cannot see my data in result?

提问人:Changwan Sun 提问时间:9/20/2023 最后编辑:Changwan Sun 更新时间:9/21/2023 访问量:33

问:

背景

我一直在使用 pyvista 通过遵循这个和这个来可视化 2D 图像(GPR 图像)。

问题

我运行了代码,没有任何错误,但没有显示任何数据。enter image description here

数据

假设原始数据(行、列)的结构为 (10, 8)。原始数据中的一行由从 Fortran90 代码导出的 (X, Y, Z, 5 个值) 组成。X、Y、Z 表示坐标(纬度、经度、海拔)。这些值表示测量数据。考试行如下。

[38.5, 120.5, 150.0, 1, 2, 3, 4, 5] - 1 行

. . .

[38.3, 120.3, 150.3, 5, 6, 7, 8, 9] - 10 行

法典

在下面的脚本中,在读取原始数据后,我将其分为第 1 组和第 2 组。第 1 组的结构为 (10, 3),包括 X、Y 和 Z。

第 1 组(坐标)

[38.5、120.5、150.0] - 1 行

. . .

[38.3, 120.3, 150.3] - 10 行

第 2 组的结构是 (10, 5) 与测量值相关。

第 2 组(测量数据)

[1、2、3、4、5] - 1 行

. . .

[5, 6, 7, 8, 9] - 10 行

import pyvista as pv
import numpy as np
import matplotlib.pyplot as plt 
import os
import pandas as pd

cp = os.getcwd()
cp2 = cp + "/data/"


# Load the provided .txt file
with open(cp2 + 'raw_data.txt', 'r') as file:
    txt_content = file.readlines()

data_list = [list(filter(None, line.split())) for line in txt_content]

# Convert the data list to a numpy array
raw_data = np.array(data_list, dtype=float)

# Seperate coordinates and data
cor = raw_data[:,0:3]    # coordinates
data = raw_data[:,3:].T  # measurement data

# Grab the number of rows and columns
nrows, ncols = data.shape 
# Might be opposite for your data, pay attention here
 

# Define the Z spacing of your 2D section
z = 2.0
z_spacing = z / nrows 


# Create structured points draping down from the coordiantes
points = np.repeat(cor, nrows, axis=0)


# repeat the Z locations across
tp = np.arange(0, z_spacing*nrows, z_spacing)
tp = cor[:,2][:,None] - tp
points[:,-1] = tp.ravel()

# Make a StructuredGrid from the structured points
grid = pv.StructuredGrid()
grid.points = points
grid.dimensions = nrows, ncols, 1


# Add the data array - note the ordering!
grid["values"] = data.ravel(order="F")
grid.plot(cmap="seismic", clim=[-1*10**6,1*10**6])
Python 3D 可视化 PyVista

评论

1赞 Andras Deak -- Слава Україні 9/21/2023
您的代码中发生了太多事情,以至于我们无法在没有可运行(最好是小)示例输入的情况下对其进行调试。例如,目前还不清楚“路径和数据”的含义。目前尚不清楚各种阵列的实际形状是什么。缺少网格可能意味着您传递的网格不一致或相似。但同样,如果无法运行您的代码,我们将无法提供帮助。请尝试编辑您的问题以添加一个最小的可重现示例dimensions
0赞 Changwan Sun 9/21/2023
@AndrasDeak--СлаваУкраїні 谢谢,安德拉斯。我清楚地编辑了我的问题。

答: 暂无答案