Как сделать простой 2D контурный сюжет в ВТК? - PullRequest
0 голосов
/ 27 июля 2011

Я собираю примеры VTK, чтобы узнать, как сделать простой контурный график из данных, которые я создал. Предположим, что я решил простой PDE в области 71x71 на структурированной прямоугольной сетке, в которой узлы выровнены на равных расстояниях между ними.

Я рассмотрел пример fillContours , который рассказывает, как визуализировать данные, поступающие из файла * .vtp. Я в порядке с этим, пока я могу писать файлы .vtp. Проблема в том, что я не знаю, как создать файл данных .vtp, который подходит для построения контуров. Мне удалось создать файлы .vtp из встроенных акторов, таких как сферы или конусы, но я не знаю, как это сделать с моим массивом 2D-данных.

Ответы [ 2 ]

1 голос
/ 03 сентября 2014

Поскольку вам нужна сетка с равным интервалом, я бы использовал формат ImageData на основе vtk xml (* .vti).

С http://www.cacr.caltech.edu/~slombey/asci/vtk/vtk_formats.simple.html:

"�ImageData - каждый элемент ImageData указывает свой экстент в пределах всего экстента набора данных. Точки и ячейки ... неявно описываются экстентом, началом и расстоянием. Обратите внимание, что начало и интервал постоянны для всех частей, поэтому они задаются какатрибуты XML-элемента ImageData выглядят следующим образом.

<VTKFile type=" ImageData" ...> 
    <ImageData WholeExtent=" x1 x2 y1 y2 z1 z2" 
        Origin=" x0 y0 z0" Spacing=" dx dy dz"> 
        <Piece Extent=" x1 x2 y1 y2 z1 z2"> 
            <PointData>...</ PointData> 
            <CellData>...</ CellData> 
        </ Piece> 
    </ ImageData> 
</ VTKFile> 

-Конец информации о ссылке "Обратите внимание, что действительными являются только x0 y0 z0 и dx dy dz, WholeExtent и PieceExtent относятся к индексам пикселей.

2D map with 10x10 pixels visualized on Paraview В этом примере будет показана карта размером 10x10 пикселей с температурой, идущей от нижнего левого угла к верхнему правому углу.Значения связаны с каждой ячейкой.Вы можете настроить этот формат для ваших 2D данных.Содержимое файла (обратите внимание, я использую только CellData):

example.vti:

<VTKFile type="ImageData" version="0.1" byte_order="LittleEndian">
    <ImageData WholeExtent=" 0 10 0 10 0 1" Origin=" 0 0 0" Spacing=" 1 1 0">

        <Piece Extent=" 0 10 0 10 0 1">

          <CellData Scalars="scalars">
              <DataArray type="Float32" Name="Temperature[C]" format="ascii">
                  1       2       3       4       5       6       7       8       9       10
                  11      12      13      14      15      16      17      18      19      20
                  21      22      23      24      25      26      27      28      29      30
                  31      32      33      34      35      36      37      38      39      40
                  41      42      43      44      45      46      47      48      49      50
                  51      52      53      54      55      56      57      58      59      60
                  61      62      63      64      65      66      67      68      69      70
                  71      72      73      74      75      76      77      78      79      80
                  81      82      83      84      85      86      87      88      89      90
                  91      92      93      94      95      96      97      98      99      100
              </DataArray>
          </CellData>

        </Piece>

    </ImageData>
</VTKFile>
0 голосов
/ 27 июля 2011

Простым способом будет вывод данных в формате CSV с новой строкой для каждого квадрата сетки, т. Е.

....
grid_idx_i, grid_idx_j, grid_idx_k, val_ijk
....

, тогда, если вы загрузите это в представление, вы можете применить фильтр TableToPointsполучить его в форме, с которой может справиться paraview.Затем примените фильтр Delaunay2D, чтобы преобразовать его из точек в ячейки.После того, как вы это сделаете, фильтр Contour должен нормально работать.

Также может быть возможно каким-либо образом загрузить данные, если они хранятся в виде CSV, но я не уверен.

РЕДАКТИРОВАТЬ: Извините, я неявно предположил, что вы пытались визуализировать данные в paraview.Это тот случай?

...