1

我有一个由三个向量定义的平行六面体数据:

2.468000 0.000000 0.000000

b -1.234000 2.137351 0.000000

c 0.000000 0.000000 32.000000

我的网格由 40 40 500 个点描述,分别用于轴 a、b、c。正如你所看到的,这三个向量不是相互正交的,这会给网格的读取带来很多问题。

我最初的计划是读取我的原始数据,然后提取几个体积切片,用 sagemath 处理以生成超级漂亮的图片。遗憾的是,我在 python 文档中查看了类似的内容,我发现了几个可用于正交体积(ndgrid、easyviz.slice_)的命令,但没有用于非相互正交体积数据的命令。

在 Scitools 包和 numpy 中,我找到了以下命令

Numpy提供:

  • 网格
  • 奥格
  • 网状网格

Scitools提供:

  • 网格
  • 盒子网格

然后我也在寻找这些matplotlib功能,但它们太多了,我干脆放弃了。

有没有一些友好的程序员可以让我走上正确的道路?

4

1 回答 1

2

你到底在追求什么?

您可以轻松地创建一个形状数组,(40, 40, 500, 3)其中位置的项目[a, b, c]是一个 3 元素数组,其中包含相应平行六面体网格点的 x、y、z 坐标,如下所示:

a = np.array([2.468000, 0.000000, 0.000000]).reshape(1, 1, 1, 3)
b = np.array([-1.234000, 2.137351, 0.000000]).reshape(1, 1, 1, 3)
c = np.array([0.000000, 0.000000, 32.000000]).reshape(1, 1, 1, 3)
A = np.linspace(0, 1, num=40).reshape(40, 1, 1, 1)
B = np.linspace(0, 1, num=40).reshape(1, 40, 1, 1)
C = np.linspace(0, 1, num=500).reshape(1, 1, 500, 1)
grid = a * A + b * B + c * C
于 2012-12-17T21:10:39.580 回答