[yt-dev] 2012 Community Survey Summary

Elizabeth Tasker tasker at astro1.sci.hokudai.ac.jp
Tue May 22 21:20:44 PDT 2012

Hi everyone,

I have a couple of comments related to the negative comment on the yt survey. In particular, there is one part I agree with and one I do not:

The comment about yt being heavily cosmology based I do not agree with. As a non-cosmo simulator --one who still intends to torch a fellow developer's house for declaring all my research 'test problems' at a user meeting-- I use yt for all my simulation analysis and use a wide range of its capabilities. In fact, the only part I can think that I do not use is the halo finder, but I do use connected sets which is a similar idea for gas. 

I therefore feel this comment is not part of the general consensus and can be ignored. 

However, the comment about the documentation being from the user's rather than the programmer's, point of view is interesting and think worth some thought. For a while, I skirted around yt, aware that it was powerful but baulking at the effort needed to use it comfortably. Last summer, I had to write an entirely new analysis program for my simulations and I bit the bullet and starting working extensively with yt and python. I've never picked up an IDL script since, but there was definitely an energy bump. I also think that I do find the documentation **significantly** clearer now I approach it from a programmer's perspective. 

I have a couple of suggestions of what I think might help with this:

(1) The quickest option is to keep everything the same but add more actual examples. For instance, the routine call, e.g.

contour(self, field, ncont=5, factor=4, take_log=False, clim=None, plot_args=None):

is confusion for a non-programmer. When I first came to yt, I spent a while with thoughts like:

What is 'self'? Do I need to pass it like in C++ with Grid-> ? 

Although it's slightly painful, I think it would be much improved if there was an actual call example for each one of the callbacks and other tools. So we'd have:

contour(self, field, ncont=5, factor=4, take_log=False, clim=None, plot_args=None):
(This is a proxy for ContourCallback.)
pc.modify["contours"]("Density", ncont=1, take_log=False)
Add contours in field to the plot. ncont governs the number of contours generated, factor governs the number of points used in the interpolation, take_log governs how it is contoured and clim gives the (upper, lower) limits for contouring.

(2) My second suggestion involves the gui and concerns the way yt is presented. Currently, we talk about scripts and then mention there is a gui. How about we do it the other way around? So a new user's first port of call should be the gui. Then, we get to the section "beyond the gui" and talk about scripting and cookbook-ing and then finally onto full simulation analysis, i.e. writing whatever analysis package you like in python, but making use of the routines yt has.

For instance, in the workshop we just had at Hokudai, we could have stood up and brought up the yt gui before anything else. *Then* gone onto scripts.

The docs could be rearranged in a similar fashion.

I think this might provide a much faster way for new users to start getting into yt and make the gui of much more interest. Currently, people come to it after they learn to script at which point, its value is much less because it's inevitably more limited. 


PS today's google-doodle (or possible tomorrow's for the USA) is awesome.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-dev-spacepope.org/attachments/20120523/1db38c8a/attachment.html>

More information about the yt-dev mailing list