[yt-users] cut_region bafflement

Stephanie Tonnesen stonnes at gmail.com
Thu Oct 8 14:31:26 PDT 2015


Hmmm, the "&" operator seems to work here!  I was having trouble using it,
possibly with an earlier version of yt, which is why I went to chaining at
all...

Thanks,
Stephanie

--
Dr. Stephanie Tonnesen
Alvin E. Nashman Postdoctoral Fellow
Carnegie Observatories, Pasadena, CA
stonnes at gmail.com

On Thu, Oct 8, 2015 at 9:26 AM, Kacper Kowalik <xarthisius.kk at gmail.com>
wrote:

> On 10/07/2015 07:24 PM, Stephanie Tonnesen wrote:
> > Hi Nathan and all,
> >
> > I have pasted a code that shows my problem using the isolated galaxy
> > output.  You will have to change the line of code that reads in the
> > isolated galaxy output, but otherwise it should run for anyone.  See the
> > madness yourself!!!
> >
> > http://paste.yt-project.org/show/5943/
> >
> > Thanks again,
> > Stephanie
>
> Hi Stephanie,
> while we investigate possible issue with cut_region chaining could you
> try using single 'cut_region' call? You can create single mask using
> binary operators e.g.:
>
> r4 = ds.cut_region(["
>    (obj['Metal_Density']/obj['density'] > 0.33) &
>    (obj['x'].in_units('kpc') < 2.0) &
>    (obj['z'].in_units('kpc') >= 0.0)
> "])
>
> Cheers,
> Kacper
>
> > --
> > Dr. Stephanie Tonnesen
> > Alvin E. Nashman Postdoctoral Fellow
> > Carnegie Observatories, Pasadena, CA
> > stonnes at gmail.com
> >
> > On Wed, Oct 7, 2015 at 4:33 PM, Stephanie Tonnesen <stonnes at gmail.com>
> > wrote:
> >
> >> Hi Nathan,
> >>
> >> Thanks for the quick response!  I will see if I can reproduce this on a
> >> test dataset.
> >>
> >> Different is the confusing part to me.  These all should be selecting
> >> exactly the same region.  If P3 and P4 are trying to select a region
> from
> >> ds.all_data() instead of ds.disk() then all three should be different.
> >> Another strange thing, if I select x > 65 kpc (only the top half of the
> >> cylinder, then the volume is 3.7384e-4, half of the values that don't
> seem
> >> right to me!
> >>
> >> If I do
> >> r4c = ds.cut_region(["obj['Metal_Density']/obj['density'] > 0.33"])
> >> then the volume doesnt change, is 7.4768e-4
> >>
> >> If I do:
> >> r4 = ds.all_data()
> >> r4c = r4.cut_region(["obj['Metal_Density']/obj['density'] > 0.33"])
> >> then the volume is, as it should be, 0.3
> >>
> >> *I think that something going wrong when I have more than one cut_region
> >> command.*  If I do:
> >>
> >> r3 = ds.disk([0.5,0.5,0.5],[-1,0,0],(4,"kpc"),(2,"kpc"))
> >> r3c = r3.cut_region(["(obj['x'].in_units('kpc') > 60.0)"])
> >>  or
> >> r2 = ds.disk([0.5,0.5,0.5],[-1,0,0],(4,"kpc"),(2,"kpc"))
> >> r2c = r2.cut_region(["obj['Metal_Density']/obj['density'] > 0.33"])
> >>
> >> then the volume is 9.346e-5, as it should be.
> >>
> >> But when I put those together:
> >>
> >> r3 = ds.disk([0.5,0.5,0.5],[-1,0,0],(4,"kpc"),(2,"kpc"))
> >> r3r = r3.cut_region(["(obj['x'].in_units('kpc') > 60.0)"])
> >> r3c = r3r.cut_region(["obj['Metal_Density']/obj['density'] > 0.33"])
> >>
> >> the volume is 7.4768e-4 again!
> >>
> >> And when I do this:
> >> r4 = ds.all_data()
> >> r4r = r4.cut_region(["obj['Metal_Density']/obj['density'] > 0.33"])
> >> r4c = r4r.cut_region(["(obj['z'].in_units('kpc') > 0.0)"])
> >>
> >> I get 2.4467, which is more than my box size.
> >>
> >> --
> >> Dr. Stephanie Tonnesen
> >> Alvin E. Nashman Postdoctoral Fellow
> >> Carnegie Observatories, Pasadena, CA
> >> stonnes at gmail.com
> >>
> >> On Wed, Oct 7, 2015 at 3:30 PM, Nathan Goldbaum <nathan12343 at gmail.com>
> >> wrote:
> >>
> >>> Hi Stephanie,
> >>>
> >>> I'm not sure off-hand why this is happening.
> >>>
> >>> It may help one of us to be able to reproduce and understand what
> you're
> >>> seeing if you can phrase your question in the form of an example that
> one
> >>> of can run locally. This would make use of one of the test datasets on
> >>> yt-project.org/data, and a full script that we can run locally pasted
> to
> >>> paste.yt-project.org/data
> >>>
> >>> Finally, just to clarify, the confusion is that the volumes of P3 and
> P4
> >>> are *bigger* than P2 and identical?
> >>>
> >>> It might be the case that the derived quantity infrastructure is
> somehow
> >>> selecting the data as if it were selecting from ds.all_data() instead
> of
> >>> your disk selector.  Can you try computing what the total volume of
> cells
> >>> in a data object constructed by applying cut_regions on ds.all_data()
> >>> instead of ds.disk()?
> >>>
> >>> -Nathan
> >>>
> >>> On Wed, Oct 7, 2015 at 5:21 PM, Stephanie Tonnesen <stonnes at gmail.com>
> >>> wrote:
> >>>
> >>>> Dear yt-users,
> >>>>
> >>>> I am running
> >>>>
> >>>> Version = 3.2-dev
> >>>> Changeset = dc2467c4eae7 (yt) tip
> >>>>
> >>>> I have been fiddling around with cut_region in a disk region and have
> >>>> gotten really confused.  I was initially trying to see whether
> defining a
> >>>> disk region such that the cylinder height was on the x-axis changed
> how I
> >>>> need to make a cut in the cylinder height.  Anyway, as I was fiddling
> with
> >>>> these cuts I found that if I made a "spatial" cut (rather than a
> different
> >>>> variable cut) I was getting different volumes.  Let me show you:
> >>>>
> >>>> small bit of background:  the whole box is 130 kpc across, so 0.5 0.5
> >>>> 0.5 is 65 65 65 kpc.  Also, I am cutting and pasting bits here so the
> >>>> indentation is off.
> >>>>
> >>>> ds =
> >>>>
> yt.load("/data/stonnes/dwarf_nowind_lowmassgal_bigtracer/DD"+loop[i]+"/DD44sMBhn25now"+loop[i])
> >>>>
> >>>> r2 = ds.disk([0.5,0.5,0.5],[-1,0,0],(4,"kpc"),(2,"kpc"))
> >>>>     r2c = r2.cut_region(["obj['Metal_Density']/obj['density'] >
> 0.33"])
> >>>>
> >>>>     r3 = ds.disk([0.5,0.5,0.5],[-1,0,0],(4,"kpc"),(2,"kpc"))
> >>>>     r3r = r3.cut_region(["(obj['x'].in_units('kpc') > 63.0)"])
> >>>>     r3r = r3r.cut_region(["(obj['x'].in_units('kpc') < 67.0)"])
> >>>>     r3c = r3r.cut_region(["obj['Metal_Density']/obj['density'] >
> 0.33"])
> >>>>
> >>>>     r4 = ds.disk([0.5,0.5,0.5],[-1,0,0],(4,"kpc"),(2,"kpc"))
> >>>>     r4r = r4.cut_region(["(obj['x'].in_units('kpc') > 61.)"])
> >>>>     r4c = r4r.cut_region(["obj['Metal_Density']/obj['density'] >
> 0.33"])
> >>>>
> >>>>  P2 =
> >>>> np.append(P2,r2c.quantities.total_quantity([("index","cell_volume")]))
> >>>>  P3 =
> >>>> np.append(P3,r3c.quantities.total_quantity([("index","cell_volume")]))
> >>>>  P4 =
> >>>> np.append(P4,r4c.quantities.total_quantity([("index","cell_volume")]))
> >>>>
> >>>> P2 volume is 9.346e-5 : within 2% of my calculation for the volume I
> >>>> should be getting
> >>>> P3 volume is 7.4768e-4
> >>>> P4 volume is 7.4768e-4
> >>>>
> >>>> When I print out the x- y- and z- maxes and mins, they are the same
> for
> >>>> each of the selected regions.
> >>>> (By doing this:
> >>>> m2 = np.append(m2,r2c.quantities.extrema([("index","z")])[0])
> >>>> rho2 = np.append(rho2,r2c.quantities.extrema([("index","z")])[1])
> >>>>
> >>>> )
> >>>>
> >>>> Can anyone help me figure out/tell me what is going on here?
> >>>>
> >>>> Thanks!
> >>>> Stephanie
> >>>>
> >>>> --
> >>>> Dr. Stephanie Tonnesen
> >>>> Alvin E. Nashman Postdoctoral Fellow
> >>>> Carnegie Observatories, Pasadena, CA
> >>>> stonnes at gmail.com
> >>>>
> >>>> _______________________________________________
> >>>> yt-users mailing list
> >>>> yt-users at lists.spacepope.org
> >>>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
> >>>>
> >>>>
> >>>
> >>> _______________________________________________
> >>> yt-users mailing list
> >>> yt-users at lists.spacepope.org
> >>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
> >>>
> >>>
> >>
> >
> >
> >
> > _______________________________________________
> > yt-users mailing list
> > yt-users at lists.spacepope.org
> > http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
> >
>
>
>
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20151008/3bce8e94/attachment.htm>


More information about the yt-users mailing list