up Back to Handbook


#include 
#include 
#include 
#define PI 3.14159265
double Tb, T0, T1, fr, sh,  M,  S, wl, phase;
/******** BRIGHTNESS TEMPERATURE OF MOON from radio data *************
 for wavelengths (wl) from  0 to 30 cm
 T0 = 206.06 + 1.6308 * wl - 0.043774 * wl^2 + 0.00043042 * wl^3
 m:  from 0 to 12 cm
 M = 1.2207 + 5.3788 * wl - 0.26528 * wl^2 + 0.0064374 * wl^3
 shift theta:
 sh = 42.745 + 1.042 * ln(wl)  for 0.1 to 1.2 cm
 sh = 26.402 + 18.625 * x - 6.3123 * x^2 + 0.70462 * x^3 for 1.2 to 4 cm
 sh = 45 for wl >4 cm
***********************************************************************/

main(int argc, char **argv)
{
      if (argc != 3) {printf("tb_moon  wl[cm] phase[deg] \n"); exit(0); }

       sh = 0; wl =0; T0=0; T1= 0;
      wl = atof( argv[1] );
      phase  = atof( argv[2] );
      fr = wl/30.;
      T0 = 206.06 + (1.6308  - 0.043774 * wl) * wl + 0.00043042 * wl*wl*wl ;
      if(  wl > 35.)  T0 = 225.;
      M = 1.2207 + 5.3788 * wl - 0.26528 * wl*wl + 0.0064374 * wl*wl*wl;
      if(  wl > 20.)  M = 50.;
      if( wl>0.1 || wl <= 1.29) sh = 42.745 + 1.042 * log(wl);
      if( wl>1.3 || wl <= 4.)  sh = 26.402 + 18.625 * wl - 6.3123 * wl*wl + 0.70462 * wl*wl*wl;
      if(  wl > 4.)   sh = 45.;

      Tb = T0 + T0/M * cos( (phase-sh)/180. *PI) ;
      printf("Tb of Moon = %5.1f K at %4.2f cm \n", Tb, wl);
exit(0);
}