bjornbm / dimensional

Dimensional library variant built on Data Kinds, Closed Type Families, TypeNats (GHC 7.8+).
BSD 3-Clause "New" or "Revised" License
102 stars 15 forks source link

Should `degree`, `arcminute`, `arcsecond` be Metric? #180

Closed bjornbm closed 6 years ago

bjornbm commented 7 years ago

Should degree, arcminute, arcsecond be Metric? Currently:

degree, arcminute, arcsecond :: Floating a => Unit 'NonMetric DPlaneAngle a

Wikipedia says:

To express even smaller angles, standard SI prefixes can be employed; the milliarcsecond (mas) and microarcsecond (μas), for instance, are commonly used in astronomy.

And millidegrees are also quite common. But perhaps these are not prefixed in a principled way, as the unit names are a bit ad hoc (mdeg, mas, µas)? If they don't qualify as Metric, how would you suggest to handle these in practice? Define new units (milliarcsecond) rather than prefix them?

dmcclean commented 6 years ago

I think that defining explicit combination units in NonSI like milliarcsecond is probably the best approach, due to the standards issue and the less principled way in which those prefixes are applied?

bjornbm commented 6 years ago

I think I agree with you. Thanks.

dmcclean commented 6 years ago

Similar pseudo-metric units exist in other areas of US practice. For example, large wire sizes are specified in "kcmil" or thousands of circular mils, where a circular mil is the area of a circle 0.001" in diameter. Millions of circular mils are also occasionally used. I am about to define these units in a library I use for electrical work, but I would argue that they are more extreme examples of the same thing.

As such I am closing this one as we agree on the answer. I recommend creating a new feature request issue for adding the milliarcsecond etc units?