[Paraview] Problem after updating from Paraview 3.8.1 to Paraview 3.12
Jorge Gerardo Peña Pastor
jorge.pena.pastor at gmail.com
Thu Dec 1 07:42:07 EST 2011
Hi Burlen,
I'm aware of the fact that reducing the extent is easier than
expanding it (I'm lucky to be on the bright side).
I haven't checked that filter yet, but I think I've done the same
thing in of my tests. The problem still is that you change your extent
as a result of a known parameter before running the algorithm, which
is not my case.
So I think that the easiest solution will be the one I told you
before, instead of modifying the extent inside my algorithm do it in
two different filters...
We'll see how it works out...
Anyway I will check your filter just in case I can learn something new.
Thanks.
2011/11/30 Burlen Loring <bloring at lbl.gov>:
> Hi John,
>
> This filter doesn't make use of a custom panel. PV is pushing the modified
> values after the "apply". then RequestInformation is executed giving one a
> chance to change the WHOLE_EXTENT based on some user input. However, I
> recall being told that shrinking WHOLE_EXT is ok, but growing it may lead to
> throwing one self from tall buildings. Of course there may be complications
> that my use case doesn't hit.
>
> here is some annotated debug output from the filter that shows the order in
> which things are called in response to the UI changes:
>
> I create the filter:
> [0]
> ===============================vtkSQKernelConvolution::vtkSQKernelConvolution
> [0] ===============================vtkSQKernelConvolution::SetKernelType
> [0] ===============================vtkSQKernelConvolution::SetKernelWidth
> [0] ===============================vtkSQKernelConvolution::RequestDataObject
> [0]
> ===============================vtkSQKernelConvolution::RequestInformation
> [0] WHOLE_EXTENT(input)=(0, 10239, 0, 0, 0, 2559)
> WHOLE_EXTENT(output)=(1, 10238, 0, 0, 1, 2558)
> ORIGIN=(0, 0, 0)
> SPACING=(1, 1, 1)
> nGhost=1
> [0] ===============================vtkSQKernelConvolution::RequestDataObject
> [0]
> ===============================vtkSQKernelConvolution::RequestInformation
> [0] WHOLE_EXTENT(input)=(0, 10239, 0, 0, 0, 2559)
> WHOLE_EXTENT(output)=(1, 10238, 0, 0, 1, 2558)
> ORIGIN=(0, 0, 0)
> SPACING=(1, 1, 1)
> nGhost=1
>
> Changed the kernel width from 3 to 5
> Hit "apply" in the GUI
> [0] ===============================vtkSQKernelConvolution::SetKernelWidth
> [0] ===============================vtkSQKernelConvolution::RequestDataObject
> [0]
> ===============================vtkSQKernelConvolution::RequestInformation
> [0] WHOLE_EXTENT(input)=(0, 10239, 0, 0, 0, 2559)
> WHOLE_EXTENT(output)=(2, 10237, 0, 0, 2, 2557)
> ORIGIN=(0, 0, 0)
> SPACING=(1, 1, 1)
> nGhost=2
> [0]
> ===============================vtkSQKernelConvolution::RequestUpdateExtent
> [0] WHOLE_EXTENT=(0, 10239, 0, 0, 0, 2559)
> UPDATE_EXTENT=(0, 10239, 0, 0, 0, 2559)
> nGhosts=2
> [0] ===============================vtkSQKernelConvolution::RequestData
> [0] WHOLE_EXTENT=(2, 10237, 0, 0, 2, 2557)
> UPDATE_EXTENT(input)=(0, 10239, 0, 0, 0, 2559)
> UPDATE_EXTENT(output)=(2, 10237, 0, 0, 2, 2557)
> ORIGIN(0, 0, 0)
> SPACING(1, 1, 1)
>
>
> Changed the kernel width from 5 back to 3
> Hit "apply" in the GUI
> [0] ===============================vtkSQKernelConvolution::SetKernelWidth
> [0] ===============================vtkSQKernelConvolution::RequestDataObject
> [0]
> ===============================vtkSQKernelConvolution::RequestInformation
> [0] WHOLE_EXTENT(input)=(0, 10239, 0, 0, 0, 2559)
> WHOLE_EXTENT(output)=(1, 10238, 0, 0, 1, 2558)
> ORIGIN=(0, 0, 0)
> SPACING=(1, 1, 1)
> nGhost=1
> [0]
> ===============================vtkSQKernelConvolution::RequestUpdateExtent
> [0] WHOLE_EXTENT=(0, 10239, 0, 0, 0, 2559)
> UPDATE_EXTENT=(0, 10239, 0, 0, 0, 2559)
> nGhosts=1
> [0] ===============================vtkSQKernelConvolution::RequestData
> [0] WHOLE_EXTENT=(1, 10238, 0, 0, 1, 2558)
> UPDATE_EXTENT(input)=(0, 10239, 0, 0, 0, 2559)
> UPDATE_EXTENT(output)=(1, 10238, 0, 0, 1, 2558)
> ORIGIN(0, 0, 0)
> SPACING(1, 1, 1)
>
>
> On 11/30/2011 12:19 PM, Biddiscombe, John A. wrote:
>
> Burlen,
>
> Nice explanation. I didn't look at the plugin code, but is it safe to assume
> (and the OP might not pick up on this) that in order to trigger an
> UpdateInformation after changing parameters, you have to have a custom panel
> - and do a proxy->UpdateInformation in there? (i.e. before the view does an
> update later and messes up the extents if the extra information update
> hasn't occurred)
>
> JB
>
> -----Original Message-----
> From: paraview-bounces at paraview.org [mailto:paraview-bounces at paraview.org]
> On Behalf Of Burlen Loring
> Sent: 30 November 2011 17:36
> To: Jorge Gerardo Peña Pastor
> Cc: paraview at paraview.org
> Subject: Re: [Paraview] Problem after updating from Paraview 3.8.1 to
> Paraview 3.12
>
> Hi Jorge,
>
> You may want to take a look at vtkSQKernelConvolution filter in
> Plugins/SQToolKit of 3.12 sources. This is an example of an extent based
> filter that produces smaller WHOLE_EXTENT on its output based on user
> selection in the PV GUI. This filter is working fine in 3.12.
>
> What's going on in this filter:
>
> The user selects a kernel size in the GUI. The filter needs
> kernelWidth/2 ghost cells to make its computations. On the interior of the
> WHOLE_EXTENT we can generate ghost cells using communication.
> However we don't have ghost cells outside of the WHOLE_EXTENT. In order to
> overcome we shrink the WHOLE_EXTENT in the output of the
> vtkSQKernelConvolution filter using the original cells that are outside this
> smaller extent on the input as ghost data.
>
> Any Modification to the kerneWidth in the GUI forces vtkSQKernelConvolution
> RequestInformation to run where we shrink WHOLE_EXTENT on the output info by
> the number of ghost cells we need.
>
> vtkSQKernelConvolution RequestUpdateExtent runs next, where we grow the
> UPDATE_EXTENT going upstream to include the number of ghost cells we need.
> Upstream vtkSQImageGhosts RequestUpdateExtent will intercept and short
> circuit the larger update extent from traveling any further upstream. in
> vtkSQImageGhosts RequestData the necessary communication to generate the
> ghost cells are made. The short circuit by the vtkSQImageGhosts
> ReqquestUpdateExtent is important! if not then the new modified update
> extents continue up stream forcing the re-execution of the entire pipeline,
> including the reader which is expensive.
>
> In vtkSQKernelConvolution RequestData, the input with ghost data is used to
> compute the convolution producing an image with smaller WHOLE_EXTENT.
> In terms of the keys etc nothing is special about our RequestData.
>
> Hope this helps
> Burlen
>
> On 11/15/2011 07:33 AM, Jorge Gerardo Peña Pastor wrote:
>
> Hello,
>
> I've managed to run a Paraview based application created with Paraview
> 3.8.1 using Paraview 3.12, but one of my filters is reporting an error
> it didn't before.
>
> My vtkAlgorithm is a sub-class of vtkImageAlgorithm, which as a result
> of processing the input data generates a new vtkImageData which is
> smaller than the original one.
> Before, I managed to use that filter in my application, but now I get
> the following error:
> ERROR:
> src/ParaView-3.12.0/VTK/Filtering/vtkStreamingDemandDrivenPipeline.cxx
> ,
> line 1009
> vtkPVCompositeDataPipeline (0x4c3dca0): The update extent specified in
> the information for output port 0 on algorithm
> vtkConnectedThresholdImageFilter(0x4c3c8d0) is 0 698 0 535 0 114,
> which is outside the whole extent 408 421 86 106 0 1.
>
> Inside my RequestData I've tried changing all possible combinations of
> whole extent, update extent and extent for both output and
> outputInformation without success.
>
> I've found several threads talking about changing
> StreamDrivenPipeline::WHOLE_EXTENT inside RequestUpdateExtent, but in
> order to change the value there I need to execute before at least one
> time my algorithm because the extent depends on the result of the
> algorithm.
>
> Could someone point me in the right direction to make this work with
> Paraview 3.12?
>
> Thank you for your help.
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at:
> http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at:
> http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview
>
>
More information about the ParaView
mailing list