VOUnit for solar density or metallicity?

Norman Gray norman.gray at glasgow.ac.uk
Wed May 25 16:12:08 CEST 2022


Tom and Sébastien, hello.

On 25 May 2022, at 9:22, Sebastien Derriere wrote:

> *Sun* is a valid vounit symbol. It is described in the current Recommendation, and this
>  should not change in version 1.1 currently in preparation. The problem comes from the
>  validator that ignored Sun, but this should get fixed, see :
> https://heptapod.host/nxg/unity/-/issues/11

Thinking back, I recall that there were one or two units which I omitted from the Unity library's list of VOUnits 'known units' because I wasn't sure what to do with them.  I meant to raise these for discussion on the mailing list at the time, but it seems I lost the to-do list before the document went to REC.  One of those was 'Crab' and another was 'Sun'.

Let's not even talk about 'Crab'...

The head-scratching problem was that I don't really know what a 'Sun' is.  Sébastien explains:

>  The description of "Sun" says : relative to the Sun, e.g. abundances.
>  In most cases, it is indeed used for abundances, often with log(Sun) is the quantity is the
>  metallicity relative to the Sun expressed in log scale.
>  But your usage looks perfectly legit for density too, we have some columns in VizieR
>  where Sun is used as unit for "Stellar density in solar units".

My rejoinder to that would be 'what are the SI units of "Sun"?', or 'what are its dimensions?'.  Or as Markus has put it elsewhere, 'what does the units column tell me I should _do_ with this number?'  If I find 'Sun' in column metadata, I can't deduce anything about 'stellar density'.

The gloss 'relative to the Sun' would make a lot of sense if this were, say, a suffix to some other quantity: \rho_Sun or L_Sun, or a parenthetical annotation, but as a unit it seems too vague.

To me, a 'unit' has to have some fixed dimensions, even if those dimensions are proportional to unity.   The text of the current VOUnits spec doesn't (to my surprise) say this explicitly.

One thing the VOUnits spec got right, I believe, is being modest about its goals, and circumscribing them clearly.  It doesn't talk about 'quantities' (everyone remember that big fight?), doesn't commit itself to whether the 'second' is an SI second or a fraction of a solar year, and (in my head, though not, I realise, in the text) is restricted to measurable things which have a certain dimensionality.

To be clear: this means that I'd like to resolve this query by removing 'Sun' from Table 14 rather than adding it to Table 2 (and doing a check for similar inconsistencies in that Appendix).  I'd also advocate for adding text to Sect.1.2 which says something (TBD) about dimensions and what is and isn't a 'unit'.

Also, to be clear, while I acknowledge that a usage like 'Sun' or 'log(Sun)' might be widespread in Vizier, I'd be inclined to conclude that it's humanly-intelligible, given textual context, but nonetheless wrong.

See also https://github.com/ivoa-std/VOUnits/issues/19

>  One could argue that this is not a real unit, but a mere description of how some dimensionless
>  number was obtained. True, but it's a simple way to carry information, and does no harm.

I think the problem here is that it's not dimensionless, since it can indicate \rho/\rho_Sun or L/L_Sun or M/M_sun.  The information that a ratio is relative to a solar mass/density/luminosity is relevant and important, but surely needs to be communicated some other way, such as via a UCD, or a textual annotation.

>  So in short : don't change your table metadata, the validators should allow "Sun" (soon).
>  And please don't invent "solDen" or "solFEH" :)

I'll mention that the VOUnits spec does explicitly support parsing 'unknown' units, so that if a VOUnits parser were presented with a string "solDen" this should parse successfully as a "solDen" but be labelled (by for example a validator) as an unknown unit.  Note that a "marsMass/ms" would be parsed, according to the spec's rules, as a milli-"arsMass" per millisecond, but the VOUnits syntax (only) says that if a unit is quoted, it must be interpreted only as an unknown unit: 'marsMass'/ms is a marsMass per millisecond.

Those quotes (a fairly late compromise in the VOUnits spec) were originally intended to suppress detection of prefixes such as 'm', here, but they also usefully signal 'yes I know this is an unknown unit and that's OK'.

So the _spec_ does allow you to use any units you like.  It's Sébastien who'll get cross at you!

Footnote: as it happens, the content of Table 2 is mechanically extracted from the source-code of the Unity library, as a way of ensuring consistency between the spec and that implementation.

Best wishes,

Norman


-- 
Norman Gray  :  https://nxg.me.uk
SUPA School of Physics and Astronomy, University of Glasgow, UK


More information about the semantics mailing list