00001 /* 00002 * Copyright (c) 1999-2003 Bert Kampes 00003 * Copyright (c) 1999-2003 Delft University of Technology, The Netherlands 00004 * 00005 * This file is part of Doris, the Delft o-o radar interferometric software. 00006 * 00007 * Doris program is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 2 of the License, or 00010 * (at your option) any later version. 00011 * 00012 * Doris is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with this program; if not, write to the Free Software 00019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 * 00021 * Publications that contain results produced by the Doris software should 00022 * contain an acknowledgment. (For example: The interferometric processing 00023 * was performed using the freely available Doris software package developed 00024 * by the Delft Institute for Earth-Oriented Space Research (DEOS), Delft 00025 * University of Technology, or include a reference to: Bert Kampes and 00026 * Stefania Usai. \"Doris: The Delft Object-oriented Radar Interferometric 00027 * software.\" In: proceedings 2nd ITC ORS symposium, August 1999. (cdrom)). 00028 * 00029 */ 00030 /**************************************************************** 00031 * $Source: /users/kampes/DEVELOP/DORIS/doris/src/RCS/productinfo.hh,v $ * 00032 * $Revision: 3.8 $ * 00033 * $Date: 2005/04/11 13:47:45 $ * 00034 * $Author: kampes $ * 00035 * * 00036 * The productinfo class contains the definition of the data * 00037 * and functions for 'products' (i.e. not slc images, but the * 00038 * interferogram, coherence image, DEM etc.) * 00039 * Data mainly public because this used to be a struct and I * 00040 * did not want to change the other code. * 00041 * It also consists of functions reading files etc. * 00042 #%// BK 25-Aug-2000 00043 ****************************************************************/ 00044 00045 00046 #ifndef PRODUCTINFO_H 00047 #define PRODUCTINFO_H 00048 00049 00050 #include "constants.hh" // typedefs 00051 #include <cstring> // strcpy, req. on some systems 00052 00053 00054 00055 // ====== Define template functions (no member no friend) ====== 00056 // ______ (matrix class is declared way below) ______ 00057 template <class Type> class matrix; 00058 00059 00060 00061 00062 // ====== Struct slcimage: information on master/slave ====== 00063 class productinfo // info on 'products' 00064 { 00065 public: 00066 char file[EIGHTY]; // current filename 00067 // ______ window / multilook factors ______ 00068 window win; // current window, line(1:N) etc 00069 uint multilookL; // multilookfactor in line (azi) dir. 00070 uint multilookP; // multilookfactor in pixel (ra) dir. 00071 // ______ file format ______ 00072 int16 formatflag; // current read formatflag 00073 00074 00075 // ______ Public function in struct ______ 00076 // ______ constructor ______ 00077 productinfo() {multilookL=1; multilookP=1;} // rest ==0 00078 00079 // ______ fill it from info in resultfiles ______ 00080 void fillproductinfo(const char *file, const char *iden); 00081 00082 // ______ assignment operator ______ 00083 productinfo& operator = (productinfo X) 00084 { 00085 if (this != &X) 00086 { 00087 strcpy(file,X.file); 00088 win = X.win; 00089 multilookL = X.multilookL; 00090 multilookP = X.multilookP; 00091 formatflag = X.formatflag; 00092 } 00093 return *this; 00094 }; 00095 00096 // ______ show content ______ 00097 inline void showdata() const // show content 00098 {DEBUG << "\ncurrent file: \t" << file 00099 << "\nformatflag: \t" << formatflag 00100 << "\nmultilook: \t" << multilookL << " " << multilookP 00101 << "\nwindow: \t" << win.linelo << " " << win.linehi 00102 << " " << win.pixlo << " " << win.pixhi; 00103 DEBUG.print(); 00104 } 00105 00106 // ______ read data from file ______ 00107 matrix<real4> readphase(window win) const; 00108 00109 }; // END class productinfo 00110 00111 00112 #endif // PRODUCTINFO_H 00113 00114