[yt-users] About ProfilePlot

tyuta y0u1t1a5.t at gmail.com
Wed Oct 18 11:59:59 PDT 2017


Dear yt-users,

Hi, I have a question on ProfilePlot. I want to make profile plot of dark
matter density, taking gas density as a bin field, weighted by dark matter
mass in the cell.I could make the plot, but the plot looks strange (it
looks like chopped in small pieces). Also, I tried other plot changing
n_bins like 64,32,16,8,... but they still be "chopped", or sometimes there
were no line at all. For comparison, I made a plot weighted by cell_mass
(which I don't want), and this look OK. To my understanding, if and only if
there is at least 1 cell which fall into each bin, there should be some
nonzero value no matter what weight I use, so the range of density which
has nonzero dark matter density doesn't depend on the choice of weight
field. It seems there is a discrepancy between these two plots.

Could you tell me what's wrong with me?
I tried on yt example dataset, IsolatedGalaxy/galaxy0030/galaxy0030.
I'm working with yt-3.4.0.

this is my code:

import yt

from yt.data_objects.particle_filters import add_particle_filter


def stars(pfilter, data):

    filter = data[(pfilter.filtered_type, "particle_type")] == 2

    return filter

def DMparticles(pfilter, data):

    filter = data[(pfilter.filtered_type, "particle_type")] == 1

    return filter


add_particle_filter("stars", function=stars, filtered_type='io',

                  requires=["particle_type"])

add_particle_filter("DMparticles", function=DMparticles, filtered_type='io',

                   requires=["particle_type"])


def only_DM(field, data):

    return data['deposit','DMparticles_density']

def DM_in_cell_mass(field, data):

    return (data['only_DM_Density']*data['cell_volume'])


ds_all=yt.load("~/IsolatedGalaxy/galaxy0030/galaxy0030")


ds_all.add_particle_filter('stars')

ds_all.add_particle_filter('DMparticles')


ds_all.add_field(("gas", "only_DM_Density"), units="g/cm**3",
function=only_DM)

ds_all.add_field(("gas", "DM_cell_mass"), units="g",
function=DM_in_cell_mass)


sp = ds_all.sphere([0.5, 0.5, 0.5], (10, "kpc"))


lineplot_gas_DM_density_128 = yt.ProfilePlot(sp, "density", [
"only_DM_Density"], weight_field="DM_cell_mass", n_bins=128)

lineplot_gas_DM_density_gasweighted_128 = yt.ProfilePlot(sp, "density", [
"only_DM_Density"], weight_field="cell_mass", n_bins=128)


lineplot_gas_DM_density_gasweighted_128.save("128_gasweighted")

lineplot_gas_DM_density_128.save("128_DMweighted")

Sincerely,
Y.T.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20171018/58a7873d/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 128_DMweighted_1d-Profile_density_only_DM_Density.png
Type: image/png
Size: 22729 bytes
Desc: not available
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20171018/58a7873d/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 128_gasweighted_1d-Profile_density_only_DM_Density.png
Type: image/png
Size: 42362 bytes
Desc: not available
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20171018/58a7873d/attachment-0003.png>


More information about the yt-users mailing list