<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
Markus
<div class=""><br class="">
</div>
<div class="">From someone outside the VO community, I thank you very much for the detailed and very useful response to my email. I have to agree that I am surprised that there is a tolerance for unknown units. &nbsp;Do you think that the community would ever re-evaluate
 this decision? &nbsp;It would be much better if the parsers would flag an unknown unit as such and provide suggested units.</div>
<div class=""><br class="">
</div>
<div class="">This becomes an important issue when you take into consideration the current move toward FAIR data (<a href="https://www.go-fair.org/" class="">https://www.go-fair.org/</a>) where the expectation is that FAIR data can be reused by other researchers
 and thus needs (in part) to have standardized units.</div>
<div class=""><br class="">
</div>
<div class="">Anyway, as soon as my project at NIST is ready for public access I will send another message.</div>
<div class=""><br class="">
</div>
<div class="">Regards,</div>
<div class="">Stuart<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On Jul 26, 2018, at 4:12 AM, Markus Demleitner &lt;<a href="mailto:msdemlei@ari.uni-heidelberg.de" class="">msdemlei@ari.uni-heidelberg.de</a>&gt; wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="">Hi Stuart,<br class="">
<br class="">
On Wed, Jul 25, 2018 at 06:00:04PM &#43;0000, Chalk, Stuart wrote:<br class="">
<blockquote type="cite" class="">I am using the VOUnit encoding specification and wondering if there<br class="">
are list of units encoded in the VOUnit spec anywhere.<br class="">
If anyone has any info on available lists of units please send me<br class="">
an email directly.<br class="">
</blockquote>
<br class="">
VOUnit has a grammar to generate unit strings, and the way that<br class="">
grammar is written, you can generate infinitely many valid units<br class="">
strings. &nbsp;So, there can be no exhaustive list of VOUnits.<br class="">
<br class="">
On the other hand, there is a reasonably simple way to obtain a list<br class="">
of valid VOUnit strings that are out in the wild. &nbsp;First, you'll need<br class="">
a VOUnit parser; unity (<a href="https://bitbucket.org/nxg/unity" class="">https://bitbucket.org/nxg/unity</a>) has parsers<br class="">
in a couple of languages, and<br class="">
<a href="http://svn.ari.uni-heidelberg.de/svn/gavo/python/trunk/gavo/base/unitconv.py" class="">http://svn.ari.uni-heidelberg.de/svn/gavo/python/trunk/gavo/base/unitconv.py</a><br class="">
contains a pyparsing-based grammar relatively easily lifted for<br class="">
python use (I'll happily assist removing the minor DaCHS dependencies<br class="">
if there's interest).<br class="">
<br class="">
Second, the wide majority of unit strings used in VO metadata[1] is<br class="">
available from the registry -- try <br class="">
<br class="">
&nbsp;select distinct unit from rr.table_column<br class="">
<br class="">
on RegTAP mirror (if you don't have a TAP client, just retrieving<br class="">
<br class="">
&nbsp;http://reg.g-vo.org/tap/sync?FORMAT=text/plain&amp;LANG=ADQL&amp;QUERY=select&#43;distinct&#43;unit&#43;from&#43;rr.table_column<br class="">
<br class="">
will do as well).<br class="">
<br class="">
Now, people are naughty, and so many of these units are<br class="">
non-compliant. &nbsp;That's why you want the parser.<br class="">
<br class="">
As usual, things become complicated when you encounter the real<br class="">
world. &nbsp;VOUnit -- IMHO unfortunately -- encourages parsers to accept<br class="">
&quot;unknown units&quot;. &nbsp;You'll want to filter them out in some way.<br class="">
<br class="">
Based on DaCHS and pyVO (both are Debian-packaged), you can write<br class="">
this:<br class="">
<br class="">
&nbsp;import pyvo<br class="">
&nbsp;from gavo import api<br class="">
<br class="">
&nbsp;for row in pyvo.dal.TAPService(&quot;http://dc.g-vo.org/tap&quot;<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;).run_sync(&quot;select distinct unit from rr.table_column&quot;).table:<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;unit = row[&quot;unit&quot;]<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;try:<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;tree = api.parseUnit(unit)<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;if &quot;U?(&quot; in repr(tree): &nbsp;# Filter &quot;unknown units&quot;<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;raise api.BadUnit(&quot;Unknown unit used&quot;)<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;except api.BadUnit:<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;pass<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;else:<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;print(unit)<br class="">
<br class="">
I'm surprised myself that the output is just a measly 2.5k, so I'm<br class="">
attaching what I just got.<br class="">
<br class="">
Some of the units get me curious, though. &nbsp;m/ms, for instance, begs<br class="">
the question why they didn't go for the much more common km/s...<br class="">
<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Markus<br class="">
<br class="">
<br class="">
[1] Well, people might disagree here, because I'm sure there's lots<br class="">
of FITS files you can pull through VO facilities that contain a<br class="">
plethora of unit strings; but it was fun stating it this way.<br class="">
<span id="cid:888E25B9-5612-4164-A429-F5FC3361029B@unf.edu">&lt;goodunits.txt&gt;</span></div>
</div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>