粗略计算移动卫星对高建筑的拍摄误差
代码中的T设置为了3.3天,参考的是吉林1号的运转周期
#include<bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
//万有引力常量
const double G = 6.67*1e-11;
//地球质量
const double M = 5.965*1e24;
//地球半径
const double GR = 6371393;
//自转角速度
const double GW = 2*pi/(24*3600);
double Geostationary_Satellite_R()
{
//计算同步卫星高度
//GMm/r^2 = mw^2r -> r^3=GM/w^2
double r3 = G*M/(pow(GW,2));
double r = pow(r3, 1.0/3);
return r;
}
double Satellite_R(double T)
{
//根据周期T,单位为天,算出卫星的高度
double w = 2*pi/(T*24*3600);
double r3 = G*M/(pow(w,2));
double r = pow(r3, 1.0/3);
return r;
}
double pre_hour_dx(double T, double building_h, double hour)
{
double w = 2*pi/(T*24*3600);
double satellite_r = Satellite_R(T);
double building_r = building_h+GR;
double dh = satellite_r-building_r;
//同步卫星hour时间内经过的距离
double move_x = w*satellite_r*hour*3600;
//move_x/dh==dx/building_h
double dx = move_x/dh*building_h;
return dx;
}
int main()
{
//设一个400m的高楼
double building_h = 400;
double hour=1.0/6;
double T=3.3;
double dx = pre_hour_dx(T, building_h, hour);
printf("%.9f\n", dx);
return 0;···
}
答案:
5.675341064
即,吉林1号,对一个400m的建筑,在10分钟的两次拍摄,投影到地面距离误差可达5.675341064m。
一般马路一个车道宽为3.75m,双车道为7.5m。
也就是说,吉林一号,10分钟的视频记录,一条路就有可能因为高建筑的遮挡从完全可见到消失不见。
一般一层楼为2.8m,居民楼按30层计算,30 * 2.8 = 84m
10分钟的偏移为:1.191817304m
说明,吉林1号,在面对普通城市的楼房,也要考虑这个偏移问题。
但如果是处理底楼房,或野外的目标,基本不会产生太大偏差。