jmandel / ucum.js

JavaScript library for unitsofmeasure.org (UCUM)
24 stars 6 forks source link

Noticed you are doing a rusty version, do you have the spec as a csv? #2

Closed govpack closed 9 years ago

govpack commented 9 years ago

Noticed you are doing a rusty version too, do you have the spec as a csv? i saw the xml spec, maybe i should parse that into json? or is there something else?

What do you think about the departures from SI units: grams instead of kg seems fine, Kelvin instead of Celsius (as SI has it) seems a choice only for scientists, and dropping the mol? The good thing about doing an implementation is that you can add extensions that work exactly as you like.

And that the whole idea is to use any/all units, and whichever ones you want, so to have a set of preferred ones: systemX, systemY, BobsPreferredUnits, etc which could be configured as to how the units show up in different places.

Units:

and to instantly remix and re-display values+units based on configurable preferences, in a dynamic MVC sort of a situation.

Conversions of "like to like" would be the first thing [as ucum.js does at the moment]

Is anything being done with the algebraics of -- or equations with units in JS? (I will avoid that at the moment, but once you have the units, one will want to have the mathematical operators as well)

How about mapping to the SI symbols in unicode, or outputs that support such?

㍱ ㍲ ㍳ ㍴ ㍵ ㍶ ㍷ ㍸ ㍹ ㍺ ㍻ ㍼ ㍽ ㍾ ㍿ ㎀ ㎁ ㎂ ㎃ ㎄ ㎅ ㎆ ㎇ ㎈ ㎉ ㎊ ㎋ ㎌ ㎍ ㎎ ㎏ ㎐ ㎑ ㎒ ㎓ ㎔ ㎕ ㎖ ㎗ ㎘ ㎙ ㎚ ㎛ ㎜ ㎝ ㎞ ㎟ ㎠ ㎡ ㎢ ㎣ ㎤ ㎥ ㎦ ㎧ ㎨ ㎩ ㎪ ㎫ ㎬ ㎭ ㎮ ㎯ ㎰ ㎱ ㎲ ㎳ ㎴ ㎵ ㎶ ㎷ ㎸ ㎹ ㎺ ㎻ ㎼ ㎽ ㎾ ㎿ ㏀ ㏁ ㏂ ㏃ ㏄ ㏅ ㏆ ㏇ ㏈ ㏉ ㏊ ㏋ ㏌ ㏍ ㏎ ㏏ ㏐ ㏑ ㏒ ㏓ ㏔ ㏕ ㏖ ㏗ ㏘ ㏙ ㏚ ㏛ ㏜ ㏝ ㏞ ㏟

I mainly just want to just pull out the table of conversion factors, the short ascii notation for each, as an enumerated list for each base unit (starting from 1, being the system default), and then generate or have functions to parse, convert or serialize, and add in any extras for js-dates, prices, pixels and on screen dimensions currency (with some way to go slide thru time or go historical, because those conversion factors change, as do some of the universal constants, but i'll leave that sort of precision to the actual scientists). I want to do the currency values high (like 1e6==$1, or 1e6=1g of silver for the commodities) and keep them as integers, to avoid rounding errors, ie to move any possible significant figures to the left of the decimal point, mainly because JS lacks a good decimal type, and that's where we're at, at the moment. .

jmandel commented 9 years ago

If you haven't seen the UCUM specification (of which this library is an implementation) you probably want to check out: http://unitsofmeasure.org/ucum.html

(I didn't design this library to handle units "in general" -- just as an implementation of the UCUM spec. So the kinds of design questions you've raised didn't really come up for me.)

Re: JS numerics, it would probably make sense to use an arbitrary precision numerics library (e.g. https://github.com/MikeMcl/big.js/) rather than JS's built-in numeric types. I just haven't gotten around to incorporating this into ucum.js.

govpack commented 9 years ago

@jmandel I have no issues with ucum.js itself, just a lot of things i am working to understand

yes, http://unitsofmeasure.org/ucum.html was what i first found on the web, so i'm studying that.

and then i did https://libraries.io/search?q=UCUM and was very pleased to see ucum.js in npm !!!

:-) thanks again

Yesterday i took a look at the data in: http://unitsofmeasure.org/ucum-essence.xml

today i will look more at your code,

uc=require('ucum.js')
uc.parse(value, units)
uc.canonicalize(value, units)
uc.convert(fromValue, fromUnits, toUnits)

it's not just a simple table of conversion factors as i first imagined, it does expression parsing and unit algebra and has a canonicalize() method, which can be used for dimensional analysis (which would be really helpful if someone was writting an equation solver and they wanted to make sure their units matched, in my eyes this form of "unit testing" would be FAR more of a universal good, than "unit testing" as done mainly by/for programmers.

below are just my notes more than anything else...

▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼

So the "The Unified Code for Units of Measure" has been worked on for 9 years or more (trac changes) by knowledgeable and considerate scientists and academics, so the pros will far outweigh the cons, and what they have done there is quite impressive. My issues would be more about the spec itself rather than the javascript implementation~ which i like because it does lots of stuff which i am clueless about, and getting units working right is fundamental to so many things.

I may start a little list of things i don't like or understand : [like no spec update in two years, using single quotes inside unit expressions instead of say a backtick, since single quotes are commonly used to enclose strings in code] in separate post, because i think ucum.js would be the best place to start from for any updates or improvements and unitsofmeasure.org is not on github so raising an issue would be through another/lesser channel. (Maybe i'll start a new project/repo if i get anything useful done, lol). The main things I think are missing are: Dates since Date+time=Date, and Date-Date=time, and currency since we are all economic entities and operators of some sort, and there's lots of math and science that can be done there, and better support for pixel space and on screen dimensions, since that's the work/play/create space for so many people in the current phase of the information age (since the cave wall, hasn't it always been the information age? well now even moreso).

what i found in ucum-essence.xml

http://unitsofmeasure.org/ucum-essence.xml

24 prefixes ~ also listed at the end with their values

[Y,Z,E,P,T,G,M,k,h,da,d,c,m,u,n,p,f,a,z,y,Ki,Mi,Gi,Ti]

as well as 10* or 10^ for other powers of ten there's also % for x/100=10^-2=10*-2, and pp+th,m,b,tr, it's very clever that prefixes, % and π are symbols that get calculated in as "dimensionless units ". So, one can go up or down in (any) power of ten, or move the decimal point left or right, to get quantities that make sense. "kg" is one where the prefix kilo is already appended to the gram, so they call that out in the spec, but the idea you can go MEGA or milli quite easily, i'm not sure why they didn't add the famous googol (1e+100) but that would be just 10^100 anyway.

7 base units

,{k:'length',C:'M',c:'m',dim:'L',s:'m',d:'meter'}
,{k:'time',C:'S',c:'s',dim:'T',s:'s',d:'second'}
,{k:'mass',C:'G',c:'g',dim:'M',s:'g',d:'gram'}
,{k:'plane angle',C:'RAD',c:'rad',dim:'A',s:'rad',d:'radian'}
,{k:'temperature',C:'K',c:'K',dim:'C',s:'K',d:'Kelvin'}
,{k:'electric charge',C:'C',c:'C',dim:'Q',s:'C',d:'Coulomb'}
,{k:'luminous intensity',C:'CD',c:'cd',dim:'F',s:'cd',d:'candela'}

the magic bit is that every other unit can be expressed as the product of those base units to some (+/-) power, and most often just of [mass^x_length^y_time^z] as figured out by:

require('ucum.js').canonicalize('[in_i]/a') 

and with dimensional analysis the required or resulting unit could be figured out by simple matrix multiplication of those canonicalize'd integer powers. And that parsing and alegrbra is being performed for an infinite set of unit combinations. Plus all the units (and expressions for combinations thereof) can be typed or reached in plain ascii from your keyboard. So there's no fancy symbols making them easy to enter and store, but ucum also has a broader range of symbols for each unit, (sub, sup,italic, and bold as html provides) for screen and print rendering.

as in in "ucum-essence.xml" in the printSymbol tag/column

   <unit xmlns="" Code="[pi]" CODE="[PI]" isMetric="no" class="dimless">
      <name>the number pi</name>
      <printSymbol>&#960;</printSymbol>
      <property>number</property>
      <value Unit="1" UNIT="1" value="3.1415926535897932384626433832795028841971693993751058209749445923">&#960;</value>
   </unit>

300 units:

square brackets prevent them from clashing with other units and prefix combinations, a single quote mark ' separates words and underscore represents a subscript, dot for multiply and dash for superscript ("c/s" case sensitive symbols , there's also an all-caps "c/i" column and html for "print")

[k], [G], [EU], [g], Gal, [pH], [h], b, [CFU], [BAU], [PFU], [FFU], [FEU], bit_s, bit, By, mol, eq, osm, [iU], [IU], [arb'U], [USP'U], [ELU], [knk'U], [mclg'U], ar, [sin_i], [sft_i], [syd_i], [cml_i], [acr_us], [srd_us], [smi_us], [sct], [twp], [acr_br], [CCID_50], [TCID_50], [EID_50], [todd'U], [dye'U], [smgy'U], [APL'U], [GPL'U], [MPL'U], [beth'U], [anti'Xa'U], [bdsk'U], [ka'U], [tb'U], Lmb, kat, U, [fth_i], Sv, REM, [bu_us], [gal_wi], [pk_us], [dqt_us], [dpt_us], P, F, [e], S, mho, A, Bi, [eps0], V, B[V], B[mV], B[uV], B[10.nV], Ohm, J, eV, erg, cal[15], cal_[20], cal_m, cal_IT, cal_th, cal, [Cal], [Btu_39], [Btu_59], [Btu_60], [Btu_m], [Btu_IT], [Btu_th], [Btu], Gy, RAD, [PRU], [wood'U], [gal_us], [bbl_us], [qt_us], [pt_us], [gil_us], [foz_us], [fdr_us], [min_us], [crd_us], [foz_m], Mx, N, gf, [lbf_av], dyn, %, [ppth], [ppm], [ppb], [pptr], Hz, [Ch], [hd_i], [hp_X], [hp_C], [hp_M], [hp_Q], [kp_X], [kp_C], [kp_M], [kp_Q], [hp'_X], [hp'_C], [hp'_M], [hp'_Q], lx, ph, H, R, St, AU, pc, [ly], [in_i], [ft_i], [yd_i], [mi_i], [nmi_i], [mil_i], [ft_us], [yd_us], [in_us], [rd_us], [ch_us], [lk_us], [rch_us], [rlk_us], [fth_us], [fur_us], [mi_us], [mil_us], [in_br], [ft_br], [rd_br], [ch_br], [lk_br], [fth_br], [pc_br], [yd_br], [mi_br], [nmi_br], [lne], [pnt], [pca], [pnt_pr], [pca_pr], [pied], [pouce], [ligne], [didot], [cicero], Ao, [smoot], Np, B, tex, [den], Ky, [mesh_i], sb, lm, Wb, Oe, T, G, [mu_0], Gb, t, u, [m_e], [m_p], [gr], [lb_av], [oz_av], [dr_av], [scwt_av], [lcwt_av], [ston_av], [lton_av], [stone_av], [pwt_tr], [oz_tr], [lb_tr], [sc_ap], [dr_ap], [oz_ap], [lb_ap], [oz_m], [car_m], g%, [car_Au], [MET], 10*, 10^, [pi], gon, deg, ', '', circ, W, [HP], B[W], B[kW], Pa, bar, atm, m[H2O], m[Hg], [in_i'H2O], [in_i'Hg], att, [psi], B[SPL], [D'ag'U], [PNU], [AU], [Lf], [Amb'a'1'U], Bq, Ci, [diop], [p'diop], [S], Bd, %[slope], sr, sph, Cel, [degF], [degR], min, h, d, a_t, a_j, a_g, a, wk, mo_s, mo_j, mo_g, mo, [c], [kn_i], [kn_br], [HPF], [LPF], l, L, [cin_i], [cft_i], [cyd_i], [bf_i], [cr_i], [tbs_us], [tsp_us], [cup_us], [cup_m], [tsp_m], [tbs_m], [gal_br], [pk_br], [bu_br], [qt_br], [pt_br], [gil_br], [foz_br], [fdr_br], [min_br], [drp], st, [hnsf'U]

97 kinds or class or groups of like units

{Count:97
,"(unclassified)":2
,"Ehrlich unit":1
,acceleration:2
,acidity:1
,action:1
,"action area":1
,"amount of a proliferating organism":1
,"amount of an allergen callibrated through in-vivo testing based on the ID50EAL method of (intradermal dilution for 50mm sum of erythema diameters":1
,"amount of an infectious agent":2
,"amount of fibrinogen broken down into the measured d-dimers":1
,"amount of information":3
,"amount of substance":2
,"amount of substance (dissolved particles)":1
,arbitrary:4
,"arbitrary ELISA unit":1
,"arbitrary biologic activity":2
,area:11
,"biologic activity (infectivity) of an infectious agent preparation":3
,"biologic activity antistreptolysin O":1
,"biologic activity of amylase":2
,"biologic activity of anticardiolipin IgA":1
,"biologic activity of anticardiolipin IgG":1
,"biologic activity of anticardiolipin IgM":1
,"biologic activity of factor VIII inhibitor":1
,"biologic activity of factor Xa inhibitor (heparin)":1
,"biologic activity of phosphatase":2
,"biologic activity of tuberculin":1
,brightness:1
,"catalytic activity":2
,"depth of water":1
,"dose equivalent":2
,"dry volume":5
,"dynamic viscosity":1
,"electric capacitance":1
,"electric charge":1
,"electric conductance":2
,"electric current":2
,"electric permittivity":1
,"electric potential":1
,"electric potential level":4
,"electric resistance":1
,energy:17
,"energy dose":2
,"fluid resistance":2
,"fluid volume":10
,"flux of magnetic induction":1
,force:4
,fraction:5
,frequency:1
,"gauge of catheters":1
,"height of horses":1
,"homeopathic potency (Hahnemann)":4
,"homeopathic potency (Korsakov)":4
,"homeopathic potency (retired)":4
,illuminance:2
,inductance:1
,"ion dose":1
,"kinematic viscosity":1
,length:43
,level:2
,"linear mass density (of textile thread)":2
,"lineic number":2
,"lum. intensity density":1
,"luminous flux":1
,"magentic flux":1
,"magnetic field intensity":1
,"magnetic flux density":2
,"magnetic permeability":1
,"magnetic tension":1
,mass:22
,"mass concentration":1
,"mass fraction":1
,"metabolic cost of physical activity":1
,number:3
,"plane angle":5
,power:2
,"power level":2
,pressure:9
,"pressure level":1
,"procedure defined amount of a poliomyelitis d-antigen substance":1
,"procedure defined amount of a protein substance":1
,"procedure defined amount of an allergen using some reference standard":1
,"procedure defined amount of an antigen substance":1
,"procedure defined amount of the major allergen of ragweed.":1
,radioactivity:2
,"refraction of a lens":1
,"refraction of a prism":1
,"sedimentation coefficient":1
,"signal transmission rate":1
,slope:1
,"solid angle":2
,temperature:3
,time:12
,velocity:3
,"view area in microscope":2
,volume:24
,"x-ray attenuation":1}

Kind (k), value (V,v), Code symbol (c), and isMetric (m) flag

and full name (d) for 300 Units (u)

{k:"(unclassified)",V:"1.380658 × 10-23",v:1.380658e-23,c:"[k]",u:"J/K",m:1,s:"<i>k</i>",d:"Boltzmann constant"}
{k:"(unclassified)",V:"6.67259 × 10-11",v:6.67259e-11,c:"[G]",u:"m3.kg-1.s-2",m:1,s:"<i>G</i>",d:"Newtonian constant of gravitation"}
{k:"Ehrlich unit",v:1,c:"[EU]",u:"1",m:0,d:"Ehrlich unit"}
{k:"acceleration",v:9.80665,c:"[g]",u:"m/s2",m:1,s:"<i>g<sub>n</sub></i>",d:"standard acceleration of free fall"}
{k:"acceleration",v:1,c:"Gal",u:"cm/s2",m:1,s:"Gal",d:"Gal"}
{k:"acidity",v:0,c:"[pH]",u:"pH(1 mol/l)",m:0,s:"pH",d:"pH"}
{k:"action",V:"6.6260755 × 10-24",v:6.6260755e-24,c:"[h]",u:"J.s",m:1,s:"<i>h</i>",d:"Planck constant"}
{k:"action area",v:100,c:"b",u:"fm2",m:0,s:"b",d:"barn"}
{k:"amount of a proliferating organism",v:1,c:"[CFU]",u:"1",m:0,s:"CFU",d:"colony forming units"}
{k:"amount of an allergen callibrated through in-vivo testing based on the ID50EAL method of (intradermal dilution for 50mm sum of erythema diameters",v:1,c:"[BAU]",u:"1",m:0,s:"BAU",d:"bioequivalent allergen unit"}
{k:"amount of an infectious agent",v:1,c:"[PFU]",u:"1",m:0,s:"PFU",d:"plaque forming units"}
{k:"amount of an infectious agent",v:1,c:"[FFU]",u:"1",m:0,s:"FFU",d:"focus forming units"}
{k:"amount of fibrinogen broken down into the measured d-dimers",v:1,c:"[FEU]",u:"1",m:0,d:"fibrinogen equivalent unit"}
{k:"amount of information",v:0,c:"bit_s",u:"ld(1 1)",m:0,s:"bit<sub>s</sub>",d:"bit"}
{k:"amount of information",v:1,c:"bit",u:"1",m:1,s:"bit",d:"bit"}
{k:"amount of information",v:8,c:"By",u:"bit",m:1,s:"B",d:"byte"}
{k:"amount of substance",v:6.0221367,c:"mol",u:"10*23",m:1,s:"mol",d:"mole"}
{k:"amount of substance",v:1,c:"eq",u:"mol",m:1,s:"eq",d:"equivalents"}
{k:"amount of substance (dissolved particles)",v:1,c:"osm",u:"mol",m:1,s:"osm",d:"osmole"}
{k:"arbitrary",v:1,c:"[iU]",u:"1",m:1,s:"IU",d:"international unit"}
{k:"arbitrary",v:1,c:"[IU]",u:"[iU]",m:1,s:"i.U.",d:"international unit"}
{k:"arbitrary",v:1,c:"[arb'U]",u:"1",m:0,s:"arb. U",d:"arbitary unit"}
{k:"arbitrary",v:1,c:"[USP'U]",u:"1",m:0,s:"U.S.P.",d:"United States Pharmacopeia unit"}
{k:"arbitrary ELISA unit",v:1,c:"[ELU]",u:"1",m:0,d:"ELISA unit"}
{k:"arbitrary biologic activity",v:1,c:"[knk'U]",u:"1",m:0,d:"Kunkel unit"}
{k:"arbitrary biologic activity",v:1,c:"[mclg'U]",u:"1",m:0,d:"Mac Lagan unit"}
{k:"area",v:100,c:"ar",u:"m2",m:1,s:"a",d:"are"}
{k:"area",v:1,c:"[sin_i]",u:"[in_i]2",m:0,d:"square inch"}
{k:"area",v:1,c:"[sft_i]",u:"[ft_i]2",m:0,d:"square foot"}
{k:"area",v:1,c:"[syd_i]",u:"[yd_i]2",m:0,d:"square yard"}
{k:"area",v:1,c:"[cml_i]",u:"[pi]/4.[mil_i]2",m:0,s:"circ.mil",d:"circular mil"}
{k:"area",v:160,c:"[acr_us]",u:"[rd_us]2",m:0,d:"acre"}
{k:"area",v:1,c:"[srd_us]",u:"[rd_us]2",m:0,d:"square rod"}
{k:"area",v:1,c:"[smi_us]",u:"[mi_us]2",m:0,d:"square mile"}
{k:"area",v:1,c:"[sct]",u:"[mi_us]2",m:0,d:"section"}
{k:"area",v:36,c:"[twp]",u:"[sct]",m:0,d:"township"}
{k:"area",v:4840,c:"[acr_br]",u:"[yd_br]2",m:0,d:"acre"}
{k:"biologic activity (infectivity) of an infectious agent preparation",v:1,c:"[CCID_50]",u:"1",m:0,s:"CCID<sub>50</sub>",d:"50% cell culture infectious dose"}
{k:"biologic activity (infectivity) of an infectious agent preparation",v:1,c:"[TCID_50]",u:"1",m:0,s:"TCID<sub>50</sub>",d:"50% tissue culture infectious dose"}
{k:"biologic activity (infectivity) of an infectious agent preparation",v:1,c:"[EID_50]",u:"1",m:0,s:"EID<sub>50</sub>",d:"50% embryo infectious dose"}
{k:"biologic activity antistreptolysin O",v:1,c:"[todd'U]",u:"1",m:0,d:"Todd unit"}
{k:"biologic activity of amylase",v:1,c:"[dye'U]",u:"1",m:0,d:"Dye unit"}
{k:"biologic activity of amylase",v:1,c:"[smgy'U]",u:"1",m:0,d:"Somogyi unit"}
{k:"biologic activity of anticardiolipin IgA",v:1,c:"[APL'U]",u:"1",m:0,d:"APL unit"}
{k:"biologic activity of anticardiolipin IgG",v:1,c:"[GPL'U]",u:"1",m:0,d:"GPL unit"}
{k:"biologic activity of anticardiolipin IgM",v:1,c:"[MPL'U]",u:"1",m:0,d:"MPL unit"}
{k:"biologic activity of factor VIII inhibitor",v:1,c:"[beth'U]",u:"1",m:0,d:"Bethesda unit"}
{k:"biologic activity of factor Xa inhibitor (heparin)",v:1,c:"[anti'Xa'U]",u:"1",m:0,d:"anti factor Xa unit"}
{k:"biologic activity of phosphatase",v:1,c:"[bdsk'U]",u:"1",m:0,d:"Bodansky unit"}
{k:"biologic activity of phosphatase",v:1,c:"[ka'U]",u:"1",m:0,d:"King-Armstrong unit"}
{k:"biologic activity of tuberculin",v:1,c:"[tb'U]",u:"1",m:0,d:"tuberculin unit"}
{k:"brightness",v:1,c:"Lmb",u:"cd/cm2/[pi]",m:1,s:"L",d:"Lambert"}
{k:"catalytic activity",v:1,c:"kat",u:"mol/s",m:1,s:"kat",d:"katal"}
{k:"catalytic activity",v:1,c:"U",u:"umol/min",m:1,s:"U",d:"Unit"}
{k:"depth of water",v:6,c:"[fth_i]",u:"[ft_i]",m:0,s:"fth",d:"fathom"}
{k:"dose equivalent",v:1,c:"Sv",u:"J/kg",m:1,s:"Sv",d:"Sievert"}
{k:"dose equivalent",v:1,c:"REM",u:"RAD",m:1,s:"REM",d:"radiation equivalent man"}
{k:"dry volume",v:2150.42,c:"[bu_us]",u:"[in_i]3",m:0,d:"bushel"}
{k:"dry volume",v:1,c:"[gal_wi]",u:"[bu_us]/8",m:0,d:"historical winchester gallon"}
{k:"dry volume",v:1,c:"[pk_us]",u:"[bu_us]/4",m:0,d:"peck"}
{k:"dry volume",v:1,c:"[dqt_us]",u:"[pk_us]/8",m:0,d:"dry quart"}
{k:"dry volume",v:1,c:"[dpt_us]",u:"[dqt_us]/2",m:0,d:"dry pint"}
{k:"dynamic viscosity",v:1,c:"P",u:"dyn.s/cm2",m:1,s:"P",d:"Poise"}
{k:"electric capacitance",v:1,c:"F",u:"C/V",m:1,s:"F",d:"Farad"}
{k:"electric charge",V:"1.60217733 × 10-19",v:1.60217733e-19,c:"[e]",u:"C",m:1,s:"<i>e</i>",d:"elementary charge"}
{k:"electric conductance",v:1,c:"S",u:"Ohm-1",m:1,s:"S",d:"Siemens"}
{k:"electric conductance",v:1,c:"mho",u:"S",m:1,s:"mho",d:"mho"}
{k:"electric current",v:1,c:"A",u:"C/s",m:1,s:"A",d:"Ampère"}
{k:"electric current",v:10,c:"Bi",u:"A",m:1,s:"Bi",d:"Biot"}
{k:"electric permittivity",V:"8.854187817 × 10-12",v:8.854187817e-12,c:"[eps_0]",u:"F/m",m:1,s:"<i>ε<sub><r>0</r></sub></i>",d:"permittivity of vacuum"}
{k:"electric potential",v:1,c:"V",u:"J/C",m:1,s:"V",d:"Volt"}
{k:"electric potential level",v:0,c:"B[V]",u:"2lg(1 V)",m:1,s:"B(V)",d:"bel volt"}
{k:"electric potential level",v:0,c:"B[mV]",u:"2lg(1 mV)",m:1,s:"B(mV)",d:"bel millivolt"}
{k:"electric potential level",v:0,c:"B[uV]",u:"2lg(1 uV)",m:1,s:"B(μV)",d:"bel microvolt"}
{k:"electric potential level",v:0,c:"B[10.nV]",u:"2lg(10 nV)",m:1,s:"B(10 nV)",d:"bel 10 nanovolt"}
{k:"electric resistance",v:1,c:"Ohm",u:"V/A",m:1,s:"Ω",d:"Ohm"}
{k:"energy",v:1,c:"J",u:"N.m",m:1,s:"J",d:"Joule"}
{k:"energy",v:1,c:"eV",u:"[e].V",m:1,s:"eV",d:"electronvolt"}
{k:"energy",v:1,c:"erg",u:"dyn.cm",m:1,s:"erg",d:"erg"}
{k:"energy",v:4.1858,c:"cal_[15]",u:"J",m:1,s:"cal<sub>15°C</sub>",d:"calorie at 15 °C"}
{k:"energy",v:4.1819,c:"cal_[20]",u:"J",m:1,s:"cal<sub>20°C</sub>",d:"calorie at 20 °C"}
{k:"energy",v:4.19002,c:"cal_m",u:"J",m:1,s:"cal<sub>m</sub>",d:"mean calorie"}
{k:"energy",v:4.1868,c:"cal_IT",u:"J",m:1,s:"cal<sub>IT</sub>",d:"international table calorie"}
{k:"energy",v:4.184,c:"cal_th",u:"J",m:1,s:"cal<sub>th</sub>",d:"thermochemical calorie"}
{k:"energy",v:1,c:"cal",u:"cal_th",m:1,s:"cal",d:"calorie"}
{k:"energy",v:1,c:"[Cal]",u:"kcal_th",m:0,s:"Cal",d:"nutrition label Calories"}
{k:"energy",v:1.05967,c:"[Btu_39]",u:"kJ",m:0,s:"Btu<sub>39°F</sub>",d:"British thermal unit at 39 °F"}
{k:"energy",v:1.0548,c:"[Btu_59]",u:"kJ",m:0,s:"Btu<sub>59°F</sub>",d:"British thermal unit at 59 °F"}
{k:"energy",v:1.05468,c:"[Btu_60]",u:"kJ",m:0,s:"Btu<sub>60°F</sub>",d:"British thermal unit at 60 °F"}
{k:"energy",v:1.05587,c:"[Btu_m]",u:"kJ",m:0,s:"Btu<sub>m</sub>",d:"mean British thermal unit"}
{k:"energy",v:1.05505585262,c:"[Btu_IT]",u:"kJ",m:0,s:"Btu<sub>IT</sub>",d:"international table British thermal unit"}
{k:"energy",v:1.05435,c:"[Btu_th]",u:"kJ",m:0,s:"Btu<sub>th</sub>",d:"thermochemical British thermal unit"}
{k:"energy",v:1,c:"[Btu]",u:"[Btu_th]",m:0,s:"btu",d:"British thermal unit"}
{k:"energy dose",v:1,c:"Gy",u:"J/kg",m:1,s:"Gy",d:"Gray"}
{k:"energy dose",v:100,c:"RAD",u:"erg/g",m:1,s:"RAD",d:"radiation absorbed dose"}
{k:"fluid resistance",v:1,c:"[PRU]",u:"mm[Hg].s/ml",m:0,s:"P.R.U.",d:"peripheral vascular resistance unit"}
{k:"fluid resistance",v:1,c:"[wood'U]",u:"mm[Hg].min/L",m:0,s:"Wood U.",d:"Wood unit"}
{k:"fluid volume",v:231,c:"[gal_us]",u:"[in_i]3",m:0,d:"Queen Anne's wine gallon"}
{k:"fluid volume",v:42,c:"[bbl_us]",u:"[gal_us]",m:0,d:"barrel"}
{k:"fluid volume",v:1,c:"[qt_us]",u:"[gal_us]/4",m:0,d:"quart"}
{k:"fluid volume",v:1,c:"[pt_us]",u:"[qt_us]/2",m:0,d:"pint"}
{k:"fluid volume",v:1,c:"[gil_us]",u:"[pt_us]/4",m:0,d:"gill"}
{k:"fluid volume",v:1,c:"[foz_us]",u:"[gil_us]/4",m:0,s:"oz fl",d:"fluid ounce"}
{k:"fluid volume",v:1,c:"[fdr_us]",u:"[foz_us]/8",m:0,d:"fluid dram"}
{k:"fluid volume",v:1,c:"[min_us]",u:"[fdr_us]/60",m:0,d:"minim"}
{k:"fluid volume",v:128,c:"[crd_us]",u:"[ft_i]3",m:0,d:"cord"}
{k:"fluid volume",v:30,c:"[foz_m]",u:"mL",m:0,s:"oz fl",d:"metric fluid ounce"}
{k:"flux of magnetic induction",V:"1 × 10-8",v:1e-8,c:"Mx",u:"Wb",m:1,s:"Mx",d:"Maxwell"}
{k:"force",v:1,c:"N",u:"kg.m/s2",m:1,s:"N",d:"Newton"}
{k:"force",v:1,c:"gf",u:"g.[g]",m:1,s:"gf",d:"gram-force"}
{k:"force",v:1,c:"[lbf_av]",u:"[lb_av].[g]",m:0,s:"lbf",d:"pound force"}
{k:"force",v:1,c:"dyn",u:"g.cm/s2",m:1,s:"dyn",d:"dyne"}
{k:"fraction",v:1,c:"%",u:"10*-2",m:0,s:"%",d:"percent"}
{k:"fraction",v:1,c:"[ppth]",u:"10*-3",m:0,s:"ppth",d:"parts per thousand"}
{k:"fraction",v:1,c:"[ppm]",u:"10*-6",m:0,s:"ppm",d:"parts per million"}
{k:"fraction",v:1,c:"[ppb]",u:"10*-9",m:0,s:"ppb",d:"parts per billion"}
{k:"fraction",v:1,c:"[pptr]",u:"10*-12",m:0,s:"pptr",d:"parts per trillion"}
{k:"frequency",v:1,c:"Hz",u:"s-1",m:1,s:"Hz",d:"Hertz"}
{k:"gauge of catheters",v:1,c:"[Ch]",u:"mm/3",m:0,s:"Ch",d:"french"}
{k:"height of horses",v:4,c:"[hd_i]",u:"[in_i]",m:0,s:"hd",d:"hand"}
{k:"homeopathic potency (Hahnemann)",v:1,c:"[hp_X]",u:"1",m:0,s:"X",d:"homeopathic potency of decimal hahnemannian series"}
{k:"homeopathic potency (Hahnemann)",v:1,c:"[hp_C]",u:"1",m:0,s:"C",d:"homeopathic potency of centesimal hahnemannian series"}
{k:"homeopathic potency (Hahnemann)",v:1,c:"[hp_M]",u:"1",m:0,s:"M",d:"homeopathic potency of millesimal hahnemannian series"}
{k:"homeopathic potency (Hahnemann)",v:1,c:"[hp_Q]",u:"1",m:0,s:"Q",d:"homeopathic potency of quintamillesimal hahnemannian series"}
{k:"homeopathic potency (Korsakov)",v:1,c:"[kp_X]",u:"1",m:0,s:"X",d:"homeopathic potency of decimal korsakovian series"}
{k:"homeopathic potency (Korsakov)",v:1,c:"[kp_C]",u:"1",m:0,s:"C",d:"homeopathic potency of centesimal korsakovian series"}
{k:"homeopathic potency (Korsakov)",v:1,c:"[kp_M]",u:"1",m:0,s:"M",d:"homeopathic potency of millesimal korsakovian series"}
{k:"homeopathic potency (Korsakov)",v:1,c:"[kp_Q]",u:"1",m:0,s:"Q",d:"homeopathic potency of quintamillesimal korsakovian series"}
{k:"homeopathic potency (retired)",v:0,c:"[hp'_X]",u:"hpX(1 1)",m:0,s:"X",d:"homeopathic potency of decimal series (retired)"}
{k:"homeopathic potency (retired)",v:0,c:"[hp'_C]",u:"hpC(1 1)",m:0,s:"C",d:"homeopathic potency of centesimal series (retired)"}
{k:"homeopathic potency (retired)",v:0,c:"[hp'_M]",u:"hpM(1 1)",m:0,s:"M",d:"homeopathic potency of millesimal series (retired)"}
{k:"homeopathic potency (retired)",v:0,c:"[hp'_Q]",u:"hpQ(1 1)",m:0,s:"Q",d:"homeopathic potency of quintamillesimal series (retired)"}
{k:"illuminance",v:1,c:"lx",u:"lm/m2",m:1,s:"lx",d:"lux"}
{k:"illuminance",V:"1 × 10-4",v:0.0001,c:"ph",u:"lx",m:1,s:"ph",d:"phot"}
{k:"inductance",v:1,c:"H",u:"Wb/A",m:1,s:"H",d:"Henry"}
{k:"ion dose",V:"2.58 × 10-4",v:0.000258,c:"R",u:"C/kg",m:1,s:"R",d:"Roentgen"}
{k:"kinematic viscosity",v:1,c:"St",u:"cm2/s",m:1,s:"St",d:"Stokes"}
{k:"length",v:149597.870691,c:"AU",u:"Mm",m:0,s:"AU",d:"astronomic unit"}
{k:"length",V:"3.085678 × 1016",v:30856780000000000,c:"pc",u:"m",m:1,s:"pc",d:"parsec"}
{k:"length",v:1,c:"[ly]",u:"[c].a_j",m:1,s:"l.y.",d:"light-year"}
{k:"length",v:2.54,c:"[in_i]",u:"cm",m:0,s:"in",d:"inch"}
{k:"length",v:12,c:"[ft_i]",u:"[in_i]",m:0,s:"ft",d:"foot"}
{k:"length",v:3,c:"[yd_i]",u:"[ft_i]",m:0,s:"yd",d:"yard"}
{k:"length",v:5280,c:"[mi_i]",u:"[ft_i]",m:0,s:"mi",d:"statute mile"}
{k:"length",v:1852,c:"[nmi_i]",u:"m",m:0,s:"n.mi",d:"nautical mile"}
{k:"length",V:"1 × 10-3",v:0.001,c:"[mil_i]",u:"[in_i]",m:0,s:"mil",d:"mil"}
{k:"length",v:1200,c:"[ft_us]",u:"m/3937",m:0,s:"ft<sub>us</sub>",d:"foot"}
{k:"length",v:3,c:"[yd_us]",u:"[ft_us]",m:0,d:"yard"}
{k:"length",v:1,c:"[in_us]",u:"[ft_us]/12",m:0,d:"inch"}
{k:"length",v:16.5,c:"[rd_us]",u:"[ft_us]",m:0,d:"rod"}
{k:"length",v:4,c:"[ch_us]",u:"[rd_us]",m:0,d:"Surveyor's chain"}
{k:"length",v:1,c:"[lk_us]",u:"[ch_us]/100",m:0,d:"link for Gunter's chain"}
{k:"length",v:100,c:"[rch_us]",u:"[ft_us]",m:0,d:"Engineer's chain"}
{k:"length",v:1,c:"[rlk_us]",u:"[rch_us]/100",m:0,d:"link for Ramden's chain"}
{k:"length",v:6,c:"[fth_us]",u:"[ft_us]",m:0,d:"fathom"}
{k:"length",v:40,c:"[fur_us]",u:"[rd_us]",m:0,d:"furlong"}
{k:"length",v:8,c:"[mi_us]",u:"[fur_us]",m:0,d:"mile"}
{k:"length",V:"1 × 10-3",v:0.001,c:"[mil_us]",u:"[in_us]",m:0,d:"mil"}
{k:"length",v:2.539998,c:"[in_br]",u:"cm",m:0,d:"inch"}
{k:"length",v:12,c:"[ft_br]",u:"[in_br]",m:0,d:"foot"}
{k:"length",v:16.5,c:"[rd_br]",u:"[ft_br]",m:0,d:"rod"}
{k:"length",v:4,c:"[ch_br]",u:"[rd_br]",m:0,d:"Gunter's chain"}
{k:"length",v:1,c:"[lk_br]",u:"[ch_br]/100",m:0,d:"link for Gunter's chain"}
{k:"length",v:6,c:"[fth_br]",u:"[ft_br]",m:0,d:"fathom"}
{k:"length",v:2.5,c:"[pc_br]",u:"[ft_br]",m:0,d:"pace"}
{k:"length",v:3,c:"[yd_br]",u:"[ft_br]",m:0,d:"yard"}
{k:"length",v:5280,c:"[mi_br]",u:"[ft_br]",m:0,d:"mile"}
{k:"length",v:6080,c:"[nmi_br]",u:"[ft_br]",m:0,d:"nautical mile"}
{k:"length",v:1,c:"[lne]",u:"[in_i]/12",m:0,d:"line"}
{k:"length",v:1,c:"[pnt]",u:"[lne]/6",m:0,d:"point"}
{k:"length",v:12,c:"[pca]",u:"[pnt]",m:0,d:"pica"}
{k:"length",v:0.013837,c:"[pnt_pr]",u:"[in_i]",m:0,d:"Printer's point"}
{k:"length",v:12,c:"[pca_pr]",u:"[pnt_pr]",m:0,d:"Printer's pica"}
{k:"length",v:32.48,c:"[pied]",u:"cm",m:0,d:"French foot"}
{k:"length",v:1,c:"[pouce]",u:"[pied]/12",m:0,d:"French inch"}
{k:"length",v:1,c:"[ligne]",u:"[pouce]/12",m:0,d:"French line"}
{k:"length",v:1,c:"[didot]",u:"[ligne]/6",m:0,d:"Didot's point"}
{k:"length",v:12,c:"[cicero]",u:"[didot]",m:0,d:"Didot's pica"}
{k:"length",v:0.1,c:"Ao",u:"nm",m:0,s:"Å",d:"Ångström"}
{k:"length",v:67,c:"[smoot]",u:"[in_i]",m:0,d:"Smoot"}
{k:"level",v:0,c:"Np",u:"ln(1 1)",m:1,s:"Np",d:"neper"}
{k:"level",v:0,c:"B",u:"lg(1 1)",m:1,s:"B",d:"bel"}
{k:"linear mass density (of textile thread)",v:1,c:"tex",u:"g/km",m:1,s:"tex",d:"tex"}
{k:"linear mass density (of textile thread)",v:1,c:"[den]",u:"g/9/km",m:0,s:"den",d:"Denier"}
{k:"lineic number",v:1,c:"Ky",u:"cm-1",m:1,s:"K",d:"Kayser"}
{k:"lineic number",v:1,c:"[mesh_i]",u:"/[in_i]",m:0,d:"mesh"}
{k:"lum. intensity density",v:1,c:"sb",u:"cd/cm2",m:1,s:"sb",d:"stilb"}
{k:"luminous flux",v:1,c:"lm",u:"cd.sr",m:1,s:"lm",d:"lumen"}
{k:"magentic flux",v:1,c:"Wb",u:"V.s",m:1,s:"Wb",d:"Weber"}
{k:"magnetic field intensity",v:250,c:"Oe",u:"/[pi].A/m",m:1,s:"Oe",d:"Oersted"}
{k:"magnetic flux density",v:1,c:"T",u:"Wb/m2",m:1,s:"T",d:"Tesla"}
{k:"magnetic flux density",V:"1 × 10-4",v:0.0001,c:"G",u:"T",m:1,s:"Gs",d:"Gauss"}
{k:"magnetic permeability",v:1,c:"[mu_0]",u:"4.[pi].10*-7.N/A2",m:1,s:"<i>μ<sub><r>0</r></sub></i>",d:"permeability of vacuum"}
{k:"magnetic tension",v:1,c:"Gb",u:"Oe.cm",m:1,s:"Gb",d:"Gilbert"}
{k:"mass",V:"1 × 103",v:1000,c:"t",u:"kg",m:1,s:"t",d:"tonne"}
{k:"mass",V:"1.6605402 × 10-24",v:1.6605402e-24,c:"u",u:"g",m:1,s:"u",d:"unified atomic mass unit"}
{k:"mass",V:"9.1093897 × 10-28",v:9.1093897e-28,c:"[m_e]",u:"g",m:1,s:"<i>m<sub><r>e</r></sub></i>",d:"electron mass"}
{k:"mass",V:"1.6726231 × 10-24",v:1.6726231e-24,c:"[m_p]",u:"g",m:1,s:"<i>m<sub><r>p</r></sub></i>",d:"proton mass"}
{k:"mass",v:64.79891,c:"[gr]",u:"mg",m:0,d:"grain"}
{k:"mass",v:7000,c:"[lb_av]",u:"[gr]",m:0,s:"lb",d:"pound"}
{k:"mass",v:1,c:"[oz_av]",u:"[lb_av]/16",m:0,s:"oz",d:"ounce"}
{k:"mass",v:1,c:"[dr_av]",u:"[oz_av]/16",m:0,d:"dram"}
{k:"mass",v:100,c:"[scwt_av]",u:"[lb_av]",m:0,d:"U.S. hundredweight"}
{k:"mass",v:112,c:"[lcwt_av]",u:"[lb_av]",m:0,d:"British hundredweight"}
{k:"mass",v:20,c:"[ston_av]",u:"[scwt_av]",m:0,d:"U.S. ton"}
{k:"mass",v:20,c:"[lton_av]",u:"[lcwt_av]",m:0,d:"British ton"}
{k:"mass",v:14,c:"[stone_av]",u:"[lb_av]",m:0,d:"British stone"}
{k:"mass",v:24,c:"[pwt_tr]",u:"[gr]",m:0,d:"pennyweight"}
{k:"mass",v:20,c:"[oz_tr]",u:"[pwt_tr]",m:0,d:"ounce"}
{k:"mass",v:12,c:"[lb_tr]",u:"[oz_tr]",m:0,d:"pound"}
{k:"mass",v:20,c:"[sc_ap]",u:"[gr]",m:0,d:"scruple"}
{k:"mass",v:3,c:"[dr_ap]",u:"[sc_ap]",m:0,d:"drachm"}
{k:"mass",v:8,c:"[oz_ap]",u:"[dr_ap]",m:0,d:"ounce"}
{k:"mass",v:12,c:"[lb_ap]",u:"[oz_ap]",m:0,d:"pound"}
{k:"mass",v:28,c:"[oz_m]",u:"g",m:0,d:"metric ounce"}
{k:"mass",v:0.2,c:"[car_m]",u:"g",m:0,s:"ct<sub>m</sub>",d:"metric carat"}
{k:"mass concentration",v:1,c:"g%",u:"g/dl",m:1,s:"g%",d:"gram percent"}
{k:"mass fraction",v:1,c:"[car_Au]",u:"/24",m:0,s:"ct<sub><r>Au</r></sub>",d:"carat of gold alloys"}
{k:"metabolic cost of physical activity",v:3.5,c:"[MET]",u:"mL/min/kg",m:0,s:"MET",d:"metabolic equivalent"}
{k:"number",v:10,c:"10*",u:"1",m:0,s:"10",d:"the number ten for arbitrary powers"}
{k:"number",v:10,c:"10^",u:"1",m:0,s:"10",d:"the number ten for arbitrary powers"}
{k:"number",V:"π",v:3.141592653589793,c:"[pi]",u:"1",m:0,s:"π",d:"the number pi"}
{k:"plane angle",v:0.9,c:"gon",u:"deg",m:0,s:"□<sup>g</sup>",d:"grade"}
{k:"plane angle",v:2,c:"deg",u:"[pi].rad/360",m:0,s:"°",d:"degree"}
{k:"plane angle",v:1,c:"'",u:"deg/60",m:0,s:"'",d:"minute"}
{k:"plane angle",v:1,c:"''",u:"'/60",m:0,s:"''",d:"second"}
{k:"plane angle",v:2,c:"circ",u:"[pi].rad",m:0,s:"circ",d:"circle"}
{k:"power",v:1,c:"W",u:"J/s",m:1,s:"W",d:"Watt"}
{k:"power",v:550,c:"[HP]",u:"[ft_i].[lbf_av]/s",m:0,d:"horsepower"}
{k:"power level",v:0,c:"B[W]",u:"lg(1 W)",m:1,s:"B(W)",d:"bel watt"}
{k:"power level",v:0,c:"B[kW]",u:"lg(1 kW)",m:1,s:"B(kW)",d:"bel kilowatt"}
{k:"pressure",v:1,c:"Pa",u:"N/m2",m:1,s:"Pa",d:"Pascal"}
{k:"pressure",V:"1 × 105",v:100000,c:"bar",u:"Pa",m:1,s:"bar",d:"bar"}
{k:"pressure",v:101325,c:"atm",u:"Pa",m:0,s:"atm",d:"standard atmosphere"}
{k:"pressure",v:9.80665,c:"m[H2O]",u:"kPa",m:1,s:"m H<sub><r>2</r></sub>O",d:"meter of water column"}
{k:"pressure",v:133.322,c:"m[Hg]",u:"kPa",m:1,s:"m Hg",d:"meter of mercury column"}
{k:"pressure",v:1,c:"[in_i'H2O]",u:"m[H2O].[in_i]/m",m:0,s:"in H<sub><r>2</r></sub>O",d:"inch of water column"}
{k:"pressure",v:1,c:"[in_i'Hg]",u:"m[Hg].[in_i]/m",m:0,s:"in Hg",d:"inch of mercury column"}
{k:"pressure",v:1,c:"att",u:"kgf/cm2",m:0,s:"at",d:"technical atmosphere"}
{k:"pressure",v:1,c:"[psi]",u:"[lbf_av]/[in_i]2",m:0,s:"psi",d:"pound per sqare inch"}
{k:"pressure level",v:0,c:"B[SPL]",u:"2lg(2 10*-5.Pa)",m:1,s:"B(SPL)",d:"bel sound pressure"}
{k:"procedure defined amount of a poliomyelitis d-antigen substance",v:1,c:"[D'ag'U]",u:"1",m:0,d:"D-antigen unit"}
{k:"procedure defined amount of a protein substance",v:1,c:"[PNU]",u:"1",m:0,s:"PNU",d:"protein nitrogen unit"}
{k:"procedure defined amount of an allergen using some reference standard",v:1,c:"[AU]",u:"1",m:0,s:"AU",d:"allergen unit"}
{k:"procedure defined amount of an antigen substance",v:1,c:"[Lf]",u:"1",m:0,s:"Lf",d:"Limit of flocculation"}
{k:"procedure defined amount of the major allergen of ragweed.",v:1,c:"[Amb'a'1'U]",u:"1",m:0,s:"Amb a 1 U",d:"allergen unit for Ambrosia artemisiifolia"}
{k:"radioactivity",v:1,c:"Bq",u:"s-1",m:1,s:"Bq",d:"Becquerel"}
{k:"radioactivity",V:"3.7 × 1010",v:37000000000,c:"Ci",u:"Bq",m:1,s:"Ci",d:"Curie"}
{k:"refraction of a lens",v:1,c:"[diop]",u:"/m",m:0,s:"dpt",d:"diopter"}
{k:"refraction of a prism",v:0,c:"[p'diop]",u:"100tan(1 rad)",m:0,s:"PD",d:"prism diopter"}
{k:"sedimentation coefficient",v:1,c:"[S]",u:"10*-13.s",m:0,s:"S",d:"Svedberg unit"}
{k:"signal transmission rate",v:1,c:"Bd",u:"/s",m:1,s:"Bd",d:"baud"}
{k:"slope",v:0,c:"%[slope]",u:"100tan(1 rad)",m:0,s:"%",d:"percent of slope"}
{k:"solid angle",v:1,c:"sr",u:"rad2",m:1,s:"sr",d:"steradian"}
{k:"solid angle",v:4,c:"sph",u:"[pi].sr",m:0,s:"sph",d:"spere"}
{k:"temperature",v:0,c:"Cel",u:"cel(1 K)",m:1,s:"°C",d:"degree Celsius"}
{k:"temperature",v:0,c:"[degF]",u:"degf(5 K/9)",m:0,s:"°F",d:"degree Fahrenheit"}
{k:"temperature",v:5,c:"[degR]",u:"K/9",m:0,s:"°R",d:"degree Rankine"}
{k:"time",v:60,c:"min",u:"s",m:0,s:"min",d:"minute"}
{k:"time",v:60,c:"h",u:"min",m:0,s:"h",d:"hour"}
{k:"time",v:24,c:"d",u:"h",m:0,s:"d",d:"day"}
{k:"time",v:365.24219,c:"a_t",u:"d",m:0,s:"a<sub>t</sub>",d:"tropical year"}
{k:"time",v:365.25,c:"a_j",u:"d",m:0,s:"a<sub>j</sub>",d:"mean Julian year"}
{k:"time",v:365.2425,c:"a_g",u:"d",m:0,s:"a<sub>g</sub>",d:"mean Gregorian year"}
{k:"time",v:1,c:"a",u:"a_j",m:0,s:"a",d:"year"}
{k:"time",v:7,c:"wk",u:"d",m:0,s:"wk",d:"week"}
{k:"time",v:29.53059,c:"mo_s",u:"d",m:0,s:"mo<sub>s</sub>",d:"synodal month"}
{k:"time",v:1,c:"mo_j",u:"a_j/12",m:0,s:"mo<sub>j</sub>",d:"mean Julian month"}
{k:"time",v:1,c:"mo_g",u:"a_g/12",m:0,s:"mo<sub>g</sub>",d:"mean Gregorian month"}
{k:"time",v:1,c:"mo",u:"mo_j",m:0,s:"mo",d:"month"}
{k:"velocity",v:299792458,c:"[c]",u:"m/s",m:1,s:"<i>c</i>",d:"velocity of light"}
{k:"velocity",v:1,c:"[kn_i]",u:"[nmi_i]/h",m:0,s:"knot",d:"knot"}
{k:"velocity",v:1,c:"[kn_br]",u:"[nmi_br]/h",m:0,d:"knot"}
{k:"view area in microscope",v:1,c:"[HPF]",u:"1",m:0,s:"HPF",d:"high power field"}
{k:"view area in microscope",v:100,c:"[LPF]",u:"1",m:0,s:"LPF",d:"low power field"}
{k:"volume",v:1,c:"l",u:"dm3",m:1,s:"l",d:"liter"}
{k:"volume",v:1,c:"L",u:"l",m:1,s:"L",d:"liter"}
{k:"volume",v:1,c:"[cin_i]",u:"[in_i]3",m:0,d:"cubic inch"}
{k:"volume",v:1,c:"[cft_i]",u:"[ft_i]3",m:0,d:"cubic foot"}
{k:"volume",v:1,c:"[cyd_i]",u:"[yd_i]3",m:0,s:"cu.yd",d:"cubic yard"}
{k:"volume",v:144,c:"[bf_i]",u:"[in_i]3",m:0,d:"board foot"}
{k:"volume",v:128,c:"[cr_i]",u:"[ft_i]3",m:0,d:"cord"}
{k:"volume",v:1,c:"[tbs_us]",u:"[foz_us]/2",m:0,d:"tablespoon"}
{k:"volume",v:1,c:"[tsp_us]",u:"[tbs_us]/3",m:0,d:"teaspoon"}
{k:"volume",v:16,c:"[cup_us]",u:"[tbs_us]",m:0,d:"cup"}
{k:"volume",v:240,c:"[cup_m]",u:"mL",m:0,d:"metric cup"}
{k:"volume",v:5,c:"[tsp_m]",u:"mL",m:0,d:"metric teaspoon"}
{k:"volume",v:15,c:"[tbs_m]",u:"mL",m:0,d:"metric tablespoon"}
{k:"volume",v:4.54609,c:"[gal_br]",u:"l",m:0,d:"gallon"}
{k:"volume",v:2,c:"[pk_br]",u:"[gal_br]",m:0,d:"peck"}
{k:"volume",v:4,c:"[bu_br]",u:"[pk_br]",m:0,d:"bushel"}
{k:"volume",v:1,c:"[qt_br]",u:"[gal_br]/4",m:0,d:"quart"}
{k:"volume",v:1,c:"[pt_br]",u:"[qt_br]/2",m:0,d:"pint"}
{k:"volume",v:1,c:"[gil_br]",u:"[pt_br]/4",m:0,d:"gill"}
{k:"volume",v:1,c:"[foz_br]",u:"[gil_br]/5",m:0,d:"fluid ounce"}
{k:"volume",v:1,c:"[fdr_br]",u:"[foz_br]/8",m:0,d:"fluid dram"}
{k:"volume",v:1,c:"[min_br]",u:"[fdr_br]/60",m:0,d:"minim"}
{k:"volume",v:1,c:"[drp]",u:"ml/20",m:0,s:"drp",d:"drop"}
{k:"volume",v:1,c:"st",u:"m3",m:1,s:"st",d:"stere"}
{k:"x-ray attenuation",v:1,c:"[hnsf'U]",u:"1",m:0,s:"HF",d:"Hounsfield unit"}

24 prefixes [Y,Z,E,P,T,G,M,k,h,da,d,c,m,u,n,p,f,a,z,y,Ki,Mi,Gi,Ti]

{V:'1 × 1024',v:1e+24,c:'Y',s:'Y',d:'yotta'} ,{V:'1 × 1021',v:1e+21,c:'Z',s:'Z',d:'zetta'} ,{V:'1 × 1018',v:1000000000000000000,c:'E',s:'E',d:'exa'} ,{V:'1 × 1015',v:1000000000000000,c:'P',s:'P',d:'peta'} ,{V:'1 × 1012',v:1000000000000,c:'T',s:'T',d:'tera'} ,{V:'1 × 109',v:1000000000,c:'G',s:'G',d:'giga'} ,{V:'1 × 106',v:1000000,c:'M',s:'M',d:'mega'} ,{V:'1 × 103',v:1000,c:'k',s:'k',d:'kilo'} ,{V:'1 × 102',v:100,c:'h',s:'h',d:'hecto'} ,{V:'1 × 101',v:10,c:'da',s:'da',d:'deka'} ,{V:'1 × 10-1',v:0.1,c:'d',s:'d',d:'deci'} ,{V:'1 × 10-2',v:0.01,c:'c',s:'c',d:'centi'} ,{V:'1 × 10-3',v:0.001,c:'m',s:'m',d:'milli'} ,{V:'1 × 10-6',v:0.000001,c:'u',s:'μ',d:'micro'} ,{V:'1 × 10-9',v:1e-9,c:'n',s:'n',d:'nano'} ,{V:'1 × 10-12',v:1e-12,c:'p',s:'p',d:'pico'} ,{V:'1 × 10-15',v:1e-15,c:'f',s:'f',d:'femto'} ,{V:'1 × 10-18',v:1e-18,c:'a',s:'a',d:'atto'} ,{V:'1 × 10-21',v:1e-21,c:'z',s:'z',d:'zepto'} ,{V:'1 × 10-24',v:1e-24,c:'y',s:'y',d:'yocto'} ,{v:1024,c:'Ki',s:'Ki',d:'kibi'} ,{v:1048576,c:'Mi',s:'Mi',d:'mebi'} ,{v:1073741824,c:'Gi',s:'Gi',d:'gibi'} ,{v:1099511627776,c:'Ti',s:'Ti',d:'tebi'}

some values may have a string representation, which may require a sup/sub/i/b tag for rendering