[Paraview] What part of the pipeline is producing the request
for UPDATE_EXTENT?
Mike Jackson
imikejackson at gmail.com
Wed Feb 13 15:52:47 EST 2008
Any idea what produces those types of errors? I have been testing the
code pretty heavily this afternoon and all _seems_ to be working
correctly....
I can go from a VOI of 0, 500, 0, 500, 100, 102 -> 2000, 3000, 1800,
2500, 106, 108 and there didn't seem to be problem?
Mike
On Feb 13, 2008, at 3:47 PM, John Biddiscombe wrote:
> I'd like to be a fly on the wall in your office when you start
> getting the infamous "Update extent is not within the Whole Extent"
> messages when you change your VOI!
>
> JB
>
>> Thank you so very much. I was able to implement what you wrote and
>> now my reader is behaving much better in ParaView. I have put in
>> some additional checks to see if either the input file or the VOI
>> has changed to cut down on reading information from the file when
>> it hasn't changed.
>>
>> Thanks for everyone sticking with me
>> Mike Jackson
>>
>> On Feb 13, 2008, at 12:48 PM, Moreland, Kenneth wrote:
>>
>>> In the example you give, you should just report 500, 1500, 200,
>>> 1800, 100, 105 in WHOLE_EXTENT and respond to whatever
>>> UPDATE_EXTENT the pipeline asks you for. If you are in serial
>>> mode, UPDATE_EXTENT should be set to WHOLE_EXTENT. On a parallel
>>> server, ParaView will automatically break up the WHOLE_EXTENT and
>>> set the UPDATE_EXTENT on each process to a different piece. In
>>> either case, just respond to the UPDATE_EXTENT that the pipeline
>>> gives you and that should work.
>>>
>>> How is this not working? Are we talking about the multiple calls
>>> to RequestData again? Could it be that you have set the wrong
>>> extents information on the output data?
>>>
>>> -Ken
>>>
>>>> -----Original Message-----
>>>> From: paraview-bounces+kmorel=sandia.gov at paraview.org
>>>> [mailto:paraview-
>>>> bounces+kmorel=sandia.gov at paraview.org] On Behalf Of Mike Jackson
>>>> Sent: Wednesday, February 13, 2008 10:23 AM
>>>> To: ParaView
>>>> Subject: Re: [Paraview] What part of the pipeline is producing
>>>> the request
>>>> for UPDATE_EXTENT?
>>>>
>>>> I understand. Now. my problem. In RequestInformation I read part of
>>>> my file to get what I am assuming should be the "WHOLE_EXTENT",
>>>> which
>>>> is 7334 x 8448 x 200 as a uint8 vtkImageData object. This is too
>>>> large to fit into memory the machines that this will be run on. I
>>>> placed some auto-generated gui widgets in ParaView for the customer
>>>> to select a VOI. I have used the normal vtk macros for the set/get
>>>> methods for VOI.
>>>>
>>>> So say the customer is only interested in a VOI of 500, 1500, 200,
>>>> 1800, 100, 105. Could you lay out what calls should be made in each
>>>> of the RequestInformation and RequestData methods? (just the major
>>>> things we have been talking about, I can fill in the rest). I have
>>>> tried lots of different configurations and the only ones that
>>>> seem to
>>>> work are the ones that are NOT recommended to do.
>>>>
>>>> If you want the entire vtkH5RoboMetReader.h/cpp, I can send that
>>>> along also.
>>>>
>>>> Thanks
>>>> Mike.
>>>>
>>>>
>>>> On Feb 13, 2008, at 12:10 PM, Moreland, Kenneth wrote:
>>>>
>>>>> In the call to loadDataFromMXAFile, you should be using the value
>>>>> in UPDATE_EXTENT, not VOI. To review, WHOLE_EXTENT is what the
>>>>> reader reports to the downstream components what data is available
>>>>> (and reporting VOI is an easy way to limit the data to what the
>>>>> user wants). UPDATE_EXTENT is the part of the data that the
>>>>> downstream components want. If you return with data that does not
>>>>> match up to UPDATE_EXTENT, the pipeline might execute again trying
>>>>> to get the range of data it asked for.
>>>>>
>>>>> -Ken
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: paraview-bounces+kmorel=sandia.gov at paraview.org
>>>>>> [mailto:paraview-
>>>>>> bounces+kmorel=sandia.gov at paraview.org] On Behalf Of Mike Jackson
>>>>>> Sent: Wednesday, February 13, 2008 9:48 AM
>>>>>> To: ParaView
>>>>>> Subject: Re: [Paraview] What part of the pipeline is producing
>>>>>> the
>>>>>> request
>>>>>> for UPDATE_EXTENT?
>>>>>>
>>>>>> Ok, so now I have
>>>>>> RequestInformation()
>>>>>> {
>>>>>> ...
>>>>>> outInfo->Set( vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT
>>>>>> (), this-
>>>>>>> VOI, 6 );
>>>>>> ...
>>>>>> }
>>>>>>
>>>>>> and RequestData() I load the data into a newly created
>>>>>> vtkImageData
>>>>>> object, then shallow copy into the
>>>>>> actual output data object:
>>>>>>
>>>>>> vtkInformation* outInfo = outputVector->GetInformationObject(0);
>>>>>> vtkImageData* output = vtkImageData::SafeDownCast(outInfo->Get
>>>>>> (vtkDataObject::DATA_OBJECT()));
>>>>>> vtkTypeInt32 error = 1;
>>>>>> vtkSmartPointer<vtkImageData> imageData =
>>>>>> vtkSmartPointer<vtkImageData>::New();
>>>>>> error = loadDataFromMXAFile(outInfo, imageData, this->VOI);
>>>>>> output->ShallowCopy(imageData);
>>>>>>
>>>>>> In paraview from CVS this causes multiple executions of the
>>>>>> pipeline.
>>>>>> Before, where I thought I had "fixed" the issue I was calling:
>>>>>>
>>>>>> outInfo->Set( vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT
>>>>>> (), this-
>>>>>>> VOI, 6 );
>>>>>>
>>>>>> in RequestData(). Berk said that wasn't a good idea so I
>>>>>> removed it.
>>>>>> So now I am back to square 1 again.
>>>>>>
>>>>>> Thanks
>>>>>> Mike
>>>>>>
>>>>>> On Feb 13, 2008, at 10:17 AM, Kent Eschenberg wrote:
>>>>>>
>>>>>>> Indeed, each of the my routines to set the VOI bounds (one
>>>>>>> each for
>>>>>>> the min/max in X/Y/Z) calls Modified().
>>>>>>>
>>>>>>> During development I had temporary print statements
>>>>>>> everywhere and
>>>>>>> as I remember it these routines to set the VOI were called both
>>>>>>> before and after RequestInformation.
>>>>>>>
>>>>>>> Kent
>>>>>>> Pittsburgh Supercomputing Center
>>>>>>>
>>>>>>> Moreland, Kenneth wrote:
>>>>>>>> I belive it is supposed to work that your SetVOI() method
>>>>>>>> should
>>>>>>>> call modified, which will in turn cause the pipeline to call
>>>>>>>> RequestInformation() on the next update. Make sure that
>>>>>>>> SetVOI()
>>>>>>>> is actually calling Modified().
>>>>>>>> -Ken
>>>>>>>> On 2/12/08 9:26 PM, "Mike Jackson" <imikejackson at gmail.com>
>>>>>>>> wrote:
>>>>>>>> Pretty sure that was where we were going to end up BUT
>>>>>>>> as far
>>>>>>>> as I
>>>>>>>> can tell, the order of execution is :
>>>>>>>> RequestInformation()
>>>>>>>> SetVOI() // From the GUI in ParaView
>>>>>>>> RequestData();
>>>>>>>> So we never really get a chance to get the VOI until
>>>>>>>> RequestData
>>>>>>>> fires.. Is that what you have seen?
>>>>>>>> Mike
>>>>>>>> On Feb 12, 2008, at 11:21 PM, Kent Eschenberg wrote:
>>>>>>>>> Mike,
>>>>>>>>>
>>>>>>>>> I accomplished what you want with one of our custom
>>>>>>>> readers. In my
>>>>>>>>> opinion the documentation for RequestInformation,
>>>>>>>>> RequestData,
>>>>>>>>> extents, etc. is so poor that it is useless.
>>>>>>>>>
>>>>>>>>> At RequestInformation I read enough of the input to get the
>>>>>>>> overall
>>>>>>>>> input array size; apply the user-selected VOI; and return the
>>>>>>>>> desired subset as the whole extent. At RequestData I read
>>>>>>>> the rest.
>>>>>>>>> I just don't bother letting VTK/ParaView manage the
>>>>>>>> selection of
>>>>>>>>> the VOI. This has worked for 2.6.1 through 3.2.1.
>>>>>>>>>
>>>>>>>>> Kent
>>>>>>>>> Pittsburgh Supercomputing Center
>>>>>>>>>
>>>>>>>>> Mike Jackson wrote:
>>>>>>>>>> I can do that but I don't think it will work.
>>>>>>>>>> In paraview, I have managed to set an auto-generated UI
>>>>>>>> for the
>>>>>>>>>> VOI. Now, the user opens our file, RequestInformation is
>>>>>>>> run (I
>>>>>>>>>> can put some sane defaults for the VOI) and things are ok
>>>>>>>> so far.
>>>>>>>>>> Now the user clicks "Apply" and then SetVOI is called with
>>>>>>>> the
>>>>>>>>>> values from the GUI and then RequestData() is called after
>>>>>>>> that.
>>>>>>>>>> So where do I update WHOLE_EXTENT? Or just take the values
>>>>>>>> from
>>>>>>>>>> the VOI, create a vtkImageObject from that, and then just
>>>>>>>>>> ShallowCopy to the output object?
>>>>>>>>>> I'm a bit confused at this point. If our case is NOT a
>>>>>>>> standard
>>>>>>>>>> use case for the pipeline than I guess I can look more
>>>>>>>> seriously
>>>>>>>>>> into developing a full blown Plugin for our data file.
>>>>>>>>>> Mike
>>>>>>
>> _______________________________________________
>> \
More information about the ParaView
mailing list