使用区域数据工作-ieee standard 829-2008
8.7 使用区域数据工作
许多情况下数据使用不同于在VTK中已经找到的形式来组织。你的数据可能是表格式的或者较高的维。而且有时你可能要重新安排你的数据,把某些数据赋值为标量,某些数据赋值为点坐标,某些数据赋值为其它属性的数据。在这样的情况下VTK的区域数据,和允许你操作区域数据的滤波器,是重要的。
为了引入这个主题,一个具体的例子是有用的。在前面的章节中(看176页的“Gaussian Splatting”)我们看到一个需要写定制代码来读一个表格式数据文件,提取出特定的数据形成点和标量(看在VTK/Examples/Modelling/Cxx/finance.cxx中找到的函数ReadFinancialData())的一个例子。当这个对于例子工作良好时,它需要大量的工作而且不灵活。在下面的例子中,我们会使用区域数据做同样的事情。
数据是以下的表格式的形式:它对于支付贷款方面时间延迟(TIME-LATE);按月支付的贷款(MONTHLY-PAYMENT);贷款剩下的本金(UNPAID-PRINCIPAL);贷款的原始数量(LOAN-AMOUNT);贷款的利率(INTE-RATE);和债务人的月收入(MONTHLY-INCOME)是重复的。这6个领域组成一个3188行和6列的矩阵。
我们通过分析数据文件开始。类vtkProgrammableDataObjectSource对于定义不需要修改VTK就可以定义特定输入方法是有用的。我们所有需要做的是定义一个函数,它分析文件而且把它们填充进入一个VTK数据对象(记住vtkDataObject是通用的数据表示形式)。读数据是这个例子有挑战性的部分,例子可以在VTK/Examples/DataManipulation/Tcl/FinancialField.tcl中找到。
如果你对如何读取和解析不同格式的数据感兴趣,可以参考一些具体的例子。vtk读取ply格式数据和生成JSON格式数据和解析JSON格式数据都是很好的资源。想知道更多关于表格式数据解析的细节吗?查看文本格式表数据解析,你会发现一些有趣的方法。对于JSON格式数据的解析,你或许会对JSON数据格式解析感兴趣,而VTK点云数据读取则提供了另一种解析三维数据的方法。