Skip to content

Add kind to all units #67

Description

@adrfantini

It is often useful to know what kind an unit is.
For example, take the Henry, unit for inductance.

Its definition in unitmath is:

{name: 'henry',value: 1,offset: 0,dimension: {MASS: 1,LENGTH: 2,TIME: -2,CURRENT: -2},prefixGroup: {'': 1,deca: 10,hecto: 100,kilo: 1000,mega: 1000000,giga: 1000000000,tera: 1000000000000,peta: 1000000000000000,exa: 1000000000000000000,zetta: 1e+21,yotta: 1e+24,deci: 0.1,centi: 0.01,milli: 0.001,micro: 0.000001,nano: 1e-9,pico: 1e-12,femto: 1e-15,atto: 1e-18,zepto: 1e-21,yocto: 1e-24},formatPrefixes: ['micro','milli',''],basePrefix: undefined}

I would propose to add a field called kind with value INDUCTANCE.
This would allow to simplify whenever you know the kind of a unit, and want to see the available alternatives, e.g. when selecting units for a quantity in a user interface.

Here's an (incomplete!) list of kinds compiled from the defined units and wikipedia:

{UNITLESS: {UNITLESS: 1},CURRENCY: {UNITLESS: 1},LENGTH: {LENGTH: 1},AREA: {LENGTH: 2},VOLUME: {LENGTH: 3},TIME: {TIME: 1},TEMPERATURE: {TEMPERATURE: 1},POWER: {MASS: 1,LENGTH: 2,TIME: -3},PRESSURE: {MASS: 1,LENGTH: -1,TIME: -2},FORCE: {MASS: 1,LENGTH: 1,TIME: -2},ENERGY: {MASS: 1,LENGTH: 2,TIME: -2},MASS: {MASS: 1},CURRENT: {CURRENT: 1},CAPACITANCE: {MASS: -1,LENGTH: -2,TIME: 4,CURRENT: 2},INDUCTANCE: {MASS: 1,LENGTH: 2,TIME: -2,CURRENT: -2},IRRADIANCE: {MASS: 1,TIME: -3},// added unit kind (W/m²) - COMPOSED UNIT! might consider not supportingRESISTANCE: {MASS: 1,LENGTH: 2,TIME: -3,CURRENT: -2},POTENTIAL: {MASS: 1,LENGTH: 2,TIME: -3,CURRENT: -1},ACCELERATION: {LENGTH: 1,TIME: -2},SPEED: {LENGTH: 1,TIME: -1},VOLUMETRIC_FLOW: {LENGTH: 3,TIME: -1},INFORMATION_RATE: {BIT: 1,TIME: -1},INFORMATION: {BIT: 1},ANGULAR_VELOCITY: {ANGLE: 1,TIME: -1},ANGULAR_ACCELERATION: {ANGLE: 1,TIME: -1},ANGLE: {ANGLE: 1},FREQUENCY: {TIME: -1},CHARGE: {CURRENT: 1,TIME: 1},SOLID_ANGLE: {SOLID_ANGLE: 1},RESISTIVITY: {MASS: 1,LENGTH: 3,TIME: -3,CURRENT: -2},// added unit kind (ohm meter) - COMPOSED UNIT! might consider not supportingCONDUCTANCE: {MASS: -1,LENGTH: -2,TIME: 3,CURRENT: 2},DENSITY: {MASS: 1,LENGTH: -3},MAGNETISM: {MASS: 1,LENGTH: 0,TIME: -2,CURRENT: -1},LUMINOUS_INTENSITY: {LUMINOUS_INTENSITY: 1},LUMINOUS_FLUX: {LUMINOUS_INTENSITY: 1,SOLID_ANGLE: 1},YANK: {MASS: 1,LENGTH: 1,TIME: -3},VISCOSITY: {MASS: 1,LENGTH: -1,TIME: -1},MOMENTUM: {MASS: 1,LENGTH: 1,TIME: -1},ANGULAR_MOMENTUM: {MASS: 1,LENGTH: 2,TIME: -1},AREA_DENSITY: {MASS: 1,LENGTH: -2},RADIATION_EXPOSURE: {LENGTH: -2,TIME: 1},MAGNETIC_FLUX: {MASS: 1,LENGTH: 2,TIME: -2,CURRENT: -1},// added unit kind (weber) - https://github.com/ericman314/UnitMath/issues/65ACTIVITY: {TIME: -1},// missing unit (Bequerel) - https://github.com/ericman314/UnitMath/issues/65MOLAR_CONCENTRATION: {LENGTH: -3,AMOUNT_OF_SUBSTANCE: 1},SUBSTANCE: {AMOUNT_OF_SUBSTANCE: 1},ILLUMINANCE: {LUMINOUS_INTENSITY: 1,SOLID_ANGLE: 1,LENGTH: -2},// corrected from original unitmath (lux) - https://github.com/ericman314/UnitMath/issues/66ELASTANCE: {MASS: 1,LENGTH: 2,TIME: -4,CURRENT: -2},SPECIFIC_VOLUME: {LENGTH: 3,MASS: -1},JOLT: {LENGTH: 1,TIME: -3},SNAP: {LENGTH: 1,TIME: -4},RADIATION: {LENGTH: 2,TIME: -2},WAVENUMBER: {LENGTH: -1},}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions