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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? readrinexobsgeom.cpp

?? linux的gps應用
?? CPP
字號:
//============================================================================////  This file is part of GPSTk, the GPS Toolkit.////  The GPSTk is free software; you can redistribute it and/or modify//  it under the terms of the GNU Lesser General Public License as published//  by the Free Software Foundation; either version 2.1 of the License, or//  any later version.////  The GPSTk is distributed in the hope that it will be useful,//  but WITHOUT ANY WARRANTY; without even the implied warranty of//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the//  GNU Lesser General Public License for more details.////  You should have received a copy of the GNU Lesser General Public//  License along with GPSTk; if not, write to the Free Software Foundation,//  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA//  //  Copyright 2004, The University of Texas at Austin////============================================================================//============================================================================////This software developed by Applied Research Laboratories at the University of//Texas at Austin, under contract to an agency or agencies within the U.S. //Department of Defense. The U.S. Government retains all rights to use,//duplicate, distribute, disclose, or release this software. ////Pursuant to DoD Directive 523024 //// DISTRIBUTION STATEMENT A: This software has been approved for public //                           release, distribution is unlimited.////=============================================================================#include <string>#include <octave/oct.h>#include "oct-map.h"#include "RinexObsBase.hpp"#include "RinexObsData.hpp"#include "RinexObsHeader.hpp"#include "RinexObsStream.hpp"#include "RinexNavBase.hpp"#include "RinexNavData.hpp"#include "RinexNavHeader.hpp"#include "RinexNavStream.hpp"#include "BCEphemerisStore.hpp"using namespace std;DEFUN_DLD (readRinexObsGeom, args, , "\n[header, obs, azel]=readRinexObsGeom(obsfile,navfile)\n\nReads RINEX obs file and returns it as a matrix.\nAlso computes azimuth and elevation for each obs.\n"){   Matrix obsMatrix, azelMatrix;   gpstk::BCEphemerisStore bcestore;   int numObsTypes=-1, numPrns;   Octave_map headerStruct;   if (args.length() != 2)   {      print_usage("readRinexObsGeom");      octave_value_list retval;      retval(0) = octave_value(Matrix());      retval(1) = octave_value(Matrix());      retval(2) = octave_value(Matrix());      return retval;     }   try   {      // Read nav file and build unique list of ephemeredes      gpstk::RinexNavStream rnffs(args(1).string_value().data());      gpstk::RinexNavHeader rnh;      gpstk::RinexNavData rne;      rnffs >> rnh;      while (rnffs >> rne)      {         bcestore.addEphemeris(rne);      }      bcestore.SearchNear(); // This is unrealistic but necessary just                             // to get an ephemeris almost 100% of the time      //bcestore.dump(1);      std::string obsfilename=args(0).string_value();      gpstk::RinexObsStream roffs(obsfilename.data());      roffs.exceptions(ios::failbit);      gpstk::RinexObsHeader roh;      gpstk::RinexObsData rod;            roffs >> roh;      if (roh.isValid())      {         if (roh.valid & gpstk::RinexObsHeader::versionValid)            headerStruct["rinex_version_type"](0) = (roh.version);         if (roh.valid & gpstk::RinexObsHeader::runByValid)	 {            headerStruct["pgm"](0) = roh.fileProgram;            headerStruct["run_by"](0) = roh.fileAgency;            headerStruct["date"](0) = roh.date;         }         if (roh.valid & gpstk::RinexObsHeader::markerNameValid)	 {	     headerStruct["marker_name"](0) = roh.markerName;	 }         if (roh.valid & gpstk::RinexObsHeader::markerNumberValid)	 {	     headerStruct["marker_number"](0) = roh.markerNumber;	 }         if (roh.valid & gpstk::RinexObsHeader::commentValid)	 {	    vector<string>::iterator i;            i = roh.commentList.begin();            int n = 0;            for (;                 i!=roh.commentList.end();		 i++,n++)               headerStruct["comment"](n) = *i;	 }                  if (roh.valid & gpstk::RinexObsHeader::observerValid)	    headerStruct["observer"](0) = roh.observer;         if (roh.valid & gpstk::RinexObsHeader::receiverValid)	 {	    headerStruct["receiver_number" ](0) = roh.recNo;	    headerStruct["receiver_type"   ](0) = roh.recType;            headerStruct["receiver_version"](0) = roh.recVers;         }         if (roh.valid & gpstk::RinexObsHeader::antennaTypeValid)	 {            headerStruct["antenna_number"](0) = roh.antNo;	    headerStruct["antenna_type"  ](0) = roh.antType;	 }         if (roh.valid & gpstk::RinexObsHeader::antennaPositionValid)	 {            ColumnVector aPos(3);            aPos(0) = roh.antennaPosition[0];            aPos(1) = roh.antennaPosition[1];            aPos(2) = roh.antennaPosition[2];            headerStruct["antenna_position"](0) = aPos;	 }         if (roh.valid & gpstk::RinexObsHeader::antennaOffsetValid)	 {	   ColumnVector aOff(3);	   aOff(0) = roh.antennaOffset[0];	   aOff(1) = roh.antennaOffset[1];	   aOff(2) = roh.antennaOffset[2];	   headerStruct["antenna_offset"](0) = aOff;	 }         if (roh.valid & gpstk::RinexObsHeader::waveFactValid)	 {	   ColumnVector waveFact(2);	   waveFact(0) = static_cast<short> (roh.wavelengthFactor[0]);	   waveFact(1) = static_cast<short> (roh.wavelengthFactor[1]);	   headerStruct["wavelength_factor"](0) = waveFact;	 }         // The extraWaveFactList code is untested for lack of          // real datafiles (externally generated) to test it.         // This generates a single matrix with all wave factor info         // in it.	 // Column, Contents	 // 1       PRN         // 2       System number         // 3       L1 wave factor         // 4       L2 wave factor         if (!roh.extraWaveFactList.empty())	 {            Matrix waveFactors(0,0);	    int nprnsTot = 0;            vector<gpstk::RinexObsHeader::ExtraWaveFact>::iterator i;            for (i=roh.extraWaveFactList.begin();                 i!=roh.extraWaveFactList.end();	         i++)	    {               int nprns = (*i).prnList.size();               waveFactors.resize(nprnsTot+nprns, 4);               for (int j=0; j<nprns; j++)	       {		  waveFactors(nprnsTot+j,0) = (*i).prnList[j].prn;	          waveFactors(nprnsTot+j,1) = (*i).prnList[j].system;                  waveFactors(nprnsTot+j,2) = (*i).wavelengthFactor[0];                  waveFactors(nprnsTot+j,3) = (*i).wavelengthFactor[1];	       }               nprnsTot += nprns;	    }            headerStruct["wave_factors_by_prn"](0) = waveFactors;	 }         if (roh.valid & gpstk::RinexObsHeader::obsTypeValid)	 {	    std::string obsList;            for (int i=0; i<roh.obsTypeList.size(); i++)	    {	      obsList += roh.obsTypeList[i].type + string(" ");	    }	    headerStruct["obs_types"](0)=obsList;            numObsTypes = roh.obsTypeList.size();            	 }         if (roh.valid & gpstk::RinexObsHeader::intervalValid)	 {            headerStruct["interval"](0) = static_cast<double> (roh.interval);	 }         if (roh.valid & gpstk::RinexObsHeader::firstTimeValid)	 {	    ColumnVector firstTime(3);            firstTime(0)=static_cast<short> (roh.firstObs.DOYyear());            firstTime(1)=static_cast<short> (roh.firstObs.DOYday());            firstTime(2)=static_cast<double> (roh.firstObs.DOYsecond());	    headerStruct["time_of_first_obs"](0) = firstTime;	 }	 // Untested.         if (roh.valid & gpstk::RinexObsHeader::lastTimeValid)	 {	    ColumnVector lastTime(3);            lastTime(0)=static_cast<short> (roh.lastObs.DOYyear());            lastTime(1)=static_cast<short> (roh.lastObs.DOYday());            lastTime(2)=static_cast<double> (roh.lastObs.DOYsecond());	    headerStruct["time_of_last_obs"](0) = lastTime;	 }         if (roh.valid & gpstk::RinexObsHeader::receiverOffsetValid)	 {	    headerStruct["receiver_offset"](0)=static_cast<int> (roh.receiverOffset);	 }         if (roh.valid & gpstk::RinexObsHeader::leapSecondsValid)	 {	    headerStruct["leap_seconds"](0)=static_cast<int> (roh.leapSeconds);          }         if (roh.valid & gpstk::RinexObsHeader::numSatsValid)	 {	    headerStruct["numSVs"](0)=static_cast<short> (roh.numSVs);	 }	          if (roh.valid & gpstk::RinexObsHeader::prnObsValid)	 {	    Matrix prnObs(roh.numObsForPrn.size(),numObsTypes+2);            map<gpstk::RinexPrn::RinexPrn, vector<int> >::iterator i;            int row=0;            for (i=roh.numObsForPrn.begin(),row=0;                 i!=roh.numObsForPrn.end();                 i++,row++)	    {	      prnObs(row,0) = (*i).first.prn;              prnObs(row,1) = (*i).first.system;              if (numObsTypes==-1)                 numObsTypes = (*i).second.size();	      for (int j=0;j<numObsTypes;j++)		prnObs(row,j+2)=(*i).second[j];      	    }	    headerStruct["num_of_obs_for_prn"](0)=prnObs;            	  }      }      long nrecs = 0;      // First scan, just to get the total number of records (prn-epochs)      while (roffs >> rod)      {         // Apply any editing criteria.	 if  (rod.epochFlag == 0 || rod.epochFlag == 1)            nrecs = nrecs + rod.numSvs;      }      obsMatrix.resize(nrecs,numObsTypes+4,0);      azelMatrix.resize(nrecs,2); // First col is az, second is el      // Second scan      gpstk::RinexObsStream roffs2(obsfilename.data());      roffs2.exceptions(ios::failbit);      int currentRec = 0;      roffs2 >> roh;      while (roffs2>>rod) // Loop through each epoch      {         // Apply editing criteria (again)         if  (rod.epochFlag == 0 || rod.epochFlag == 1) // Begin usable data	 {            short year = rod.time.DOYyear();            short doy  = rod.time.DOYday();	    double sod = rod.time.DOYsecond();            short iodc;	    gpstk::Xvt svpos;            short prn;	    gpstk::RinexObsData::RinexPrnMap::iterator it;            for (it=rod.obs.begin(); it!=rod.obs.end(); it++) // PRN loop	    {               obsMatrix(currentRec,0)=year;               obsMatrix(currentRec,1)=doy;               obsMatrix(currentRec,2)=sod;               prn = it->first.prn;               obsMatrix(currentRec,3)= prn;               // What to do with system information? sigh...a new matrix?               // Compute topocentric coords for this satellite               // i.e., azimuth and elevation               if (roh.valid & gpstk::RinexObsHeader::antennaPositionValid)	       {		 //cout << " prn " << prn << " epoch " << rod.time << endl;                 // cout << bcestore.getInitialTime() << endl;                 // cout << bcestore.getFinalTime() << endl;		  try {                  svpos = bcestore.getPrnXvt(prn,rod.time,iodc);                  azelMatrix(currentRec,0)=roh.antennaPosition.azAngle(svpos.x);                  azelMatrix(currentRec,1)=roh.antennaPosition.elvAngle(svpos.x);                  }                  //catch (gpstk::EphemerisStore::NoEphemerisFound& x)		    //{                    // cout << "No ephemeris found!" << endl;		     //}                   catch (...) {} 	       }               gpstk::RinexObsData::RinexObsTypeMap::iterator jt;               		                int column = 4; // First column of observations               for (jt  = it->second.begin();                    jt != it->second.end();                    jt++,column++) // Loop through obs types for this PRN	       {                  obsMatrix(currentRec,column)=jt->second.data;                  // What can we do with lli and ssi? build a new matrix?	       } // End loop through obs types for this PRN               currentRec++;	    } // End loop PRNs for this epoch	 } // End usable data       } // End loop through each epoch     //  exit(0);   }   catch(gpstk::FFStreamError& e)   {     // cout << e;      //  exit(1);   }   catch(gpstk::Exception& e)   {     //cout << e;      //      exit(1);   }   catch (...)   {     //cout << "unknown error.  Done." << endl;      //      exit(1);   }   octave_value_list retval;   retval(0) = octave_value( headerStruct);   retval(1) = octave_value( obsMatrix);   retval(2) = octave_value( azelMatrix);   return retval;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区三| 亚洲国产日韩一区二区| 91麻豆精品国产91久久久更新时间| 99久久精品国产麻豆演员表| 国产a视频精品免费观看| 九九热在线视频观看这里只有精品| 奇米影视7777精品一区二区| 蜜乳av一区二区| 日韩av中文字幕一区二区| 日韩福利视频网| 免费av成人在线| 激情综合色综合久久| 国产一区二区三区观看| 成人午夜在线视频| 欧洲亚洲精品在线| 欧美日韩一区二区三区视频| 欧美疯狂性受xxxxx喷水图片| 91精品一区二区三区久久久久久 | 欧美一卡在线观看| 日韩一级片网站| 久久久美女毛片| **性色生活片久久毛片| 亚洲第一在线综合网站| 蜜臀久久久久久久| 成人在线一区二区三区| 欧美性猛交xxxxxxxx| 欧美v亚洲v综合ⅴ国产v| 中文字幕不卡一区| 亚洲国产婷婷综合在线精品| 久久99精品久久久久久动态图 | 最新国产成人在线观看| 午夜欧美一区二区三区在线播放| 午夜精品在线视频一区| 国产一区二区三区黄视频| 色88888久久久久久影院野外| 欧美高清性hdvideosex| 中文字幕乱码亚洲精品一区 | 精品国产自在久精品国产| 国产精品视频一二| 亚洲成av人片观看| 国产精品乡下勾搭老头1| 日本久久电影网| 精品99一区二区三区| 亚洲欧美另类综合偷拍| 国模娜娜一区二区三区| 色婷婷精品久久二区二区蜜臂av | 日韩一级片在线播放| 国产精品久久久久久久久免费樱桃| 日日夜夜免费精品视频| 成人福利视频网站| 久久综合九色综合97婷婷| 亚洲五码中文字幕| 91老司机福利 在线| 久久精品人人做人人爽人人| 丝袜美腿高跟呻吟高潮一区| 色偷偷一区二区三区| 久久久久久久久蜜桃| 美女视频一区在线观看| 色综合一区二区| 国产精品美日韩| 国产福利精品导航| www激情久久| 麻豆精品视频在线观看视频| 欧美羞羞免费网站| 亚洲精选视频免费看| 99精品一区二区三区| 国产亚洲va综合人人澡精品| 久久精品国产亚洲a| 欧美一卡二卡在线| 美女视频黄 久久| 欧美高清你懂得| 日韩和欧美的一区| 91精品国产综合久久国产大片| 亚洲va欧美va人人爽| 欧美日韩国产免费| 日本不卡视频在线| 精品国产乱码久久| 国产一区福利在线| 久久九九影视网| 高清av一区二区| 国产精品区一区二区三区| 粉嫩高潮美女一区二区三区| 中文字幕的久久| 成人av网站免费| 亚洲另类中文字| 欧美午夜片在线观看| 日本女人一区二区三区| 日韩欧美123| 国产不卡免费视频| 亚洲人精品一区| 欧美日韩一区不卡| 狠狠色综合播放一区二区| 久久久精品欧美丰满| 99久久国产综合精品色伊 | 宅男噜噜噜66一区二区66| 人人狠狠综合久久亚洲| 精品动漫一区二区三区在线观看| 国产一区啦啦啦在线观看| 国产精品天干天干在观线| 91福利区一区二区三区| 免费欧美高清视频| 26uuu亚洲综合色| 99精品热视频| 人人狠狠综合久久亚洲| 国产精品伦理一区二区| 欧美日韩精品一区二区三区四区 | 精品亚洲成a人| 国产精品久久久久影院亚瑟| 欧美美女视频在线观看| 韩国女主播成人在线观看| ...xxx性欧美| 精品日产卡一卡二卡麻豆| 成人精品国产一区二区4080| 亚洲综合一二三区| 久久人人97超碰com| 欧美日韩国产bt| 99久久综合精品| 蜜乳av一区二区| 亚洲欧美日韩小说| 26uuu精品一区二区| 色综合 综合色| 激情都市一区二区| 亚洲一二三区在线观看| 欧美国产成人精品| 精品区一区二区| 欧美日韩中文字幕一区| 成人美女视频在线观看| 蜜乳av一区二区| 亚洲成人av在线电影| 中文字幕在线视频一区| 欧美精品一区二| 欧美精品乱码久久久久久| 91偷拍与自偷拍精品| 岛国精品在线观看| 精品伊人久久久久7777人| 亚洲成人激情综合网| 亚洲欧美偷拍卡通变态| 日本一区二区三区电影| 精品国产精品网麻豆系列| 欧美欧美欧美欧美| 日本中文字幕不卡| 自拍偷拍亚洲综合| 国产精品女主播在线观看| 久久综合丝袜日本网| 欧美一卡2卡3卡4卡| 欧美在线短视频| 日本二三区不卡| 一本色道a无线码一区v| 不卡区在线中文字幕| 99麻豆久久久国产精品免费优播| 懂色av一区二区在线播放| 久久99精品国产.久久久久久| 青青草一区二区三区| 麻豆视频观看网址久久| 另类人妖一区二区av| 日韩成人伦理电影在线观看| 日韩电影在线免费| 麻豆成人久久精品二区三区小说| 免费日韩伦理电影| 久久99精品久久久久久动态图 | av在线这里只有精品| 国产v综合v亚洲欧| 成人国产在线观看| 91天堂素人约啪| 欧美性做爰猛烈叫床潮| 欧美精品乱人伦久久久久久| 日韩精品一区二区三区视频| 精品国产欧美一区二区| 久久精品网站免费观看| 综合电影一区二区三区 | 国产亚洲欧美日韩在线一区| 国产日韩欧美麻豆| 亚洲丝袜制服诱惑| 亚洲国产精品一区二区久久| 秋霞午夜av一区二区三区| 国产一级精品在线| 色综合久久久久综合体桃花网| 在线精品视频一区二区三四| 9191国产精品| 久久精品这里都是精品| 中文字幕日韩av资源站| 午夜精品一区二区三区免费视频 | 久久午夜色播影院免费高清| 国产精品情趣视频| 天堂成人国产精品一区| 国产99久久久国产精品| 欧美吻胸吃奶大尺度电影| 精品久久国产字幕高潮| 亚洲美女区一区| 另类中文字幕网| 成人av在线网站| 欧美成人aa大片| 亚洲精品一卡二卡| 紧缚奴在线一区二区三区| 91在线小视频| 精品乱人伦一区二区三区| 亚洲激情网站免费观看| 国产呦精品一区二区三区网站| 色哟哟精品一区| 精品国产伦一区二区三区观看体验|