This is an automated email from the git hooks/post-receive script.

sebastic-guest pushed a commit to branch upstream-master
in repository pktools.

commit 89af987670bddb08e1a30dd5b6c77eb9ef2e6354
Author: Pieter Kempeneers <kempe...@gmail.com>
Date:   Tue Dec 10 23:12:34 2013 +0100

    changed option mr (mosaic rule) to cr (composit rule) in pkmosaic and 
removed valid rule (should be same as overwrite)
---
 src/apps/pkmosaic.cc | 122 +++++++++++++++++++++++++++------------------------
 1 file changed, 64 insertions(+), 58 deletions(-)

diff --git a/src/apps/pkmosaic.cc b/src/apps/pkmosaic.cc
index db0ed63..bb6e6c5 100644
--- a/src/apps/pkmosaic.cc
+++ b/src/apps/pkmosaic.cc
@@ -28,8 +28,8 @@ along with pktools.  If not, see 
<http://www.gnu.org/licenses/>.
 #include "base/Optionpk.h"
 #include "algorithms/StatFactory.h"
 
-namespace mrule{
-  enum MRULE_TYPE {overwrite=0, maxndvi=1, maxband=2, minband=3, validband=4, 
mean=5, maxvote=6, median=7,sum=8};
+namespace crule{
+  enum CRULE_TYPE {overwrite=0, maxndvi=1, maxband=2, minband=3, validband=4, 
mean=5, mode=6, median=7,sum=8};
 }
 
 using namespace std;
@@ -40,10 +40,10 @@ int main(int argc, char *argv[])
   Optionpk<string>  output_opt("o", "output", "Output image file");
   Optionpk<string>  projection_opt("a_srs", "a_srs", "Override the projection 
for the output file (leave blank to copy from input file, use epsg:3035 to use 
European projection and force to European grid");
   Optionpk<string>  extent_opt("e", "extent", "get boundary from extent from 
polygons in vector file");
-  Optionpk<double>  ulx_opt("ulx", "ulx", "Upper left x value bounding box (in 
geocoordinates if georef is true)", 0.0);
-  Optionpk<double>  uly_opt("uly", "uly", "Upper left y value bounding box (in 
geocoordinates if georef is true)", 0.0);
-  Optionpk<double>  lrx_opt("lrx", "lrx", "Lower right x value bounding box 
(in geocoordinates if georef is true)", 0.0);
-  Optionpk<double>  lry_opt("lry", "lry", "Lower right y value bounding box 
(in geocoordinates if georef is true)", 0.0);
+  Optionpk<double>  ulx_opt("ulx", "ulx", "Upper left x value bounding box", 
0.0);
+  Optionpk<double>  uly_opt("uly", "uly", "Upper left y value bounding box", 
0.0);
+  Optionpk<double>  lrx_opt("lrx", "lrx", "Lower right x value bounding box", 
0.0);
+  Optionpk<double>  lry_opt("lry", "lry", "Lower right y value bounding box", 
0.0);
   Optionpk<double>  dx_opt("dx", "dx", "Output resolution in x (in meter) 
(0.0: keep original resolution)", 0.0);
   Optionpk<double>  dy_opt("dy", "dy", "Output resolution in y (in meter) 
(0.0: keep original resolution)", 0.0);
   Optionpk<int>  band_opt("b", "band", "band index(es) to crop (-1: crop all 
bands)", -1);
@@ -53,8 +53,8 @@ int main(int argc, char *argv[])
   Optionpk<string> option_opt("co", "co", "Creation option for output file. 
Multiple options can be specified.");
   Optionpk<short>  dstnodata_opt("dstnodata", "dstnodata", "nodata value to 
put in image if out of bounds.", 0);
   Optionpk<unsigned short>  resample_opt("r", "resample", "Resampling method 
(0: nearest neighbour, 1: bi-linear interpolation).", 0);
-  Optionpk<string>  description_opt("\0", "description", "Set image 
description");
-  Optionpk<string> mrule_opt("m", "mrule", "Mosaic rule for mosaic (overwrite, 
maxndvi, maxband, minband, validband, mean, maxvote (only for byte images), 
median, sum", "overwrite");
+  Optionpk<string>  description_opt("d", "description", "Set image 
description");
+  Optionpk<string> crule_opt("cr", "crule", "Composite rule for mosaic 
(overwrite, maxndvi, maxband, minband, mean, mode (only for byte images), 
median, sum", "overwrite");
   Optionpk<int> ruleBand_opt("rb", "rband", "band index used for the rule (for 
ndvi, use --ruleBand=redBand --ruleBand=nirBand", 0);
   Optionpk<int> validBand_opt("vb", "validBand", "valid band index(es)", 0);
   Optionpk<double> srcnodata_opt("srcnodata", "srcnodata", "invalid value for 
valid band", 0);
@@ -85,7 +85,7 @@ int main(int argc, char *argv[])
     dstnodata_opt.retrieveOption(argc,argv);
     resample_opt.retrieveOption(argc,argv);
     description_opt.retrieveOption(argc,argv);
-    mrule_opt.retrieveOption(argc,argv);
+    crule_opt.retrieveOption(argc,argv);
     ruleBand_opt.retrieveOption(argc,argv);
     validBand_opt.retrieveOption(argc,argv);
     srcnodata_opt.retrieveOption(argc,argv);
@@ -105,26 +105,32 @@ int main(int argc, char *argv[])
     exit(0);//help was invoked, stop processing
   }
 
-  std::map<std::string, mrule::MRULE_TYPE> mruleMap;
-  // //initialize mruleMap
-  // enum MRULE_TYPE {overwrite=0, maxndvi=1, maxband=2, minband=3, 
validband=4, mean=5, maxvote=6, median=7,sum=8};
+  std::map<std::string, crule::CRULE_TYPE> cruleMap;
+  // //initialize cruleMap
+  // enum CRULE_TYPE {overwrite=0, maxndvi=1, maxband=2, minband=3, 
validband=4, mean=5, mode=6, median=7,sum=8};
 
-  mruleMap["overwrite"]=mrule::overwrite;
-  mruleMap["maxndvi"]=mrule::maxndvi;
-  mruleMap["maxband"]=mrule::maxband;
-  mruleMap["minband"]=mrule::minband;
-  mruleMap["validband"]=mrule::validband;
-  mruleMap["mean"]=mrule::mean;
-  mruleMap["maxvote"]=mrule::maxvote;
-  mruleMap["median"]=mrule::median;
-  mruleMap["sum"]=mrule::sum;
+  cruleMap["overwrite"]=crule::overwrite;
+  cruleMap["maxndvi"]=crule::maxndvi;
+  cruleMap["maxband"]=crule::maxband;
+  cruleMap["minband"]=crule::minband;
+  cruleMap["validband"]=crule::validband;
+  cruleMap["mean"]=crule::mean;
+  cruleMap["mode"]=crule::mode;
+  cruleMap["median"]=crule::median;
+  cruleMap["sum"]=crule::sum;
 
   while(srcnodata_opt.size()<validBand_opt.size())
     srcnodata_opt.push_back(srcnodata_opt[0]);
+  while(validBand_opt.size()<srcnodata_opt.size())
+    validBand_opt.push_back(validBand_opt[0]);
   while(minValue_opt.size()<validBand_opt.size())
     minValue_opt.push_back(minValue_opt[0]);
+  while(validBand_opt.size()<minValue_opt.size())
+    validBand_opt.push_back(validBand_opt[0]);
   while(maxValue_opt.size()<validBand_opt.size())
     maxValue_opt.push_back(maxValue_opt[0]);
+  while(validBand_opt.size()<maxValue_opt.size())
+    validBand_opt.push_back(validBand_opt[0]);
   RESAMPLE theResample;
   switch(resample_opt[0]){
   case(BILINEAR):
@@ -219,33 +225,33 @@ int main(int argc, char *argv[])
       cout << "Bounding Box (ULX ULY LRX LRY): " << fixed << setprecision(6) 
<< theULX << " " << theULY << " " << theLRX << " " << theLRY << endl;
     if(!init){
       if(verbose_opt[0]){
-        switch(mruleMap[mrule_opt[0]]){
+        switch(cruleMap[crule_opt[0]]){
         default:
-        case(mrule::overwrite):
+        case(crule::overwrite):
           cout << "Mosaic rule: overwrite" << endl;
           break;
-        case(mrule::maxndvi):
+        case(crule::maxndvi):
           cout << "Mosaic rule: max ndvi" << endl;
           break;
-        case(mrule::maxband):
+        case(crule::maxband):
           cout << "Mosaic rule: max band" << endl;
           break;
-        case(mrule::minband):
+        case(crule::minband):
           cout << "Mosaic rule: min band" << endl;
           break;
-        case(mrule::validband):
+        case(crule::validband):
           cout << "Mosaic rule: valid band" << endl;
           break;
-        case(mrule::mean):
+        case(crule::mean):
           cout << "Mosaic rule: mean value" << endl;
           break;
-        case(mrule::maxvote):
+        case(crule::mode):
           cout << "Mosaic rule: max voting (only for byte images)" << endl;
           break;
-        case(mrule::median):
+        case(crule::median):
           cout << "Mosaic rule: median" << endl;
           break;
-        case(mrule::sum):
+        case(crule::sum):
           cout << "Mosaic rule: sum" << endl;
           break;
         }
@@ -367,7 +373,7 @@ int main(int argc, char *argv[])
   if(verbose_opt[0]){
     std::cout << weight_opt << std::endl;
   }
-  if(mruleMap[mrule_opt[0]]==mrule::maxvote){
+  if(cruleMap[crule_opt[0]]==crule::mode){
     nwriteBand=(file_opt[0])? class_opt.size()+1:class_opt.size();
   }
   else
@@ -412,9 +418,9 @@ int main(int argc, char *argv[])
   Vector2d<short> maxBuffer;//buffer used for maximum voting
   Vector2d<double> readBuffer(nband);
   statfactory::StatFactory stat;
-  if(mruleMap[mrule_opt[0]]==mrule::maxndvi)//ndvi
+  if(cruleMap[crule_opt[0]]==crule::maxndvi)//ndvi
     assert(ruleBand_opt.size()==2);
-  if(mruleMap[mrule_opt[0]]==mrule::maxvote){//max voting
+  if(cruleMap[crule_opt[0]]==crule::mode){//max voting
     maxBuffer.resize(imgWriter.nrOfCol(),256);//use only byte images for max 
voting
     for(int iclass=0;iclass<class_opt.size();++iclass)
       assert(class_opt[iclass]<maxBuffer.size());
@@ -433,12 +439,12 @@ int main(int argc, char *argv[])
     Vector2d< vector<double> > storeBuffer;
     vector<bool> writeValid(ncol);
 
-    
if(mruleMap[mrule_opt[0]]==mrule::mean||mruleMap[mrule_opt[0]]==mrule::median||mruleMap[mrule_opt[0]]==mrule::sum)//mean,
 median or (weighted) sum value
+    
if(cruleMap[crule_opt[0]]==crule::mean||cruleMap[crule_opt[0]]==crule::median||cruleMap[crule_opt[0]]==crule::sum)//mean,
 median or (weighted) sum value
       storeBuffer.resize(nband,ncol);
     for(int icol=0;icol<imgWriter.nrOfCol();++icol){
       writeValid[icol]=false;
       fileBuffer[icol]=0;
-      if(mruleMap[mrule_opt[0]]==mrule::maxvote){//max voting
+      if(cruleMap[crule_opt[0]]==crule::mode){//max voting
         for(int iclass=0;iclass<256;++iclass)
           maxBuffer[icol][iclass]=0;
       }
@@ -544,8 +550,8 @@ int main(int argc, char *argv[])
        if(readValid){
           if(writeValid[ib]){
             int iband=0;
-           switch(mruleMap[mrule_opt[0]]){
-           case(mrule::maxndvi):{//max ndvi
+           switch(cruleMap[crule_opt[0]]){
+           case(crule::maxndvi):{//max ndvi
               double red_current=writeBuffer[ruleBand_opt[0]][ib];
               double nir_current=writeBuffer[ruleBand_opt[1]][ib];
              double ndvi_current=0;
@@ -595,9 +601,9 @@ int main(int argc, char *argv[])
               }
              break;
             }
-           case(mrule::maxband):
-            case(mrule::minband):
-            case(mrule::validband)://max,min,valid band
+           case(crule::maxband):
+            case(crule::minband):
+            case(crule::validband)://max,min,valid band
               val_current=writeBuffer[ruleBand_opt[0]][ib];
               switch(resample_opt[0]){
               case(BILINEAR):
@@ -611,7 +617,7 @@ int main(int argc, char *argv[])
                   upperCol=imgReader.nrOfCol()-1;
                 
val_new=(readCol-0.5-lowerCol)*readBuffer[ruleBand_opt[0]][upperCol-startCol]+(1-readCol+0.5+lowerCol)*readBuffer[ruleBand_opt[0]][lowerCol-startCol];
                 val_new*=weight_opt[ifile];
-                
if((mruleMap[mrule_opt[0]]==mrule::maxband&&val_new>val_current)||(mruleMap[mrule_opt[0]]==mrule::minband&&val_new<val_current)||(mruleMap[mrule_opt[0]]==mrule::validband)){//&&val_new>minValue_opt[0]&&val_new<maxValue_opt[0])){
+                
if((cruleMap[crule_opt[0]]==crule::maxband&&val_new>val_current)||(cruleMap[crule_opt[0]]==crule::minband&&val_new<val_current)||(cruleMap[crule_opt[0]]==crule::validband)){//&&val_new>minValue_opt[0]&&val_new<maxValue_opt[0])){
                   for(iband=0;iband<nband;++iband){
                     
val_new=(readCol-0.5-lowerCol)*readBuffer[iband][upperCol-startCol]+(1-readCol+0.5+lowerCol)*readBuffer[iband][lowerCol-startCol];
                     val_new*=weight_opt[ifile];
@@ -625,7 +631,7 @@ int main(int argc, char *argv[])
                 readCol=static_cast<int>(readCol);
                 val_new=readBuffer[ruleBand_opt[0]][readCol-startCol];
                 val_new*=weight_opt[ifile];
-                
if((mruleMap[mrule_opt[0]]==mrule::maxband&&val_new>val_current)||(mruleMap[mrule_opt[0]]==mrule::minband&&val_new<val_current)||(mruleMap[mrule_opt[0]]==mrule::validband)){//&&val_new>minValue_opt[0]&&val_new<maxValue_opt[0])){
+                
if((cruleMap[crule_opt[0]]==crule::maxband&&val_new>val_current)||(cruleMap[crule_opt[0]]==crule::minband&&val_new<val_current)||(cruleMap[crule_opt[0]]==crule::validband)){//&&val_new>minValue_opt[0]&&val_new<maxValue_opt[0])){
                   for(iband=0;iband<nband;++iband){
                     val_new=readBuffer[iband][readCol-startCol];
                     val_new*=weight_opt[ifile];
@@ -637,7 +643,7 @@ int main(int argc, char *argv[])
                 break;
               }
              break;
-            case(mrule::maxvote)://max voting (only for Byte images)
+            case(crule::mode)://max voting (only for Byte images)
               switch(resample_opt[0]){
               case(BILINEAR):
                 lowerCol=readCol-0.5;
@@ -663,9 +669,9 @@ int main(int argc, char *argv[])
                 break;
              }
               break;
-            case(mrule::mean)://mean value
-           case(mrule::median)://median value
-           case(mrule::sum)://sum value
+            case(crule::mean)://mean value
+           case(crule::median)://median value
+           case(crule::sum)://sum value
               switch(resample_opt[0]){
               case(BILINEAR):
                 lowerCol=readCol-0.5;
@@ -696,7 +702,7 @@ int main(int argc, char *argv[])
               }
               ++fileBuffer[ib];
              break;
-           case(mrule::overwrite):
+           case(crule::overwrite):
            default:
               switch(resample_opt[0]){
               case(BILINEAR):
@@ -731,10 +737,10 @@ int main(int argc, char *argv[])
          else{
             writeValid[ib]=true;//readValid was true
             int iband=0;
-           switch(mruleMap[mrule_opt[0]]){
-            case(mrule::mean):
-            case(mrule::median):
-            case(mrule::sum):
+           switch(cruleMap[crule_opt[0]]){
+            case(crule::mean):
+            case(crule::median):
+            case(crule::sum):
               switch(resample_opt[0]){
               case(BILINEAR):
                 lowerCol=readCol-0.5;
@@ -762,7 +768,7 @@ int main(int argc, char *argv[])
               }
               ++fileBuffer[ib];
               break;
-            case(mrule::maxvote):
+            case(crule::mode):
               switch(resample_opt[0]){
               case(BILINEAR):
                 lowerCol=readCol-0.5;
@@ -824,7 +830,7 @@ int main(int argc, char *argv[])
       }
       imgReader.close();
     }
-    if(mruleMap[mrule_opt[0]]==mrule::maxvote){
+    if(cruleMap[crule_opt[0]]==crule::mode){
       vector<short> classBuffer(imgWriter.nrOfCol());
       if(class_opt.size()>1){
         for(int iclass=0;iclass<class_opt.size();++iclass){
@@ -862,18 +868,18 @@ int main(int argc, char *argv[])
         // assert(writeBuffer[bands[iband]].size()==imgWriter.nrOfCol());
         assert(writeBuffer[iband].size()==imgWriter.nrOfCol());
         for(int icol=0;icol<imgWriter.nrOfCol();++icol){
-          switch(mruleMap[mrule_opt[0]]){
-          case(mrule::mean):
+          switch(cruleMap[crule_opt[0]]){
+          case(crule::mean):
             assert(storeBuffer[bands[iband]][icol].size()==fileBuffer[icol]);
             if(storeBuffer[bands[iband]][icol].size())
               
writeBuffer[iband][icol]=stat.mean(storeBuffer[bands[iband]][icol]);
             break;
-          case(mrule::median):
+          case(crule::median):
             assert(storeBuffer[bands[iband]][icol].size()==fileBuffer[icol]);
             if(storeBuffer[bands[iband]][icol].size())
               
writeBuffer[iband][icol]=stat.median(storeBuffer[bands[iband]][icol]);
             break;
-          case(mrule::sum)://sum
+          case(crule::sum)://sum
             assert(storeBuffer[bands[iband]][icol].size()==fileBuffer[icol]);
             if(storeBuffer[bands[iband]][icol].size())
               
writeBuffer[iband][icol]=stat.sum(storeBuffer[bands[iband]][icol]);

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-grass/pktools.git

_______________________________________________
Pkg-grass-devel mailing list
Pkg-grass-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel

Reply via email to