Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

profile_timeseries.h

Go to the documentation of this file.
00001 /*
00002 Arroyo - software for the simulation of electromagnetic wave propagation
00003 through turbulence and optics.
00004 
00005 Copyright (c) 2000-2004 California Institute of Technology.  Written by
00006 Dr. Matthew Britton.  For comments or questions about this software,
00007 please contact the author at mbritton@astro.caltech.edu.
00008 
00009 This program is free software; you can redistribute it and/or modify it
00010 under the terms of the GNU General Public License as  published by the
00011 Free Software Foundation; either version 2 of the License, or (at your
00012 option) any later version.
00013 
00014 This program is provided "as is" and distributed in the hope that it
00015 will be useful, but WITHOUT ANY WARRANTY; without even the implied
00016 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  In no
00017 event shall California Institute of Technology be liable to any party
00018 for direct, indirect, special, incidental or consequential damages,
00019 including lost profits, arising out of the use of this software and its
00020 documentation, even if the California Institute of Technology has been
00021 advised of the possibility of such damage.   The California Institute of
00022 Technology has no obligation to provide maintenance, support, updates,
00023 enhancements or modifications.  See the GNU General Public License for
00024 more details.
00025 
00026 You should have received a copy of the GNU General Public License along
00027 with this program; if not, write to the Free Software
00028 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
00029 */
00030 
00031 #ifndef PROFILE_TIMESERIES_H
00032 #define PROFILE_TIMESERIES_H
00033 
00034 #include <iostream>
00035 #include <fstream>
00036 #include <ctime>
00037 #include "refractive_atmosphere.h"
00038 #include "time_val.h"
00039 
00040 namespace Arroyo {
00041 
00042   class profile_timeseries {
00043 
00044   protected:
00045 
00046     std::vector<time_t> profile_timestamps;
00047     std::vector<std::vector<double> > layer_heights_meters;
00048     std::vector<std::vector<double> > layer_Cn2_coeffs;
00049   
00050   public:
00051   
00054     profile_timeseries(){};
00055 
00058     profile_timeseries(const profile_timeseries & pts) {
00059       this->operator=(pts);
00060     };
00061 
00064     profile_timeseries(const std::vector<time_t> & profile_timestamps,
00065                        const std::vector<std::vector<double> > & layer_heights_meters,
00066                        const std::vector<std::vector<double> > & layer_Cn2_coeffs);
00067 
00070     profile_timeseries(const char * dimm_filename,
00071                        const char * mass_filename);
00072 
00075     ~profile_timeseries(){};
00076 
00079     profile_timeseries & operator=(const profile_timeseries & pts);
00080 
00083     void print(std::ostream & os, const char * prefix = "") const;
00084 
00087     int get_nprofiles() const {
00088       return(this->profile_timestamps.size());
00089     };
00090 
00093     time_t get_timestamp(int index) const;
00094 
00097     refractive_atmospheric_model get_refractive_atmospheric_model(const time_t & timestamp) const;
00098     
00101     refractive_atmospheric_model get_refractive_atmospheric_model(int index) const;
00102     
00114     refractive_atmospheric_model get_refractive_atmospheric_model(const time_t & start,
00115                                                                   const time_t & end,
00116                                                                   int & nprofiles_in_average) const;
00117     
00118   };
00119 }
00120 #endif

Generated on Thu Nov 29 17:16:30 2007 for arroyo by  doxygen 1.3.9.1