[Paraview] Question on Information Objects
Burlen Loring
bloring at lbl.gov
Mon Apr 9 15:45:43 EDT 2012
Joshua,
There was mistake in my previous post, you should override
FillOutputInformation and set info->Set(vtkDataObject::DATA_TYPE_NAME(),
"vtkTable");
Sorry about that.
Burlen
On 04/09/2012 12:24 PM, Joshua Murphy wrote:
> Hi Burlen,
>
> I think I am getting there, but I am having the following problem now..
>
> The following snippet from my RequestData is causing a segfault…
>
> vtkInformation *outInfo2 = outputVector->GetInformationObject(1);
> vtkTable *MetaDataOutput = vtkTable::SafeDownCast(outInfo2->Get(vtkDataObject::DATA_OBJECT()));
>
> Am I grabbing the information object incorrectly, or do I need to
> override another method? Do I need to do something with
> RequestDataObject()?
>
> If you can help, that would be great!
>
> -Josh
>
>
> From: Burlen Loring <bloring at lbl.gov <mailto:bloring at lbl.gov>>
> Date: Mon, 9 Apr 2012 12:34:02 -0600
> To: Joshua Murphy <joshua.murphy at lasp.colorado.edu
> <mailto:joshua.murphy at lasp.colorado.edu>>
> Cc: burlen <burlen.loring at gmail.com <mailto:burlen.loring at gmail.com>>,
> "paraview at paraview.org <mailto:paraview at paraview.org>"
> <paraview at paraview.org <mailto:paraview at paraview.org>>
> Subject: Re: [Paraview] Question on Information Objects
>
> Hi Joshua,
>
> In your constructor you'd need to call
>
> this->SetNumberOfInputPorts(2);
>
> You'd need to override
>
> FillInputPortInformation(int port, vtkInformation *info)
>
> implement a switch on port number and do something like:
>
> 288 switch (port)
> 289 {
> 290 // Vector feild data
> 291 case 0:
> 292 info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(),
> "vtkUnstructuredGrid");
> 293 break;
> 294 // Seed points
> 295 case 1:
> 296 info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(),
> "vtkTable");
> 297 break;
> 398 }
>
> in request data you have to grab the table from the second information
> object.
>
> Hope this helps
> Burlen
>
>
>
> On 04/09/2012 11:01 AM, Joshua Murphy wrote:
>> Hello,
>>
>> So I am trying to figure out how to add an output port to my Reader,
>> but I am having difficulty.
>>
>> I am trying to create the new output as outlined in the email below,
>> but when I get to the point of adding the column to the table,
>> ParaView segfaults.
>>
>> Having looked through other emails on the list, it looks like the
>> output ports need to be configured somehow, but I am not sure how to
>> do that.
>>
>> My reader creates a vtkStructuredGrid for the data, and I need to add
>> the vtkTable for the meta-data… how do I configure the reader for
>> these two outputs?
>>
>>
>> Currently, my getInformation (beginning) looks like this:
>> ------------
>>
>> vtkInformation *outInfo = outputVector->GetInformationObject(0);
>> vtkStructuredGrid *output = vtkStructuredGrid::SafeDownCast(
>> outInfo->Get(vtkDataObject::DATA_OBJECT()));
>> //TODO: Add Meta Data here first
>> // Use VTK Table output Port
>> // Following is from discussion on ParaView Mailing List
>>
>> //-----------------------------------------------------------
>>
>>
>> // 315 vtkInformation *outInfo;
>>
>>
>> // 316 vtkTable *output;
>>
>>
>> // 317 vtkStringArray *data;
>>
>>
>> // 318
>>
>>
>> // 319 // output port 1 -> bw data
>>
>>
>> // 320 outInfo=outputVector->GetInformationObject(0);
>>
>>
>> // 321 output
>>
>>
>> // 322 = dynamic_cast<vtkTable*>(outInfo->Get(vtkDataObject::DATA_OBJECT()));
>>
>>
>> // 323 data=vtkStringArray::New();
>>
>>
>> // 324 data->SetName("BW Data");
>>
>>
>> // 325 data->SetNumberOfComponents(1);
>>
>>
>> // 326 data->InsertNextValue(bwData.c_str());
>>
>>
>> // 327 output->AddColumn(data);
>>
>>
>> // 328 data->Delete();
>>
>>
>> //----------------------------------------------------------
>>
>>
>> vtkTable *MetaDataOutput;
>>
>>
>> vtkStringArray *MetaString;
>>
>>
>> //output port for table data
>>
>>
>> MetaDataOutput = dynamic_cast<vtkTable*>(outInfo->Get(vtkDataObject::DATA_OBJECT()));
>>
>>
>> MetaString = vtkStringArray::New();
>>
>>
>> MetaString->SetName("Meta Data");
>>
>>
>> MetaString->InsertNextValue("This is a Test");
>>
>>
>> MetaString->InsertNextValue("This is Another Test");
>>
>>
>> //VVVVVVVVV This is making me crash! VVVVVVVVVVVV//
>>
>>
>> //----- Need another output port! How? -------//
>>
>>
>> MetaDataOutput->AddColumn(MetaString);
>>
>>
>> MetaString->Delete();
>>
>>
>> //structured grid below here....
>>
>>
>> vtkStructuredGrid *structOutput = vtkStructuredGrid::SafeDownCast(output);
>>
>>
>>
>>
>> --------------
>>
>> The reader segfaults on MetaDataOutput->AddColumn(MetaString);
>>
>> If someone could point me in the correct direction (or simply tell me
>> how stupid I am being!, and then point in the correct direction!) I
>> would be very grateful! I am sure I have a basic misunderstanding of
>> what is supposed to be happening here!
>>
>> -Josh
>>
>>
>>
>> From: burlen <burlen.loring at gmail.com <mailto:burlen.loring at gmail.com>>
>> Date: Thu, 22 Mar 2012 22:41:37 -0600
>> To: Joshua Murphy <joshua.murphy at lasp.colorado.edu
>> <mailto:joshua.murphy at lasp.colorado.edu>>
>> Cc: "paraview at paraview.org <mailto:paraview at paraview.org>"
>> <paraview at paraview.org <mailto:paraview at paraview.org>>
>> Subject: Re: [Paraview] Question on Information Objects
>>
>> hi, information keys are more for passing info between filters
>> through the pipeline. if all you want is to display a string, you
>> could make a second output port to your reader that produces a
>> vtkTable and populate it with the string. This could be displayed in
>> the pv ui. here's a quick example of what you'd do in your request data:
>>
>>
>> 315 vtkInformation *outInfo;
>> 316 vtkTable *output;
>> 317 vtkStringArray *data;
>> 318
>> 319 // output port 1 -> bw data
>> 320 outInfo=outputVector->GetInformationObject(0);
>> 321 output
>> 322 =
>> dynamic_cast<vtkTable*>(outInfo->Get(vtkDataObject::DATA_OBJECT()));
>> 323 data=vtkStringArray::New();
>> 324 data->SetName("BW Data");
>> 325 data->SetNumberOfComponents(1);
>> 326 data->InsertNextValue(bwData.c_str());
>> 327 output->AddColumn(data);
>> 328 data->Delete();
>>
>>
>>
>> On 03/22/2012 03:38 PM, Joshua Murphy wrote:
>>> Hello,
>>>
>>> I am trying to get meta-data information from a file into ParaView.
>>> I have successfully built the information key-value pairs in the
>>> information object in my reader, but I am uncertain how to get the
>>> data out on the ParaView side of things.
>>>
>>> Example:
>>>
>>> I want to get the Calendar date meta-data from my model file. I
>>> added Key to the information object to the results info object.
>>>
>>> I set keys as follows:
>>>
>>> request->AppendUnique(vtkExecutive::KEYS_TO_COPY(), vtkENLILMetaDataKeys::REFDATE_CAL());
>>>
>>>
>>> I have a function to add the value to the key like such:
>>>
>>> void vtkENLILMetaDataKeys::populate_meta_data(vtkInformation* request, vtkInformationStringKey *key, char* value)
>>> {
>>> request->Set(key, value);
>>> }
>>>
>>>
>>> I then add the values to the keys as follows:
>>>
>>> vtkENLILMetaDataKeys::populate_meta_data(outInfo, vtkENLILMetaDataKeys::REFDATE_CAL(), temp);
>>>
>>> After I do this, I can successfully pull the placed data from the
>>> information object from within the reader.
>>>
>>> What I cannot figure out is how to access this object from within
>>> Paraview.
>>>
>>> My goal is to be able to include the calendar date (as text) in the
>>> render view.
>>>
>>> Can someone guide me in the correct direction on how to do this? I
>>> am looking for possibly a python way of getting at this data.
>>>
>>> Thanks,
>>>
>>> Josh
>>>
>>>
>>>
>>> _______________________________________________
>>> Powered bywww.kitware.com
>>>
>>> Visit other Kitware open-source projects athttp://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 bywww.kitware.com
>>
>> Visit other Kitware open-source projects athttp://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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20120409/e33e751a/attachment-0001.htm>
More information about the ParaView
mailing list