<div dir="ltr">And using suoqing's example, I can control whether or not we should take the logarithm of a variable in plots:<div><br></div><div><div class="im" style="font-family:arial,sans-serif;font-size:13px">@derived_field(name = "MyField", take_log=False)<br>

def my_new_field(field, data):</div><div style="font-family:arial,sans-serif;font-size:13px">    tmp_data = (data["MachNumber"] <= 2) * (.5 * data["MachNumber"]**2. - 1)</div><div style="font-family:arial,sans-serif;font-size:13px">

    tmp_data = tmp_data + (data["MachNumber"] > 2) * (data["MachNumber"] <= 100) * ((.5* (data["MachNumber"])**4) + (.5* (data["MachNumber"])**3))</div><div style="font-family:arial,sans-serif;font-size:13px">

    tmp_data = tmp_data + (data["MachNumber"] > 100) * 5.446361E-01</div><div style="font-family:arial,sans-serif;font-size:13px">    return tmp_data</div></div><div style="font-family:arial,sans-serif;font-size:13px">

<br></div><div style="font-family:arial,sans-serif;font-size:13px">If you've already created a plot, you can also disable field logging like so:</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div>

<div style="font-family:arial,sans-serif;font-size:13px">slc = SlicePlot(pf, 0, 'Density')</div><div style="font-family:arial,sans-serif;font-size:13px">slc.set_log('Density', False)</div><div style="font-family:arial,sans-serif;font-size:13px">

<br></div><div style="font-family:arial,sans-serif;font-size:13px">-Nathan</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Oct 26, 2013 at 11:02 PM, Suoqing JI <span dir="ltr"><<a href="mailto:jisuoqing@gmail.com" target="_blank">jisuoqing@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hi Reju,<div><br></div><div>The first thing occurs to me is that the area of white patch contains no positive field value, so it can not be plotted in log scale.</div>

<div><br></div><div>Also, about the way of defining a derived field, I might prefer the following way, for example:</div><div class="im"><div><br></div><div>@derived_field(name = "MyField")<br>def my_new_field(field, data):</div>

</div><div>    tmp_data = (data["MachNumber"] <= 2) * (.5 * data["MachNumber"]**2. - 1)</div><div>    tmp_data = tmp_data + (data["MachNumber"] > 2) * (data["MachNumber"] <= 100) * ((.5* (data["MachNumber"])**4) + (.5* (data["MachNumber"])**3))</div>

<div>    tmp_data = tmp_data + (data["MachNumber"] > 100) * 5.446361E-01</div><div>    return tmp_data<br></div><div><br></div><div>Best wishes,</div><div>Suoqing</div><div><br></div><div><div class="im"><div>

On Oct 26, 2013, at 10:27 PM, Reju Sam John <<a href="mailto:rejusamjohn@gmail.com" target="_blank">rejusamjohn@gmail.com</a>> wrote:</div><br></div><blockquote type="cite"><div dir="ltr"><div class="im"><div>Dear Matt,<br>

</div>Thanks for the help. Now my problem with the code solved. But the slice plot of the new field has some problem -- white patch are coming as shown below. What may be the reason? <br></div><span><output.png></span> <br>


</div><div><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Oct 26, 2013 at 7:59 PM, Matthew Turk <span dir="ltr"><<a href="mailto:matthewturk@gmail.com" target="_blank">matthewturk@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Reju,<br>
<div><br>
On Sat, Oct 26, 2013 at 2:50 AM, Reju Sam John <<a href="mailto:rejusamjohn@gmail.com" target="_blank">rejusamjohn@gmail.com</a>> wrote:<br>
> Dear Kacper,<br>
><br>
> My logic was wrong, and yours is right. But with the following code<br>
><br>
> @derived_field(name = "MyField")<br>
> def my_new_field(field, data):<br>
>     temp = data["MachNumber"].copy().fill(5.446361E-01)<br>
>     #print temp<br>
><br>
>     ind = np.where(data["MachNumber"] < 2)<br>
>     temp[ind] = 1.9564E-3*((data["MachNumber"][ind]**2) - 1)<br>
>     ind = np.where((data["MachNumber"] >= 2) and (data["MachNumber"]) < 100)<br>
>     temp[ind] =<br>
> (5.699327E-1*((data["MachNumber"][ind]-1)**4))/(data["MachNumber"][ind]**4)<br>
> - (3.337557E-1*<br>
> ((data["MachNumber"][ind]-1)**3))/((data["MachNumber"][ind])**4) +<br>
> (4.173271E+0*<br>
> ((data["MachNumber"][ind]-1)**2))/((data["MachNumber"][ind])**4) -<br>
> (9.775620E+0* ((data["MachNumber"][ind]-1)))/((data["MachNumber"][ind])**4)+<br>
> 5.455605E+0/(data["MachNumber"][ind])**4<br>
>     return temp<br>
><br>
> I am getting this  Traceback<br>
><br>
>  line 41, in my_new_field<br>
>     temp[ind] = 1.9564E-3*((data["MachNumber"][ind]**2) - 1)<br>
> TypeError: 'NoneType' object does not support item assignment<br>
><br>
> Would you suggest any solution?<br>
<br>
</div>I believe the problem is in your .fill() statement.  That doesn't<br>
return an array, so you need to do it after the assignment.  For<br>
instance:<br>
<br>
temp = data["MachNumber"].copy()<br>
temp.fill(5.446361E-01)<br>
<br>
-Matt<br>
<div><div><br>
><br>
><br>
><br>
> On Mon, Oct 21, 2013 at 2:58 PM, Kacper Kowalik <<a href="mailto:xarthisius.kk@gmail.com" target="_blank">xarthisius.kk@gmail.com</a>><br>
> wrote:<br>
>><br>
>> On 10/21/2013 11:10 AM, Reju Sam John wrote:<br>
>> > Dear all,<br>
>> ><br>
>> > I would like to create a derived field which should return a value<br>
>> > according to specified conditions. My definition of new field is shown<br>
>> > below.. But it is giving error.<br>
>> ><br>
>> ><br>
>> > @derived_field(name = "MyField")<br>
>> > def my_new_field(field, data):<br>
>> >     if <a href="http://data.pf/" target="_blank">data.pf</a>["MachNumber"] < 2 :<br>
>> >         return (.5* (data["MachNumber"])**2) - 1<br>
>> >     elif <a href="http://data.pf/" target="_blank">data.pf</a>["MachNumber"] < 100 :<br>
>> >         return (.5* (data["MachNumber"])**4) + (.5*<br>
>> > (data["MachNumber"])**3)<br>
>> >     else:<br>
>> >        return 5.446361E-01<br>
>> ><br>
>> ><br>
>> ><br>
>> > Please suggest me how to implement if, elif, else statements in creating<br>
>> > a<br>
>> > derived field.<br>
>><br>
>> Hi,<br>
>> your derived fields looks fine (except for missing space in the<br>
>> indentation of the last statement). Could you attach the backtrace?<br>
>><br>
>> One thing that's confusing me is '<a href="http://data.pf/" target="_blank">data.pf</a>["MachNumber"]'. Do you have a<br>
>> global parameter with such name defined or you'd rather create a MyField<br>
>> based on local value of "MachNumber" field?<br>
>> If the latter you could try something like this:<br>
>><br>
>> @derived_field(name = "MyField")<br>
>> def my_new_field(field, data):<br>
>>     temp = data["MachNumber"].copy().fill(5.446361E-01)<br>
>>     ind = np.where(data["MachNumber"] < 2)<br>
>>     temp[ind] = 0.5 * data["MachNumber"][ind] ** 2 - 1.0<br>
>>     ind = np.where((data["MachNumber"] >= 2) &<br>
>>                    (data["MachNumber"]) < 100))<br>
>>     temp[ind] = 0.5 * data["MachNumber"][ind] ** 4 + \<br>
>>                 0.5 * data["MachNumber"][ind] ** 3<br>
>>     return temp<br>
>><br>
>><br>
>> Cheers,<br>
>> Kacper<br>
>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> yt-users mailing list<br>
>> <a href="mailto:yt-users@lists.spacepope.org" target="_blank">yt-users@lists.spacepope.org</a><br>
>> <a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
>><br>
><br>
><br>
><br>
> --<br>
> Reju Sam John<br>
><br>
> _______________________________________________<br>
> yt-users mailing list<br>
> <a href="mailto:yt-users@lists.spacepope.org" target="_blank">yt-users@lists.spacepope.org</a><br>
> <a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
><br>
_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org" target="_blank">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div dir="ltr">Reju Sam John</div>
</div>
_______________________________________________<br>yt-users mailing list<br><a href="mailto:yt-users@lists.spacepope.org" target="_blank">yt-users@lists.spacepope.org</a><br><a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>

</div></div></blockquote></div><br></div><br>_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
<br></blockquote></div><br></div>