数据重组,将2个相关的numpy数组转换为另一个数据结构

时间:2019-03-09 20:33:49

标签: python arrays polyhedra

我有一个numpy数组,它是xyz坐标的列表

array([[991.614, 267.111, 192.266],
       [991.617, 267.098, 192.266],
       [991.579, 267.194, 192.266],
       ...,
       [992.952, 267.831, 192.662],
       [992.962, 267.87 , 192.667],
       [992.962, 267.831, 192.663]])

还有一个三角形数组,我假设它们是坐标的id,例如第一个三角形由点18、20、4组成。

array([[    18,     20,      4],
       [     2,     18,      4],
       [    22,     18,      2],
       ...,
       [108287, 108274, 108419],
       [108408, 108422, 108412],
       [108438, 108422, 108408]], dtype=int32)

所以我的想法太深了,但是我需要重新构造上面的内容,以便可以将其(插入)添加到数据库中。数据库将期望以下布局,该布局为1m ^ 3正方形,请注意,重复第一个坐标以闭合脸部。

POLYHEDRALSURFACE Z 
(
  ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),
  ((0 0 10,1 0 10,1 1 10,0 1 10,0 0 10)),
  ((0 0 0,0 0 10,0 1 10,0 1 0,0 0 0)),
  ((0 1 0,0 1 10,1 1 10,1 1 0,0 1 0)),
  ((1 1 0,1 1 10,1 0 10,1 0 0,1 1 0)),
  ((1 0 0,1 0 10,0 0 10,0 0 0,1 0 0))
) 

所以我想我首先需要选择与第一个三角形关联的所有点:18, 20, 4, 18这些值将被它们的坐标替换(因此,将前三个点用作方便):

POLYHEDRALSURFACE Z 
(
    ((991.614 267.111 192.266, 991.617 267.098 192.266, 991.579 267.194 192.266, 991.614 267.111 192.266)), 
    ...
)

为表示自己的努力,我假设在坐标数组和三角形数组之间进行某种连接,也许使用三角形编号构建结果,然后将它们替换为关联的坐标并进行一些格式化(删除逗号等)。如果有人愿意为我做这件事,那就太好了,但是如果您可以让我走上正确的道路,那也将受到高度赞赏。

对不起,我没有一个多维数据集作为起点,这会使概念变得更容易。

0 个答案:

没有答案