Skip to content

Commit 767c9d8

Browse files
FIREFLY-1694: Added CGS units for flux density for nu and lambda
1 parent 1417973 commit 767c9d8

File tree

1 file changed

+42
-9
lines changed

1 file changed

+42
-9
lines changed

src/firefly/js/charts/dataTypes/SpectrumUnitConversion.js

Lines changed: 42 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,11 @@ export function getUnitConvExpr({cname, from, to, alias, args=[]}) {
4444
*/
4545
export function getUnitInfo(unit, cname) {
4646
cname = cname?.match(/^"(.+)"$/)?.[1] ?? cname; // remove enclosing double-quotes if exists
47+
// TODO: account aliases in the lookup
4748
const meas = Object.values(UnitXref.measurement).find((m) => m?.options.find( (o) => o?.value === unit)) || {};
4849
let label = meas.label ? sprintf(meas.label, unit) : '';
50+
51+
// use column name (or expression) if couldn't recognize the unit in options of each measurement
4952
if (!label && cname) {
5053
label = cname + (unit ? `[${unit}]` : '');
5154
}
@@ -69,20 +72,28 @@ const UnitXref = {
6972
options: [{value: 'A'}, {value: 'nm'}, {value:'um'}, {value: 'mm'}, {value:'cm'}, {value:'m'}],
7073
label: 'λ [%s]'
7174
},
72-
flux_density: {
73-
options: [{value:'W/m^2/Hz'}, {value:'Jy'}],
75+
flux_density_frequency: {
76+
options: [{value:'W/m^2/Hz'}, {value:'erg/s/cm^2/Hz'}, {value:'Jy'}],
7477
label: 'F𝛎 [%s]'
7578
},
79+
flux_density_wavelength: {
80+
options: [{value:'W/m^2/um'}, {value:'erg/s/cm^2/A'}],
81+
label: 'Fλ [%s]'
82+
},
7683
inband_flux: {
7784
options: [{value:'W/m^2'}, {value:'Jy*Hz'}],
7885
label: '𝛎*F𝛎 [%s]'
7986
}
8087
},
8188

89+
aliases: {
90+
//TODO: add Angstrom, dot product notations of flux density, etc.
91+
},
92+
8293
// Unit Conversions follow
8394
// "outer" layer is the unit you *have*; "inner" layer is the unit you *want*
8495

85-
// frequency
96+
// frequency -------------
8697
Hz : {
8798
Hz : '%s',
8899
KHz : '%s / 1000.0',
@@ -107,7 +118,7 @@ const UnitXref = {
107118
MHz : '%s * 1000.0',
108119
GHz : '%s'
109120
},
110-
// wavelength
121+
// wavelength -------------
111122
A : {
112123
A : '%s',
113124
nm : '%s / 10',
@@ -156,25 +167,47 @@ const UnitXref = {
156167
cm : '%s * 100',
157168
m : '%s'
158169
},
159-
// flux density
170+
// flux density in frequency space -------------
160171
'W/m^2/Hz' : {
161172
'W/m^2/Hz' : '%s',
173+
'erg/s/cm^2/Hz': '%s * 1.0E+3',
162174
Jy : '%s * 1.0E+26',
163175
},
176+
'erg/s/cm^2/Hz' : {
177+
'W/m^2/Hz': '%s / 1.0E+3',
178+
'erg/s/cm^2/Hz' : '%s',
179+
Jy : '%s * 1.0E+23',
180+
},
164181
Jy : {
165-
'W/m^2/Hz' : '%s / 1.0E+26',
182+
'W/m^2/Hz' : '%s / 1.0E+26', //SI units
183+
'erg/s/cm^2/Hz': '%s / 1.0E+23', //CGS units
166184
Jy : '%s',
167185
},
168-
// inband flux
186+
// flux density in wavelength space -------------
187+
'erg/s/cm^2/A' : {
188+
'erg/s/cm^2/A' : '%s',
189+
'W/m^2/um': '%s * 10'
190+
},
191+
'W/m^2/um' : {
192+
'erg/s/cm^2/A' : '%s / 10',
193+
'W/m^2/um' : '%s',
194+
},
195+
// inband flux (independent of frequency or wavelength) -------------
169196
'W/m^2' : {
170197
'W/m^2' : '%s',
198+
'erg/s/cm^2' : '%s * 1.0E+3',
171199
'Jy*Hz' : '%s * 1.0E+26',
172200
},
201+
'erg/s/cm^2' : {
202+
'W/m^2' : '%s / 1.0E+3',
203+
'erg/s/cm^2' : '%s',
204+
'Jy*Hz' : '%s * 1.0E+23',
205+
},
173206
'Jy*Hz' : {
174207
'W/m^2' : '%s / 1.0E+26',
208+
'erg/s/cm^2' : '%s / 1.0E+23',
175209
'Jy*Hz' : '%s',
176-
}
177-
210+
},
178211
};
179212

180213
/**

0 commit comments

Comments
 (0)