<div dir="ltr">Hmmm. We are not exactly on the same wavelength :-) When you run a threshold filter, you indeed get a volume with all the cells of a given grain id. However, when you show it as a Surface (the default mode), ParaView extracts the outer surface of that volume. Which ends up being equivalent to showing all the interfaces between grains. To actually see _all_ of the elements, you need volume rendering. Can you send me a small dataset so I can demonstrate the difference in some pictures.<div><br></div><div>Best,</div><div>-berk</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 22, 2015 at 11:11 AM, Anton Shterenlikht <span dir="ltr"><<a href="mailto:mexas@bris.ac.uk" target="_blank">mexas@bris.ac.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Berk,<br>
<br>
sorry for replying via online gmail, it will probably screw up the context.<br>
I deleted your mail by accident from mbox, so have to resort to this...<br>
<br>
Anyway, I haven't tried your script yet, but you are probably correct<br>
about the threshold.<br>
I have another script working on the same dataset (see below),<br>
which runs fine. That script only shows the surface.<br>
<br>
You ask "extract the interfaces between the grains, correct?"<br>
If I understand you right, then no.<br>
Please see here the expected image from a smaller dataset:<br>
 <a href="http://eis.bris.ac.uk/~mexas/cgpack/201509res/crgb.png" rel="noreferrer" target="_blank">http://eis.bris.ac.uk/~mexas/cgpack/201509res/crgb.png</a><br>
I want to show all elements of the 3D array (dataset) with<br>
particular values in particular colours. In my case yellow<br>
for all cells (array elements) with value 0:<br>
<br>
cracks100.ThresholdRange = [ 0, 0 ]<br>
DataRepresentation3 = Show()<br>
<span class="">DataRepresentation3.DiffuseColor = [1.0, 1.0, 0.0]<br>
<br>
</span>green for all cells with value -1:<br>
<br>
cracks110.ThresholdRange = [ -1, -1 ]<br>
DataRepresentation4 = Show()<br>
<span class="">DataRepresentation4.DiffuseColor = [0.0, 1.0, 0.5]<br>
<br>
</span>and semi-transparent purple all cells with value 2:<br>
<br>
Threshold1 = Threshold()<br>
Threshold1.ThresholdRange = [ 2, 2 ]<br>
DataRepresentation2 = Show()<br>
<span class="">DataRepresentation2.DiffuseColor = [ 1, 0, 1 ]<br>
<br>
</span>And I'd like to show the cells not as individual points,<br>
but link adjacent cells into some sort of surface.<br>
<br>
I my case green and yellow are cracks on different crystallographic planes,<br>
and purple are grain boundaries.<br>
<br>
Many thanks for your help<br>
<br>
Anton<br>
<br>
************************************<br>
<br>
The script that runs fine on the same 400GB dataset:<br>
<span class=""><br>
ext1    = 4640       # data extent along 1<br>
ext2    = 4650        # data extent along 2<br>
ext3    = 4650       # data extent along 3<br>
</span>infile  = "./large/1000/zg0.raw"   # input file name<br>
outfile = "g.png"   # output file name<br>
<span class="">imsize1 = 1200         # size, in pixels, of the resulting image along 1<br>
imsize2 = 1200         # size, in pixels, of the resulting image along 2<br>
</span>minval  = 1           # min colour value<br>
maxval  = 1.0e6       # max colour value, equal to the number of grains<br>
<br>
# End of adjustable parameters<br>
######################################################################72<br>
<br>
# define the centre of rotation (cor)<br>
<span class="">cor1 = 0.5 * ext1<br>
cor2 = 0.5 * ext2<br>
cor3 = 0.5 * ext3<br>
<br>
from paraview.simple import *<br>
<br>
</span>reader=ImageReader(FilePrefix= infile )<br>
reader.DataExtent=[ 0, ext1-1, 0, ext2-1, 0, ext3-1 ]<br>
reader.DataByteOrder = 'LittleEndian'<br>
reader.DataScalarType = 'int'<br>
<span class=""><br>
RenderView1 = GetRenderView()<br>
DataRepresentation1 = Show()<br>
<br>
</span>dp = GetDisplayProperties(reader)<br>
dp.LookupTable = MakeBlueToRedLT(minval,maxval)<br>
dp.ColorAttributeType = 'POINT_DATA'<br>
dp.ColorArrayName = 'ImageFile'<br>
dp.Representation = "Surface"<br>
<br>
bar = CreateScalarBar(LookupTable=dp.LookupTable, Title="grain")<br>
bar.Position=[0.80,0.15]<br>
GetRenderView().Representations.append(bar)<br>
<span class=""><br>
camera = GetActiveCamera()<br>
camera.SetViewUp(-1,0,0)<br>
camera.Azimuth(30)<br>
camera.Elevation(30)<br>
<br>
</span>#camera.SetPosition(0,0,100)<br>
#camera.Roll(-90)<br>
<br>
RenderView1.ResetCamera()<br>
# make white background, for papers<br>
#RenderView1.Background = [ 1,1,1]<br>
<span class=""><br>
# gradient background colour<br>
RenderView1.UseGradientBackground = 1<br>
RenderView1.Background2 = [0.0, 0.0, 0.16470588235294117]<br>
RenderView1.Background = [0.3215686274509804, 0.3411764705882353,<br>
0.43137254901960786]<br>
<br>
RenderView1.CenterAxesVisibility = 0<br>
RenderView1.OrientationAxesVisibility = 1<br>
RenderView1.CenterOfRotation = [ cor1, cor2, cor3 ]<br>
</span>RenderView1.ViewSize = [ imsize1, imsize2 ]<br>
<br>
WriteImage( outfile )<br>
<br>
Render()<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On 22/09/2015, Berk Geveci <<a href="mailto:berk.geveci@kitware.com">berk.geveci@kitware.com</a>> wrote:<br>
> Hi Anton,<br>
><br>
> Let's debug this a big. I suspect that the thresholds are the issue here.<br>
> Does this script work?<br>
><br>
> ext1    = 4640       # data extent along 1<br>
> ext2    = 4650       # data extent along 2<br>
> ext3    = 4650       # data extent along 3<br>
> ffile   = "./large/1000/zf5.raw" # fracture file<br>
> imsize1 = 1200         # size, in pixels, of the resulting image along 1<br>
> imsize2 = 1200         # size, in pixels, of the resulting image along 2<br>
><br>
> cor1 = 0.5 * ext1<br>
> cor2 = 0.5 * ext2<br>
> cor3 = 0.5 * ext3<br>
><br>
> from paraview.simple import *<br>
><br>
> # the extents start from zero, so need to lower<br>
> # the upper extents by 1<br>
> cracks = ImageReader( FilePrefix= ffile )<br>
> cracks.DataExtent=[ 0, ext1-1, 0, ext2-1, 0, ext3-1 ]<br>
> cracks.DataByteOrder = 'LittleEndian'<br>
> cracks.DataScalarType = 'int'<br>
><br>
> RenderView1 = GetRenderView()<br>
> DataRepresentation1 = Show()<br>
><br>
> If this works, let's discuss how to avoid using Threshold but get the same<br>
> result. The issue with Threshold is that it creates a volume as an<br>
> unstructured grid, which is heavy-weight. For example, a ~40KB volume (one<br>
> float variable) turns into a ~800KB if I extract all of it as an<br>
> unstructured grid. It seems like all you need is to extract the interfaces<br>
> between the grains, correct?<br>
><br>
> Best,<br>
> -berk<br>
><br>
> On Mon, Sep 21, 2015 at 10:50 AM, Anton Shterenlikht <<a href="mailto:mexas@bris.ac.uk">mexas@bris.ac.uk</a>><br>
> wrote:<br>
><br>
>> >From mexas Mon Sep 21 14:29:16 2015<br>
>> >To: <a href="mailto:paraview@paraview.org">paraview@paraview.org</a><br>
>> >Subject: 400GB dataset out of memory on 1k cores?<br>
>> >Reply-To: <a href="mailto:mexas@bris.ac.uk">mexas@bris.ac.uk</a><br>
>> ><br>
>> >I get OOM on a ~400GB raw dataset<br>
>> >that I process with a script below.<br>
>> >I use 24 core nodes with 64GB per node.<br>
>> >I tried using up to 1008 nodes.<br>
>><br>
>> error... 1008 cores (42 nodes).<br>
>><br>
>> Anton<br>
>> _______________________________________________<br>
>> Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
>><br>
>> Visit other Kitware open-source projects at<br>
>> <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
>><br>
>> Please keep messages on-topic and check the ParaView Wiki at:<br>
>> <a href="http://paraview.org/Wiki/ParaView" rel="noreferrer" target="_blank">http://paraview.org/Wiki/ParaView</a><br>
>><br>
>> Search the list archives at: <a href="http://markmail.org/search/?q=ParaView" rel="noreferrer" target="_blank">http://markmail.org/search/?q=ParaView</a><br>
>><br>
>> Follow this link to subscribe/unsubscribe:<br>
>> <a href="http://public.kitware.com/mailman/listinfo/paraview" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/paraview</a><br>
>><br>
><br>
</div></div></blockquote></div><br></div>