1 |
{ RCSid $Id: skyfact.cal,v 1.1 2024/02/29 03:14:30 greg Exp $ } |
2 |
{ |
3 |
Sky factors taken from Preethem et al. 1999 Table 2 (appendix) |
4 |
|
5 |
Used to compute sky spectra |
6 |
|
7 |
2/28/2024 |
8 |
} |
9 |
interp_arr2`(i,x,f):(i+1-x)*f(i)+(x-i)*f(i+1); |
10 |
interp_arr`(x,f):if(x-1,if(f(0)-x,interp_arr2`(floor(x),x,f),f(f(0))),f(1)); |
11 |
|
12 |
S0`nm10(i):select(i,63.4,65.8,94.8,104.8,105.9,96.8, |
13 |
113.9,125.6,125.5,121.3,121.3,113.5,113.1,110.8,106.5,108.8, |
14 |
105.3,104.4,100,96,95.1,89.1,90.5,90.3,88.4,84,85.1,81.9,82.6, |
15 |
84.9,81.3,71.9,74.3,76.4,63.3,71,77,65.2,47.7,68.6,65); |
16 |
|
17 |
S1`nm10(i):select(i,38.5,35,43.4,46.3,43.9,37.1,36.7, |
18 |
35.9,32.6,27.9,24.3,20.1,16.2,13.2,8.6,6.1,4.2,1.9,0,-1.6,-3.5, |
19 |
-3.5,-5.8,-7.2,-8.6,-9.5,-10.9,-10.7,-12,-14,-13.6,-12,-13.3, |
20 |
-12.9,-10.6,-11.6,-12.2,-10.2,-7.8,-11.2,-10.4); |
21 |
|
22 |
S2`nm10(i):select(i,3,1.2,-1.1,-0.5,0.7,-1.2,-2.6, |
23 |
-2.9,-2.8,-2.6,-2.6,-1.8,-1.5,-1.3,-1.2,-1,0.5,0.3,0,0.2,0.5, |
24 |
2.1,3.2,4.1,4.7,5.1,6.7,7.3,8.6,9.8,10.2,8.3,9.6,8.5,7,7.6,8, |
25 |
6.7,5.2,7.4,6.8); |
26 |
|
27 |
S0(x) : interp_arr`((x-380)/10+1,S0`nm10); |
28 |
S1(x) : interp_arr`((x-380)/10+1,S1`nm10); |
29 |
S2(x) : interp_arr`((x-380)/10+1,S2`nm10); |
30 |
|
31 |
ybar`nm10(i):select(i, |
32 |
2.00E-05, 0.00027, 0.000396, 0.00121, 0.004, 0.0116, 0.023, |
33 |
0.038, 0.06, 0.09098, 0.13902, 0.20802, 0.323, 0.503, 0.71, |
34 |
0.862, 0.954, 0.9949501, 0.995, 0.952, 0.87, 0.757, 0.631, |
35 |
0.503, 0.381, 0.265, 0.175, 0.107, 0.061, 0.032, 0.017, |
36 |
0.00821, 0.004102, 0.001877941, 0.000897684, 0.000431955, |
37 |
0.000210375, 0.000104035, 5.24E-05, 2.68E-05, 1.39E-05); |
38 |
|
39 |
Nybar : ybar`nm10(0); |
40 |
|
41 |
ybar(x):interp_arr`((x-380)/10+1,ybar`nm10); |
42 |
|
43 |
funSum(f,n) : if(n-.5, f(n)+funSum(f,n-1), 0); |
44 |
|
45 |
ybarSum : funSum(ybar`nm10, Nybar); |
46 |
|
47 |
multSum(f1,f2,n) : if(n-.5, f1(n)*f2(n)+multSum(f1,f2,n-1), 0); |
48 |
|
49 |
photopicWeighted(sfn) : multSum(ybar`nm10, sfn, Nybar) / ybarSum; |
50 |
|
51 |
S0normf : photopicWeighted(S0`nm10); |
52 |
S1normf : photopicWeighted(S1`nm10); |
53 |
S2normf : photopicWeighted(S2`nm10); |
54 |
|
55 |
{ Multiplication factors for S1 and S2 } |
56 |
Mden(x,y) : 0.0241 + 0.2562*x - 0.7341*y; |
57 |
M1(x,y) : (-1.3515 - 1.7703*x + 5.9114*y) / Mden(x,y); |
58 |
M2(x,y) : (0.0300 - 31.4424*x + 30.0717*y) / Mden(x,y); |
59 |
|
60 |
RelSpecPower(wl,x,y) : S0(wl) + M1(x,y)*S1(wl) + M2(x,y)*S2(wl); |