[Paraview] [EXT] Re: How to test for empty block in multi-block dataset

Andy Bauer andy.bauer at kitware.com
Wed Oct 18 14:23:00 EDT 2017


Glad to hear it works! A disclaimer -- I don't profess to write good Python
code, just mildly functional Python code :)

On Wed, Oct 18, 2017 at 2:11 PM, Dennis Conklin <dennis_conklin at goodyear.com
> wrote:

> Andy,
>
>
>
> That works!   Thanks much!
>
>
>
> Now I just have to add it to every filter I’ve ever written to protect
> them all against empty blocks!  I’m amazed it took this long for this to
> come up!
>
>
>
> Dennis
>
>
>
> *From:* Andy Bauer [mailto:andy.bauer at kitware.com]
> *Sent:* Wednesday, October 18, 2017 1:47 PM
>
> *To:* Dennis Conklin <dennis_conklin at goodyear.com>
> *Cc:* Paraview (paraview at paraview.org) <paraview at paraview.org>
> *Subject:* Re: [EXT] Re: [Paraview] How to test for empty block in
> multi-block dataset
>
>
>
> Maybe try the following:
>
>        if hasattr(block, "GetNumberOfCells") and block.GetNumberOfCells()
> > 0 and block.GetCellType(0)==12:
>
>           process_block(block)
>
>
>
> On Wed, Oct 18, 2017 at 1:05 PM, Dennis Conklin <
> dennis_conklin at goodyear.com> wrote:
>
> Andy,
>
>
>
> GetCellType works fine when I have cells in the block, but in this recent
> case I had zero cells in the block after a Threshold filter,   my code is
> of the form:
>
>
>
>     Def process_block(block):
>
>         Print block.GetNumberOfCells()
>
>
>
>
>
>
>
>
>
>     ###################################################################
>
>
>     # main routine starts here
>
>     output.CopyStructure(inputs[0].VTKObject)
>
>     # if you ShallowCopy, then new variables created in input to filter
>
>     output.DeepCopy(inputs[0].VTKObject)
>
>
>
>     #
>
>     # Loop over blocks in composite (Exodus) data set
>
>     for block in output:
>
>
>
>        # VTK element types:
>
>        #     12 = VTK_HEXAHEDRON (Gdyr Hex)
>
>        #      9 = VTK_QUAD  (Gdyr Membrane)
>
>        #      3 = VTK_LINE  (Gdyr 3D Truss)
>
>        # since EXODUS requires single element type per block, test 1st
> element only
>
>        if block.GetCellType(0)==12:
>
>           process_block(block)
>
>
>
> I think GetCellType is dying as there is no element(0)
>
> I need a way to test the block before calling anything to see if it is
> empty
>
>
>
> Thanks!
>
> Dennis
>
>
>
> *From:* Andy Bauer [mailto:andy.bauer at kitware.com]
> *Sent:* Wednesday, October 18, 2017 11:39 AM
> *To:* Dennis Conklin <dennis_conklin at goodyear.com>
> *Cc:* Paraview (paraview at paraview.org) <paraview at paraview.org>
> *Subject:* Re: [EXT] Re: [Paraview] How to test for empty block in
> multi-block dataset
>
>
>
> Hi Dennis,
>
> Maybe the block isn't a vtkDataSet and thus wouldn't have the
> GetCellType() method. You could try a print statement after the for loop to
> see what each block is by doing something like:
>
> print block
>
>
>
> Could you share your full python code for the programmable filter? That
> may make it easier to track down.
>
>
>
> Best,
>
> Andy
>
>
>
> On Wed, Oct 18, 2017 at 11:01 AM, Dennis Conklin <
> dennis_conklin at goodyear.com> wrote:
>
> Andy,
>
>
>
> I’m not sure about the multiblock, my routines generally look like:
>
>
>
> For block in output:
>
>      If block.GetCellType(0)=12;
>
>            process_block(block)
>
>
>
> would this be
>
>
>
> If input.GetBlock(i)
>
> And I might not have loaded all the blocks in the set, then I might have
> eliminated some loaded blocks with earlier operations – what is the i in
> GetBlock?  Is it block_number as displayed in Spreadsheet or block index as
> in:
>
>
>
> block_index = block.FieldData.GetArray(‘ElementBlockIds’) - 1
>
>
>
> Sorry for such a basic question, but I only know the stuff I have used
> previously.
>
>
>
> Dennis
>
>
>
> *From:* Andy Bauer [mailto:andy.bauer at kitware.com]
> *Sent:* Wednesday, October 18, 2017 10:44 AM
> *To:* Dennis Conklin <dennis_conklin at goodyear.com>
> *Cc:* Paraview (paraview at paraview.org) <paraview at paraview.org>
> *Subject:* [EXT] Re: [Paraview] How to test for empty block in
> multi-block dataset
>
>
>
>  *WARNING - External email; exercise caution.*
>
>
>
> Hi Dennis,
>
> I think something like:
>
> if multiblock.GetBlock(i) != None:
>   ...
>
> should work. You probably don't even need the "!=None" part.
>
> Cheers,
>
> Andy
>
>
>
> On Wed, Oct 18, 2017 at 10:41 AM, Dennis Conklin <
> dennis_conklin at goodyear.com> wrote:
>
> P.S.  I’m writing python inside a Programmable Filter
>
>
>
> Thanks again
>
> Dennis
>
>
> _______________________________________________
> Powered by www.kitware.com
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com&data=01%7C01%7Cdennis_conklin%40goodyear.com%7C9dc270fb009a4b0639b908d51636b731%7C939e896692854a9a9f040887efe8aae0%7C0&sdata=99HLWFzFakz2A2flWuPb%2BjcOwf%2FEEemG9UURNHalZKc%3D&reserved=0>
>
> Visit other Kitware open-source projects at http://www.kitware.com/
> opensource/opensource.html
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=01%7C01%7Cdennis_conklin%40goodyear.com%7C9dc270fb009a4b0639b908d51636b731%7C939e896692854a9a9f040887efe8aae0%7C0&sdata=3id87QE9dLu8DdNl%2BE7KX3z8TUWFHqotqxtAdGnj8uE%3D&reserved=0>
>
> Please keep messages on-topic and check the ParaView Wiki at:
> http://paraview.org/Wiki/ParaView
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fparaview.org%2FWiki%2FParaView&data=01%7C01%7Cdennis_conklin%40goodyear.com%7C9dc270fb009a4b0639b908d51636b731%7C939e896692854a9a9f040887efe8aae0%7C0&sdata=EMSmEDwRt9GGxILGWdVsG7NuX%2FNZN4a5aPJvzF8X2Rk%3D&reserved=0>
>
> Search the list archives at: http://markmail.org/search/?q=ParaView
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmarkmail.org%2Fsearch%2F%3Fq%3DParaView&data=01%7C01%7Cdennis_conklin%40goodyear.com%7C9dc270fb009a4b0639b908d51636b731%7C939e896692854a9a9f040887efe8aae0%7C0&sdata=mCNLuBUJ1akzSuauw0mK5dbUSoKJGKS9wPhjMkikhyg%3D&reserved=0>
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/paraview
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Fparaview&data=01%7C01%7Cdennis_conklin%40goodyear.com%7C9dc270fb009a4b0639b908d51636b731%7C939e896692854a9a9f040887efe8aae0%7C0&sdata=DoIRVm9jB%2BeEPp08AEkgj6RUMnzOU2bLj4SRL2Q%2BKYM%3D&reserved=0>
>
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview/attachments/20171018/b2c290f0/attachment.html>


More information about the ParaView mailing list