資源簡介
Norad公布的TLE兩行星歷的計算源碼,采用SGP4和SDP4模型,親測可用,添加了自己的代碼,關鍵地方中文注釋,能迅速的由兩行星歷數據計算出每個時間的衛星軌道位置,俯仰角,并可轉換成大地坐標經緯度。本人找了很久,對于沒有學過天體物理學測量學的,可以用這個,相當于一個黑盒子,計算精度很高,8分決定超值。

代碼片段和文件信息
//
//?cEci.cpp
//
//?Copyright?(c)?2002-2003?Michael?F.?Henry
//
#include?“stdafx.h“
#include?“cEci.h“
#include?“globals.h“
//////////////////////////////////////////////////////////////////////
//?cEci?Class
//////////////////////////////////////////////////////////////////////
cEci::cEci(const?cVector?&pos?
???????????const?cVector?&vel?
???????????const?cJulian?&date
???????????bool??IsAeUnits?/*?=?true?*/)
{
???m_pos??????=?pos;
???m_vel??????=?vel;
???m_date?????=?date;
???m_VecUnits?=?(IsAeUnits???UNITS_AE?:?UNITS_NONE);
}
//////////////////////////////////////////////////////////////////////
//?cEci(cCoordGeo&?cJulian&)
//?Calculate?the?ECI?coordinates?of?the?location?“geo“?at?time?“date“.
//?Assumes?geo?coordinates?are?km-based.
//?Assumes?the?earth?is?an?oblate?spheroid?as?defined?in?WGS?‘72.
//?Reference:?The?1992?Astronomical?Almanac?page?K11
//?Reference:?www.celestrak.com?(Dr.?TS?Kelso)
cEci::cEci(const?cCoordGeo?&geo?const?cJulian?&date)
{
???m_VecUnits?=?UNITS_KM;
???double?mfactor?=?TWOPI?*?(OMEGA_E?/?SEC_PER_DAY);
???double?lat?=?geo.m_Lat;
???double?lon?=?geo.m_Lon;
???double?alt?=?geo.m_Alt;
???//?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_date?=?date;
???m_pos.m_x?=?achcp?*?cos(theta);???????????????//?km
???m_pos.m_y?=?achcp?*?sin(theta);???????????????//?km
???m_pos.m_z?=?(XKMPER_WGS72?*?s?+?alt)?*?sin(lat);???//?km
???m_pos.m_w?=?sqrt(sqr(m_pos.m_x)?+?
????????????????????sqr(m_pos.m_y)?+?
????????????????????sqr(m_pos.m_z));????????????//?range?km
???m_vel.m_x?=?-mfactor?*?m_pos.m_y;????????????//?km?/?sec
???m_vel.m_y?=??mfactor?*?m_pos.m_x;
???m_vel.m_z?=?0.0;
???m_vel.m_w?=?sqrt(sqr(m_vel.m_x)?+????????????//?range?rate?km/sec^2
????????????????????sqr(m_vel.m_y));
}
//////////////////////////////////////////////////////////////////////////////
//?toGeo()
//?Return?the?corresponding?geodetic?position?(based?on?the?current?ECI
//?coordinates/Julian?date).
//?Assumes?the?earth?is?an?oblate?spheroid?as?defined?in?WGS?‘72.
//?Side?effects:?Converts?the?position?and?velocity?vectors?to?km-based?units.
//?Reference:?The?1992?Astronomical?Almanac?page?K12.?
//?Reference:?www.celestrak.com?(Dr.?TS?Kelso)
cCoordGeo?cEci::toGeo()
{
???ae2km();?//?Vectors?must?be?in?kilometer-based?units
???double?theta?=?AcTan(m_pos.m_y?m_pos.m_x);
???double?lon???=?fmod(theta?-?m_date.toGMST()?TWOPI);
???
???if?(lon?0.0)?
??????lon?+=?TWOPI;??//?“wrap“?negative?modulo
???double?r???=?sqrt(sqr(m_pos.m_x)?+?sqr(m_pos.m_y));
???double?e2??=?F?*?(2.0?-?F);
???double?lat?=?AcTan(m_pos.m_z?r);
???const?double?delta?=?1.0e-07;
???double?phi;
???double?c;
???do???
???{
??????phi?=?lat;
??????c???=?1.0?/?sqrt(1.0?-?e2?*?sqr(sin(phi)));
??????lat?=?AcT
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3642??2007-08-07?19:49??norad\cEci.cpp
?????文件???????1344??2007-08-07?19:49??norad\cEci.h
?????文件???????7380??2009-01-14?22:47??norad\cJulian.cpp
?????文件???????2467??2007-08-07?19:49??norad\cJulian.h
?????文件???????8951??2009-01-02?13:30??norad\cNoradba
?????文件???????1655??2007-08-07?19:49??norad\cNoradba
?????文件??????24813??2007-08-09?21:33??norad\cNoradSDP4.cpp
?????文件???????3238??2007-08-07?19:49??norad\cNoradSDP4.h
?????文件???????4031??2007-08-09?21:33??norad\cNoradSGP4.cpp
?????文件????????690??2007-08-07?19:49??norad\cNoradSGP4.h
?????文件????????672??2007-08-07?19:49??norad\coord.cpp
?????文件???????1131??2007-08-07?19:49??norad\coord.h
?????文件???????4703??2009-01-02?22:27??norad\cOrbit.cpp
?????文件???????3292??2009-01-02?13:30??norad\cOrbit.h
?????文件???????4806??2007-08-07?19:49??norad\cSite.cpp
?????文件???????1059??2007-08-07?19:49??norad\cSite.h
?????文件??????12359??2007-08-07?19:49??norad\cTLE.cpp
?????文件???????5241??2007-08-07?19:49??norad\cTLE.h
?????文件???????1767??2007-08-07?19:49??norad\cVector.cpp
?????文件????????761??2007-08-07?19:49??norad\cVector.h
?????文件???????1391??2007-08-07?19:49??norad\globals.cpp
?????文件???????2165??2007-08-07?19:49??norad\globals.h
?????文件????1788928??2012-12-21?15:07??norad\norad.ncb
?????文件????????870??2012-12-21?14:57??norad\norad.sln
????..A..H.??????7680??2012-12-21?15:07??norad\norad.suo
?????文件???????5444??2012-12-21?14:57??norad\norad.vcproj
?????文件???????1403??2012-12-21?15:07??norad\norad.vcproj.LBDZ-11281449.Administrator.user
?????文件???????2171??2009-01-03?09:29??norad\readme.txt
?????文件?????642384??2009-01-25?17:46??norad\Release\norad.lib
????..AD...?????????0??2009-01-25?17:46??norad\Release
............此處省略32個文件信息
- 上一篇:Yale 人臉數據庫
- 下一篇:快遞管理系統
評論
共有 條評論