<div>John went ahead and implemented this:</div><div><br></div><div><a href="https://bitbucket.org/yt_analysis/yt/pull-requests/2485/">https://bitbucket.org/yt_analysis/yt/pull-requests/2485/</a><br></div><div><br></div><div>Thanks John!</div><div><br><div class="gmail_quote"><div>On Thu, Jan 5, 2017 at 9:47 AM Axel Huebl <<a href="mailto:a.huebl@hzdr.de">a.huebl@hzdr.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks for the quick responses, I will try that tomorrow! :)<br class="gmail_msg"><br><br class="gmail_msg"><br>On 05.01.2017 15:23, John ZuHone wrote:<br class="gmail_msg"><br>> Yeah, I was thinking that as I was writing it.<br class="gmail_msg"><br>><br class="gmail_msg"><br>>> On Jan 5, 2017, at 8:57 AM, Nathan Goldbaum <<a href="mailto:nathan12343@gmail.com" class="gmail_msg" target="_blank">nathan12343@gmail.com</a><br class="gmail_msg"><br>>> <mailto:<a href="mailto:nathan12343@gmail.com" class="gmail_msg" target="_blank">nathan12343@gmail.com</a>>> wrote:<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>> We should have a nicer API for this. Something like astropy's def_unit:<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>> <a href="http://docs.astropy.org/en/stable/api/astropy.units.def_unit.html#astropy.units.def_unit" rel="noreferrer" class="gmail_msg" target="_blank">http://docs.astropy.org/en/stable/api/astropy.units.def_unit.html#astropy.units.def_unit</a><br class="gmail_msg"><br>>><br class="gmail_msg"><br>>> On Thu, Jan 5, 2017 at 7:48 AM John ZuHone <<a href="mailto:jzuhone@gmail.com" class="gmail_msg" target="_blank">jzuhone@gmail.com</a><br class="gmail_msg"><br>>> <mailto:<a href="mailto:jzuhone@gmail.com" class="gmail_msg" target="_blank">jzuhone@gmail.com</a>>> wrote:<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     Hi Axel,<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     You can assign new symbols as well. It sounds like you want to do<br class="gmail_msg"><br>>>     this for a number of datasets, so you could define new symbols and<br class="gmail_msg"><br>>>     add them to yt’s unit registry (though you could also add them to<br class="gmail_msg"><br>>>     a specific dataset’s unit registry). To do the former, you could<br class="gmail_msg"><br>>>     do something like this in your plugins [1] file (which would<br class="gmail_msg"><br>>>     ensure they got loaded every time you used yt):<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     ```python<br class="gmail_msg"><br>>>     from yt.units.unit_object import default_unit_registry<br class="gmail_msg"><br>>>     from yt.units import dimensions<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     default_unit_registry.add("lambda_0", 8.0e-5, dimensions.length,<br class="gmail_msg"><br>>>     0.0, r"$\lambda_0$")<br class="gmail_msg"><br>>>     default_unit_registry.add("omega_pe", 1.0e15, dimensions.rate,<br class="gmail_msg"><br>>>     0.0, r"$\omega_\text{pe}$")<br class="gmail_msg"><br>>>     ```<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     The arguments in .add are the name of the symbol, the conversion<br class="gmail_msg"><br>>>     to CGS+Ampere, the dimensions of the unit, the unit offset (only<br class="gmail_msg"><br>>>     used for temperature and angle units), and the last is the LaTeX<br class="gmail_msg"><br>>>     representation.<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     Note that I defined omega_pe as a rate, so you’d have to use its<br class="gmail_msg"><br>>>     inverse when creating your unit system to define the base time units.<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     And yes, as I mentioned above the internal base by which all yt<br class="gmail_msg"><br>>>     units reference is cgs units + Amperes for current (for historical<br class="gmail_msg"><br>>>     reasons, mostly).<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     Best,<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     John<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     [1] <a href="http://yt-project.org/doc/reference/configuration.html#the-plugin-file" rel="noreferrer" class="gmail_msg" target="_blank">http://yt-project.org/doc/reference/configuration.html#the-plugin-file</a><br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>>     On Jan 5, 2017, at 8:24 AM, Axel Huebl <<a href="mailto:a.huebl@hzdr.de" class="gmail_msg" target="_blank">a.huebl@hzdr.de</a><br class="gmail_msg"><br>>>>     <mailto:<a href="mailto:a.huebl@hzdr.de" class="gmail_msg" target="_blank">a.huebl@hzdr.de</a>>> wrote:<br class="gmail_msg"><br>>>><br class="gmail_msg"><br>>>>     Ha, I oversaw a link in [1] linking to [2].<br class="gmail_msg"><br>>>><br class="gmail_msg"><br>>>>     Ok, so I can just specify my own unit system in user-code with that.<br class="gmail_msg"><br>>>>     But anyhow, I can't assign it new symbols. Also, do all conversion<br class="gmail_msg"><br>>>>     factors need to go through CGS?<br class="gmail_msg"><br>>>><br class="gmail_msg"><br>>>>     Also, microns turns out to be<br class="gmail_msg"><br>>>>       .in_units("um")<br class="gmail_msg"><br>>>>     :)<br class="gmail_msg"><br>>>><br class="gmail_msg"><br>>>><br class="gmail_msg"><br>>>>     Axel<br class="gmail_msg"><br>>>><br class="gmail_msg"><br>>>>     [2] <a href="http://yt-project.org/docs/dev/analyzing/units/unit_systems.html" rel="noreferrer" class="gmail_msg" target="_blank">http://yt-project.org/docs/dev/analyzing/units/unit_systems.html</a><br class="gmail_msg"><br>>>><br class="gmail_msg"><br>>>>     On 05.01.2017 13:59, Axel Huebl wrote:<br class="gmail_msg"><br>>>>>     Hi yt-devs!<br class="gmail_msg"><br>>>>><br class="gmail_msg"><br>>>>>     I have a quick user-question (sorry) and a devel question:<br class="gmail_msg"><br>>>>><br class="gmail_msg"><br>>>>>     First, how to convert to a unit like microns (10^-6 meters) or<br class="gmail_msg"><br>>>>>     pico-seconds? I can't find an example here [1]. I tried<br class="gmail_msg"><br>>>>><br class="gmail_msg"><br>>>>>      .in_units("mum")<br class="gmail_msg"><br>>>>>      .in_units("mu m)<br class="gmail_msg"><br>>>>>      .in_units("1.e-6 m")<br class="gmail_msg"><br>>>>>      .in_units("microns")<br class="gmail_msg"><br>>>>>      .in_units("micro meter")<br class="gmail_msg"><br>>>>>      .in_units("micro meters")<br class="gmail_msg"><br>>>>>      .in_units("micro m")<br class="gmail_msg"><br>>>>>      .in_units("μm")<br class="gmail_msg"><br>>>>><br class="gmail_msg"><br>>>>>     and only<br class="gmail_msg"><br>>>>>      .in_units("1.e-6 * m")<br class="gmail_msg"><br>>>>><br class="gmail_msg"><br>>>>>     does not fail but looks ugly.<br class="gmail_msg"><br>>>>><br class="gmail_msg"><br>>>>>     An orthogonal question: in our domain (laser-plasma physics) unit<br class="gmail_msg"><br>>>>>     systems are scaled by something like the applied laser<br class="gmail_msg"><br>>>>>     wavelength or the<br class="gmail_msg"><br>>>>>     plasma density (and more to make a full set).<br class="gmail_msg"><br>>>>><br class="gmail_msg"><br>>>>>     Following again [1] I would implement something like<br class="gmail_msg"><br>>>>>     .in_base('plasma')<br class="gmail_msg"><br>>>>>     or .in_base('laserplasma') but those are not scaled to "fixed"<br class="gmail_msg"><br>>>>>     reference<br class="gmail_msg"><br>>>>>     quantities as the other base systems but are depending on either<br class="gmail_msg"><br>>>>>     user input<br class="gmail_msg"><br>>>>>      [ length = ("$\lambda_0$", "800 nm"),<br class="gmail_msg"><br>>>>>        time   = ("$\omega_\text{pe}^{-1}$", "1.e-15 s"),<br class="gmail_msg"><br>>>>>         ...]<br class="gmail_msg"><br>>>>>     or alternatively scalings the data file already provided. (Ok, the<br class="gmail_msg"><br>>>>>     symbol is always fixed per "in_base" but the value to scale with<br class="gmail_msg"><br>>>>>     needs<br class="gmail_msg"><br>>>>>     to be provided.)<br class="gmail_msg"><br>>>>><br class="gmail_msg"><br>>>>>     Is that already possible or any ideas how we could implement that?<br class="gmail_msg"><br>>>>><br class="gmail_msg"><br>>>>><br class="gmail_msg"><br>>>>>     Thanks,<br class="gmail_msg"><br>>>>>     Axel<br class="gmail_msg"><br>>>>><br class="gmail_msg"><br>>>>>     [1]<br class="gmail_msg"><br>>>>>     <a href="http://yt-project.org/docs/dev/analyzing/units/fields_and_unit_conversion.html#data-selection-and-fields" rel="noreferrer" class="gmail_msg" target="_blank">http://yt-project.org/docs/dev/analyzing/units/fields_and_unit_conversion.html#data-selection-and-fields</a><br class="gmail_msg"><br>>>>><br class="gmail_msg"><br>>>><br class="gmail_msg"><br>>>>     --<br class="gmail_msg"><br>>>><br class="gmail_msg"><br>>>>     Axel Huebl<br class="gmail_msg"><br>>>>     Phone +49 351 260 3582<br class="gmail_msg"><br>>>>     <a href="https://www.hzdr.de/crp" rel="noreferrer" class="gmail_msg" target="_blank">https://www.hzdr.de/crp</a><br class="gmail_msg"><br>>>>     Computational Radiation Physics<br class="gmail_msg"><br>>>>     Laser Particle Acceleration Division<br class="gmail_msg"><br>>>>     Helmholtz-Zentrum Dresden - Rossendorf e.V.<br class="gmail_msg"><br>>>><br class="gmail_msg"><br>>>>     Bautzner Landstrasse 400, 01328 Dresden<br class="gmail_msg"><br>>>>     POB 510119, D-01314 Dresden<br class="gmail_msg"><br>>>>     Vorstand: Prof. Dr.Dr.h.c. R. Sauerbrey<br class="gmail_msg"><br>>>>              Prof. Dr.Dr.h.c. P. Joehnk<br class="gmail_msg"><br>>>>     VR 1693 beim Amtsgericht Dresden<br class="gmail_msg"><br>>>>     _______________________________________________<br class="gmail_msg"><br>>>>     yt-dev mailing list<br class="gmail_msg"><br>>>>     <a href="mailto:yt-dev@lists.spacepope.org" class="gmail_msg" target="_blank">yt-dev@lists.spacepope.org</a> <mailto:<a href="mailto:yt-dev@lists.spacepope.org" class="gmail_msg" target="_blank">yt-dev@lists.spacepope.org</a>><br class="gmail_msg"><br>>>>     <a href="http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org</a><br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     _______________________________________________<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     yt-dev mailing list<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     <a href="mailto:yt-dev@lists.spacepope.org" class="gmail_msg" target="_blank">yt-dev@lists.spacepope.org</a> <mailto:<a href="mailto:yt-dev@lists.spacepope.org" class="gmail_msg" target="_blank">yt-dev@lists.spacepope.org</a>><br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     <a href="http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org</a><br class="gmail_msg"><br>>><br class="gmail_msg"><br>>> _______________________________________________<br class="gmail_msg"><br>>> yt-dev mailing list<br class="gmail_msg"><br>>> <a href="mailto:yt-dev@lists.spacepope.org" class="gmail_msg" target="_blank">yt-dev@lists.spacepope.org</a> <mailto:<a href="mailto:yt-dev@lists.spacepope.org" class="gmail_msg" target="_blank">yt-dev@lists.spacepope.org</a>><br class="gmail_msg"><br>>> <a href="http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org</a><br class="gmail_msg"><br>><br class="gmail_msg"><br>><br class="gmail_msg"><br>><br class="gmail_msg"><br>> _______________________________________________<br class="gmail_msg"><br>> yt-dev mailing list<br class="gmail_msg"><br>> <a href="mailto:yt-dev@lists.spacepope.org" class="gmail_msg" target="_blank">yt-dev@lists.spacepope.org</a><br class="gmail_msg"><br>> <a href="http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org</a><br class="gmail_msg"><br>><br class="gmail_msg"><br><br class="gmail_msg"><br>--<br class="gmail_msg"><br><br class="gmail_msg"><br>Axel Huebl<br class="gmail_msg"><br>Phone +49 351 260 3582<br class="gmail_msg"><br><a href="https://www.hzdr.de/crp" rel="noreferrer" class="gmail_msg" target="_blank">https://www.hzdr.de/crp</a><br class="gmail_msg"><br>Computational Radiation Physics<br class="gmail_msg"><br>Laser Particle Acceleration Division<br class="gmail_msg"><br>Helmholtz-Zentrum Dresden - Rossendorf e.V.<br class="gmail_msg"><br><br class="gmail_msg"><br>Bautzner Landstrasse 400, 01328 Dresden<br class="gmail_msg"><br>POB 510119, D-01314 Dresden<br class="gmail_msg"><br>Vorstand: Prof. Dr.Dr.h.c. R. Sauerbrey<br class="gmail_msg"><br>          Prof. Dr.Dr.h.c. P. Joehnk<br class="gmail_msg"><br>VR 1693 beim Amtsgericht Dresden<br class="gmail_msg"><br>_______________________________________________<br class="gmail_msg"><br>yt-dev mailing list<br class="gmail_msg"><br><a href="mailto:yt-dev@lists.spacepope.org" class="gmail_msg" target="_blank">yt-dev@lists.spacepope.org</a><br class="gmail_msg"><br><a href="http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org</a><br class="gmail_msg"><br></blockquote></div></div>