Mercury 5 integration input files. More...
#include <orsa_file.h>
Public Member Functions | |
Mercury5IntegrationFile (OrbitStream &) | |
Mercury5IntegrationFile (OrbitStream &, M5COLS) | |
void | Read () |
void | Open () |
void | Close () |
virtual std::string | GetFileName () const |
virtual void | SetFileName (std::string name_in) |
virtual void | SetFileName (char *name_in) |
Public Attributes | |
M5COLS | cols |
Protected Attributes | |
std::string | filename |
FILE_TYPE | file |
FILE_STATUS | status |
Mercury 5 integration input files.
Definition at line 149 of file orsa_file.h.
Mercury5IntegrationFile | ( | OrbitStream & | osin | ) |
Definition at line 35 of file orsa_file_mercury.cc.
References orsa::C10, orsa::CLOSE, Mercury5IntegrationFile::cols, and File::status.
Mercury5IntegrationFile | ( | OrbitStream & | osin, | |
M5COLS | c_in | |||
) |
Definition at line 41 of file orsa_file_mercury.cc.
References orsa::CLOSE, Mercury5IntegrationFile::cols, and File::status.
void Close | ( | ) | [inherited] |
Definition at line 116 of file orsa_file.cc.
References orsa::CLOSE, CLOSE_FILE, File::file, and File::status.
Referenced by SWIFTFile::AsteroidsInFile(), ReadWriteFile::Open(), OrsaFile::Read(), OrsaConfigFile::Read(), SWIFTFile::Read(), Config::read_from_file(), File::SetFileName(), OrsaFile::Write(), OrsaConfigFile::Write(), Config::write_to_file(), and File::~File().
virtual std::string GetFileName | ( | ) | const [inline, virtual, inherited] |
Definition at line 99 of file orsa_file.h.
References File::filename.
Referenced by OrsaFile::Read().
00099 { return filename; }
void Open | ( | ) | [inherited] |
Definition at line 61 of file orsa_file.cc.
References orsa::CLOSE, File::file, File::filename, OPEN_FILE, orsa::OPEN_R, OPEN_READ, ORSA_ERROR, and File::status.
Referenced by SWIFTFile::AsteroidsInFile(), Mercury5IntegrationFile::Read(), TLEFile::Read(), NEODYSCAT::Read(), JPLDastcomCometFile::Read(), JPLDastcomUnnumFile::Read(), JPLDastcomNumFile::Read(), AstDySMatrixFile::Read(), RadauModIntegrationFile::Read(), SWIFTFile::Read(), LocationFile::Read(), RWOFile::Read(), MPCObsFile::Read(), MPCCometFile::Read(), MPCOrbFile::Read(), and AstorbFile::Read().
void Read | ( | ) | [virtual] |
Implements ReadFile.
Definition at line 47 of file orsa_file_mercury.cc.
References Orbit::a, orsa::AU, orsa::C10, orsa::C7, orsa::CLOSE, Mercury5IntegrationFile::cols, orsa::DAY, Orbit::e, OrbitWithEpoch::epoch, File::file, orsa::FromUnits(), GETS_FILE, Orbit::i, OrbitStream::label, orsa::label(), Orbit::M, orsa::M, Orbit::omega_node, Orbit::omega_pericenter, ReadFile::Open(), orsa::OPEN_R, orsa::pi, REWIND_FILE, UniverseTypeAwareTime::SetTime(), File::status, and OrbitStream::timestep.
00047 { 00048 00049 // if (file == 0) Open(); 00050 if (status == CLOSE) Open(); 00051 00052 if (status != OPEN_R){ 00053 cerr << "problems encountered when opening file.\n" << endl; 00054 } 00055 00056 os->resize(0); 00057 os->timestep = 0.0; 00058 OrbitWithEpoch fo; 00059 REWIND_FILE(file); 00060 00061 // read the first 4 lines containing the header 00062 int l; 00063 char line[1024],label[1024]; 00064 for (l=0;l<4;l++) { 00065 GETS_FILE(line,1024,file); 00066 if (l==1) { // second line 00067 sscanf(line,"%s",label); 00068 os->label = label; 00069 // cerr << "LABEL: [" << os->label << "]" << endl; 00070 } 00071 } 00072 00073 double a,e,i,omega_per,omega_nod,M; 00074 double time,time_old=0,timestep; 00075 // start reading 00076 00077 if (cols == C7) { 00078 while (GETS_FILE(line,1024,file) != 0) { 00079 00080 /* while ( (fscanf(file,"%lf %lf %lf %lf %lf %lf %lf", 00081 &time,&a,&e,&i,&omega_per,&omega_nod,&M)) != EOF ) { 00082 */ 00083 00084 sscanf(line,"%lf %lf %lf %lf %lf %lf %lf", 00085 &time,&a,&e,&i,&omega_per,&omega_nod,&M); 00086 00087 timestep = time - time_old; 00088 time_old = time; 00089 if (os->size() == 2) { 00090 os->timestep = FromUnits(timestep,DAY); // read in days, save in the current time units 00091 cerr << "timestep set to: " << os->timestep << endl; 00092 } 00093 00094 fo.epoch.SetTime(FromUnits(time,DAY)); // read in days, save in the current time units 00095 00096 fo.a = FromUnits(a,AU); 00097 fo.e = e; 00098 fo.i = (pi/180.0)*i; 00099 fo.omega_node = (pi/180.0)*omega_nod; 00100 fo.omega_pericenter = (pi/180.0)*omega_per; 00101 fo.M = (pi/180.0)*M; 00102 00103 os->push_back(fo); 00104 } 00105 } 00106 00107 if (cols == C10) { 00108 double dummy; 00109 while (GETS_FILE(line,1024,file) != 0) { 00110 /* while ( (fscanf(file,"%lf %lf %lf %lf %lf %lf %lf %lf %lf %lf", 00111 &time,&a,&e,&i,&omega_per,&omega_nod,&M,&dummy,&dummy,&dummy))!= EOF ) { 00112 */ 00113 00114 sscanf(line,"%lf %lf %lf %lf %lf %lf %lf %lf %lf %lf", 00115 &time,&a,&e,&i,&omega_per,&omega_nod,&M,&dummy,&dummy,&dummy); 00116 00117 timestep = time - time_old; 00118 time_old = time; 00119 if (os->size() == 2) { 00120 os->timestep = FromUnits(timestep,DAY); // read in days, save in the current time units 00121 cerr << "timestep set to: " << os->timestep << endl; 00122 } 00123 00124 fo.epoch.SetTime(FromUnits(time,DAY)); // read in days, save in the current time units 00125 00126 fo.a = FromUnits(a,AU); 00127 fo.e = e; 00128 fo.i = (pi/180.0)*i; 00129 fo.omega_node = (pi/180.0)*omega_nod; 00130 fo.omega_pericenter = (pi/180.0)*omega_per; 00131 fo.M = (pi/180.0)*M; 00132 00133 os->push_back(fo); 00134 } 00135 } 00136 }
virtual void SetFileName | ( | char * | name_in | ) | [inline, virtual, inherited] |
Definition at line 106 of file orsa_file.h.
References File::SetFileName().
00106 { 00107 std::string n = name_in; 00108 SetFileName (n); 00109 }
virtual void SetFileName | ( | std::string | name_in | ) | [inline, virtual, inherited] |
Definition at line 101 of file orsa_file.h.
References File::Close(), orsa::CLOSE, File::filename, and File::status.
Referenced by OrsaConfigFile::OrsaConfigFile(), and File::SetFileName().
Definition at line 158 of file orsa_file.h.
Referenced by Mercury5IntegrationFile::Mercury5IntegrationFile(), and Mercury5IntegrationFile::Read().
FILE_TYPE file [protected, inherited] |
Definition at line 113 of file orsa_file.h.
Referenced by SWIFTFile::AsteroidsInFile(), File::Close(), File::File(), ReadWriteFile::Open(), WriteFile::Open(), ReadFile::Open(), Mercury5IntegrationFile::Read(), OrsaFile::Read(), OrsaConfigFile::Read(), SWIFTFile::Read(), LocationFile::Read(), RWOFile::Read(), MPCObsFile::Read(), MPCCometFile::Read(), MPCOrbFile::Read(), AstorbFile::Read(), OrsaFile::Write(), and OrsaConfigFile::Write().
std::string filename [protected, inherited] |
Definition at line 112 of file orsa_file.h.
Referenced by File::GetFileName(), ReadWriteFile::Open(), WriteFile::Open(), ReadFile::Open(), and File::SetFileName().
FILE_STATUS status [protected, inherited] |
Definition at line 114 of file orsa_file.h.
Referenced by File::Close(), File::File(), Mercury5IntegrationFile::Mercury5IntegrationFile(), ReadWriteFile::Open(), WriteFile::Open(), ReadFile::Open(), Mercury5IntegrationFile::Read(), TLEFile::Read(), NEODYSCAT::Read(), JPLDastcomCometFile::Read(), JPLDastcomUnnumFile::Read(), JPLDastcomNumFile::Read(), AstDySMatrixFile::Read(), RadauModIntegrationFile::Read(), OrsaFile::Read(), OrsaConfigFile::Read(), SWIFTFile::Read(), LocationFile::Read(), MPCObsFile::Read(), MPCCometFile::Read(), MPCOrbFile::Read(), AstorbFile::Read(), File::SetFileName(), OrsaFile::Write(), and OrsaConfigFile::Write().