casacore
Loading...
Searching...
No Matches
casa
Quanta.h
Go to the documentation of this file.
1
// # Quanta.h: a module for units and quantities
2
// # Copyright (C) 1998,1999,2000,2004
3
// # Associated Universities, Inc. Washington DC, USA.
4
// #
5
// # This library is free software; you can redistribute it and/or modify it
6
// # under the terms of the GNU Library General Public License as published by
7
// # the Free Software Foundation; either version 2 of the License, or (at your
8
// # option) any later version.
9
// #
10
// # This library is distributed in the hope that it will be useful, but WITHOUT
11
// # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12
// # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13
// # License for more details.
14
// #
15
// # You should have received a copy of the GNU Library General Public License
16
// # along with this library; if not, write to the Free Software Foundation,
17
// # Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18
// #
19
// # Correspondence concerning AIPS++ should be addressed as follows:
20
// # Internet email: casa-feedback@nrao.edu.
21
// # Postal address: AIPS++ Project Office
22
// # National Radio Astronomy Observatory
23
// # 520 Edgemont Road
24
// # Charlottesville, VA 22903-2475 USA
25
26
#ifndef CASA_QUANTA_H
27
#define CASA_QUANTA_H
28
29
// # Includes
30
#include <casacore/casa/aips.h>
31
32
#include <casacore/casa/Quanta/Unit.h>
33
// # Next one at this place
34
#include <casacore/casa/Quanta/QC.h>
35
#include <casacore/casa/Quanta/UnitMap.h>
36
#include <casacore/casa/Quanta/Quantum.h>
37
#include <casacore/casa/Quanta/QMath.h>
38
#include <casacore/casa/Quanta/QLogical.h>
39
40
namespace
casacore
{
// # NAMESPACE CASACORE - BEGIN
41
42
// <module>
43
//
44
45
// <summary> a module for units and quantities </summary>
46
47
// <use visibility=export>
48
49
// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="tUnit tQuantum"
50
// demos="dMUString">
51
// </reviewed>
52
53
// <prerequisite>
54
// </prerequisite>
55
56
// <etymology>
57
// The name Quanta derives from a physical quantity, i.e. a value with
58
// units attached.
59
// </etymology>
60
//
61
// <synopsis>
62
// The Quanta model deals with units and physical quantities
63
// (i.e. values with a unit).
64
// Units are handled in the <a href="#Unit">Unit</a> section
65
// (see <linkto class="Unit">Unit.h</linkto>).
66
// Quantities are handled in the <a href="#Quantum">Quantum</a> section
67
// (see <linkto class="Quantum">Quantum.h</linkto>).
68
// In addition the module contains some more general support classes
69
// (<linkto class=Euler>Euler</linkto> angles,
70
// <linkto class=RotMatrix>rotation matrix</linkto>,
71
// <linkto class=MUString>pointed string</linkto>), formatting for
72
// <linkto class=MVTime>time</linkto> and <linkto class=MVAngle>angle</linkto>
73
// classes and classes containing information for
74
// Measures (<linkto class=MeasValue>MeasValue</linkto> and the derived MV
75
// classes like <linkto class=MVEpoch>MVEpoch</linkto>). See the
76
// <a href="#MeasValue">MeasValue</a> section.
77
//
78
// <h3> Includes</h3>
79
// Including the <src>casa/Quanta.h</src> will take care of all
80
// includes necessary for the handling of pure Units and Quantities.
81
//
82
// <anchor name="Unit"><h3> Physical units </h3></anchor>
83
// Physical units are basically used in quantities
84
// (see <linkto class="Quantum">Quantum</linkto>), i.e.
85
// a value and a dimension. The Unit class, or one of its subsidiaries, will
86
// in general not be called separately. The only reason to make use of these
87
// classes is to generate additional 'tagged' units, i.e. units with a
88
// special name, e.g. 'beam' for a telescope beam, or 'JY', a non-SI name
89
// for Jy.
90
// <h3> Units </h3>
91
// A Unit is in principle specified as a String (or directly as "string"),
92
// and can be defined as either a Unit or a String.
93
// If defined as a Unit, the format of the string will be checked for a
94
// legal definition and relevant information (e.g. scale, dimension type) is
95
// cached in the Unit object, leading to (much) faster use; if defined as a
96
// String, the checking will be postponed
97
// until any use is made of the information in the string.
98
//
99
// A unit is a string of one or more fields separated
100
// by 'space' or '.' (to indicate multiply) or '/' (to indicate divide).
101
// Multiple separators are acted upon (i.e. <src>m//s == m.s</src>).
102
// Separators are acted upon left-to-right (i.e. <src>m/s/A == (m/s)/A</src>;
103
// use () to indicate otherwise (e.g. <src>m/(s/A)</src> )).
104
//
105
// A field is a name, or a unit enclosed in (), optionally followed by an,
106
// optionally signed, decimal constant. E.g. <src>m.(m/s)-2 == m-1.s2</src> )
107
//
108
// Note that a 'space' or '.' before an opening '(' can be omitted.
109
//
110
// A name can consist of case-sensitive letters, '_', ''', ':', '"' and '0'
111
// ('0' not as first character). Digits 1-9 are allowed if preceded with
112
// an '_'. Possible legal names are e.g. Jy, R0, R_1, "_2.
113
// <note role=tip>
114
// <ul>
115
// <li> <src>'</src> is used for arcmin
116
// <li> <src>''</src> or <src>"</src> for arcsec
117
// <li> : :: and ::: are used for h, min, s respectively.
118
// </ul>
119
// </note>
120
// <note role=tip> The standard naming conventions for SI units are that they
121
// are all in lowercase, unless derived from a person's name, when they start
122
// with a capital letter. Notable exceptions are some of the astronomical
123
// SI related units (e.g. AU).
124
// </note>
125
// A name can be preceded by a (standard) decimal prefix.
126
//
127
// A name must be defined in a Unit map before it can be used.
128
//
129
// All SI units and some customary units are part of the classes. User
130
// defined names can be added by the UnitMap::putUser() function (see
131
// <linkto class="UnitMap">UnitMap</linkto>). A special set of FITS related
132
// units can be added by the <src>UnitMap::addFITS()</src> function. For
133
// details, see <linkto class="UnitMap">UnitMap</linkto>.
134
//
135
// Example:
136
// <srcblock>
137
// km/s/(Mpc.s)2 is identical to km.s-1.Mpc-2.s-2
138
// </srcblock>
139
// There are 5 name lists in the UnitMap, which are searched in reverse order:
140
// <ol>
141
// <li> Defining units: m, kg, s, A, K, cd, mol, rad, sr, _
142
// <li> SI units: including a.o. g, Jy, AU
143
// <li> Customary units: e.g. lb, hp, ly
144
// <li> User defined units: defined by user (e.g. beam, KPH, KM)
145
// <li> Cached units: for speed in operations
146
// </ol>
147
// All known names can be viewed by running the tUnit test program, or
148
// using the MapUnit::list() routine.
149
//
150
// The definitions that were current on 990915 are given at end of this file
151
//
152
// <note role=caution>
153
// There is a difference between units without a dimension (non-dimensioned
154
// I will call them), and undimensioned units. Non-dimensioned examples are
155
// "", "%"; undimensioned examples: "beam", "pixel".
156
// </note>
157
//
158
// <h3> Working with units </h3>
159
// In general units are not used explicitly, but are embedded in quantities
160
// and coordinates.
161
//
162
// Explicit use of units is only necessary if:
163
// <ol>
164
// <li> a unit string has to be tested for legality (e.g. exist JY?)
165
// <li> a unit string has to be named (e.g. H0 for km/s/Mpc)
166
// <li> some calculation on units has to be performed
167
// (e.g. how many hp.s per eV)
168
// </ol>
169
//
170
// For these cases a Unit can be defined as either a String or a Unit. If
171
// specified as a Unit an automatic check (with exception if illegal) of
172
// the format of the unit string is performed
173
// <srcblock>
174
// Unit a="km/Ms"; String b="Mm/Gs"; //produce 'identical' units a and b
175
// Unit a("KpH"); // will produce exception
176
// String a("KpH"); // will be accepted till some other action
177
// // done on a
178
// // The following will define a unit named 'tag' with a value identical
179
// // to 5 mJy. After this definition tag can be used as any other unit,
180
// // e.g. Unit("Gtag/pc") will be a valid unit string.
181
// UnitMap::putUser("tag",UnitVal(5.,"mJy"),"my own unit name for 5 mJy");
182
// // The following will calculate how many hp.s per eV
183
// Double hpeV = (UnitVal("hp.s")/UnitVal("eV")).getFac();
184
// // maybe after checking for identical dimensions
185
// if ( UnitVal("hp.s") != UnitVal("eV")) { cout << "unexpected" << endl; }
186
// </srcblock>
187
// <note role=tip>
188
// UnitVal has the following special constants to easily check unit
189
// dimensions (note that they can be combined to e.g. generate velocity
190
// as 'UnitVal::LENGTH/UnitVal::TIME')
191
// <ul>
192
// <li> UnitVal::NODIM
193
// <li> UnitVal::LENGTH
194
// <li> UnitVal::MASS
195
// <li> UnitVal::TIME
196
// <li> UnitVal::TEMPERATURE
197
// <li> UnitVal::ANGLE
198
// <li> UnitVal::SOLIDANGLE
199
// <li> UnitVal::MOLAR
200
// <li> UnitVal::CURRENT
201
// <li> UnitVal::INTENSITY
202
// </ul>
203
// </note>
204
//
205
// See the <linkto class="UnitVal">UnitVal</linkto>
206
// for details of calculating with units.
207
// See the <linkto class="UnitMap">UnitMap</linkto>
208
// for the details of defining/viewing named units.
209
//
210
//
211
// <anchor name="Quantum"><h3> Quantums and Quantities </h3></anchor>
212
// A Quantum is a value with a unit. Quantums are templated on their value
213
// type (e.g. <src>Float</src>, <src>Vector<Double></src>). <em>Quantity</em>
214
// is a typedef
215
// for the (probably most common) <src>Quantum<Double></src>.
216
// The basic specification of a Quantum is:
217
// <srcblock>
218
// Quantum<Type> ( Type value, Unit unit); // or: String unit or: "unit"
219
// Quantity( Double value, Unit unit); // or: String unit or: "unit"
220
// </srcblock>
221
//
222
// E.g.
223
// <ul>
224
// <li> <src>Quantity(5.,"m");</src>
225
// <li> <src>Quantum<Double> (5.,"m"); // identical to previous</src>
226
// <li> <src>Vector<Int> a(3); a(3) = 5; Quantum<Vector<Int> >(a,"Jy");</src>
227
// </ul>
228
//
229
// The following list of constructors is available.
230
// <note role=tip>
231
// In the following 'Unit' can be replaced by 'String' (or "string" everywhere.
232
// The only difference being a check for a legitimate unit string being
233
// executed if Unit specified (with exception if error), and a much faster
234
// execution of the Unit is used repeatedly.
235
// <src>Quantum<Type></src> can, if Type equals Double, be replaced with
236
// <src>Quantity</src>
237
// </note>
238
// <ul>
239
// <li> <src>Quantum<Type>() value 0 generated</src>
240
// <li> <src>Quantum<Type>( Quantum<Type>) copy constructor</src>
241
// <li> <src>Quantum<Type>( Type factor) value factor generated</src>
242
// <li> <src>Quantum<Type>( Type factor, Unit unit) specified quantity</src>
243
// <li> <src>Quantum<Type>( Type factor, Quantum<any> quant) specified
244
// factor,
245
// the unit from the quant</src>
246
// </ul>
247
//
248
// The following operators and functions are defined on Quantums. They are,
249
// of course, only available if the template Type supports them (e.g. / will
250
// not be defined for a <src>Quantum<String></src> (whatever that may mean)).
251
// <ul>
252
// <li> <src>= assignment of identical <type></src>
253
// <li> <src>* *= multiply two Quantums of same <type></src>
254
// <li> <src>/ /= divide two Quantums of same <type></src>
255
// <li> <src>+ += add two Quantums of same <type> and same unit dimensions</src>
256
// (else exception)
257
// <li> <src>- -= subtract two Quantums of same <type> and same unit dimensions</src>
258
// (else exception)
259
// <li> - negate Quantum
260
// <li> <src>== != compare unit dimensions and value of same <type></src>.
261
// They will be unequal if the unit dimensions do not
262
// match or the values (converted to common
263
// base units) are unequal
264
// <li> <src>< > compare unit dimensions of same <type></src>.
265
// Exception if no match,
266
// else compare the values
267
// <li> <src><= >=</src> ibid
268
// <li> pow(Quantum, Int) raise to an (integer) power
269
// <li> abs(Quant) take absolute value
270
// <li> ceil, floor(Quant)
271
// <li> sin, cos, tan(Quant) correct units used
272
// <li> asin, acos, atan(Quant), atan2(Q,Q) correct units used
273
// <li> near, nearAbs
274
// </ul>
275
//
276
//
277
// Quanta can be converted to other units by the following set of member
278
// functions:
279
// <ul>
280
// <li> convert() will convert the quantum to canonical units.
281
// E.g. given myval=Quantity(5.,"Jy"),
282
// myval.convert() will make myval have the value
283
// Quantity(5.e-26,"kg.s-2")
284
// <li> get() will return the quantum converted to
285
// canonical units
286
// <li> convert(Unit unit) will convert the quantum to the
287
// specified unit with any remaining dimensions
288
// expressed in canonical units. E.g given
289
// myval as above, myval.convert("W/cm") will
290
// make myval Quantity(5.e-28,"W/cm.m-1.s")
291
// <li> get(Unit unit) will return the quantum converted to unit
292
// <li> <src>convert(Quantum<any> quant)</src> will convert the quantum
293
// to the units of the specified quant with the
294
// same conversion rules as the previous one
295
// <li> <src>get(Quantum<any> quant) will return the converted quantum</src>
296
// </ul>
297
// Quanta can be checked for having the correct unit dimensions (e.g. before
298
// addition or comparing) by the following two member functions, which will
299
// return a Bool value or raise an exception:
300
// <ul>
301
// <li> <src>Bool isConform(Unit)</src>
302
// <li> <src>Bool isConform(Quantum<any>)</src>
303
// <li> <src>Bool check(UnitVal)</src>
304
// <li> <src> void assure(UnitVal)</src>
305
// </ul>
306
//
307
// The value and units of a quantum can be set or retrieved separately by the
308
// following member functions:
309
// <ul>
310
// <li> <src>Type getValue()</src> return the value (as Type) of the quantum
311
// <li> <src>Type getValue(Unit)</src> return the value in specified units
312
// <li> <src>Type getBaseValue()</src> return the value in canonical units
313
// <li> <src>String getUnit()</src> return the units of the quantum
314
// <li> <src>void setValue(Type val)</src> replace the value of the quantum with val,
315
// leaving the units the same
316
// <li> <src>void scale(Type)</src> scale the value (leaving units same) by
317
// multiplying with the specified value
318
// <li> <src>void setUnit(Unit)</src> replace the units of the quantum, leaving
319
// the value the same.
320
// <li> <src>void setUnit(Quantum<any>)</src> ibid
321
// </ul>
322
//
323
// The output operator ('<<') will produce the value of the quantum and its
324
// units. Given <src>Quantity myval(5.,"mJy");</src>,
325
// <src>cout << myval;</src> will produce:
326
// "5.0 mJy"; while <src>cout << myval.get("yW/m2")</src> will produce:
327
// ".00005 yW/m2.s"
328
//
329
//
330
// <h3> QC class of constant quantities </h3>
331
// In parallel with the 'C' class of undimensioned constants, the QC class
332
// contains dimensioned constants.
333
// On 960509 the following were defined:
334
// <ul>
335
// <li> <src>Quantum<Double> c; // vel of light</src>
336
// <li> <src>Quantum<Double> G; // Gravitational constant</src>
337
// <li> <src>Quantum<Double> h; // Planck</src>
338
// <li> <src>Quantum<Double> HI; // Frequency HI line</src>
339
// <li> <src>Quantum<Double> R; // Gas constant</src>
340
// <li> <src>Quantum<Double> NA; // Avogadro</src>
341
// <li> <src>Quantum<Double> e; // electron charge</src>
342
// <li> <src>Quantum<Double> mp; // proton mass</src>
343
// <li> <src>Quantum<Double> mp_me; // mp/me</src>
344
// <li> <src>Quantum<Double> mu0; // permeability vacuum</src>
345
// <li> <src>Quantum<Double> epsilon0; // permittivity vacuum</src>
346
// <li> <src>Quantum<Double> k; // Boltzmann</src>
347
// <li> <src>Quantum<Double> F; // Faraday</src>
348
// <li> <src>Quantum<Double> me; // mass electron</src>
349
// <li> <src>Quantum<Double> re; // radius electron</src>
350
// <li> <src>Quantum<Double> a0; // Bohr's radius</src>
351
// <li> <src>Quantum<Double> R0; // Solar radius</src>
352
// <li> <src>Quantum<Double> k2; // IAU Gaussian grav. const **2</src>
353
// </ul>
354
//
355
// <p>
356
// <anchor name="MeasValue"><h3> Values for Measures </h3></anchor>
357
// The MeasValue class derivatives are all named <em>MVmeasure</em>, e.g.
358
// <em>MVFrequency</em>, and represent the internal representation of the
359
// specific measure class. There main use is for the Measures module,
360
// but they can be used alone, e.g. for the conversion to formatted times,
361
// or the conversion of frequencies from say wavelength to frequency.
362
// They all have at least the following constructors:
363
// <srcblock>
364
// MV()
365
// MV(MV)
366
// MV(Double)
367
// MV(Vector<Double>)
368
// MV(Quantity)
369
// MV(Vector<Quantity>)
370
// MV(Quantum<Vector<Double> >)
371
// </srcblock>
372
// But most have also constructors like:
373
// <srcblock>
374
// MV(Double, Double)
375
// MV(Quantity, Quantity)
376
// </srcblock>
377
// The actual interpretation is class dependent: see the individual MV classes
378
// like <linkto class=MVEpoch>MVEpoch</linkto>,
379
// <linkto class=MVDirection>MVDirection</linkto>,
380
// <linkto class=MVPosition>MVPosition</linkto>,
381
// <linkto class=MVFrequency>MVFrequency</linkto>,
382
// <linkto class=MVDouble>MVDouble</linkto>,
383
// <linkto class=MVRadialVelocity>MVRadialVelocity</linkto>.
384
// <linkto class=MVBaseline>MVBaseline</linkto>,
385
// <linkto class=MVuvw>MVuvw</linkto>,
386
// <linkto class=MVEarthMagnetic>MVEarthMagnetic</linkto>,
387
// A few examples:
388
// <srcblock>
389
// MVEpoch(12345, 0.1e-20) will create one epoch (MJD12345.0), but preserving
390
// the precision of all information
391
// MVDirection(Quantity(20,"deg"), Quantity(-10,"'")) will create a direction
392
// with an RA of 20 degree, and a DEC of -10 arcmin
393
// MVFrequency(Quantity(5,"keV")) will create a frequency corresponding to
394
// the specified energy.
395
// </srcblock>
396
// All MVs have the <src>+=, -=, ==, !=, << </src>operators, and <src>near()</src>,
397
// <src>nearAbs()</src>, <src>print()</src> and <src>adjust()</src>
398
// and <src>readjust()</src> (which in general
399
// normalise to a value of 1 (e.g. MVDirection), or recalculates high
400
// precision values (e.g. MVEpoch) functions.<br>
401
// Information can be viewed with many <em>get</em> functions. In most cases
402
// getValue() will return the internal value as either Double or
403
// Vector<Double>; get() will return the same, or converted values (e.g.
404
// a vector of length, angle, angle for MVPosition; while special
405
// one like getAngle() or getAngle(unit), getTime() etc will return Quantums
406
// (with optional conversion to specified units).<br>
407
// In general the Measure classes can be used without worrying about the
408
// MeasValues, since most Measure constructors have enough flexibility (and
409
// their own get()'s) to be able to use them independently).<br>
410
// Special cases are <linkto class=MVAngle>MVAngle</linkto> and
411
// <linkto class=MVTime>MVTime</linkto>, which can do special formatting for
412
// time and angles (in earlier documentation they were called HMS etc.).
413
// <p>
414
415
// </synopsis>
416
//
417
// <motivation>
418
// The Quanta model originated to handle physical quantities independent of their
419
// units.
420
// Units were introduced in the described way to be able to handle any
421
// possible physical unit.
422
// </motivation>
423
//
424
// <todo asof="1998/07/22">
425
// <li> inlining
426
// <li> look at the problem of rad*rad (which is, in general, not sr)
427
// </todo>
428
//
429
// <example>
430
// <h3> Known units on 960509 </h3>
431
// <srcblock>
432
// // UnitMap::list() will produce the following list:
433
// List all defined symbols
434
//
435
// Prefix table (20):
436
// E (exa) 1e+18
437
// G (giga) 1000000000
438
// M (mega) 1000000
439
// P (peta) 1e+15
440
// T (tera) 1e+12
441
// Y (yotta) 1e+24
442
// Z (zetta) 1e+21
443
// a (atto) 1e-18
444
// c (centi) 0.01
445
// d (deci) 0.1
446
// da (deka) 10
447
// f (femto) 1e-15
448
// h (hecto) 100
449
// k (kilo) 1000
450
// m (milli) 0.001
451
// n (nano) 1e-09
452
// p (pico) 1e-12
453
// u (micro) 1e-06
454
// y (yocto) 1e-24
455
// z (zepto) 1e-21
456
// Defining unit table (10):
457
// A (ampere) 1 A
458
// K (kelvin) 1 K
459
// _ (undimensioned) 1 _
460
// cd (candela) 1 cd
461
// kg (kilogram) 1 kg
462
// m (metre) 1 m
463
// mol (mole) 1 mol
464
// rad (radian) 1 rad
465
// s (second) 1 s
466
// sr (steradian) 1 sr
467
// SI unit table (50):
468
// $ (currency) 1 _
469
// % (percent) 0.01
470
// %% (permille) 0.001
471
// A (ampere) 1 A
472
// AE (astronomical unit) 149597870659 m
473
// AU (astronomical unit) 149597870659 m
474
// Bq (becquerel) 1 s-1
475
// C (coulomb) 1 s.A
476
// F (farad) 1 m-2.kg-1.s4.A2
477
// Gy (gray) 1 m2.s-2
478
// H (henry) 1 m2.kg.s-2.A-2
479
// Hz (hertz) 1 s-1
480
// J (joule) 1 m2.kg.s-2
481
// Jy (jansky) 1e-26 kg.s-2
482
// K (kelvin) 1 K
483
// L (litre) 0.001 m3
484
// M0 (solar mass) 1.98891944407e+30 kg
485
// N (newton) 1 m.kg.s-2
486
// Ohm (ohm) 1 m2.kg.s-3.A-2
487
// Pa (pascal) 1 m-1.kg.s-2
488
// S (siemens) 1 m-2.kg-1.s3.A2
489
// S0 (solar mass) 1.98891944407e+30 kg
490
// Sv (sievert) 1 m2.s-2
491
// T (tesla) 1 kg.s-2.A-1
492
// UA (astronomical unit) 149597870659 m
493
// V (volt) 1 m2.kg.s-3.A-1
494
// W (watt) 1 m2.kg.s-3
495
// Wb (weber) 1 m2.kg.s-2.A-1
496
// _ (undimensioned) 1 _
497
// a (year) 31557600 s
498
// arcmin (arcmin) 0.000290888208666 rad
499
// arcsec (arcsec) 4.8481368111e-06 rad
500
// as (arcsec) 4.8481368111e-06 rad
501
// cd (candela) 1 cd
502
// cy (century) 3155760000 s
503
// d (day) 86400 s
504
// deg (degree) 0.0174532925199 rad
505
// g (gram) 0.001 kg
506
// h (hour) 3600 s
507
// l (litre) 0.001 m3
508
// lm (lumen) 1 cd.sr
509
// lx (lux) 1 m-2.cd.sr
510
// m (metre) 1 m
511
// min (minute) 60 s
512
// mol (mole) 1 mol
513
// pc (parsec) 3.08567758065e+16 m
514
// rad (radian) 1 rad
515
// s (second) 1 s
516
// sr (steradian) 1 sr
517
// t (tonne) 1000 kg
518
// Customary unit table (74):
519
// " (arcsec) 4.8481368111e-06 rad
520
// "_2 (square arcsec) 2.35044305391e-11 sr
521
// ' (arcmin) 0.000290888208666 rad
522
// '' (arcsec) 4.8481368111e-06 rad
523
// ''_2 (square arcsec) 2.35044305391e-11 sr
524
// '_2 (square arcmin) 8.46159499408e-08 sr
525
// : (hour) 3600 s
526
// :: (minute) 60 s
527
// ::: (second) 1 s
528
// Ah (ampere hour) 3600 s.A
529
// Angstrom (angstrom) 1e-10 m
530
// Btu (British thermal unit (Int)) 1055.056 m2.kg.s-2
531
// CM (metric carat) 0.0002 kg
532
// Cal (large calorie (Int)) 4186.8 m2.kg.s-2
533
// FU (flux unit) 1e-26 kg.s-2
534
// G (gauss) 0.0001 kg.s-2.A-1
535
// Gal (gal) 0.01 m.s-2
536
// Gb (gilbert) 0.795774715459 A
537
// Mx (maxwell) 1e-08 m2.kg.s-2.A-1
538
// Oe (oersted) 79.5774715459 m-1.A
539
// R (mile) 0.000258 kg-1.s.A
540
// St (stokes) 0.0001 m2.s-1
541
// Torr (torr) 133.322368421 m-1.kg.s-2
542
// USfl_oz (fluid ounce (US)) 2.95735295625e-05 m3
543
// USgal (gallon (US)) 0.003785411784 m3
544
// WU (WSRT flux unit) 5e-29 kg.s-2
545
// abA (abampere) 10 A
546
// abC (abcoulomb) 10 s.A
547
// abF (abfarad) 1000000000 m-2.kg-1.s4.A2
548
// abH (abhenry) 1e-09 m2.kg.s-2.A-2
549
// abOhm (abohm) 1e-09 m2.kg.s-3.A-2
550
// abV (abvolt) 1e-08 m2.kg.s-3.A-1
551
// ac (acre) 4046.8564224 m2
552
// arcmin_2 (square arcmin) 8.46159499408e-08 sr
553
// arcsec_2 (square arcsec) 2.35044305391e-11 sr
554
// ata (technical atmosphere) 98066.5 m-1.kg.s-2
555
// atm (standard atmosphere) 101325 m-1.kg.s-2
556
// bar (bar) 100000 m-1.kg.s-2
557
// beam (undefined beam area) 1 _
558
// cal (calorie (Int)) 4.1868 m2.kg.s-2
559
// cwt (hundredweight) 50.80234544 kg
560
// deg_2 (square degree) 0.000304617419787 sr
561
// dyn (dyne) 1e-05 m.kg.s-2
562
// eV (electron volt) 1.60217733e-19 m2.kg.s-2
563
// erg (erg) 1e-07 m2.kg.s-2
564
// fl_oz (fluid ounce (Imp)) 2.84130488996e-05 m3
565
// ft (foot) 0.3048 m
566
// fu (flux unit) 1e-26 kg.s-2
567
// fur (furlong) 201.168 m
568
// gal (gallon (Imp)) 0.00454608782394 m3
569
// ha (hectare) 10000 m2
570
// hp (horsepower) 745.7 m2.kg.s-3
571
// in (inch) 0.0254 m
572
// kn (knot (Imp)) 0.514773333333 m.s-1
573
// lb (pound (avoirdupois)) 0.45359237 kg
574
// ly (light year) 9.46073047e+15 m
575
// mHg (metre of mercury) 133322.387415 m-1.kg.s-2
576
// mile (mile) 1609.344 m
577
// n_mile (nautical mile (Imp)) 1853.184 m
578
// oz (ounce (avoirdupois)) 0.028349523125 kg
579
// pixel (pixel) 1 _
580
// sb (stilb) 10000 m-2.cd
581
// sq_arcmin (square arcmin) 8.46159499408e-08 sr
582
// sq_arcsec (square arcsec) 2.35044305391e-11 sr
583
// sq_deg (square degree) 0.000304617419787 sr
584
// statA (statampere) 3.33564095198e-10 A
585
// statC (statcoulomb) 3.33564095198e-10 s.A
586
// statF (statfarad) 1.11188031733e-12 m-2.kg-1.s4.A2
587
// statH (stathenry) 899377374000 m2.kg.s-2.A-2
588
// statOhm (statohm) 899377374000 m2.kg.s-3.A-2
589
// statV (statvolt) 299.792458 m2.kg.s-3.A-1
590
// debye (electric dipole moment) 10-18 statC.cm
591
// u (atomic mass unit) 1.661e-27 kg
592
// yd (yard) 0.9144 m
593
// yr (year) 31557600 s
594
// </srcblock>
595
//
596
// </example>
597
// </module>
598
599
// # Dummy class definition for extractor
600
// # class Quanta {};
601
602
}
// namespace casacore
603
604
#endif
casacore
For temporary backward namespace compatibility, use casa as alias for casacore.
Definition
mainpage.dox:28
Generated by
1.15.0