资源简介
此包中的文件提供SGP4和SDP4的c++算法实现。这两个轨道模型分别用于近地对象和深空对象,广泛应用于卫星跟踪软件,能够产生非常准确的结果。
代码片段和文件信息
//
// cEci.cpp
//
// Copyright (c) 2002-2013 Michael F. Henry
// Version 01/2013
//
#include “stdafx.h“
#include “globals.h“
#include “cEci.h“
#include “coord.h“
namespace Zeptomoby
{
namespace OrbitTools
{
//////////////////////////////////////////////////////////////////////
// Class cEci
//////////////////////////////////////////////////////////////////////
cEci::cEci(const cVector &pos const cVector &vel)
: m_Position (pos)
m_Velocity (vel)
{
}
// Creates a instance of the class from geodetic coordinates.
//
// Assumes the Earth is an oblate spheroid.
// Reference: The 1992 Astronomical Almanac page K11
// Reference: www.celestrak.com (Dr. T.S. Kelso)
cEci::cEci(const cGeo& geo cJulian date)
{
double lat = geo.LatitudeRad();
double lon = geo.LongitudeRad();
double alt = geo.AltitudeKm();
// Calculate Local Mean Sidereal Time (theta)
double theta = date.ToLmst(lon);
double c = 1.0 / sqrt(1.0 + F * (F - 2.0) * sqr(sin(lat)));
double s = sqr(1.0 - F) * c;
double achcp = (XKMPER_WGS72 * c + alt) * cos(lat);
m_Position.m_x = achcp * cos(theta); // km
m_Position.m_y = achcp * sin(theta); // km
m_Position.m_z = (XKMPER_WGS72 * s + alt) * sin(lat); // km
m_Position.m_w = sqrt(sqr(m_Position.m_x) + // range km
sqr(m_Position.m_y) +
sqr(m_Position.m_z));
// Determine velocity components due to earth‘s rotation
double mfactor = TWOPI * (OMEGA_E / SEC_PER_DAY);
m_Velocity.m_x = -mfactor * m_Position.m_y; // km / sec
m_Velocity.m_y = mfactor * m_Position.m_x; // km / sec
m_Velocity.m_z = 0.0; // km / sec
m_Velocity.m_w = sqrt(sqr(m_Velocity.m_x) + // range rate km/sec^2
sqr(m_Velocity.m_y));
}
//////////////////////////////////////////////////////////////////////
// Class cEciTime
//////////////////////////////////////////////////////////////////////
cEciTime::cEciTime(const cEci &eci cJulian date) :
cEci(eci)
m_Date(date)
{
}
cEciTime::cEciTime(const cVector &pos const cVector &vel cJulian date) :
cEci(pos vel)
m_Date(date)
{
}
cEciTime::cEciTime(const cGeo &geo cJulian date)
: cEci(geo date)
m_Date(date)
{
}
cEciTime::cEciTime(const cGeoTime &geo)
: cEci(geo geo.Date())
m_Date(geo.Date())
{
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-01-12 08:10 orbitTools\core\
文件 2462 2013-01-05 16:24 orbitTools\core\cEci.cpp
文件 1403 2013-01-05 16:29 orbitTools\core\cEci.h
文件 7655 2012-12-09 09:09 orbitTools\core\cJulian.cpp
文件 2535 2013-01-05 16:25 orbitTools\core\cJulian.h
文件 3297 2013-01-09 21:37 orbitTools\core\coord.cpp
文件 2905 2013-01-09 21:18 orbitTools\core\coord.h
文件 9352 2011-10-25 20:43 orbitTools\core\core.vcxproj
文件 2525 2011-09-25 14:39 orbitTools\core\core.vcxproj.filters
文件 379 2013-01-05 08:37 orbitTools\core\coreLib.h
文件 3908 2012-12-09 08:00 orbitTools\core\cSite.cpp
文件 1147 2012-12-09 08:00 orbitTools\core\cSite.h
文件 11883 2013-01-02 21:04 orbitTools\core\cTLE.cpp
文件 5256 2012-12-09 08:59 orbitTools\core\cTLE.h
文件 1802 2010-12-18 15:47 orbitTools\core\cVector.cpp
文件 745 2013-01-05 19:12 orbitTools\core\cVector.h
文件 1087 2011-05-18 21:30 orbitTools\core\exceptions.h
文件 1424 2010-12-18 15:47 orbitTools\core\globals.cpp
文件 2196 2013-01-05 16:29 orbitTools\core\globals.h
文件 8462 2013-01-11 20:02 orbitTools\core\revHistory.txt
文件 291 2010-12-18 15:47 orbitTools\core\stdafx.cpp
文件 244 2013-01-05 16:29 orbitTools\core\stdafx.h
目录 0 2013-01-12 08:10 orbitTools\orbit\
文件 9350 2012-12-09 08:10 orbitTools\orbit\cNoradba
文件 1485 2012-12-09 09:14 orbitTools\orbit\cNoradba
文件 22468 2013-01-12 07:51 orbitTools\orbit\cNoradSDP4.cpp
文件 2212 2012-12-09 08:14 orbitTools\orbit\cNoradSDP4.h
文件 3790 2013-01-05 19:13 orbitTools\orbit\cNoradSGP4.cpp
文件 830 2012-12-09 08:14 orbitTools\orbit\cNoradSGP4.h
文件 6486 2013-01-05 16:30 orbitTools\orbit\cOrbit.cpp
文件 3384 2012-12-09 08:15 orbitTools\orbit\cOrbit.h
............此处省略15个文件信息
评论
共有 条评论