[GRASS-SVN] r44359 - grass/branches/develbranch_6/imagery/i.atcorr
svn_grass at osgeo.org
svn_grass at osgeo.org
Fri Nov 19 09:29:44 EST 2010
Author: aghisla
Date: 2010-11-19 06:29:44 -0800 (Fri, 19 Nov 2010)
New Revision: 44359
Modified:
grass/branches/develbranch_6/imagery/i.atcorr/GeomCond.cpp
grass/branches/develbranch_6/imagery/i.atcorr/GeomCond.h
grass/branches/develbranch_6/imagery/i.atcorr/Iwave.cpp
grass/branches/develbranch_6/imagery/i.atcorr/Iwave.h
grass/branches/develbranch_6/imagery/i.atcorr/description.html
Log:
Merged r44358 from trunk.
Modified: grass/branches/develbranch_6/imagery/i.atcorr/GeomCond.cpp
===================================================================
--- grass/branches/develbranch_6/imagery/i.atcorr/GeomCond.cpp 2010-11-19 14:00:17 UTC (rev 44358)
+++ grass/branches/develbranch_6/imagery/i.atcorr/GeomCond.cpp 2010-11-19 14:29:44 UTC (rev 44359)
@@ -366,6 +366,7 @@
case 10: /* aster * enter month,day,hh.ddd,long.,lat. */
case 11: /* avnir * enter month,day,hh.ddd,long.,lat. */
case 12: /* ikonos * enter month,day,hh.ddd,long.,lat. */
+ case 13: /* rapideye * enter month,day,hh.ddd,long.,lat. */
{
cin >> month;
cin >> jday;
@@ -424,7 +425,8 @@
string(" liss observation "),
string(" aster observation "),
string(" avnir observation "),
- string(" ikonos observation ")
+ string(" ikonos observation "),
+ string(" rapideye observation ")
};
static const string head(" geometrical conditions identity ");
Modified: grass/branches/develbranch_6/imagery/i.atcorr/GeomCond.h
===================================================================
--- grass/branches/develbranch_6/imagery/i.atcorr/GeomCond.h 2010-11-19 14:00:17 UTC (rev 44358)
+++ grass/branches/develbranch_6/imagery/i.atcorr/GeomCond.h 2010-11-19 14:29:44 UTC (rev 44359)
@@ -53,7 +53,9 @@
/* c */
/* 12 ikonos * enter month,day,hh.ddd,long.,lat.c */
/* c */
+/* 13 rapideye * enter month,day,hh.ddd,long.,lat.c */
/* c */
+/* c */
/* note: for hrv and tm experiments long. and lat. are the c */
/* coordinates of the scene center. c */
/* lat. must be > 0 for north lat., < 0 for south lat. c */
Modified: grass/branches/develbranch_6/imagery/i.atcorr/Iwave.cpp
===================================================================
--- grass/branches/develbranch_6/imagery/i.atcorr/Iwave.cpp 2010-11-19 14:00:17 UTC (rev 44358)
+++ grass/branches/develbranch_6/imagery/i.atcorr/Iwave.cpp 2010-11-19 14:29:44 UTC (rev 44359)
@@ -2182,6 +2182,100 @@
}
}
+/* Following filter function created using create_iwave.py */
+
+void IWave::rapideye(int iwa)
+{
+
+ /* "Blue" of rapideye */
+ static const float sr1[30] = {
+ .0200, .5050, .7300, .7450, .7600, .7750, .7800,
+ .8000, .8000, .8000, .8100, .8000, .8100, .8200,
+ .8300, .8400, .8500, .8650, .8800, .8900, .9200,
+ .9500, .9700, .9700, 1.0000, 1.0000
+ };
+
+ /* "Green" of rapideye */
+ static const float sr2[53] = {
+ .0100, .0183, .0267, .0105, .0132, .0158, .0184,
+ .0237, .0263, .0289, .0288, .0268, .0248, .0228,
+ .0188, .0168, .0148, .0128, .0108, .0200, .1200,
+ .8700, .8700, .8800, .8700, .8800, .8800, .8800,
+ .8900, .9000, .9000, .9050, .9200, .9250, .9300,
+ .9500, .9550, .9700, .9750, .9800, .9800, .9900,
+ .9900, .9850, 1.0000, .2750
+ };
+
+ /* "Red" of rapideye */
+ static const float sr3[27] = {
+ .0100, .0300, .2000, .7900, .8500, .8750, .8800,
+ .9000, .9100, .9100, .9200, .9300, .9450, .9500,
+ .9700, .9750, .9900, .9900, .9900, .9900, 1.0000,
+ .8600, .1150
+ };
+
+ /* "RedEdge " of rapideye */
+ static const float sr4[95] = {
+ .0300, .0285, .0271, .0256, .0241, .0226, .0212,
+ .0182, .0168, .0153, .0138, .0124, .0109, .0101,
+ .0108, .0111, .0114, .0118, .0121, .0124, .0128,
+ .0134, .0138, .0141, .0144, .0147, .0151, .0154,
+ .0161, .0164, .0167, .0170, .0174, .0177, .0180,
+ .0187, .0190, .0193, .0197, .0200, .0200, .0200,
+ .0200, .0200, .0200, .0200, .0200, .0200, .0200,
+ .0200, .0200, .0197, .0191, .0185, .0178, .0172,
+ .0159, .0153, .0146, .0140, .0133, .0127, .0121,
+ .0108, .0101, .0200, .1050, .4900, .9450, 1.0000,
+ 1.0000, .9900, .9900, .9900, .9800, .9750, .9700,
+ .9600, .9450, .9400, .9000, .4300, .0950
+ };
+
+ /* "NIR " of rapideye */
+ static const float sr5[137] = {
+ .0100, .0102, .0103, .0105, .0106, .0108, .0110,
+ .0113, .0115, .0116, .0118, .0119, .0121, .0123,
+ .0126, .0128, .0129, .0131, .0132, .0134, .0136,
+ .0139, .0141, .0142, .0144, .0145, .0147, .0149,
+ .0152, .0154, .0155, .0157, .0158, .0160, .0162,
+ .0165, .0167, .0168, .0170, .0171, .0173, .0175,
+ .0178, .0180, .0181, .0183, .0184, .0186, .0188,
+ .0191, .0193, .0194, .0196, .0197, .0199, .0199,
+ .0192, .0188, .0185, .0182, .0178, .0175, .0171,
+ .0164, .0161, .0158, .0154, .0151, .0147, .0144,
+ .0137, .0134, .0130, .0127, .0123, .0120, .0116,
+ .0110, .0106, .0103, .0100, .0100, .0250, .0700,
+ .5000, .8850, 1.0000, .9750, .9700, .9750, .9800,
+ .9700, .9600, .9600, .9600, .9600, .9600, .9600,
+ .9500, .9400, .9400, .9300, .9300, .9300, .9300,
+ .9200, .9200, .9100, .9000, .8900, .8850, .8800,
+ .8600, .8400, .8400, .8150, .5800, .2450, .0800,
+
+ };
+
+ static const float wli[5] = {0.438, 0.463, 0.624, 0.500, 0.520};
+ static const float wls[5] = {0.513, 0.594, 0.690, 0.737, 0.862};
+
+ ffu.wlinf = (float)wli[iwa-1];
+ ffu.wlsup = (float)wls[iwa-1];
+
+ int i;
+ for(i = 0; i < 1501; i++) ffu.s[i] = 0;
+
+ switch(iwa)
+ {
+ case 1: for(i = 0; i < 30; i++) ffu.s[75+i] = sr1[i];
+ break;
+ case 2: for(i = 0; i < 53; i++) ffu.s[85+i] = sr2[i];
+ break;
+ case 3: for(i = 0; i < 27; i++) ffu.s[149+i] = sr3[i];
+ break;
+ case 4: for(i = 0; i < 95; i++) ffu.s[100+i] = sr4[i];
+ break;
+ case 5: for(i = 0; i < 137; i++) ffu.s[108+i] = sr5[i];
+ break;
+ }
+}
+
float IWave::equivwl() const
{
float seb = 0;
@@ -2251,6 +2345,7 @@
else if(iwave <= 80) aster(iwave - 71);
else if(iwave <= 84) avnir(iwave - 80);
else if(iwave <= 87) ikonos(iwave - 84);
+ else if(iwave <= 92) rapideye(iwave - 87);
else G_warning(_("Unsupported iwave value: %d"), iwave);
}
@@ -2267,7 +2362,7 @@
/* --- spectral condition ---- */
void IWave::print()
{
- static const string nsat[89] = {
+ static const string nsat[94] = {
string(" constant "), string(" user s "),
string(" meteosat "), string(" goes east "), string(" goes west "),
string(" avhrr 1 (noaa6) "), string(" avhrr 2 (noaa6) "),
@@ -2303,8 +2398,10 @@
string(" aster 4 "), string(" aster 5 "), string(" aster 6 "),
string(" aster 7 "), string(" aster 8 "), string(" aster 9 "),
string(" avnir 1 "), string(" avnir 2 "), string(" avnir 3 "),
- string(" avnir 4 "), string(" ikonos green "), string(" ikonos red "),
- string(" ikonos NIR ")
+ string(" avnir 4 "),
+ string(" ikonos green "), string(" ikonos red "), string(" ikonos NIR "),
+ string(" rapideye blue "), string(" rapideye green "), string(" rapideye red "),
+ string(" rapideye rededge"), string(" rapideye NIR "),
};
Modified: grass/branches/develbranch_6/imagery/i.atcorr/Iwave.h
===================================================================
--- grass/branches/develbranch_6/imagery/i.atcorr/Iwave.h 2010-11-19 14:00:17 UTC (rev 44358)
+++ grass/branches/develbranch_6/imagery/i.atcorr/Iwave.h 2010-11-19 14:29:44 UTC (rev 44359)
@@ -109,6 +109,11 @@
c 85 Green band of IKONOS ( 0.350-1.035 ) c
c 86 Red " ( 0.350-1.035 ) c
c 87 NIR " ( 0.350-1.035 ) c
+c 88 Blue band of RapidEye ( 0.438-0.513 ) c
+c 89 Green " ( 0.463-0.594 ) c
+c 90 Red " ( 0.624-0.690 ) c
+c 91 RedEdge " ( 0.500-0.737 ) c
+c 92 NIR " ( 0.520-0.862 ) c
c note: wl has to be in micrometer c
c**********************************************************************/
@@ -147,6 +152,7 @@
void aster(int iwa);
void avnir(int iwa);
void ikonos(int iwa);
+ void rapideye(int iwa);
public:
Modified: grass/branches/develbranch_6/imagery/i.atcorr/description.html
===================================================================
--- grass/branches/develbranch_6/imagery/i.atcorr/description.html 2010-11-19 14:00:17 UTC (rev 44358)
+++ grass/branches/develbranch_6/imagery/i.atcorr/description.html 2010-11-19 14:29:44 UTC (rev 44359)
@@ -153,6 +153,12 @@
<td>enter month,day,hh.ddd,long.,lat. *</td>
</tr>
+<tr>
+<td>13</td>
+<td><b>RapidEye</b></td>
+<td>enter month,day,hh.ddd,long.,lat. *</td>
+</tr>
+
</table>
<blockquote>
@@ -532,6 +538,12 @@
<tr><td>86</td><td>ikonos Red band (0.350-1.035)</td></tr>
<tr><td>87</td><td>ikonos NIR band (0.350-1.035)</td></tr>
+<tr><td>88</td><td><b>RapidEye</b> Blue band (0.438-0.513)</td></tr>
+<tr><td>89</td><td>RapidEye Green band (0.463-0.594)</td></tr>
+<tr><td>90</td><td>RapidEye Red band (0.624-0.690)</td></tr>
+<tr><td>91</td><td>RapidEye RedEdge band (0.500-0.737)</td></tr>
+<tr><td>92</td><td>RapidEye NIR band (0.520-0.862)</td></tr>
+
</table>
<h2>EXAMPLES</h2>
@@ -678,8 +690,12 @@
-->
<li>Mauro A. Homem Antunes <a href="http://www.ltid.inpe.br/dsr/mauro/6s/download_6s.html">website about his 6S version</a>
+
+<li>RapidEye sensors have been provided by <a href="http://www.rapideye.de/">RapidEye AG, Germany</a>
+
</ul>
+
<h2>AUTHORS</h2>
<p><em>Original version of the program for GRASS 5:</em>
@@ -697,6 +713,9 @@
<p><em>AVNIR, IKONOS sensors addition 7/2010:</em>
<br>Daniel Victoria, Anne Ghisla
+<p><em>RapidEye sensors addition 11/2010:</em>
+<br>Peter Löwe, Anne Ghisla
+
<p>
<i>Last changed: $Date$</i>
More information about the grass-commit
mailing list