Differential Photometry Transformation Process (example SAS program)

 

/* observe Landolt standard stars close to the meridian */

data standards;

length standard $9;

infile datalines missover;

input standard $ obsdate yymmdd8. /

bs filter1 $ b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 /

vs filter2 $ v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 /

is filter3 $ i1 i2 i3 i4 i5 i6 i7 i8 i9 i10;

bi = mean(of b1-b10);

vi = mean(of v1-v10);

ii = mean(of i1-i10);

bpe = stderr(of b1-b10);

vpe = stderr(of v1-v10);

ipe = stderr(of i1-i10);

b_vi = bi - vi;

v_ii = vi - ii;

b_vs = bs - vs;

v_is = vs - is;

vs_vi = vs - vi;

/* add observations over multiple nights to improve accuracy */

datalines;

SA108_702 20070610

8.767 B -0.419 -0.416 -0.422 -0.422 -0.421 -0.419

8.208 V -1.341 -1.340 -1.352 -1.344 -1.349 -1.347

7.580 I -0.810

HD157881 20070610

8.896 B -0.452 -0.441 -0.444 -0.457 -0.450 -0.452 -0.445 -0.450 -0.436 -0.438

7.540 V -2.004 -2.013 -2.001 -2.001 -1.988 -1.998 -1.993 -1.996 -1.999

5.918 I -2.452 -2.467 -2.464 -2.473 -2.459 -2.465 -2.472 -2.473 -2.463

HD160233 20070610

9.041 B -0.097 -0.102 -0.099 -0.102 -0.105 -0.109

9.095 V -0.536 -0.536 -0.540 -0.539 -0.533 -0.540

9.121 I 0.677 0.671

HD170493 20070610

9.113 B -0.168 -0.176 -0.177 -0.174 -0.164

8.037 V -1.496 -1.503 -1.502 -1.504 -1.501 -1.485 -1.494 -1.516 -1.494 -1.507

6.894 I -1.499 -1.497 -1.487 -1.506 -1.485 -1.493 -1.493 -1.470 -1.479 -1.481

HD173637 20070610

9.611 B 0.563 0.554 0.559 0.568

9.375 V -0.168 -0.161 -0.161

9.020 I 0.633 0.633 0.633 0.637

HD184914 20070610

9.350 B 0.107 0.109 0.101 0.106

8.170 V -1.346 -1.335 -1.344 -1.322 -1.347 -1.337 -1.343 -1.346 -1.340

6.930 I -1.423 -1.423 -1.419 -1.419 -1.433 -1.424 -1.438 -1.432 -1.431

run;

 

proc print data=standards; /* BVI photometry */

run;

 

symbol1 i=rl v=circle;

 

proc gplot data=standards;

plot b_vi*b_vs / regeqn;

run;

 

proc reg data=standards outest=bv;

model b_vi = b_vs / edf;

run;

 

data_null_;

set bv;

Tbv = 1 / b_vs;

call symput('Tbv',put(Tbv,8.6));

run;

 

proc gplot data=standards;

plot v_ii*v_is / regeqn;

run;

 

proc reg data=standards outest=vi;

model v_ii = v_is / edf;

run;

 

data_null_;

set vi;

Tvi = 1 / v_is;

call symput('Tvi',put(Tvi,8.6));

run;

 

proc gplot data=standards;

plot vs_vi*v_is / regeqn;

run;

 

proc reg data=standards outest=v;

model vs_vi = v_is / edf;

run;

 

data_null_;

set v;

Tv = v_is;

call symput('Tv',put(Tv,8.6));

run;

 

%put Tbv = &Tbv;

 

%put Tvi = &Tvi;

 

%put Tv = &Tv;

 

/* Now process variable star & comparison star observations and */

/* transform to the standard system */

data varcomp;

infile datalines missover;

input comparison $ /

bc cfilter1 $ cb1 cb2 cb3 cb4 cb5 cb6 cb7 cb8 cb9 cb10 /

vc cfilter2 $ cv1 cv2 cv3 cv4 cv5 cv6 cv7 cv8 cv9 cv10 /

ic cfilter3 $ ci1 ci2 ci3 ci4 ci5 ci6 ci7 ci8 ci9 ci10/

variable $ obsdate yymmdd8. /

vfilter1 $ vb1 vb2 vb3 vb4 vb5 vb6 vb7 vb8 vb9 vb10 /

vfilter2 $ vv1 vv2 vv3 vv4 vv5 vv6 vv7 vv8 vv9 vv10 /

vfilter3 $ vi1 vi2 vi3 vi4 vi5 vi6 vi7 vi8 vi9 vi10;

bci = mean(of cb1-cb10);

vci = mean(of cv1-cv10);

ici = mean(of ci1-ci10);

bcpe = stderr(of cb1-cb10);

vcpe = stderr(of cv1-cv10);

icpe = stderr(of ci1-ci10);

bvi = mean(of vb1-vb10);

vvi = mean(of vv1-vv10);

ivi = mean(of vi1-vi10);

bvpe = stderr(of vb1-vb10);

vvpe = stderr(of vv1-vv10);

ivpe = stderr(of vi1-vi10);

bpe = sqrt(bvpe**2 + bcpe**2); /* probable error in measured Δm only */

vpe = sqrt(vvpe**2 + vcpe**2); /* does not include errors in */

ipe = sqrt(ivpe**2 + icpe**2); /* transformation equation fit */

B_notrans = bc + (bvi-bci);

V_notrans = vc + (vvi-vci);

I_notrans = ic + (ivi-ici);

dbmvi = (bvi-bci) - (vvi-vci);

tdbmvi = &Tbv*dbmvi;

dvmii = (vvi-vci) - (ivi-ici);

tdvmii = &Tvi*dvmii;

vt = (vvi-vci) + &Tv*tdvmii;

bt = tdbmvi + vt;

it = vt - tdvmii;

B = bc + bt;

V = vc + vt;

I = ic + it;

put B= V= I=;

datalines;

COMP2 20070610

10.872 B 1.487 1.499 1.508 1.502

9.661 V 0.064 0.057 0.060 0.063 0.063 0.071 0.067

8.466 I 0.065 0.055 0.051 0.054 0.052 0.065 0.059 0.062

RRBoo 20070610

B 6.304 7.210 6.308 6.945

V 4.783 4.948 4.920 4.935 4.787 4.933 4.866

I 1.295 1.283 1.278 1.280 1.285 1.292 1.280 1.295

run;

 

proc print data=varcomp;

run;

 

/* print standard magnitudes with probable error (but see note above) and */

/* untransformed magnitudes for comparison purposes */

proc print data=varcomp;

var B bpe V vpe I ipe B_notrans V_notrans I_notrans;

run;

 

David Oesper

7-8-07