Jing,

I'm still unclear about where this numpy array is being generated. Is it using 
the Python Shell in the GUI, running a Python script, or using a batch 
interpreter like pvpython or pvbatch? In that case, the numpy array is in a 
separate memory space as the data being loaded from the netCDF file (and has to 
be due to the distributed nature of parallel computers). There is a mechanism 
for pulling data to the Python script, but I doubt there is a way to push it 
back.

The calculator filter (as all other filters) has access to arrays that are 
either read from the netCDF file or generated in upstream filters. For example, 
the calculator filter will itself create an array that can be accessed by a 
second calculator if you add one to the first. So it is possible to add arrays 
after they are loaded.

One option you might try is to look into filters that internally use Python 
scripting. These are the Python Calculator and Programable Filter. Both of 
these will be able to access arrays from the netCDF file and then add arrays. 
If you can compute the values in the numpy array, then one or both of these 
should be able to add the data you want.

-Ken

From: Jing Li <[email protected]<mailto:[email protected]>>
Date: Tuesday, December 2, 2014 at 2:00 AM
To: Kenneth Moreland <[email protected]<mailto:[email protected]>>
Cc: "[email protected]<mailto:[email protected]>" 
<[email protected]<mailto:[email protected]>>
Subject: [EXTERNAL] Re: [Paraview] Data updates in Paraview+MPI

Hi Ken,
Thanks for your prompt response. Sorry about the confusion here.
I have a large Netcdf file which is visualized with Parallel Paraview. Now I 
have no problems with visualizing the values of an attribute( e.g., 
temperature). The next step is to modify the attribute values based on the 
another numpy array storing the weighting values. The weighting values are 
changing during the interactive manipulation.

For  the first question, I think I can resample the numpy data to make the 
dimensions the same.  I noticed there is a calculator for array data but it 
seems only to work with data read through Netcdf reader from Paraview. I guess 
the less efficient way is to store the scaling array to the original Netcdf 
file and use the calculator to generate a new array based on both original and 
weighting arrays.   Do you think this will work? I don't want to "modify" the 
core API of Paraview.

Thanks again.
Jing

On Dec 2, 2014, at 8:52 AM, Moreland, Kenneth 
<[email protected]<mailto:[email protected]>> wrote:

Jing,

I'm having a little trouble conceptualizing exactly how you are planning to use 
it, but I suspect you are going to run into several problems because it sounds 
like you are breaking some of the assumptions of VTK and ParaView.

First, I'm not sure how you could attach an array describing 2x2x2 values to 
4x4x4 blocks. There is no convention in VTK to specify a field arrangement 
other than 1 to 1. All filters will assume the array is 4x4x4, which will cause 
bad data access and could potentially crash ParaView.

Second, trying to modify an array interactively in the view and then access it 
through filters in the pipeline is not going to work very well. The pipeline 
will not catch the changes and the changed values will not appear in the 
visualization. ParaView additionally has update suppressors to prevent updates 
that were not modified by the ParaView system.

I suspect that for whatever it is you are trying to do to work right you will 
need to create a custom view or representation that internally handles this 
numpy array.

-Ken

From: jlih <[email protected]<mailto:[email protected]>>
Date: Monday, December 1, 2014 at 9:03 AM
To: "[email protected]<mailto:[email protected]>" 
<[email protected]<mailto:[email protected]>>
Subject: [EXTERNAL] [Paraview] Data updates in Paraview+MPI


Dear all,

I am using the Paraview with MPI enabled to visualize a NetCDF dataset and need 
some suggestions on developing the following application.


If I want to modify the NetCDF array based on the data values from another 
numpy array (not in NetCDF format), do I need to store the numpy array in a 
NetCDF in every computing node with MPI installed?   The dimensions of the 
numpy array are not the same as the NetCDF array (e.g., numpy 2*2*2; NetCDF 
4*4*4, one element from the numpy array corresponds to 8 elements in the NetCDF 
array ).


Also, the numpy array is updated during the interactive manipulation of the 
view.  Whenever the view changes (e.g., zoom), the values are updated.  If I 
store the numpy array as files, I am not sure how much communication overhead 
will be introduced. Is it possible to store the numpy array in memory and 
update the array on the fly? I'm not sure how the shared memory works in this 
case..


Any suggestions are highly appreciated. Thanks in advance.


Jing
_______________________________________________
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://public.kitware.com/mailman/listinfo/paraview

Reply via email to