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

readinput.hh

Go to the documentation of this file.
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/readinput.hh,v $
00032  * $Revision: 3.21 $
00033  * $Date: 2005/04/16 07:03:52 $
00034  * $Author: kampes $
00035  *
00036  * Some constants for switching processing steps
00037  * Structs where input parameters are stored
00038  * Definition of readinput function.
00039  ****************************************************************/
00040 
00041 
00042 #ifndef READINPUT_H
00043 #define READINPUT_H
00044 
00045 #include "constants.hh"                   // typedefs
00046 // ______ only declare here ______
00047 //template <class Type> class matrix;
00048 #include "matrixbk.hh"                   // my matrix class
00049 
00050 
00051 
00052 //____RaffaeleNutricato START MODIFICATION SECTION 1
00053 // ______index for: input_gen: process[NUMPROCESSES] (arbitrary index)______
00054 const int16
00055                 pr_m_readfiles    = 0,      // flag for reading leader etc master
00056                 pr_m_crop         = 1,      // write slc data to raster format
00057                 pr_m_oversample   = 2,      // oversample master image //____RaffaeleNutricato added this line
00058                 pr_m_porbits      = 3,      // calling getorb master
00059                 pr_m_filtazi      = 4,      // azimuth filtering master
00060                 pr_m_filtrange    = 5,      // range filtering master
00061                 pr_m_EXTRA        = 6,      // for future use
00062 
00063                 pr_s_readfiles    = 7,      // flag for reading leader etc slave
00064                 pr_s_crop         = 8,      // writing to raw slave   
00065                 pr_s_oversample   = 9,      // oversample slave image   //____RaffaeleNutricato added this line
00066                 pr_s_porbits      = 10,     // calling getorb slave
00067                 pr_s_filtazi      = 11,     // azimuth filtering slave
00068                 pr_s_filtrange    = 12,     // range filtering slave
00069                 pr_s_resample     = 13,     // resample slave, actually at slave.
00070                 pr_s_EXTRA        = 14,     // for future use
00071 
00072                 pr_i_coarse       = 15,     // coarse coregistration: orbits
00073                 pr_i_coarse2      = 16,     // coarse coregistration: correlation
00074                 pr_i_fine         = 17,     // fine coregistration
00075                 pr_i_coregpm      = 18,     // compute parameters coregistration
00076                 pr_i_interfero    = 19,     // computation of interferogram
00077                 pr_i_coherence    = 20,     // computation of coherence image
00078                 pr_i_comprefpha   = 21,     // ref.phase (flat earth)
00079                 pr_i_subtrrefpha  = 22,     // interferogram - refpha
00080                 pr_i_comprefdem   = 23,     // ref.phase (flat earth)
00081                 pr_i_subtrrefdem  = 24,     // interferogram - refpha
00082                 pr_i_filtphase    = 25,     // filtering interferogram
00083                 pr_i_unwrap       = 26,     // unwrapping interferogram
00084                 pr_i_slant2h      = 27,     // slant to height conversion
00085                 pr_i_geocoding    = 28,     // geocoding
00086                 pr_i_dinsar         = 29,     // 3 pass differential
00087                 pr_i_EXTRA2       = 30,     // for future use
00088                 pr_last_one       = 31;     // not used; to indicate last one (==NUMPROCESSES-1)
00089 const int16     NUMPROCESSES      = pr_last_one+1;        // see above...
00090 //____RaffaeleNutricato END MODIFICATION SECTION 1
00091 
00092 // ====== global processcontrol array ======
00093 // BK should be one word (no spaces)
00094 // usage: resfile << "\n*_Start_" << processcontrol[pr_i_interfero]
00095 // usage: resfile << "\n* End_" << processcontrol[pr_i_coarse] << "_NORMAL"
00096 
00097 //____RaffaeleNutricato START MODIFICATION SECTION 2
00098 const char processcontrol[NUMPROCESSES][ONE27] = {
00099    "readfiles:",            // 0  pr_m_readfiles
00100    "crop:",                 // 1  pr_m_crop
00101    "oversample:",           // 2  pr_m_oversample //____RaffaeleNutricato added this line
00102    "precise_orbits:",       // 3  pr_m_porbits
00103    "filt_azi:",             // 4  pr_m_filtazi
00104    "filt_range:",           // 5  pr_m_filtrange
00105    "NOT_USED:",             // 6  pr_m_EXTRA
00106 
00107    "readfiles:",            // 7  pr_s_readfiles
00108    "crop:",                 // 8  pr_s_crop
00109    "oversample:",           // 9  pr_s_oversample //____RaffaeleNutricato added this line
00110    "precise_orbits:",       // 10 pr_s_porbits
00111    "filt_azi:",             // 11  pr_s_filtazi: must be same as m_
00112    "filt_range:",           // 12 pr_s_filtrange
00113    "resample:",             // 13 pr_s_resample !slave
00114    "NOT_USED:",             // 14 pr_s_EXTRA
00115 
00116    "coarse_orbits:",        // 15 pr_i_coarse
00117    "coarse_correl:",        // 16 pr_i_coarse2
00118    "fine_coreg:",           // 17 pr_i_fine
00119    "comp_coregpm:",         // 18 pr_i_coregpm
00120    "interfero:",            // 19 pr_i_interfero
00121    "coherence:",            // 20 pr_i_coherence
00122    "comp_refphase:",        // 21 pr_i_comprefpha
00123    "subtr_refphase:",       // 22 pr_i_subtrrefpha
00124    "comp_refdem:",          // 23 pr_i_comprefdem
00125    "subtr_refdem:",         // 24 pr_i_subtrrefdem
00126    "filtphase:",            // 25 pr_i_filtphase
00127    "unwrap:",               // 26 pr_i_unwrap
00128    "slant2h:",              // 27 pr_i_slant2h
00129    "geocoding:",            // 28 pr_i_geocoding
00130    "dinsar:",               // 29 pr_i_EXTRA
00131    "NOT_USED2:",            // 30 pr_i_EXTRA2
00132    "ERROR update this!"};   // 31 pr_last_one
00133 
00134 //  strcpy(processcontrol[pr_m_readfiles],"readfiles:");
00135 //  strcpy(processcontrol[pr_m_crop]     , "crop:");
00136 //____RaffaeleNutricato END MODIFICATION SECTION 2
00137 
00138 
00139 
00140 
00141 // ====== Constants, variables ======
00142 // ======Method selectors======
00143 //const int16   readfiles_ers   = 151;          // method for readfiles
00144 //const int16   readfiles_asar  = 152;          // method for readfiles
00145 const int16     cc_magfft       = 21;           // method for coarse corr. coreg
00146 const int16     cc_magspace     = 22;           // method for coarse corr. coreg
00147 
00148 const int16     fc_cmplxfft     = 31;           // method for fine coreg
00149 const int16     fc_cmplxspace   = 32;           // method for fine coreg
00150 const int16     fc_magfft       = 33;           // method for fine coreg
00151 const int16     fc_magspace     = 34;           // method for fine coreg
00152 const int16     fc_oversample   = 35;           // method oversample signal,not corr.
00153 
00154 const int16     fe_porbits      = 41;           // method for flat earth correction
00155 const int16     fe_method2      = 42;           // method for flat earth correction
00156 
00157 const int16     rs_rect         = 102;          // nearest neighbor, 1 or 2 points
00158 const int16     rs_tri          = 202;          // piecewize linear, 2 point
00159 const int16     rs_cc4p         = 304;          // cubic convolution, 4 point
00160 const int16     rs_cc6p         = 306;          // cubic convolution, 6 point
00161 const int16     rs_ts6p         = 406;          // truncated sinc, 6 point
00162 const int16     rs_ts8p         = 408;          // truncated sinc, 8 point
00163 const int16     rs_ts16p        = 416;          // truncated sinc, 16 point
00164 const int16     rs_knab4p       = 504;          // knab window, 4 point
00165 const int16     rs_knab6p       = 506;          // knab window, 6 point
00166 const int16     rs_knab8p       = 508;          // knab window, 8 point
00167 const int16     rs_knab10p      = 510;          // knab window, 10 point
00168 const int16     rs_knab16p      = 516;          // knab window, 12 point
00169 
00170 const int16     int_oldmethod   = 91;           // method no overs. interf. gen.
00171 const int16     int_oversample  = 92;           // method oversample for int. computation 
00172 const int16     coh_oldmethod   = 101;          // method no overs. interf. gen.
00173 const int16     coh_newmethod   = 102;          // method oversample for int. computation 
00174 
00175 const int16     fp_goldstein    = 81;           // method goldstein
00176 const int16     fp_spatialconv  = 82;           // method spatial conv. with kernel
00177 const int16     fp_spectral     = 83;           // method spectral kernel
00178 
00179 const int16     uw_method1      = 51;           // TREEF  (delft only)
00180 const int16     uw_method2      = 52;           // SNAPHU Curtis Cheng
00181 const int16     uw_method3      = 53;           // method for unwrapping
00182 
00183 const int16     s2h_schwabisch  = 61;           // schwabisch95 thesis
00184 const int16     s2h_rodriguez   = 62;           // see paper rodriguez92
00185 const int16     s2h_ambiguity   = 63;           // exact method
00186 
00187 const int16     geo_nointerp    = 70;           // no interpolation in geocding
00188 const int16     geo_regular     = 71;           // ... ? not implemented
00189 
00190 const int16     crd_nearest     = 81;           // nearest neighbor
00191 const int16     crd_trilinear   = 82;           // trilinear
00192 
00193 const int16     srp_polynomial  = 101;          // eval poly from comp_refpha
00194 const int16     srp_exact       = 102;          // compute ref_pha on he fly
00195 
00196 const int16     rf_adaptive     = 301;          // range filter adaptive method
00197 const int16     rf_porbits      = 302;          // precise orbits
00198 
00199 
00200 // ======Define structs for storing/passing input options======
00201 struct input_gen                        // general input
00202   {
00203   char          logfile[EIGHTY];
00204   char          m_resfile[EIGHTY];
00205   char          s_resfile[EIGHTY];
00206   char          i_resfile[EIGHTY];
00207   uint          memory;                 // available mem. in Bytes
00208   bool          process[NUMPROCESSES];  // if .[i] != 0 => process step_(i+1)
00209   bool          interactive;            // if true, pause
00210   bool          overwrit;               // 0: don't overwrite existing data output files
00211   int16         orb_interp;             // method for orbit interpolation
00212   int32         dumpbaselineL;          // #lines to dump baseline param.
00213   int32         dumpbaselineP;          // #lines to dump baseline param.
00214   int32         preview;                // generate sunraster preview file
00215                                         // 0: no; 1: sh files; 2: sh sh_files.
00216   real4         terrain_height;         // mean terrain height, or of a point.
00217   cn            tiepoint;               // lat/lon/hei for e.g., integration const.
00218   };
00219 
00220 
00221 // ______These structs are input, filled by readinput______
00222 // ______ ______
00223 struct input_readfiles                  // arguments of readinfo
00224   {
00225   int16         sensor_id;              // method selector ers/asar/rsat/jers
00226   int16         sar_processor;          // atlantis, vmp, set in routines.
00227   int16         fileid;
00228   char          volfile[2*EIGHTY];
00229   char          leaderfile[2*EIGHTY];
00230   char          nullfile[2*EIGHTY];
00231   char          datfile[2*EIGHTY];
00232   real8         rg_timing_error;        // [BK 27-May-2004]
00233   real8         az_timing_error;        // [BK 27-May-2004]
00234   };
00235 
00236 
00237 // ______ ______
00238 struct input_pr_orbits                  // precise orbits
00239   {
00240   char          m_orbdir[2*EIGHTY];
00241   char          s_orbdir[2*EIGHTY];
00242   int32         timeinterval;           // time in sec.
00243   int32         timebefore;             // sec before first line.
00244   real8         dumpmasterorbit;        // dtime in sec.
00245   real8         dumpslaveorbit;         // dtime in sec.
00246   };
00247 
00248 
00249 // ______ ______
00250 struct input_crop                       // arguments of m/s_crop
00251   {
00252   int16         fileid;
00253   int16         sar_processor;          // atlantis, vmp, set in routines.
00254   char          idcrop[EIGHTY];
00255   char          filein1[2*EIGHTY];
00256   char          fileout1[EIGHTY];
00257   window        dbow;                   // cut out of original
00258   window        dbow_geo;               // lat_0*1e6, lon_0*1e6, height, width
00259   };
00260 
00261 //____RaffaeleNutricato START MODIFICATION SECTION 3
00262 struct input_oversample          // arguments of m/s_oversample
00263   {
00264   char      fileoutovs[EIGHTY];  // Name of the oversampled image
00265   int32     OsrRange;            // Oversampling ratio in range.
00266   int32     OsrAzimuth;          // Oversampling ratio in azimuth.
00267   int32     FilterSize;          // Length of the interpolation kernel. 
00268   int32     oformatflag;         // Output format [cr4] ci16, I suggest [cr4].
00269   };
00270 //____RaffaeleNutricato END MODIFICATION SECTION 3
00271 
00272 
00273 // ______ azimuth filtering ______
00274 struct input_filtazi                    // arguments for azimuth filter
00275   {
00276   int16         method;                 // method selector
00277   int32         fftlength;              // length per buffer
00278   int32         overlap;                // 0.5overlap each buffer
00279   real8         hammingalpha;           // alpha for hamming, 1 is no
00280   char          foname[EIGHTY];         // output filename passed to routine
00281   char          fomaster[EIGHTY];       // output filename
00282   char          foslave[EIGHTY];        // output filename
00283   int16         oformatflag;            // output format [cr4] ci16
00284   };
00285 
00286 // ______ ______
00287 struct input_coarsecorr                 // arguments for correlation
00288   {
00289 //  char                idcoarsecorr[EIGHTY];
00290   char          ifpositions[EIGHTY];    // input file name for positions
00291   int16         method;                 // method selector
00292   uint          Nwin;                   // #windows
00293   uint          MasksizeL;              // size of correlation window
00294   uint          MasksizeP;              // size of correlation window
00295   uint          AccL;                   // #lines to be searched in 1 direction
00296   uint          AccP;                   // #pixels to be searched in 1 direction
00297   int32         initoffsetL;            // initial offset lines
00298   int32         initoffsetP;            // initial offset pixels
00299   };
00300 
00301 
00302 // ______ ______
00303 struct input_fine                       // arguments for fine coreg.
00304   {
00305   char          ifpositions[EIGHTY];    // input file name for positions
00306   int16         method;                 // method selector
00307   uint          Nwin;                   // #windows
00308   uint          MasksizeL;              // size of correlation window
00309   uint          MasksizeP;              // size of correlation window
00310   uint          AccL;                   // #lines to be searched in l direction
00311   uint          AccP;                   // #pixels to be searched in p direction
00312   int32         initoffsetL;            // initial offset lines
00313   int32         initoffsetP;            // initial offset pixels
00314   uint          osfactor;               // oversampling factor 
00315   bool          plotoffsets;            // call script
00316   bool          plotmagbg;              // call script
00317   real4         plotthreshold;          // call script
00318   };
00319 
00320 
00321 // ______ ______
00322 struct input_coregpm                    // arguments for coregpm.
00323   {
00324   char          idcoregpm[EIGHTY];
00325   real4         threshold;              // threshold for correlation
00326   int32         degree;                 // degree of polynomial
00327   int32         weightflag;             // 0: all same weight
00328                                         // 1: choice1: weigh with correlation ??
00329   int32         maxiter;                // max. #pnts to remove (wtests)
00330   real4         k_alpha;                // critical value for automated outlier removal
00331   bool          dumpmodel;              // create float files with model
00332   bool          plot;                   // plot e_hat etc.
00333   bool          plotmagbg;              // plot magnitude in background
00334   };
00335 
00336 
00337 // ______ ______
00338 struct input_resample                   // arguments for resampling slave
00339   {
00340   int16         method;                 // method selector (interpolator) (%100 == Npoints)
00341   char          fileout[EIGHTY];
00342   int16         oformatflag;            // output format [cr4] ci16
00343   window        dbow;                   // cut out of original
00344   bool          shiftazi;               // [true] shift spectrum to 0
00345   };
00346 
00347 
00348 // ______ range filtering ______
00349 struct input_filtrange                  // arguments for range filter
00350   {
00351   int16         method;                 // method selector
00352   int32         oversample;             // factor
00353   bool          doweightcorrel;         // weighting of correlation values
00354   int32         nlmean;                 // number of lines to take mean of
00355   int32         fftlength;              // length for adaptive
00356   int32         overlap;                // half overlap between blocks of fftlength
00357   real8         hammingalpha;           // alpha for hamming
00358   real8         SNRthreshold;           // spectral peak estimation
00359   real8         terrainslope;           // [rad] porbits method only
00360   char          fomaster[EIGHTY];       // output filename
00361   char          foslave[EIGHTY];        // output filename
00362   int16         oformatflag;            // output format [cr4] ci16
00363   };
00364 
00365 
00366 // ______ ______
00367 struct input_comprefpha                 // arguments for flatearth correction.
00368   {
00369   //char                idflatearth[EIGHTY];
00370   char          ifpositions[EIGHTY];    // input file name for positions
00371   int16         method;                 // method selector
00372   int32         degree;                 // degree of polynomial
00373   int32         Npoints;                // number of observations
00374   };
00375 
00376 
00377 
00378 // ______ ______
00379 struct input_interfero                  // arguments for computation interferogram
00380   {
00381   int16         method;                 // method selector
00382   char          focint[EIGHTY];         // optional output filename complex interferogram.
00383   char          foint[EIGHTY];          //  ~ of interferogram (phase).
00384 //  char        foflatearth[EIGHTY];    //  ~ of correction (flatearth) model (phase)
00385                                         //  these are flags as well as arguments.
00386                                         //  one is man (else no output)
00387   uint          multilookL;             // multilookfactor in line dir.
00388   uint          multilookP;             // multilookfactor in pixel dir.
00389   };
00390 
00391 
00392 // ______ ______
00393 struct input_coherence                  // arguments for computation coherence
00394   {
00395   int16         method;                 // method selector
00396   char          focoh[EIGHTY];          // opt output filename of real coherence image.
00397   char          foccoh[EIGHTY];         //  ~ of complex coherence image.
00398                                         //  these are flags as well as arguments.
00399   uint          multilookL;             // multilookfactor in line dir.
00400   uint          multilookP;             // multilookfactor in pixel dir.
00401   uint          cohsizeL;               // size of estimation window coherence
00402   uint          cohsizeP;               // size of estimation window coherence
00403   };
00404 
00405 
00406 // ______ ______
00407 struct input_filtphase                  // arguments for phase filter
00408   {
00409   int16         method;                 // method selector
00410   char          fofiltphase[EIGHTY];    // output filename
00411   char          fifiltphase[EIGHTY];    // input filename
00412   int32         finumlines;             // number of lines input
00413   // ______ method goldstein ______
00414   real8         alpha;                  // weighting
00415   int32         blocksize;              // blocksize filtered blocks
00416   int32         overlap;                // half overlap
00417   // ______ method goldstein, spatial conv. and spectral ______
00418   matrix<real4> kernel;                 // e.g. [1 1 1]
00419   // ______ method spatial conv. and spectral ______
00420   char          fikernel2d[EIGHTY];     // input filename
00421   };
00422 
00423 
00424 // ______ ______
00425 struct input_unwrap                     // arguments for unwrapping
00426   {
00427   char          fouint[EIGHTY];         // output filename
00428   int16         oformatflag;            // output format [hgt] real4
00429   char          foregions[EIGHTY];      // output filename
00430   char          seedfile[EIGHTY];       // input file with seeds
00431   int32         deltaLseed;             // seed delta line direction
00432   int32         deltaPseed;             // seed delta pixel direction
00433   int16         method;                 // method selector
00434   char          snaphu_mode[12];        // snaphu TOPO DEFO SMOOTH NOSTATCOSTS
00435   char          snaphu_log[EIGHTY];     // log filename for snaphu
00436   char          snaphu_coh[EIGHTY];     // coherence filename for snaphu opt
00437   char          snaphu_verbose[6];      // snaphu TRUE or FALSE
00438   char          snaphu_init[4];         // snaphu MST or MCF
00439   };
00440 
00441 
00442 // ______ ______
00443 struct input_slant2h                    // arguments for slant2height conversion
00444   {
00445   int16         method;                 // method selector
00446   char          fohei[EIGHTY];          // output filename height
00447   char          folam[EIGHTY];          // output filename lambda
00448   char          fophi[EIGHTY];          // output filename phi
00449   int32         Npoints;                //
00450   int32         degree1d;               // only {1,2} possible now due to solve33
00451   int32         degree2d;               //
00452   int32         Nheights;               //
00453   };
00454 
00455 
00456 // ______ ______
00457 struct input_geocode                    // arguments for geocode
00458   {
00459 //  int16       method;                 // method selector not used right now
00460   char          fophi[EIGHTY];          // output filename phi
00461   char          folam[EIGHTY];          // output filename lambda
00462   };
00463 
00464 
00465 // ______ ______
00466 struct input_subtrrefpha                // arguments for subtract 'flat earth'
00467   {
00468   int16         method;                 // method selector
00469   uint          multilookL;             // multilookfactor in line dir.
00470   uint          multilookP;             // multilookfactor in pixel dir.
00471   char          focint[EIGHTY];         // output filename complex interferogram
00472   char          forefpha[EIGHTY];       // output filename complex refpha
00473   bool          dumponlyrefpha;         // do nothing except dump refpha
00474   };
00475 
00476 // ______ ______
00477 struct input_comprefdem                 // arguments for reference phase from DEM
00478   {
00479   int16         method;                 // method selector
00480   char          firefdem[EIGHTY];       // input filename reference dem
00481   int16         iformatflag;            // input format [signed short]
00482   int32         demrows;                // number of
00483   int32         demcols;                // number of
00484   real8         demdeltalat;            // radians
00485   real8         demdeltalon;            // radians
00486   real8         demlatleftupper;        // radians
00487   real8         demlonleftupper;        // radians
00488   real8         demnodata;              // identifier/flag
00489   real8         extradense;             // extra interpolation factor (4)
00490   char          forefdem[EIGHTY];       // output filename reference phase
00491   char          forefdemhei[EIGHTY];    // output filename DEM in radarcoord.
00492   bool          includerefpha;          // flag to include 'flat earth' correction
00493   char          fodem[EIGHTY];          // flag+name output of cropped dem
00494   char          fodemi[EIGHTY];         // flag+name output of interpolated dem
00495   };
00496 
00497 // ______ ______
00498 struct input_subtrrefdem                // arguments for subtract reference DEM
00499   {
00500   int16         method;                 // method selector
00501   int32         offsetL;                // offset applied before subtraction
00502   int32         offsetP;                // offset applied before subtraction
00503   char          focint[EIGHTY];         // output filename complex interferogram
00504   };
00505 
00506 // ______ ______
00507 struct input_m_EXTRA                    // extra step
00508   {
00509   int16         method;                 // method selector
00510   };
00511 
00512 // ______ ______
00513 struct input_s_EXTRA                    // extra step
00514   {
00515   int16         method;                 // method selector
00516   };
00517 
00518 // ______ ______
00519 struct input_dinsar                     // 3 pass differntial
00520   {
00521   //int16       method;                 // method selector
00522   char          fodinsar[ONE27];        // output filename complex interferogram
00523   char          foscaleduint[ONE27];    // output filename scaled uint
00524   char          topomasterresfile[ONE27];// input filename
00525   char          toposlaveresfile[ONE27];// input filename
00526   char          topointresfile[ONE27];  // input filename
00527   };
00528 
00529 // ______ ______
00530 struct input_i_EXTRA2                   // extra step
00531   {
00532   int16         method;                 // method selector
00533   };
00534 
00535 
00536 
00537 // ====== Inline functions ======
00538 // ______ to get/set derfaults ______
00539 inline void setunspecified(char *s)
00540   {strcpy(s," ");}                      // better use string "unspecified"
00541 inline bool specified(const char *s)
00542   {return bool(strcmp(s," "));}         // return true if specified
00543 
00544 // ====== Prototypes ======
00545 //____RaffaeleNutricato START MODIFICATION SECTION 4
00546 // ______ Reads and interprets "inputoptionsfile" ______
00547 // ______ Fills input structs. ______
00548 void readinput(
00549       input_gen         &generalinput,
00550       input_ell         &inputellips,
00551       input_pr_orbits   &porbitsinput,
00552       input_readfiles   &readfilesmaster,
00553       input_crop        &cropinputmaster,
00554       input_oversample  &oversamplemaster, //____RaffaeleNutricato added this line
00555       input_readfiles   &readfilesslave,
00556       input_crop        &cropinputslave,
00557       input_oversample  &oversampleslave,  //____RaffaeleNutricato added this line
00558       input_filtazi     &filtaziinput,
00559       input_coarsecorr  &coarsecorrinput,
00560       input_fine        &fineinput,
00561       input_coregpm     &coregpminput,
00562       input_resample    &resampleinput,
00563       input_filtrange   &filtrangeinput,
00564       input_interfero   &interferoinput,
00565       input_coherence   &coherenceinput,
00566       input_comprefpha  &comprefphainput,
00567       input_subtrrefpha &subtrrefphainput,
00568       input_comprefdem  &comprefdeminput,
00569       input_subtrrefdem &subtrrefdeminput,
00570       input_filtphase   &filtphaseinput,
00571       input_dinsar      &dinsarinput,
00572       input_unwrap      &unwrapinput,
00573       input_slant2h     &slant2hinput,
00574       input_geocode     &geocodeinput);
00575 //____RaffaeleNutricato END MODIFICATION SECTION 4
00576 
00577 
00578 #endif // READINPUT_H
00579 
00580 
00581 

Generated on Fri Apr 22 15:58:00 2005 for Doris by doxygen 1.3.6