TLE(两行轨道数据)卫星星历中时间转换方法(C#)

C#对星历第一行中08264.51782528与时间格式的转换:此处用19231.87932542举例

19231.87932542-->2019/8/19 21:06:13

DateTime datetime=Convert.ToDateTime("2000-01-01");

double days=double.Parse(“231.87932542”);

dateTime=datetime.Addyears(19);

datetime=datetime.AddDays(days).AddDays(-1);

2019/8/19 21:06:13-->19231.87932542

首先计算此日期是一年中的第几天:

DateTime  t1=Convert.ToDateTime("2019-08-19");

int year=t1.year;

DateTime   tbase=Convert.ToDateTime(string.Format("{0}-1-1"),year);

TimeSpan ts=t1-tbase;

int d=ts.Days+1;-------------------d=231

其次计算该时刻占一天的份额:

int second=21*60*60+6*60+13;

double ratio=second/24*60*60=0.87931713--计算出来有所误差

最后组合:

年份+第多少天+一天的占比=19231.87931713

TLE星历格式组成:

卫星星历的结构为三行,首行数据为卫星名称;后面两行则存储了卫星相关数据,每行69个字符,包括0~9、A~Z(大写)、空格、点和正负号

示例分析:

示例:

ISS (ZARYA)
1 25544U 98067A   08264.51782528 -.00002182  00000-0 -11606-4 0  2927
2 25544  51.6416 247.4627 0006703 130.5360 325.0288 15.72125391563537

TLE(两行轨道数据)卫星星历中时间转换方法(C#)_第1张图片TLE(两行轨道数据)卫星星历中时间转换方法(C#)_第2张图片

TLE(两行轨道数据)卫星星历中时间转换方法(C#)_第3张图片

 

你可能感兴趣的:(TLE(两行轨道数据)卫星星历中时间转换方法(C#))