GeomCond.h 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. #ifndef GEOMETRICAL_CONTITIONS_H
  2. #define GEOMETRICAL_CONTITIONS_H
  3. /* **********************************************************************c */
  4. /* igeom geometrical conditions c */
  5. /* -------------------------------------- c */
  6. /* c */
  7. /* c */
  8. /* you choose your own conditions; igeom=0 c */
  9. /* 0 enter solar zenith angle (in degrees ) c */
  10. /* solar azimuth angle " c */
  11. /* satellite zenith angle " c */
  12. /* satellite azimuth angle " c */
  13. /* month c */
  14. /* day of the month c */
  15. /* c */
  16. /* or you select one of the following satellite conditions:igeom=1to7 c */
  17. /* 1 meteosat observation c */
  18. /* enter month,day,decimal hour (universal time-hh.ddd) c */
  19. /* n. of column,n. of line.(full scale 5000*2500) c */
  20. /* c */
  21. /* 2 goes east observation c */
  22. /* enter month,day,decimal hour (universal time-hh.ddd) c */
  23. /* n. of column,n. of line.(full scale 17000*12000)c */
  24. /* c */
  25. /* 3 goes west observation c */
  26. /* enter month,day,decimal hour (universal time-hh.ddd) c */
  27. /* n. of column,n. of line.(full scale 17000*12000)c */
  28. /* c */
  29. /* 4 avhrr ( PM noaa ) c */
  30. /* enter month,day,decimal hour (universal time-hh.ddd) c */
  31. /* n. of column(1-2048),xlonan,hna c */
  32. /* give long.(xlonan) and overpass hour (hna) at c */
  33. /* the ascendant node at equator c */
  34. /* c */
  35. /* 5 avhrr ( AM noaa ) c */
  36. /* enter month,day,decimal hour (universal time-hh.ddd) c */
  37. /* n. of column(1-2048),xlonan,hna c */
  38. /* give long.(xlonan) and overpass hour (hna) at c */
  39. /* the ascendant node at equator c */
  40. /* c */
  41. /* 6 hrv ( spot ) * enter month,day,hh.ddd,long.,lat.c */
  42. /* c */
  43. /* 7 tm ( landsat ) * enter month,day,hh.ddd,long.,lat.c */
  44. /* c */
  45. /* 8 etm+ ( landsat7) * enter month,day,hh.ddd,long.,lat.c */
  46. /* c */
  47. /* 9 liss ( IRC 1C ) * enter month,day,hh.ddd,long.,lat.c */
  48. /* c */
  49. /* 10 aster * enter month,day,hh.ddd,long.,lat.c */
  50. /* c */
  51. /* 11 avnir * enter month,day,hh.ddd,long.,lat.c */
  52. /* c */
  53. /* 12 ikonos * enter month,day,hh.ddd,long.,lat.c */
  54. /* c */
  55. /* 13 rapideye * enter month,day,hh.ddd,long.,lat.c */
  56. /* c */
  57. /* 14 vgt1_spot4 * enter month,day,hh.ddd,long.,lat.c */
  58. /* c */
  59. /* 15 vgt2_spot5 * enter month,day,hh.ddd,long.,lat.c */
  60. /* c */
  61. /* c */
  62. /* note: for hrv and tm experiments long. and lat. are the c */
  63. /* coordinates of the scene center. c */
  64. /* lat. must be > 0 for north lat., < 0 for south lat. c */
  65. /* long. must be > 0 for east long., <0 for west long. c */
  66. /* c */
  67. /* solar and viewing positions are computed c */
  68. /* c */
  69. /* **********************************************************************c */
  70. struct GeomCond
  71. {
  72. long int igeom; /* geometrical conditions */
  73. /* primary */
  74. float asol;
  75. float phi0;
  76. float avis;
  77. float phiv;
  78. long int month;
  79. long int jday;
  80. float xlon;
  81. float xlat;
  82. /* some vars */
  83. float phi;
  84. float phirad;
  85. float xmus;
  86. float xmuv;
  87. float xmup;
  88. float xmud;
  89. float adif;
  90. float dsol;
  91. void print();
  92. private:
  93. /* conversion routines */
  94. void possol(float tu);
  95. void landsat(float tu);
  96. void posobs(float tu, int nc, int nl);
  97. void posnoa(float tu, int nc, float xlonan, float campm, float hna);
  98. void day_number(long int ia, long int& j);
  99. void pos_fft (long int j, float tu);
  100. float varsol(); /* returns dsol as in fortran proggie */
  101. void parse();
  102. public:
  103. static GeomCond Parse();
  104. };
  105. #endif /* GEOMETRICAL_CONTITIONS_H */