文号
867794
阅读
22521
回复
3
收藏
2
【SORT】月球厘米波段射电辐射流量密度公式的获得与计算程序编写
邢 珈凡1
1. 潍坊文华学校, 山东潍坊
2019/12/22
原创
IP:江苏
摘要:月球亮温度计算

1、闲扯两句

略。

2、正儿八经的序言+理论

据《射电天文工具》,月球是一个在射电波段几乎严格遵守瑞利金斯定律的辐射源,所以它常被用于天线和射电望远镜的标定与测试,或许也可以用作电离层监测。所以,计算其亮温度和流量密度就变得十分重要。

月球的亮温度与月相和频率密切相关,在厘米波段的几个计算公式可以见下面的文献:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

其计算公式形式为:T=T0+Txcos(I-i),式中T为亮温度,T0为不变的亮温度分量,Tx为改变的亮温度分量,I为月球(光学波段的)相位角,i为射电相比光学的相位延迟。

但是我只查到了有限的几个频率上的i、T0与Tx值,所以想要计算不同频率上月球的亮温度就遇到了一定困难。下面我们定性的分析一下这三个参数随波长的变化。首先是T0,这个基本上与波长关系不大,或许可以用在某一范围内递减的一次函数/二次函数修正一下瑞利金斯公式与普朗克方程的误差。然后是i和Tx,这个应该与电磁波的穿透深度及月球各层的热特性有关。(或许可以通过月面不同波段的观测数据反推月球的一些特性,这就是后话了,又是个深坑,一时半会填不上。)不管了不管了,全用各类函数凑一波数就算完了……

设波长为l,根据上文凑出来的 

T0=-0.0074*l*l+1.7919*l+208.6803

Tx=4.82*pow(2.718,2.732/x)

i统一认为是40。

然后,根据瑞利金斯公式,我们还需要一个参数:月亮的立体角。为了弄明白这个立体角是啥,我费了点功夫。最后找到这样一个公式: 1576984990850.png 其中,θ是月亮的角半径,可以直接从相关软件上查,其计算虽然很简单但是我懒得推了。就这样吧。

3、程序实现

不需要太多的废话,直接上代码。

编程环境:Dev-C++,win7,EXE直接使用Dev编译得到,apk使用C4Droid编译得到。输入参数分别为月球相位角,月球角直径,观测波长,空格分割,单位分别是度,度,厘米。输出为两行,亮温度和通量密度,单位为K与Jy。为了方便以后搞正儿八经的综合性计算程序,把输入输出搞得简洁一些。有一段时间没有写C了,手生。

代码~

#include<stdio.h>

#include<math.h>

#include<iostream>

using namespace std;

const long double degtorad=180/(atan(1)*4);

const long double k=1.38E3;

double T0(double l){

return -0.0074*l*l+1.7919*l+208.6803;

}

double Tx(double l){

return 4.82*pow(2.718,2.732/l);

}

double i(double x){

return 40;

}

int main(){

double I,l,a;

scanf("%lf%lf%lf",&I,&a,&l);

double T=T0(l)+Tx(l)*cos((I-i(l))/degtorad);

printf("%f\n",T);

double omg=8*atan(1)*(1-cos(a/degtorad));

double S=omg*2*k*T/(l*l*1E-4);

printf("%f\n",S);

}

经测试,与射电天文工具一书上的数据基本一致。

下面是源代码和exe文件。

attachment icon 亮温度计算.exe 1.86MB EXE 52次下载

attachment icon 亮温度计算.cpp 0.53KB CPP 49次下载


+5
科创币
虎哥
2019/12/27
姿瓷
3
6年11个月前IP:北京
867795
1楼

不把数据放上来看一哈吗

引用
评论
154454496作者
6年11个月前IP:江苏
867797
2楼

attachment icon unknown.apk 746.06KB APK 56次下载

这一软件的apk安装包

15769901826730.19939638353856992.jpg

射电天文工具的数据

后期还会编制其他天体的计算程序。

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的