qudt / qudt-public-repo

QUDT -Quantities, Units, Dimensions and dataTypes - public repository
Other
106 stars 69 forks source link

Reflectivity and Reflectance #777

Closed mgberg closed 9 months ago

mgberg commented 9 months ago

This includes the following changes:

steveraysteveray commented 9 months ago

@mgberg, I like the thorough descriptions and distinctions between Reflectivity and Reflectance. I do have a question concerning the applicableUnits. The way you have the skos:broader relations defined, Reflectance will have all the dimensionless ratio applicable units, even though your description states reflectance is always between 0.0 and 1.0. Is that OK with you, as a domain expert? The alternative is to have the suitable units just refer directly to Reflectance and to Reflectivity as appropriate.

If so, Would unit:FRACTION be the best one for Reflectance? Do you want to have explicit real and imaginary scalar units for Reflectivity? (We do that for electrical AC power: ActivePower and ReactivePower)

Eventually we plan to ramp up our use of datatypes beyond scalars...

What say you?

mgberg commented 9 months ago

@steveraysteveray Good question. I guess it partially depends on how the different units are intended to be used. We have data in which some sources report "fractional" values (including for Reflectivity/Reflectance) as a unitless number (i.e. 0-1) and other sources report the same kind of values as a percent (i.e. 0-100). Consequently, I have internally defined that unit:PERCENT has a conversion multiplier of 0.01 such that we can convert between unit:PERCENT and unit:FRACTION or unit:UNITLESS as needed, as it currently has no conversion multiplier. I'd actually be curious to know what you think about adding that conversion multiplier (unless we're using it incorrectly😆).

Also, are some units intended to only have values between 0 and 1 (or 0 and 100, or some other range)? I don't seem to recall that being captured or described anywhere but I could be wrong. It could be a good capability.

As for inheriting all the units- as I mentioned above, we have lots of different sources reporting values in different units depending on the context (e.g. length scale), and dimensionless numbers are one of the worst offenders (which is why a while ago I had to add unit:PPTM). For that reason, I tend to lean toward being more flexible than less. However, if the community disagrees with that premise, I'd be happy to apply a restricted set of units for Reflectance including at least UNITLESS and PERCENT.

As described here and here, reflectivity/reflectance should always be a positive real number.

steveraysteveray commented 9 months ago

Responding from the bottom up:

I'm leaning toward restricting the units for Reflectance, mostly because of the disconnect between the description and the applicableUnit values. Let's see if others have opinions. If we go that way, then you would need distinct references from Reflectivity to quantity kinds.

Regarding restricting values (0-1 or 0-100), we do have qudt:floatPercentage as a datatype. It's defined that way in the OWL schema, but the OWL stuff crept into the SHACL version as well, which needs fixing. We could do something similar for 0-1.

Finally, I support your suggestion of the conversion multiplier for unit:PERCENT to be 0.01. Makes perfect sense to me.

mgberg commented 9 months ago

Yup, I missed qudt:floatPercentage- that might be useful.

I have no problem with being more restrictive- I've updated this to include 3 units explicitly.

I also added the conversion multiplier to PERCENT.