[yt-users] log scale issues when zero.....

Elizabeth Harper-Clark h-clark at cita.utoronto.ca
Mon Feb 28 10:46:51 PST 2011


Hi Matt,

I tried removing take_log from the add_field and get the same error.

With take_log = False, it runs happily but always gives me a linear colour
bar scale.

I tried:
        q = pc.add_projection("RadiationForceMagnitude", ax,
weight_field="Density", figure=fig, axes=axes[0][1], use_colorbar=False)
        q.set_cmap("binary")
        q.set_log_field(True)
        q.set_zlim(rp_min, rp_max)

but get:
Traceback (most recent call last):
  File "MultiRadPressure.py", line 78, in <module>
    p._redraw_image()
  File "/home/h-clark/YT/src/yt-hg/yt/visualization/plot_types.py", line
384, in _redraw_image
    newmin = na.nanmin(buff[bI])
  File
"/home/h-clark/YT/lib/python2.6/site-packages/numpy/lib/function_base.py",
line 1494, in nanmin
    return _nanop(np.min, np.inf, a, axis)
  File
"/home/h-clark/YT/lib/python2.6/site-packages/numpy/lib/function_base.py",
line 1355, in _nanop
    res = op(y, axis=axis)
  File
"/home/h-clark/YT/lib/python2.6/site-packages/numpy/core/fromnumeric.py",
line 1829, in amin
    return amin(axis, out)
ValueError: zero-size array to ufunc.reduce without identity

whenever the RadAccel fields are all zero.

Is there another way?

Libby


Script:
from yt.mods import * # set up our namespace
import matplotlib.colorbar as cb
import os

orient = 'horizontal'
frame_template = "aaSN/%s/RPmultiplotproj_%02ipc_%01i_%04i.eps"

ss = float(sys.argv[2])
rho_min = 1.e-25
rho_max = 1.e-20
temp_min = 1
temp_max = 10000
HII_min = 1.e-5
HII_max = 1.0
rp_min = 1e24
rp_max = 5e27

name = sys.argv[1]

firststar = 0

def _ConvertAccel(data):
    return data.convert("Length") / (data.convert("Time"))**2.0
def _RadiationAccelerationMagnitude(field, data):
    return ( (data["RadAccel1"])**2.0 + \
             (data["RadAccel2"])**2.0 + \
             (data["RadAccel3"])**2.0 )**(1.0/2.0)
add_field("RadiationAccelerationMagnitude",
function=_RadiationAccelerationMagnitude,
take_log=False,convert_function=_ConvertAccel, units=r"\rm{cm}/\rm{s}^{2}")
def _RadiationForceMagnitude(field, data):
    return ( data["RadiationAccelerationMagnitude"] * data["Density"] *
data["CellVolume"])
add_field("RadiationForceMagnitude", function=_RadiationForceMagnitude,
take_log=False, units=r"\rm{dynes}")



for n in range(212,400,1):
    pf = load("SciNet/%s/DD%04i/data%04i" % (name,n, n)) # load data
    #pf = load("WOCOUT/%s/DD%04i/data%04i" % (sys.argv[-1],n, n)) # load
data
    if pf is None: continue
    if na.any(pf.h.grid_particle_count):
        v1, c1 = pf.h.find_max("RadAccel1")
        v2, c2 = pf.h.find_max("RadAccel2")
        v3, c3 = pf.h.find_max("RadAccel3")
        v4, c4 = pf.h.find_max("RadiationForceMagnitude")
    for ax in range (0,1):
##         if os.path.exists(frame_template % (name,ss,ax,n)) is True:
##              print "file exists"
##              continue
        xc = 0.5
        yc = 0.5
        zc = 0.5
        print "Dump:", n, "axis:", ax

        fig, axes, colorbars = get_multi_plot( 2, 1, colorbar=orient, bw =
6)

        pc = PlotCollection(pf, center=(xc, yc, zc))

        p = pc.add_projection("Density", ax,  weight_field="Density", figure
= fig, axes = axes[0][0], use_colorbar=False)
        p.set_cmap("bds_highcontrast")
        p.set_zlim(rho_min, rho_max)
        #p.modify["velocity"]() # only for close in ones
        q = pc.add_projection("RadiationForceMagnitude", ax,
weight_field="Density", figure=fig, axes=axes[0][1], use_colorbar=False)
        q.set_log_field(True)
        q.set_zlim(rp_min, rp_max)
        q.set_cmap("binary")
        sp = pf.h.all_data()
        if na.any(pf.h.grid_particle_count):
            p.modify["particles"](2.0, p_size=1.0, col='k', minimum_mass=
6.e0)
            q.modify["particles"](2.0, p_size=1.0, col='k', minimum_mass=
6.e0)
            print "          XXXXX Particles present XXXXX"
        Timemyr = pf["InitialTime"]*pf["years"]/1.e6 - firststar*.1
        TotalRP = sp["RadiationForceMagnitude"].sum()
        p.modify["text"]((0.051,0.949),"Time = %5.1f Myr" % (Timemyr),
text_args = {'color':'k'})
        p.modify["text"]((0.05,0.95),"Time = %5.1f Myr" % (Timemyr),
text_args = {'color':'w'})
        q.modify["text"]((0.051,0.949),"Total RP =%.4g " %
(TotalRP),text_args = {'color':'k'})
        q.modify["text"]((0.05,0.95),"Total RP =%.4g " % (TotalRP),text_args
= {'color':'w'})

        for p, cax in zip(pc.plots, colorbars):
            p._redraw_image()
            cbar = cb.Colorbar(cax, p.image, orientation=orient)
            p.colorbar = cbar
            p._autoset_label()

        fig.savefig(frame_template % (name,ss,ax,n), format="eps")
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20110228/607b6fba/attachment.html>


More information about the yt-users mailing list