[Paraview] Problem with custom time-aware reader
Karl König
kkoenig11 at web.de
Thu Sep 3 15:42:29 EDT 2009
Hi Ken,
> Everything looks like it is working fine to me. It looks like you are
> getting the right time value in RequestData, you are finding the right
> time index, and you are setting the right time value in the output data.
>
> The only thing wrong I see is that it is always printing out the
> filename for the last file. But I don’t see anywhere in RequestData
> where you translated the time index to a file name. At some point,
> probably in RequestInformation, FileName is set to the last file. That
> never is overridden in RequestData.
So, essentially what you are suggesting is to create a mapping
timeStepValue -> FileName in RequestInformation and to set
this->FileName depending on the value of
outInfo->Get(vtkStreamingDemandDrivenPipeline::UPDATE_TIME_STEPS())[0]
in RequestData?
I didn't see anything like that happen in any of the other readers in
directory ParaView3/VTK/IO. So, I assumed some magic happening when
invoking
output->GetInformation()->Set(
vtkDataObject::DATA_TIME_STEPS(),
&TimeStepValues[this->ActualTimeStep], 1);
After all, this->FileName gets automagically set before invoking
RequestInformation.
So, I have to set this->FileName manually? Actually, I tried that
already before posting. At the end of RequestData I set brutally
----- cut ---
this->FileName = "file0.foo";
std::cout << "RequestData: Got request for opening file <"
<< this->FileName << ">..." << endl;
this->UpdateProgress(1.0);
return 1;
}
----- cut ---
That works, the correct file is opened, but it has the side effect of
segfaulting ParaView as soon as I disconnect from the server or delete
the reader object.
(Using the mapping timeStepValue -> FileName instead of hardcoding
FileName had the same effect.)
Karl
> On 9/3/09 9:19 AM, "Karl König" <kkoenig11 at web.de> wrote:
>
> Hi,
>
> I have a problem with a custom time-aware reader which I seem to cannot
> work out on my own. I'm hoping someone on this list can shed some light
> on the problem.
>
> The reader is designed following John's excellent tutorial
> (http://www.paraview.org/Wiki/images/2/20/IEEE08_Time-In-ParaView.ppt)
> and has been boiled down for this question to its essentials:
>
> Read in a sequence of plain ASCII text files, each of them containing
> exactly one floating point value, nothing more. The values are
> interpreted as time step values.
>
> The problem is that all files of the file series are inspected in method
> RequestInformation, time information is displayed correctly in the
> Information tab, I can walk through the files using VCR controls and
> current data time step is properly increased/decreased. The problem,
> though, is that for every time step the very same file - always the last
> file of the file series - is loaded in RequestData.
>
> Here is the recipe to reproduce:
> Unpack and compile the attached plugin in the usual manner using
> mkdir build; cd build
> cmake .. -DCMAKE_BUILD_TYPE=Release
> -DParaView_DIR=/path/to/paraview/build/dir
> and load it into ParaView 3.6.1 or 3.7-cvs.
>
> Create a sample input file series via:
> for i in $(seq 0 9); do echo "0.${i}00" > file${i}.foo ; done
> (there is already such a file series in the tarball)
>
> Open the collapsed file series "file..foo" in the file open dialog. On
> standard output it will be shown that method RequestInformation is
> called for all files of the sequence once, and an additional time for
> the last file. (I probably could work around that by storing the name of
> the last file being parsed and comparing it to the current file name.
> But that's of minor interest.)
> Click on the Apply button and walk through the files. On standard output
> it will be reported that this->FileName does not change at all. I fail
> to understand why. Am I missing some callback routine? According to my
> understanding
>
> output->GetInformation()->Set(
> vtkDataObject::DATA_TIME_STEPS(),
> &TimeStepValues[this->ActualTimeStep], 1);
>
> in RequestData should do the magic, but it does not. Does anyone have an
> idea?
>
> Thanks a lot in advance.
> Karl
>
>
>
> **** Kenneth Moreland
> *** Sandia National Laboratories
> ***********
> *** *** *** email: kmorel at sandia.gov
> ** *** ** phone: (505) 844-8919
> *** web: http://www.cs.unm.edu/~kmorel
More information about the ParaView
mailing list