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 ELLERBROEK_CERRO_PACHON_MODEL_H 00032 #define ELLERBROEK_CERRO_PACHON_MODEL_H 00033 00034 #include <three_vector.h> 00035 #include "refractive_atmosphere.h" 00036 00037 namespace Arroyo { 00038 00058 00059 class Ellerbroek_Cerro_Pachon_model : 00060 public refractive_atmospheric_model { 00061 00062 private: 00063 00064 static const bool factory_registration; 00065 00068 string unique_name() const {return(string("Ellerbroek Cerro Pachon model"));}; 00069 00072 Ellerbroek_Cerro_Pachon_model(){}; 00073 00074 public: 00075 00078 Ellerbroek_Cerro_Pachon_model(const Ellerbroek_Cerro_Pachon_model & e_cp_model); 00079 00082 Ellerbroek_Cerro_Pachon_model(const char * filename); 00083 00086 Ellerbroek_Cerro_Pachon_model(const iofits & iof); 00087 00096 Ellerbroek_Cerro_Pachon_model(const three_frame & ground_ref_frame, 00097 double r_0_meters = .166, 00098 double r_0_ref_wavelength_meters = .5e-6); 00099 00102 ~Ellerbroek_Cerro_Pachon_model(){}; 00103 00106 Ellerbroek_Cerro_Pachon_model & 00107 operator=(const Ellerbroek_Cerro_Pachon_model & e_cp_model); 00108 00113 Ellerbroek_Cerro_Pachon_model * clone() const { 00114 return(new Ellerbroek_Cerro_Pachon_model(*this)); 00115 }; 00116 00119 void read(const char * filename); 00120 00123 void read(const iofits & iof); 00124 00127 void write(const char * filename) const; 00128 00131 void write(iofits & iof) const; 00132 00135 void print(ostream & os, const char * prefix="") const; 00136 00137 }; 00138 00139 } 00140 00141 #endif
1.3.9.1