[vtkusers] Unstructured grid to structured grid?

Chris Marsh chris.marsh at usask.ca
Tue Sep 16 20:16:20 EDT 2014


Yes, I was trying to be optimistic :( Good call on the bounds:
vtu export: xmin:624714 xmax:629904 ymin:5.64502e+06 ymax:5.64877e+06
vtp export: xmin:1 xmax:-1 ymin:1 ymax:-1

Presumably the problem. I'm unclear why it is doing this though?

vtkSmartPointer<vtkPlaneSource> gridPoints =
vtkSmartPointer<vtkPlaneSource>::New();

int gridSize = 1000;
gridPoints->SetResolution(gridSize, gridSize);
gridPoints->SetOrigin(bbox.vertex(0).x(),  bbox.vertex(0).y(), 0);
gridPoints->SetPoint1(bbox.vertex(2).x(), bbox.vertex(0).y(), 0);
gridPoints->SetPoint2(bbox.vertex(0).x(), bbox.vertex(2).y(), 0);
gridPoints->Update();

where bbox is a bounding box (2D), index 0 is bottom left, indexing is
increasing CCW. So 2 is upper right corner. As far as I can tell this is
correct and corresponds to the vtu export numbers I had above.

I feel like I perhaps don't understand resolution: I envision it as the
size of each cell, however I don't think that is correct is it?



On Tue, Sep 16, 2014 at 5:23 PM, David Gobbi <david.gobbi at gmail.com> wrote:

> On Tue, Sep 16, 2014 at 4:49 PM, Chris Marsh <chris.marsh at usask.ca> wrote:
>
> > The interpolation doesn't look very good, even after increasing the
> > resolution.  As well, it is flipped along the y-axis. Image is a
> mountain,
> > variable is air temp (blue = cold, red = warm).
> > See here: http://imgur.com/l1KpcS0
>
> Honestly, I can't see any correspondence at all between the mountain
> and the interpolated data on that plane.  Are you sure the size and
> position of the plane matches the size and position of your data?
> An easy way to check is to call GetBounds() on both of them and
> print out the bounds.  They should match.
>
> > Secondly: I need to iterate over the rows/cols of this interpolated grid
> in
> > order to write it to an ArcGIS ascii file. What would be the best way to
> do
> > this? The fact it is now in a delaunay triangulation somewhat doesn't
> help
> > (now that I think about it!)
>
> The interpolated data can be retrieved via GetPointData()->GetScalars(),
> but I'm not sure what ordering the vtkPlaneSource uses for its points.
> You can print GetPoint(0) and GetPoint(1) to see whether the points
> increase in the X direction or Y direction first.
>
> Also, watch for off-by-one mistakes.  SetResolution(1, 1) gives a plane
> with 4 points (the corners).  So if you want a plane with 4x4 points, you
> would SetResolution(3, 3).
>
>  - David
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20140916/58e96116/attachment.html>


More information about the vtkusers mailing list