MPC observation file. More...
#include <orsa_file.h>
Public Member Functions | |
MPCObsFile () | |
MPC observation file. | |
void | Read () |
bool | ReadNominalOrbit (OrbitWithEpoch &) |
void | Open () |
void | Close () |
virtual std::string | GetFileName () const |
virtual void | SetFileName (std::string name_in) |
virtual void | SetFileName (char *name_in) |
Public Attributes | |
std::vector< Observation > | obs |
Protected Attributes | |
std::string | filename |
FILE_TYPE | file |
FILE_STATUS | status |
MPC observation file.
Definition at line 222 of file orsa_file.h.
MPCObsFile | ( | ) |
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 842 of file orsa_file.cc.
References Observation::date, Observation::dec, Observation::designation, Observation::discovery_asterisk, File::file, GETS_FILE, Observation::mag, MPCObsFile::obs, Observation::obscode, ReadFile::Open(), orsa::OPEN_R, ORSA_ERROR, Observation::ra, orsa::remove_leading_trailing_spaces(), REWIND_FILE, Angle::SetDPS(), Date::SetGregor(), Angle::SetHMS(), File::status, and orsa::UTC.
00842 { 00843 00844 // if (file == 0) Open(); 00845 // if (status != OPEN_R) Open(); 00846 // if (status == CLOSE) Open(); 00847 00848 Open(); 00849 00850 if (status != OPEN_R) { 00851 ORSA_ERROR("Status error!"); 00852 return; 00853 } 00854 00855 obs.clear(); 00856 00857 REWIND_FILE(file); 00858 00859 // cerr << "...inside read_MPC()...\n"; 00860 00861 Observation dummy_obs; 00862 // dummy_obs.date.SetTimeScale(UTC); // checked, is UTC 00863 00864 // double y,m,d; 00865 double gradi,primi,secondi; 00866 00867 // double tmp; 00868 00869 char line[256]; 00870 00871 // int entries = 0; 00872 00873 string number,designation,discovery_asterisk,note1,note2; 00874 string date,ra,dec; 00875 string magnitude; 00876 string observatory_code; 00877 00878 while (GETS_FILE(line,256,file) != 0) { 00879 00880 if (strlen(line) < 80) continue; // not a good line, maybe a comment or a white line... 00881 // if (strlen(line) < 79) continue; // not a good line, maybe a comment or a white line... 00882 // if (strlen(line) < 78) continue; // not a good line, maybe a comment or a white line... 00883 00884 // cerr << "inside while loop..." << endl; 00885 00886 // entries--; 00887 00888 number.assign(line,0,5); 00889 // cerr << "...pass (1)" << endl; 00890 // cerr <<"number: " << atoi(number.c_str()) << endl; 00891 designation.assign(line,5,7); 00892 remove_leading_trailing_spaces(designation); 00893 // cerr <<"designation: " << designation << endl; 00894 discovery_asterisk.assign(line,12,1); 00895 // cerr << "asterisk: [" << discovery_asterisk << "]\n"; 00896 // cerr << "...pass (1/B)" << endl; 00897 note1.assign(line,13,1); 00898 // cerr << "...pass (1/C)" << endl; 00899 note2.assign(line,14,1); 00900 // cerr << "...pass (1/D)" << endl; 00901 date.assign(line,15,17); 00902 // cerr << "...pass (2)" << endl; 00903 // cerr << "date: " << date << endl; 00904 ra.assign(line,32,12); 00905 // cerr << "ra: " << ra << endl; 00906 dec.assign(line,44,12); 00907 // cerr << "dec: " << dec << endl; 00908 magnitude.assign(line,65,6); 00909 // cerr << "magnitude: " << magnitude << endl; 00910 observatory_code.assign(line,77,3); 00911 remove_leading_trailing_spaces(observatory_code); 00912 // cerr << "...pass (3)" << endl; 00913 00914 dummy_obs.designation = designation; 00915 dummy_obs.discovery_asterisk = discovery_asterisk; 00916 dummy_obs.obscode = observatory_code; 00917 00918 double _tmp = 0.0; 00919 sscanf(magnitude.c_str(),"%lf",&_tmp); 00920 dummy_obs.mag = _tmp; 00921 00922 // cerr << "DES\n"; 00923 00924 // printf("DATE: %s\n",date.c_str()); 00925 double y=0.0, m=0.0, d=0.0; 00926 sscanf(date.c_str(),"%lf %lf %lf",&y,&m,&d); 00927 // printf("LETTI: %f %f %f\n",y,m,d); 00928 // 00929 00930 // dummy_obs.julian_date = GregorianToSdn((int)y,(int)m,(int)d) + ((d - floor(d)) - 0.5); 00931 // cerr << "JD\n"; 00932 dummy_obs.date.SetGregor((int)y,(int)m,d,UTC); 00933 00934 // cerr << "...pass (5)" << endl; 00935 00936 // cout << "designation: " << designation << " " << ra << endl; 00937 sscanf(ra.c_str(),"%lf %lf %lf",&gradi,&primi,&secondi); 00938 // angle_rad_hms(&tmp,gradi,primi,secondi); // dummy_obs.alpha 00939 // dummy_obs.alpha = tmp; 00940 dummy_obs.ra.SetHMS(gradi,primi,secondi); 00941 00942 00943 // cout <<"designation: " << designation << " " << dec << endl; 00944 sscanf(dec.c_str(),"%lf %lf %lf",&gradi,&primi,&secondi); 00945 // angle_rad(&tmp,gradi,primi,secondi); // dummy_obs.delta 00946 // dummy_obs.delta = tmp; 00947 dummy_obs.dec.SetDPS(gradi,primi,secondi); 00948 00949 // cerr << "OBS: " << dummy_obs.date.GetJulian() << " " << dummy_obs.ra.GetRad() << " " << dummy_obs.dec.GetRad() << endl; 00950 00951 //check for a good observation 00952 if ((designation != "") && 00953 (observatory_code != "") && 00954 (strlen(observatory_code.c_str())) == 3) { 00955 if ( (isalnum(observatory_code[0])) && 00956 (isalnum(observatory_code[1])) && 00957 (isalnum(observatory_code[2])) && 00958 (isspace(line[19])) && 00959 (isspace(line[22])) && 00960 (isspace(line[31])) && 00961 (isspace(line[34])) && 00962 (isspace(line[37])) && 00963 (isspace(line[43])) && 00964 (isspace(line[47])) && 00965 (isspace(line[50])) && 00966 (isspace(line[55])) ) { 00967 obs.push_back(dummy_obs); 00968 } 00969 } 00970 // obs->push_back(dummy_obs); 00971 00972 // cerr << "PB\n"; 00973 00974 // D_ar.Insert(dummy_obs.alpha); 00975 // D_dec.Insert(dummy_obs.delta); 00976 00977 } 00978 00979 }
bool ReadNominalOrbit | ( | OrbitWithEpoch & | ) |
Definition at line 981 of file orsa_file.cc.
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().
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().
std::vector<Observation> obs |
Definition at line 234 of file orsa_file.h.
Referenced by MPCObsFile::Read().
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().