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

Dennis Conklin dennis_conklin at goodyear.com
Wed Oct 18 14:11:16 EDT 2017


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<mailto: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<mailto:andy.bauer at kitware.com>]
Sent: Wednesday, October 18, 2017 11:39 AM
To: Dennis Conklin <dennis_conklin at goodyear.com<mailto:dennis_conklin at goodyear.com>>
Cc: Paraview (paraview at paraview.org<mailto:paraview at paraview.org>) <paraview at paraview.org<mailto: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<mailto: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<mailto:andy.bauer at kitware.com>]
Sent: Wednesday, October 18, 2017 10:44 AM
To: Dennis Conklin <dennis_conklin at goodyear.com<mailto:dennis_conklin at goodyear.com>>
Cc: Paraview (paraview at paraview.org<mailto:paraview at paraview.org>) <paraview at paraview.org<mailto: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<mailto: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/a1369a03/attachment.html>


More information about the ParaView mailing list