Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从三维数据和相应索引获取等值面_Python_Arrays_Numpy_Scikit Image_Isosurface - Fatal编程技术网

Python 从三维数据和相应索引获取等值面

Python 从三维数据和相应索引获取等值面,python,arrays,numpy,scikit-image,isosurface,Python,Arrays,Numpy,Scikit Image,Isosurface,我在网格上有一个3D numpy温度值数组。由此,我可以使用dTdx,dTdy,dYdz=np.gradient(T)计算梯度。现在我只对温度为900的等值面上的梯度值感兴趣。我想做的是(伪科迪什): 这很好,但仅适用于二维数据。我在找3D版的。我发现了以下几点: import plotly.graph_objects as go surf = go.Isosurface(x=X.flatten(),y=Y.flatten(),z=Z.flatten(),value=T.flatten(),is

我在网格上有一个3D numpy温度值数组。由此,我可以使用
dTdx,dTdy,dYdz=np.gradient(T)
计算梯度。现在我只对温度为900的等值面上的梯度值感兴趣。我想做的是(伪科迪什):

这很好,但仅适用于二维数据。我在找3D版的。我发现了以下几点:

import plotly.graph_objects as go
surf = go.Isosurface(x=X.flatten(),y=Y.flatten(),z=Z.flatten(),value=T.flatten(),isomin=900,isomax=900)
fig = go.Figure(data=surf)
plt.show()
但我对策划它不感兴趣。我想知道温度为T=900的指数,这样我可以在梯度上使用它。有什么想法吗?

你需要

import numpy as np
from skimage import measure
contour_data = measure.find_contours(T[:,:,0],900)
contour_data = np.int_(np.round(contour_data[0]))
xs,ys = contour_data[:,0],contour_data[:,1]
gradients_of_interest = np.array([G[x,y,0] for x,y in zip( xs,ys )])
import plotly.graph_objects as go
surf = go.Isosurface(x=X.flatten(),y=Y.flatten(),z=Z.flatten(),value=T.flatten(),isomin=900,isomax=900)
fig = go.Figure(data=surf)
plt.show()