[yt-users] Error while using annotate magnetic fields

Sushilkumar sushil.sush19us at gmail.com
Wed Mar 16 12:16:37 PDT 2016


Dear yt:

I am trying to plot magnetic field lines using the annotate magnetic field
call back from the link http://yt-project.org/doc/visualizing/callbacks.html
link.

However, after running the script it gives the error below. A google drive
link to my script (yt_numpy_load_B.py) is also given below. When I use
quiver annotate it works fine but issue comes when I am using
slc.annotate_magnetic_field().
Quiver plots are also available on the drive link.

Thanks in advance

===============
Google drive link
https://drive.google.com/open?id=0B4g8shg4DL7oak5PLWVVdG5UMHc
===============

===============
Error while running the script

  File "yt_numpy_load_B.py", line 47, in <module>
    slc.save()
  File
"/state/partition1/anaconda/lib/python2.7/site-packages/yt/visualization/plot_container.py",
line 77, in newfunc
    args[0]._setup_plots()
  File
"/state/partition1/anaconda/lib/python2.7/site-packages/yt/visualization/plot_window.py",
line 980, in _setup_plots
    self.run_callbacks()
  File
"/state/partition1/anaconda/lib/python2.7/site-packages/yt/visualization/plot_window.py",
line 1033, in run_callbacks
    sys.exc_info()[2])
  File
"/state/partition1/anaconda/lib/python2.7/site-packages/yt/visualization/plot_window.py",
line 1029, in run_callbacks
    callback(cbw)
  File
"/state/partition1/anaconda/lib/python2.7/site-packages/yt/visualization/plot_modifications.py",
line 316, in __call__
    return qcb(plot)
  File
"/state/partition1/anaconda/lib/python2.7/site-packages/yt/visualization/plot_modifications.py",
line 357, in __call__
    fv_x = plot.data[self.field_x]
  File
"/state/partition1/anaconda/lib/python2.7/site-packages/yt/data_objects/data_containers.py",
line 246, in __getitem__
    f = self._determine_fields([key])[0]
  File
"/state/partition1/anaconda/lib/python2.7/site-packages/yt/data_objects/data_containers.py",
line 518, in _determine_fields
    finfo = self.ds._get_field_info("unknown", fname)
  File
"/state/partition1/anaconda/lib/python2.7/site-packages/yt/data_objects/static_output.py",
line 543, in _get_field_info
    raise YTFieldNotFound((ftype, fname), self)
yt.utilities.exceptions.YTPlotCallbackError: annotate_magnetic_field
callback failed with the following error: Could not find field '('all',
'magnetic_field_x')' in UniformGridData.
===============




On Wed, Mar 16, 2016 at 12:52 PM, <yt-users-request at lists.spacepope.org>
wrote:

> Send yt-users mailing list submissions to
>         yt-users at lists.spacepope.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
> or, via email, send a message with subject or body 'help' to
>         yt-users-request at lists.spacepope.org
>
> You can reach the person managing the list at
>         yt-users-owner at lists.spacepope.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of yt-users digest..."
>
>
> Today's Topics:
>
>    1. Re: Making averaged line plot. (Suoqing Ji)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 15 Mar 2016 15:23:43 -0700
> From: Suoqing Ji <suoqing at physics.ucsb.edu>
> To: Discussion of the yt analysis package
>         <yt-users at lists.spacepope.org>
> Subject: Re: [yt-users] Making averaged line plot.
> Message-ID: <70E5BA6C-7798-45F2-AE83-21233252E109 at physics.ucsb.edu>
> Content-Type: text/plain; charset="utf-8"
>
> Hi Yuxiao,
>
> If you would like to start from your current code, the most
> straightforward way is to write a loop to smooth over a certain distance by
> each step, which also works for AMR data:
>
> smooth_len = 100 # smoothing length of 100 kpc
> SmoothedBMag = np.copy(ray[?ScaledBMag?]) # store the smoothed array
> bin_num = np.ceiling((ray[?x?].max() - ray[?x?].min()) / smooth_len) #
> make bins every 100 kpc
>
> for step in range(bin_num):
>     mask1 = (ray[?x?] >= ray[?x?].min() + step * smooth_len)
>     mask2 = (ray[?x?] < ray[?x?].min() + (step + 1) * smooth_len)
>     mask = np.logical_and(mask1, mask2) # mask the cells within a certain
> length of 100 kpc
>     SmoothedBMag[mask] = np.mean(ray[?ScaledBMag?][mask]) # take the
> average and save
>
> After that the array ?SmoothedBMag? is the smoothed one.
>
> However, an easier way is to use the the 1D ProfilePlot function (
> http://yt-project.org/docs/2.6/visualizing/plots.html#d-profile-plots <
> http://yt-project.org/docs/2.6/visualizing/plots.html#d-profile-plots>),
> and in this case you could do something like:
>
> plot = ProfilePlot(pf.h.all_data(), ?x?, [?ScaledBMag?], n_bins=bin_num)
>
> Note that this will do the average over entire y-z plane for each x bins,
> which is different from averaging only an array of a ray object (so maybe
> it?s not what you want). If you really want the data within a thin slit
> only, you could define a region object pf.h.region() and do ProfilePlot. I
> think it?s also doable to use the function ?load_uniform_grid? to create a
> 1D dataset from the arrays in ray object and pass it to ProfilePlot.
>
> Best wishes,
> --
> Suoqing JI
> Ph.D Candidate
> Department of Physics
> University of California, Santa Barbara
> http://web.physics.ucsb.edu/~suoqing
>
> > On Mar 14, 2016, at 10:57 PM, Yuxiao Dai <yuxiao.dai at nyu.edu> wrote:
> >
> > Dear all,
> >
> > I have a line plot of some parameter along an axis as a function of
> distance. Now I would like to get another line plot of the same parameter
> but averaged over a certain distance (say 100 kpc, the plot below is
> supposed to be flat after this). I've been searching the document for some
> time but haven't found a method. Is there a simple way to do this?
> >
> > I would very much appreciate it if anyone could help me on this.
> >
> >
> > ===================================
> > import ...
> >
> > def _ScaledBMag(field, data):
> >
> >     return ...
> >
> >
> >
> > ....
> >
> > pf = load(filename)
> >
> >     add_field("ScaledBMag", function=_ScaledBMag)
> >
> >
> >
> >     c = pf.h.find_max('ScaledBMag')[1]
> >
> >     ax = 0
> >
> >     ray = pf.h.ortho_ray(ax, (c[1], c[2]))
> >
> >
> >     P.subplot(211)
> >
> >     P.semilogy(ray['x'], ray['ScaledBMag'])
> >
> >     P.xlabel('x')
> >
> >     P.ylabel('ScaledBMag')
> >
> >     print "works"
> >
> >     P.savefig("ScaledBMag_lineplot.png")
> >
> >
> > <image.png>
> >
> > ===================================
> > I'm using yt
> >
> > Version = 2.6.1
> >
> >
> > Changeset = c994959ed3be
> >
> > ===================================
> >
> >
> >
> >
> >
> > Regards,
> >
> > Dai
> >
> > _______________________________________________
> > 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/20160315/8afc239c/attachment.html
> >
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>
>
> ------------------------------
>
> End of yt-users Digest, Vol 97, Issue 19
> ****************************************
>



-- 
*SK2*

*"**Claiming that something can move faster than light is a good
conversation-stopper in physics. People edge away from you in cocktail
parties; friends never return phone calls. You just don’t mess with Albert
Einstein.**"*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20160316/9ea3afb5/attachment.htm>


More information about the yt-users mailing list