提问人:Changwan Sun 提问时间:9/20/2023 最后编辑:Changwan Sun 更新时间:9/21/2023 访问量:33
Pyvista 问题:为什么我在结果中看不到我的数据?
Pyvista question: Why I cannot see my data in result?
问:
背景
我一直在使用 pyvista 通过遵循这个和这个来可视化 2D 图像(GPR 图像)。
问题
数据
假设原始数据(行、列)的结构为 (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])
答: 暂无答案
评论
dimensions