-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clarifying the temperature unit associated with some cell methods and standard names #125
Clarifying the temperature unit associated with some cell methods and standard names #125
Comments
@larsbarring : on the issue of backward compatibility, I believe that the protocol allows us to replace existing standard names with more precise terms when a use case emerges that needs more precision that provided by existing names. The references to Udunits really needs to be fixed. Udunits2 (Udunits version 1, which is cited in the convention, is no longer supported) assumes that quantities measured in Kelvin and Celsius are absolute on the respective scales, and quantities in powers of Kelvin and Celsius are relative amounts. In the ISO 80000 standard on Quantities and Units has distinct quantities for thermodynamic temperature and Celsius temperature, not considered as interchangeable. The ISO 80000 units I can see a number of options:
Conforming to UDUNITS does not look advisable, because there is no guarantee that features such as this will remain unchanged in future releases. I like the idea of conforming to SI and ISO 80000. In other areas, such as the discussion of the use of |
I have come to realise that maybe I used the wrong words: what I meant with a relative temperature is really a temperature difference where Δ°C = ΔK. And with absolute temperature I meant temperature where 1°C = 274.15K. Now over to @martinjuckes comments and suggestions.
Regarding Martin's four options:
@japamment: maybe part of this (point 3 & 4) has some bearing on the outcome of CF workshop discussion on canonical units |
Dear @larsbarring and @martinjuckes I think it would be sufficient to describe the issue in the definitions of standard names, where appropriate. The important practical point is that a different rule is needed for units conversion when it's a temperature difference, as Lars says. I would say that's a practicality rather than a "fundamental" distinction. There are similar issue with other quantities. For example, you can't convert I do not think we need new standard names, however. The existing standard names recognise that a temperature difference is a different quantity from a temperature, using various phrases, as Lars has identified. That's fine. I think they are canonically the same. Equilibrium climate sensitivity is a temperature difference, for example, which is sometimes written in K and sometimes in degC. It depends on the author's preference and the intended audience. Temperature are also temperature differences, really; temperatures in degC are differences from freezing point, temperatures in K are differences from absolute zero. Best wishes Jonathan |
Dear @JonathanGregory I am not sure that I follow what you are aiming at with the examples in the first paragraph:
Both these examples focuses on units/variables that have different uses/meanings that are not directly comparable to the case for temperature. Moreover, they both happens to be (spatial) coordinate variables rather than 'ordinary' data variables. The key thing in these examples is, as with temperature, that if the data is transformed to a common origin it becomes obvious that the origin is important. To my knowledge, for 'data variables' this is only relevant for temperature, which has units where one alternative involves an additive constant. All this tells me that Table E.1 should be updated to specify if a method involves a transformation Regarding the second paragraph, I fully agree with Jonathan that no new standard names are needed. I should be enough with more details. One part of this is adding text to the description. But given the fact that the xml version of this table is increasingly used directly in automated workflows and imported into analysis software I suggest adding a new column ('to the right') flagging whether a standard name's unit is associated with an 'absolute' quantity or a difference quantity. If it turns out to be complicated to draw the line this flag could be set only for standard names related to temperature (and any other units where an additive constant may be important). To resolve this issue by just making text changes to relevant standard name descriptions would be missing a good opportunity to make the Conventions more clear. It would be very easy for a reader to miss that a standard name description has changed, especially if we do not deprecate the standard name. And in automated use of the the xml version such a change would almost certainly go unnoticed. Kind regards, |
Dear @larsbarring I think the example with Time is like temperature in that it is sometimes a difference (as in an interval of time) and sometimes a coordinate (meaning a difference wrt a reference time). In the latter case, we always specify I would also remark that any quantity which serves as a coordinate might sometimes be a data variable and vice-versa. The above points are just a discussion! They don't help us to decide what to do to indicate the distinction between temperature and temperature difference in a machineable way. I think your question is relevant of whether temperature is the only such case. That will help us to decide whether we need a general solution. Best wishes Jonathan |
Dear @JonathanGregory
Let me try to capture both aspects in one example based on height: we define the standard name I believe this captures the essence of the problem. One units is absolute, i.e. it has the origin at 0 and it is not physically meaningful to have negative values, the other is relative an origin ≠ 0, which means that both positive and negative values are possible. And Δu is exactly the same for both units. Let me come back to your earlier examples
-- It would indeed be a mistake if one were to use UDUNITS to harmonise the units of ECS data having mixed units K and degC. Now, returning to your most recent comment:
-- Yes, as we now use time it is always a relative measure (i.e. difference). But in principle we could find an absolute starting time, e.g. when the Big Bang happened (BB) . According to Wikipedia the best estimate is 13.772 * 10^9 years ago. Although it is only an estimate, we could in principle adopt this as an absolute zero for a time scale to be used in CF. Or we could be less general and fix a time when the earth was formed (EF). Both would be suitable as absolute zeros for geophysical applications. I am definitetly not suggesting this, but it shows that in principle we could have units second_BB or second_EF as an absolute scale (no negative numbers) and then relative scales having units second_BCE, second_19700101000000 and what not. |
@larsbarring , the suggestion that "1°C = 274.15K" (above) in CF whereas "1°C = 1K" is the rule in SI and ISO standards illustrates what I would consider to be a fundamental difference between the two approaches. In the one case, the "unit" is being used to define an amount, in the other it is being used both to define an amount and a reference value. As it stands, our "degree Celcius" has a very different meaning to the SI unit degree Celcius. I'm not sure what to make of the discussion of There appears to be a consensus that conforming to UDUNITS for temperature (i.e. the rule that a quantity expressed in units of °C is a temperature on the Celcius scale, but any power of °C is directly equivalent to Kelvin: "1°C = 274.15K" and "1°C2 = 1K2") is not a good idea. UDUNITS does not know anything about standard names or qualifiers, so following UDUNITS, as implied, I believe, by the current convention, would require us to adopt this interpretation consistently and disallow "°C" for temperature differences. @JonathanGregory , @larsbarring : do you agree with the last statement? |
Dear @martinjuckes Yes, I agree that I don't think we should disallow Rather, I think we have to add some special flag for quantities which have units of temperature. To decide what we should do, I feel that a critical question is whether temperature is the only quantity which has this kind of problem (apart from time, which we handle in another way already). Best wishes Jonathan |
Dear @JonathanGregory , I'm glad you are not proposing to disallow Backward compatibility with the 1995 COARDS conventions has been important, but, given the current interpretation of the backward compatibility policy, are there any use cases of requiring that new versions of the CF Conventions maintain equivalence with all aspects of the COARDS convention? To me, this level of constraint appears disproportionate. Identifying which variables have "this kind of problem" is certainly a good idea. My view, and I'm not sure whether you disagree or whether I haven't communicated it clearly, is this this kind of problem relates to use of units strings which are not units of measure in the conventional sense. That is, units strings such as |
@martinjuckes: I might not have read the SI Brochure you referred to careful enough, but
in the Table on p.138 carries a footnote that states
which basically is what I wrote above; Δ°C = ΔK. On the preceding pages (that I only had a quick look at) of the SI Brochure, the text elaborates the relationship between the units and their different origins. While I intuitively like your wording ""unit" is being used to define an amount" I am not sure it helps us here, because as Jonathan writes both units
This should cover any reasonable temperature unit conversion. For the purpose of CF I think that at least K, °C and °F have real use cases, the other ones are maybe more of historical interest (I came across °Réaumur in an earlier project on long observational timeseries). |
Dear @martinjuckes I thought you were proposing to ban I do agree with you that units should not contain the definition of the quantity, in an ideal convention. CF is mostly ideal in this respect, but we have this exception for I don't think that @larsbarring's issue is exactly that one, though. It's about having to use a different units conversion for differences and "absolute" values (meaning different wrt to an implicit reference value). Best wishes Jonathan |
As a physicist following this discussion, I would like to mention that there are even negative Kelvin temperatures in systems with an unintuitive distribution of energy, see https://en.wikipedia.org/wiki/Negative_temperature. |
@Armin-RS, thanks for this interesting perspective, it was all news to me. In an earlier comment I was almost writing something like "Kelvin scale is always positive until future physics tells us otherwise" but now see that the future arrived already back in 1949. Anyway, and irrespective of whether we have any real use case for negative kelvin values or not, do you think that this has any material impact on the discussion above (except my characterisation of the absolute scale)? |
Dear @larsbarring, |
Dear @JonathanGregory : On @larsbarring : I agree that the footnote you quote above is consistent with your approach, but the table on page 138 also states without ambiguity that |
@martinjuckes: thanks for drawing attention to this wider context. I do agree that the frequent references to the since quite some time non-existing file But, as @JonathanGregory writes the question here is how the CF Conventions handle the distinction between 'absolute' temperature and temperature differences. If we follow the SI definition, What I however want to emphasize is that CF needs to make a clear distinction between 'absolute' temperatures and temperature differences. And this needs to be done irrespective of whether UDUNITS remains as a "pseudo-standard" or the SI system is introduced, or something else. To me, the immediate question is whether progress on the current issue materially depends on this choice. |
The definition of the SI system by the International Bureau of Weights and Measures (cited previously by Martin) recognises temperature and temperature difference as two different uses of the units of degC and K, and gives the different rules for conversion in the two cases. I suggest that we add a new field to the standard name table, defined for every case where the canonical unit contains K and not in other cases, to indicate whether K refers to temperature or temperature difference in each case. In the conventions we should also add a statement that udunits should not be used to convert units containing K of temperature difference. |
I haven't read this thread carefully, but it appears that we are ruling out use of the standard name "air_temperature" when it represents some difference (say between two pressure levels or two surface stations). I note that we have a standard name "sea_water_temperature_difference" but not "air_temperature_difference". It seems that the property being measured is the temperature and the fact that it is a difference shouldn't change necessarily change that, should it? Anyway, is it clear which variables when representing a "difference" require new standard names? Do we need to double the size of the standard name table? |
@taylor13, I am not sure what you mean when you write
When we have temperature measured at two surface stations, or two pressure levels, that is what is measured. The difference as such is not measured but calculated. And this calculation have implications for how to interpret the units. As @martinjuckes and @JonathanGregory points out, this is made explicit in the SI system. For example use the temperature in London and Reykjavik, and starting with degree Celsius:
If the sign is not important (sometimes it is!) it could be called the "absolute_difference", which is the equivalent to the cell method
where the values for Δ do not make sense as differences. That is, the temperature difference is not the same thing as an 'ordinary' temperature. This becomes even more clear if one calculates the difference in Kelvin the proper way:
Here the variant "-11K" is perfectly reasonable, but still something completely different from the negative absolute temperatures that @Armin-RS was referring to. And the same problem occurs if we use UDUNITS to naively translate to degree Fahrenheit:
which properly should be
|
Dear Jonathan @JonathanGregory, I agree with your suggestion to
But I have come to realise that this is not enough. As you have pointed out at several occasions the standard name do no always give enough detail for interpreting the content of the data variable. Additional necessary information may be found in the cell methods attribute and/or standard name modifiers. So, I think something more is needed, probably in relation to Appendix E, Appendix C and in Section 3.1 Units |
Dear Karl @taylor13 and @larsbarring We wouldn't be doubling the size of the standard name table, because this issue refers only to temperature. The great majority of quantities with K in their units mean it as a temperature difference (with a positive or negative power, often An alternative, which might address Lars's point, would be to add something to the Best wishes Jonathan |
Dear everyone, it is a very interesting discussion I was quietly following in the background. I think the discussion goes beyond To define a unit, one need a reference, a scale and a direction that represents "increasing/decreasing" (not necessarily positive/negative if the reference is not set to be 0). At the end, it is just like ticks an “axis”. The definition of the reference is commonly omitted or forgotten in the literature because the units are mostly expressed as “Δ" so that the reference vanishes: (T1-Tref) – (T2-Tref) = T1-T2. Then you choose T1 and T2 to be exactly 1 unit of scale: it is the 1°C/1K/1m/1J/etc. used everywhere in unit conversion formulas and definitions. For When doing units conversion you need to do 2 things: 1) apply an offset of reference from one unit to the other unit and 2) rescale. For most units, the reference is the identical, i.e. the reference in one unit does not need an offset to convert to the other unit and you are simply left with a rescaling. For instance: In the case of In the scientific literature and in textbooks, this is commonly “simplified” by dropping the units of the scale factor (or in the specific case °C<->K, dropping the whole scale factor) and dropping the units of the reference offset. An interesting case is Now if you want to look at differences of Temperature in Celsius translated to differences in Kelvin: The offset between the references vanishes and it is where most of the confusion in this discussion comes from! But another problem arises, briefly mentioned by Lars: T1-T2 = -(T2 – T1), i.e. a difference is an anti-commutative operation so it requires a convention… But, writing: The correct way to write it would be: ΔT(°C) = 1 °C/K * ΔT(K) It is similar with altitude, elevation and height: they share the same scale but have different references. All that to say that the units of temperature and temperature difference are identical in terms of scale but a temperature difference does not require a reference (what Lars refers to as absolute vs relative). We can make an analogy with time vs period, they can be expressed in hours, one wrt a reference (time), the other one being a difference between 2 times (period). The ambiguity is lifted by the use of “time” and “period” in the standard names and an explicit reference in the case of a time. A similar approach could be used. If CF wanted to adopt a generic approach to do the distinction between temperature and temperature difference, I would say Temperature should have units “°C wrt pure water freezing point temperature” and temperature difference simply “°C”. But “°C” implies that the reference is the pure water freezing point temperature so it is redundant! Regarding the problem with UDUNITS conversion, I don’t think it is a CF problem but more an UDUNITS problem (or a user problem). The solution is probably to ask UDUNITS to create new pseudo units, maybe “°C relative”, to distinguish relative vs absolute temperatures. I must say I am totally against it, I already think that degree north, degree east and hours since are pure heresy from a scientific point of view. |
I had earlier today come up with the same idea as @JonathanGregory that we might define a unit for temperature that included "change" as an essential qualifier. I decided to sit on it for a couple of days before suggesting that unsettling "solution" to our problem to see if I could come up with a good argument for not proposing it. Now that it has been suggested, I do think it merits some consideration. The only problem with the standard name air_temperature seems to be that it doesn't differentiate between a difference in air temperatures and an absolute temperature, which is important when doing units transformation. Otherwise temperature is just like air wind speed, humidity, or pressure, and no one is proposing that we need to distinguish in these cases between differences and absolute values. Perhaps the best argument in favor of a unit that is not widely recognized is that software designed to convert from one unit to another will be stumped and won't produce a wrong answer. |
Dear all, @sebvi, Thank you for the excellent clarification of the general principles of unit conversion. I think that we now are beginning to converge towards a common understanding of what the problem is. @JonathanGregory, @taylor13, I, too, was considering to introduce delta-units. There have to be one such for each temperature unit (°C, K, °F, °Re, °R, ....), but this is not a problem as such. And this is the route taken by another unit conversion package, pint, that I have heard of. But I felt a bit reluctant towards this idea; something that was reinforced by @martinjuckes' comment:
And @sebvi's comment, and in particular his conclusion:
reinforces this even further. It not clear to me that merely introducing delta-variants of the temperature units will solve the problem. I think that it would be more like a "quick hack" that likely will bite us back in the long run. @JonathanGregory comments that UDUNITS handles In an attempt at disentangling all this, let's go back to the general unit transformation formula from @sebvi
we note that UDUNITS has the required constants What however is missing are two things:
I will return to these two in follow up posts. |
@sebvi writing "°C = K" is not wrong, it is a convention which you may disagree with, but not wrong. Please check the references to ISO and SI given above. |
With all due respect, @martinjuckes , I will have to disagree,"°C = K" is wrong from a pure mathematical point of view, it is simply a fact. You can elude it by side-stepping the problem and call it "a convention", it is still wrong as demonstrated rigorously above. @larsbarring : to give a different perspective, I should mention that the "a and b approach" is the chosen mechanism we are going to use in the next iteration of GRIB (GRIB3) that we (WMO ET-data team) are developing. You are probably aware that a long-standing problem of GRIB2 is that it defines canonical units for each parameter and do not let you chose the one you prefer, typically That said, I don't think it is a good idea here, it is not in the spirit of CF to prescribe units. :) |
Dear all The working group met four times in June and agreed on the changes to be made in the CF convention to deal with this issue. Unusually for CF, even after long and detailed discussion, it was not possible to reach a consensus on the best option, so the decision was made by majority vote. However, the working group members all agreed that deciding in this way was the best way to proceed. When the working group was set up, anyone was invited to join in. It was stated on this issue that the proposal of the working group should be treated by the community as one which has already been agreed in principle. Further review on this issue should be concerned with clarity, style, and so on, not with content. No-one objected to this procedure. The proposed changes are set out below. The main proposal is a new recommended attribute If you have any suggestions for ways to improve the clarity and detail of the proposal, or if you see any conceptual difficulty that invalidates it, please comment on this issue within the next three weeks (on or before Monday 27th November). Thanks. Best wishes Jonathan, on behalf of the working group (@davidhassell @larsbarring @taylor13 @sebvi @semmerson @sethmcg @ethanrd) Proposed changes to the text of the CF conventionMost of the proposed changes to the convention are in Sect 3.1 on "Units". Here's the first paragraph of that section, with text we propose to add shown in bold and text we propose to delete shown
The changes to this paragraph are:
The next paragraph is unchanged from the existing text:
Next we have a new subheading, and the existing text of the paragraphs about dimensionless quantities, except for deleting one sentence that now appears earlier, and moving one sentence.
Next we propose to insert a new subsection, as follows. Since this is all new text, it's not shown bold.
Section 3.1 will conclude with a new subsection heading, following by text based on the existing. The first sentence of this paragraph is a replacement and an expanded version of the sentence that currently appears at the end of the text, and the second sentence and changes to the third are made for clarity.
Table 3.1 is currently called "Supported Units". We propose to rename it as "Prefixes for decimal multiples and submultiples of units", which is how the SI standard describes them. As well as the above changes in Section 3.1, we propose to add a footnote to Table C1, which defines the standard name modifiers, applying to the We propose to add a similar footnote to Table E1, which defines the cell methods, applying to the Proposed changes to the conformance documentRecommended: Any variable whose Required: If present, the Required: If the Required: If the Other changesWe will append standardised text to the description of the standard name of quantities, such as We will append standardised text to the description of all other standard names whose whose canonical unit includes a temperature unit, as follows: It is strongly recommended that any variable with this standard name should have the attribute We propose also to create a new page on the CF website which lists the affected standard names. We can do that as soon as this proposal is agreed, at least as a temporary measure until the standard name descriptions are updated. |
As a member of the working group I fully support the suggested changes. Many thanks @JonathanGregory for putting together this text proposal. |
Dear all I've just opened issue 481 in the Since there's a new example 3.1, all the existing examples in section 3 have had their numbers incremented. In preparing the PR, I noticed that UDUNITS does not currently support the mostly recently defined SI prefixes:
Because they're not in UDUNITS, CF can't support them. Should we request these to be added to UDUNITS? Jonathan |
On Thu, Nov 16, 2023 at 10:32 AM JonathanGregory ***@***.***> wrote:
prefixsymbolfactor
quetta Q 1e30
ronna R 1e27
ronto r 1e-27
quecto q 1e-30
Because they're not in UDUNITS, CF can't support them. Should we request
these to be added to UDUNITS?
They'll be in the next release.
…--Steve
|
Dear Steve @semmerson Thanks for promising the new prefixes. That's great. Will the new release of UDUNITS come very soon? If so, we might add them to CF now, in anticipation. What do you think? Best wishes Jonathan |
On Fri, Nov 17, 2023 at 6:12 AM JonathanGregory ***@***.***> wrote:
Thanks for promising the new prefixes. That's great. Will the new release
of UDUNITS come very soon? If so, we might add them to CF now, in
anticipation. What do you think?
I'm afraid I have influenza right now and can't think to save my life.
I'll try to let you know once I'm better.
…--Steve
|
Oh dear, I'm sorry to hear that. CF may be a worthy cause, but it's not a vital one! I think we can leave out the new prefixes for the moment and put them in later. |
@JonathanGregory, a small comment on the proposed text in 3.1.2. The fourth paragraph now begins
I think that it would be more consistent to not introduce the new word "change", which might be interpreted as a having a different, and broader or more diffuse meaning than "convert". I.e. to write
|
Dear Lars
This is actually not the only occurrence of "change", which also appears in "Therefore to change the **`units`** of a temperature difference ...". I have changed (or converted) both occurrences to "convert" in the PR. (I have not updated the rendered versions.)
Best wishes
Jonathan
|
I think the edit will avoid misunderstanding. Thanks, Lars and Jonathan. |
Very nice job, Jonathan, thank you. I have a couple more suggestions, and a deeper question ... Looking ahead to make the transition to BCP 14 easier, could we change "suggests" for "recommends" in this line from chapter 3, which also prompts a reordering of the sentence ( When a dimensionless quantity is a ratio of dimensional quantities, CF "On-scale temperature is unique [PR emphasis] among quantities in this respect; for all other quantities, zero means the same whatever the unit of measurement.". Is this uniqueness true, though? We already note that special treatment is needed to for time quantities - and those suffer similar zero-related problems. I haven't checked back in the above discussion, but recall other that units were mentions where zero-related concerns could exist. Would it be fairer to say: "On-scale temperature is unusual among quantities in this respect; for nearly all other quantities, zero means the same whatever the unit of measurement." "For example, the I'm afraid I still don't get this example - what am I missing? I would say that there are not infinite possibilities (the numerical values of the kg, degree_C and m-2 quantities are moot once we've multiplied them), rather that, in the on-scale case, it's simply impossible to apply a non-zero conversion offset when the unit is multiplied by other others. I.e. |
Dear @davidhassell Thanks for your comments. The sentence
was inserted not long ago (I don't remember exactly when). We didn't mean "recommend" here, but something milder. We are inviting the data-writer to consider this point, rather than suggesting what they should do about it. We could leave this until it's considered for BCP, since it isn't a matter relevant to the present issue.
Your point is that on-scale temperature is one of several quantities for which physical meaning of zero depends on the choice of origin, as for time and longitude, for example. In these other cases, the origin and the unit of measurement are two different things, separately chosen. Therefore in those cases the numerical value of zero does not depend on the unit of measurement. 0 Would this be clearer:
In the third case, you say
and I wrote
We are talking about the same problem in different ways, I think. I would say that the conversion would be possible if you knew more than the Best wishes Jonathan |
Dear Jonathan, Thank you considering my points. Carrying on the discussion ... We could leave it to the BCP discussion, but the intention may not be obvious to those working on the conversion at that time. Given that this change is going to happen, I don't think we should make it more difficult than necessary. When we say "suggest", do we mean "RECOMMENDED" or "MAY"? We should be able to answer this, and if we don't choose one of these now (but not in capitals), then I suspect that the BCP converters won't be able to, either. In the case of uniqueness, what about On the third point, I think I know why I'm confused ... You say that the conversion would be possible if you knew more than the I would like to suggest replacing that whole paragraph with:
All the best, |
Dear @davidhassell At the moment, this phrasing is so mild that it's off the bottom of the BCP14 scale:
How about
Here, "may" is a BCP14 word i.e. specifying dimensionless units this way is optional, not recommended.
Yes, because they have different origins. The point applies to
On the third point, I don't think you can say it's not possible to do the conversion. If you look only at the
Best wishes Jonathan |
Dear Jonathan, Thank you for you patience and for humouring my questions and suggested changes. It may just be me, but I find your proposed new text suggestions much easier to understand (and I also accept that that original text was not wrong!), and would be happy for those to go in. It'd be nice to hear some other opinions on these points, though, in case my tribulations are not shared. All the best, |
Dear @davidhassell Thanks for the collaboration. I have made those changes in the pull request and the rendered versions (after a struggle with rebasing - we live and learn). Best wishes Jonathan |
Thanks @davidhassell and @JonathanGregory for this fine-tuning of the text. I agree that with the recent changes the clarity is much improved. |
Thank you, @JonathanGregory. With these points resolved, I've finished my review and am more than happy with the PR you have prepared. |
Not sure it will be a quick read for anyone, but in the end it is clear, so good to go, I think. |
This was a very long discussion and I certainly haven't read all of it, but I have read A few thoughts come to mind.
I have some vague ideas on how this could be implemented, but before I share them, I thought I would check if this was already accounted for in this very long thread or elsewhere! |
@lhmarsden as this issue is closed, would you like to reopen it or begin a new issue? |
@lhmarsden : The special thing about temperature differences shows up when you want to convert the values from Celsius to Kelvin (or similar conversions). Temperature differences have the same numerical values in degrees Celsius and Kelvin, while absolute temperatures have different numerical values in Celsius and Kelvin. Would that problem show up for pressure differences ? |
I don't think the issue needs reopening if there is a solution already in place that I am not aware of. I am happy to reopen or start a new issue. What do you think would be best in this case?
I don't know whether the problem shows up for pressure values or not. But either way, how would CF recommend one to encode differences relative to some origin for any variable other than temperature? Should absolute values be used in all cases? Or do we need a solution that works for any variable?
…________________________________
From: Armin-RS ***@***.***>
Sent: Thursday, November 7, 2024 11:48:57 am
To: cf-convention/vocabularies ***@***.***>
Cc: Luke Marsden ***@***.***>; Mention ***@***.***>
Subject: Re: [cf-convention/vocabularies] Clarifying the temperature unit associated with some cell methods and standard names (#125)
@lhmarsden<https://github.com/lhmarsden> : The special thing about temperature differences shows up when you want to convert the values from Celsius to Kelvin (or similar conversions). Temperature differences have the same numerical values in degrees Celsius and Kelvin, while absolute temperatures have different numerical values in Celsius and Kelvin.
Would that problem show up for pressure differences ?
—
Reply to this email directly, view it on GitHub<#125 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AOMNBFNYUSBHGC7CHT4CBV3Z7NARJAVCNFSM6AAAAABLUM7WU2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINRRHEYTAOJUGE>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Hi @lhmarsden, @larsbarring, @Armin-RS, For what it's worth (without digging into technical details and simply considering the length of this issue), I would personally prefer that a new issue is opened, referring back to this one in the introduction for the original context. Best, |
I agree that it would be better to start a new thread of this. The way Luke @lhmarsden has expressed it, I think it could be a "Q&A" type discussion i.e. how to use CF. |
Associated with all standard names is a canonical unit, which in case of temperature is Kelvin. And Appendix E explains how these canonical units are transformed by the different cell methods. For temperature this currently becomes fragile for the combined effect of two aspects of CF:
1.3 Overview and 3.1 Units
And udunits, that accepts Kelvin and degree_Celsius (and others) temperature units, can not make a distinction between a measure of absolute temperature and relative temperature. This means that software do need to make a rather involved interpretation of phrases of the standard name in combination with cell methods (in fact this has to be done irrespective of whether udunits is used or not) and whether or not to apply the additive constant 273.15 when converting between Kelvin and degree_Celsius.
While I would have liked to CF to make a clear distinction between measures of absolute and relative temperature, this may not be viable given the overarching goal to not break backward compatibility. As a second best alternative I suggest that text is added to clearly spell out which phrases of standard names and cell methods are to be used to make the distinction between absolute and relative temperature. Collecting this information at one place alerts and helps users general and in particular software designers. This text could be added under Section 3.1 (new subsection?) or in Appendix E, cross-referenced where appropriate.
So far I have come across the following phrases that I believe indicate a relative temperature:
difference
,anomaly
,change
,tendency
,bias
range
,standard_deviation
,variance
., and perhapsroot_mean_square
,sum_of_squares
For some of the standard names it may be obvious from the context that in practice the unit is always Kelvin, but for several I would say that either Kelvin or degree_Celsius is equally probable.
EDIT 2021-10-21: After more careful consideration
root_mean_square
andsum_of_squares
do not involve differences, so deleted. /LBThe text was updated successfully, but these errors were encountered: