[vtkusers] vtkWeb - sending data to the client

Dan Lipsa dan.lipsa at kitware.com
Tue Oct 11 13:19:24 EDT 2016


Sounds good. Thanks Seb.

Dan


On Tue, Oct 11, 2016 at 1:08 PM, Sebastien Jourdain <
sebastien.jourdain at kitware.com> wrote:

> Thinks serialization... And don't assume any specific efficiency. Think on
> what you want to get on the JavaScript side.
>
> On Tue, Oct 11, 2016 at 11:03 AM, Dan Lipsa <dan.lipsa at kitware.com> wrote:
>
>> Thanks Seb,
>> So I'll have to make regular arrays out of the numpy arrays and send
>> those over?
>> What about multi-dimensional numpy arrays? (2D, 3D) Do I have to flatten
>> them on the server and then get them into the right format on the client?
>>
>> What about the numpy masked arrays? This have missing values, similar
>> with VTK blanking.
>>
>> How efficient is this?
>>
>> Thanks,
>> Dan
>>
>>
>> On Fri, Oct 7, 2016 at 5:27 PM, Sebastien Jourdain <
>> sebastien.jourdain at kitware.com> wrote:
>>
>>> We do that all the time, so yes, vtk/paraview web can handle it.
>>>
>>> Just need to create a new RPC method that will build the structure the
>>> client expect based on its request.
>>>
>>> Here is a ParaView example which should apply to VTK if you ignore the
>>> ParaView proxy magic (self.reader.GetClientSideObject())
>>>
>>>     @exportRpc("my.super.app.get.table")
>>>     def getTable(self):
>>>         from vtk.util.numpy_support import vtk_to_numpy
>>>         returnValue = {}
>>>         dataTable = self.reader.GetClientSideObjec
>>> t().GetOutputDataObject(0)
>>>         count = dataTable.GetNumberOfColumns()
>>>         for idx in range(count):
>>>             array = dataTable.GetColumn(idx)
>>>             if SUPPORTED_TYPES[VTK_DATA_TYPES[array.GetDataType()]]:
>>>                 npArray = vtk_to_numpy(array)
>>>                 returnValue[array.GetName()] = [ i.item() for i in
>>> npArray ]
>>>             else:
>>>                 returnValue[array.GetName()] = [ array.GetValue(i) for i
>>> in xrange(array.GetNumberOfValues()) ]
>>>         return returnValue
>>>
>>> with that for our constant settings for filtering arrays we don't want
>>> to get on the client side.
>>>
>>> VTK_DATA_TYPES = [ 'void',            # 0
>>>                    'bit',             # 1
>>>                    'char',            # 2
>>>                    'unsigned_char',   # 3
>>>                    'short',           # 4
>>>                    'unsigned_short',  # 5
>>>                    'int',             # 6
>>>                    'unsigned_int',    # 7
>>>                    'long',            # 8
>>>                    'unsigned_long',   # 9
>>>                    'float',           # 10
>>>                    'double',          # 11
>>>                    'id_type',         # 12
>>>                    'unspecified',     # 13
>>>                    'unspecified',     # 14
>>>                    'signed_char' ]    # 15
>>>
>>> SUPPORTED_TYPES = { 'void': False,
>>>                    'bit': False,
>>>                    'char': True,
>>>                    'unsigned_char': True,
>>>                    'short': True,
>>>                    'unsigned_short': True,
>>>                    'int': True,
>>>                    'unsigned_int': True,
>>>                    'long': True,
>>>                    'unsigned_long': True,
>>>                    'float': True,
>>>                    'double': True,
>>>                    'id_type': True,
>>>                    'unspecified': False,
>>>                    'unspecified': False,
>>>                    'signed_char': True }
>>>
>>> On Fri, Oct 7, 2016 at 3:09 PM, Dan Lipsa <dan.lipsa at kitware.com> wrote:
>>>
>>>> Hi Seb and all,
>>>> One of the features we want to implement in our application is the
>>>> ability to render plots on the client (in certain cases) using alternate
>>>> means such as plotly.
>>>>
>>>> For this we need to send data = a numpy or numpy masked array = to the
>>>> client. Is there any capability in vtkWeb or do you have any advise on how
>>>> to do that?
>>>>
>>>> Thanks,
>>>> Dan
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20161011/d097cbe5/attachment.html>


More information about the vtkusers mailing list