亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sgp4io.cpp

?? NORAD公布的兩行星歷數(shù)據(jù)計(jì)算軌道參數(shù)模型
?? CPP
字號(hào):
/*     ----------------------------------------------------------------
*
*                               sgp4io.cpp
*
*    this file contains a function to read two line element sets. while 
*    not formerly part of the sgp4 mathematical theory, it is 
*    required for practical implemenation.
*
*                            companion code for
*               fundamentals of astrodynamics and applications
*                                    2007
*                              by david vallado
*
*       (w) 719-573-2600, email dvallado@agi.com
*
*    current :
*               9 may 07  david vallado
*                           fix year correction to 57
*    changes :
*              27 mar 07  david vallado
*                           misc fixes to manual inputs
*              14 aug 06  david vallado
*                           original baseline
*       ----------------------------------------------------------------      */

#include "sgp4ext.h"    // for several misc routines
#include "sgp4unit.h"   // for sgp4init and getgravconst
#include "sgp4io.h"

#define pi 3.14159265358979323846

/* -----------------------------------------------------------------------------
*
*                           function twoline2rv
*
*  this function converts the two line element set character string data to
*    variables and initializes the sgp4 variables. several intermediate varaibles
*    and quantities are determined. note that the result is a structure so multiple
*    satellites can be processed simultaneously without having to reinitialize. the
*    verification mode is an important option that permits quick checks of any
*    changes to the underlying technical theory. this option works using a
*    modified tle file in which the start, stop, and delta time values are
*    included at the end of the second line of data. this only works with the
*    verification mode. the catalog mode simply propagates from -1440 to 1440 min
*    from epoch and is useful when performing entire catalog runs.
*
*  author        : david vallado                  719-573-2600    1 mar 2001
*
*  inputs        :
*    longstr1    - first line of the tle
*    longstr2    - second line of the tle
*    typerun     - type of run                    verification 'v', catalog 'c', 
*                                                 manual 'm'
*    typeinput   - type of manual input           mfe 'm', epoch 'e', dayofyr 'd'
*    whichconst  - which set of constants to use  72, 84
*
*  outputs       :
*    satrec      - structure containing all the sgp4 satellite information
*
*  coupling      :
*    getgravconst-
*    days2mdhms  - conversion of days to month, day, hour, minute, second
*    jday        - convert day month year hour minute second into julian date
*    sgp4init    - initialize the sgp4 variables
*
*  references    :
*    norad spacetrack report #3
*    vallado, crawford, hujsak, kelso  2006
  --------------------------------------------------------------------------- */

void twoline2rv
     (
      char      longstr1[130], char longstr2[130],
      char      typerun,  char typeinput,
      gravconsttype       whichconst,
      double& startmfe, double& stopmfe, double& deltamin,
      elsetrec& satrec
     )
     {
       const double deg2rad  =   pi / 180.0;         //   0.0174532925199433
       const double xpdotp   =  1440.0 / (2.0 *pi);  // 229.1831180523293

       double sec, mu, radiusearthkm, tumin, xke, j2, j3, j4, j3oj2;
       double startsec, stopsec, startdayofyr, stopdayofyr, jdstart, jdstop;
       int startyear, stopyear, startmon, stopmon, startday, stopday,
           starthr, stophr, startmin, stopmin;
       int cardnumb, numb, j;
       long revnum = 0, elnum = 0;
       char classification, intldesg[11], tmpstr[80];
       int year = 0;
       int mon, day, hr, minute, nexp, ibexp;

       getgravconst( whichconst, tumin, mu, radiusearthkm, xke, j2, j3, j4, j3oj2 );

       satrec.error = 0;

       // set the implied decimal points since doing a formated read
       // fixes for bad input data values (missing, ...)
       for (j = 10; j <= 15; j++)
           if (longstr1[j] == ' ')
               longstr1[j] = '_';

       if (longstr1[44] != ' ')
           longstr1[43] = longstr1[44];
       longstr1[44] = '.';
       if (longstr1[7] == ' ')
           longstr1[7] = 'U';
       if (longstr1[9] == ' ')
           longstr1[9] = '.';
       for (j = 45; j <= 49; j++)
           if (longstr1[j] == ' ')
               longstr1[j] = '0';
       if (longstr1[51] == ' ')
           longstr1[51] = '0';
       if (longstr1[53] != ' ')
           longstr1[52] = longstr1[53];
       longstr1[53] = '.';
       longstr2[25] = '.';
       for (j = 26; j <= 32; j++)
           if (longstr2[j] == ' ')
               longstr2[j] = '0';
       if (longstr1[62] == ' ')
           longstr1[62] = '0';
       if (longstr1[68] == ' ')
           longstr1[68] = '0';

       sscanf(longstr1,"%2d %5ld %1c %10s %2d %12lf %11lf %7lf %2d %7lf %2d %2d %6ld ",
                       &cardnumb,&satrec.satnum,&classification, intldesg, &satrec.epochyr,
                       &satrec.epochdays,&satrec.ndot, &satrec.nddot, &nexp, &satrec.bstar,
                       &ibexp, &numb, &elnum );

       if (typerun == 'v')  // run for specified times from the file
         {
           if (longstr2[52] == ' ')
               sscanf(longstr2,"%2d %5ld %9lf %9lf %8lf %9lf %9lf %10lf %6ld %lf %lf %lf \n",
                       &cardnumb,&satrec.satnum, &satrec.inclo,
                       &satrec.nodeo,&satrec.ecco, &satrec.argpo, &satrec.mo, &satrec.no,
                       &revnum, &startmfe, &stopmfe, &deltamin );
             else
               sscanf(longstr2,"%2d %5ld %9lf %9lf %8lf %9lf %9lf %11lf %6ld %lf %lf %lf \n",
                       &cardnumb,&satrec.satnum, &satrec.inclo,
                       &satrec.nodeo,&satrec.ecco, &satrec.argpo, &satrec.mo, &satrec.no,
                       & revnum, &startmfe, &stopmfe, &deltamin );
         }
         else  // simply run -1 day to +1 day or user input times
         {
           if (longstr2[52] == ' ')
               sscanf(longstr2,"%2d %5ld %9lf %9lf %8lf %9lf %9lf %10lf %6ld \n",
                       &cardnumb,&satrec.satnum, &satrec.inclo,
                       &satrec.nodeo,&satrec.ecco, &satrec.argpo, &satrec.mo, &satrec.no,
                       &revnum );
             else
               sscanf(longstr2,"%2d %5ld %9lf %9lf %8lf %9lf %9lf %11lf %6ld \n",
                       &cardnumb,&satrec.satnum, &satrec.inclo,
                       &satrec.nodeo,&satrec.ecco, &satrec.argpo, &satrec.mo, &satrec.no,
                       &revnum );
         }

       // ---- find no, ndot, nddot ----
       satrec.no   = satrec.no / xpdotp; //* rad/min
       satrec.nddot= satrec.nddot * pow(10.0, nexp);
       satrec.bstar= satrec.bstar * pow(10.0, ibexp);

       // ---- convert to sgp4 units ----
       satrec.a    = pow( satrec.no*tumin , (-2.0/3.0) );
       satrec.ndot = satrec.ndot  / (xpdotp*1440.0);  //* ? * minperday
       satrec.nddot= satrec.nddot / (xpdotp*1440.0*1440);

       // ---- find standard orbital elements ----
       satrec.inclo = satrec.inclo  * deg2rad;
       satrec.nodeo = satrec.nodeo  * deg2rad;
       satrec.argpo = satrec.argpo  * deg2rad;
       satrec.mo    = satrec.mo     * deg2rad;

       satrec.alta = satrec.a*(1.0 + satrec.ecco) - 1.0;
       satrec.altp = satrec.a*(1.0 - satrec.ecco) - 1.0;

       // ----------------------------------------------------------------
       // find sgp4epoch time of element set
       // remember that sgp4 uses units of days from 0 jan 1950 (sgp4epoch)
       // and minutes from the epoch (time)
       // ----------------------------------------------------------------

       // ---------------- temp fix for years from 1957-2056 -------------------
       // --------- correct fix will occur when year is 4-digit in tle ---------
       if (satrec.epochyr < 57)
           year= satrec.epochyr + 2000;
         else
           year= satrec.epochyr + 1900;

       days2mdhms ( year,satrec.epochdays, mon,day,hr,minute,sec );
       jday( year,mon,day,hr,minute,sec, satrec.jdsatepoch );

       // ---- input start stop times manually
       if ((typerun != 'v') && (typerun != 'c'))
         {
         // ------------- enter start/stop ymd hms values --------------------
           if (typeinput == 'e')
             {
               printf("input start prop year mon day hr min sec \n");
               // make sure there is no space at the end of the format specifiers in scanf!
               scanf( "%i %i %i %i %i %lf",&startyear, &startmon, &startday, &starthr, &startmin, &startsec);
               fflush(stdin);
               jday( startyear,startmon,startday,starthr,startmin,startsec, jdstart );

               printf("input stop prop year mon day hr min sec \n");
               scanf( "%i %i %i %i %i %lf",&stopyear, &stopmon, &stopday, &stophr, &stopmin, &stopsec);
               fflush(stdin);
               jday( stopyear,stopmon,stopday,stophr,stopmin,stopsec, jdstop );

               startmfe = (jdstart - satrec.jdsatepoch) * 1440.0;
               stopmfe  = (jdstop - satrec.jdsatepoch) * 1440.0;

               printf("input time step in minutes \n");
               scanf( "%lf",&deltamin );
             }
           // -------- enter start/stop year and days of year values -----------
           if (typeinput == 'd')
             {
               printf("input start year dayofyr \n");
               scanf( "%li %lf",&startyear, &startdayofyr );
               printf("input stop year dayofyr \n");
               scanf( "%li %lf",&stopyear, &stopdayofyr );

               days2mdhms ( startyear,startdayofyr, mon,day,hr,minute,sec );
               jday( startyear,mon,day,hr,minute,sec, jdstart );
               days2mdhms ( stopyear,stopdayofyr, mon,day,hr,minute,sec );
               jday( stopyear,mon,day,hr,minute,sec, jdstop );

               startmfe = (jdstart - satrec.jdsatepoch) * 1440.0;
               stopmfe  = (jdstop - satrec.jdsatepoch) * 1440.0;

               printf("input time step in minutes \n");
               scanf( "%lf",&deltamin );
             }
           // ------------------ enter start/stop mfe values -------------------
           if (typeinput == 'm')
             {
               printf("input start min from epoch \n");
               scanf( "%lf",&startmfe );
               printf("input stop min from epoch \n");
               scanf( "%lf",&stopmfe );
               printf("input time step in minutes \n");
               scanf( "%lf",&deltamin );
             }
         }

       // ------------ perform complete catalog evaluation, -+ 1 day ----------- 
       if (typerun == 'c')
         {
           startmfe = -1440.0;
           stopmfe  =  1440.0;
           deltamin =    10.0;
         }

       // ---------------- initialize the orbit at sgp4epoch -------------------
       sgp4init( whichconst, satrec.satnum, satrec.jdsatepoch-2433281.5, satrec.bstar,
                 satrec.ecco, satrec.argpo, satrec.inclo, satrec.mo, satrec.no,
                 satrec.nodeo, satrec);
    } // end twoline2rv


?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合视频在线观看| 亚洲在线一区二区三区| 久久综合五月天婷婷伊人| 337p亚洲精品色噜噜狠狠| 欧洲亚洲国产日韩| 在线亚洲高清视频| 欧美午夜片在线看| 欧美在线999| 欧美日韩一区在线| 欧美久久久久久久久中文字幕| 欧美日韩中文字幕一区| 欧美日韩一区二区电影| 这里是久久伊人| 日韩一级黄色片| 亚洲精品一区二区三区精华液| 日韩欧美黄色影院| 久久久久久久久99精品| 国产欧美日韩一区二区三区在线观看| 国产视频一区不卡| 国产精品国产a级| 亚洲一区二区影院| 日韩一区精品视频| 极品美女销魂一区二区三区免费| 久久99精品久久久久| 国产不卡视频在线观看| www.成人在线| 在线精品视频小说1| 宅男噜噜噜66一区二区66| 欧美mv和日韩mv的网站| 日本一区二区免费在线观看视频 | 久久亚洲影视婷婷| 欧美高清在线精品一区| 亚洲精品成人天堂一二三| 亚洲动漫第一页| 精品一区二区在线免费观看| 成人激情动漫在线观看| 日本韩国欧美一区| 欧美一级在线免费| 亚洲国产精品精华液2区45| 国产一区二区精品在线观看| a在线欧美一区| 91精品综合久久久久久| 国产婷婷色一区二区三区| 一区二区在线电影| 久久91精品久久久久久秒播 | 久久精品综合网| 亚洲人成精品久久久久| 日韩激情视频在线观看| 国产夫妻精品视频| 精品1区2区3区| 久久精品视频一区二区三区| 一区二区三区四区蜜桃| 捆绑调教一区二区三区| 99国内精品久久| 精品毛片乱码1区2区3区| 自拍偷拍国产精品| 紧缚捆绑精品一区二区| 欧美伊人久久久久久久久影院| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 色综合色综合色综合| 欧美一区二区三区免费观看视频 | 性感美女久久精品| 成人污视频在线观看| 在线不卡免费av| 亚洲欧美色综合| 国产一区二区三区在线观看免费视频 | 午夜精品福利一区二区三区av| 国产盗摄一区二区| 欧美一级高清大全免费观看| 亚洲欧美偷拍卡通变态| 国产精品伊人色| 欧美区在线观看| 亚洲欧美偷拍另类a∨色屁股| 国产麻豆欧美日韩一区| 91精品国产全国免费观看| 亚洲欧美国产77777| 国产福利精品导航| 日韩精品专区在线影院重磅| 亚洲第一久久影院| 99久久精品免费看国产| 久久久亚洲综合| 六月丁香婷婷久久| 欧美日韩国产小视频在线观看| 亚洲欧洲成人自拍| 风间由美一区二区三区在线观看 | 三级欧美韩日大片在线看| thepron国产精品| 国产亚洲欧美激情| 国产一区二区在线影院| 日韩欧美激情一区| 日本成人超碰在线观看| 欧美日韩高清影院| 亚洲一区二区三区国产| 色婷婷精品大视频在线蜜桃视频| 国产精品婷婷午夜在线观看| 国产盗摄视频一区二区三区| 久久久久久一级片| 国内久久婷婷综合| www亚洲一区| 国产自产v一区二区三区c| 欧美电影免费观看高清完整版在| 日韩经典中文字幕一区| 91精品一区二区三区久久久久久| 亚洲成av人影院| 3d动漫精品啪啪一区二区竹菊| 午夜电影网一区| 欧美久久一区二区| 奇米色777欧美一区二区| 在线不卡免费av| 久久爱另类一区二区小说| 精品欧美久久久| 国产精品亚洲午夜一区二区三区| 视频一区二区三区在线| 777午夜精品免费视频| 蜜桃av一区二区三区| 欧美电影免费观看高清完整版 | 亚洲成a人片综合在线| 91麻豆精品国产综合久久久久久| 首页国产欧美久久| 精品免费日韩av| 成人三级伦理片| 1024精品合集| 欧美色精品在线视频| 日本v片在线高清不卡在线观看| 日韩欧美一区在线观看| 国产精品资源在线看| 国产精品麻豆视频| 欧美专区日韩专区| 青娱乐精品视频| 欧美精品一区二区三区很污很色的 | 国产精品你懂的在线欣赏| 9i在线看片成人免费| 亚洲一区二区三区小说| 日韩欧美亚洲国产精品字幕久久久| 精品午夜一区二区三区在线观看 | 久久精品72免费观看| 日本一区二区综合亚洲| 日本韩国欧美一区| 久久99精品久久久久| 亚洲欧洲精品天堂一级 | 午夜a成v人精品| 26uuu另类欧美| 色吊一区二区三区| 美女诱惑一区二区| 国产精品无圣光一区二区| 欧美视频自拍偷拍| 国产一区在线精品| 亚洲精品日日夜夜| 日韩一区二区三区视频| 成人免费视频免费观看| 亚洲午夜久久久久久久久电影院 | 欧美卡1卡2卡| 国产91露脸合集magnet| 亚洲高清不卡在线| 国产亚洲欧美日韩日本| 欧美日韩成人高清| 国产成人av电影| 无码av免费一区二区三区试看 | 久久久不卡影院| 欧美在线制服丝袜| 国产精品一二三在| 日韩电影网1区2区| 亚洲欧美日韩中文字幕一区二区三区 | 欧美天堂亚洲电影院在线播放| 久久99精品网久久| 亚洲制服丝袜一区| 欧美韩国一区二区| 欧美另类videos死尸| 99热99精品| 黄色资源网久久资源365| 亚洲一区av在线| 国产精品视频九色porn| 欧美一级二级在线观看| 色狠狠综合天天综合综合| 高清成人在线观看| 精品在线观看免费| 午夜视频一区二区三区| 中文字幕在线不卡一区| 7777女厕盗摄久久久| 色综合婷婷久久| 成人综合在线观看| 韩国一区二区在线观看| 性做久久久久久久久| 一区二区三区精品久久久| 欧美国产亚洲另类动漫| 精品毛片乱码1区2区3区| 91麻豆精品国产91久久久久久| 日本电影欧美片| www.欧美日韩| 波多野结衣的一区二区三区| 国产一区福利在线| 精品中文av资源站在线观看| 日韩国产精品久久久| 亚洲午夜在线观看视频在线| 亚洲激情综合网| 自拍偷拍国产亚洲| 国产精品成人一区二区三区夜夜夜| 久久久综合网站| 国产亚洲欧美中文| 久久久久国产精品厨房|