Hello Michael,
Thanks a lot for your quick reply,
Regards.
Agossa.

Michael Bedward wrote:
> 
> Hi Agossa,
> 
> It might be easiest for you to get the backing image from grid
> coverage and use JAI methods for the masking and calculation.  In JAI
> parlance, masking is referred to as defining a "region of interest",
> ROI, which may be a shape or pixel-based (e.g. ROI based on coverage
> cells with a particular value).
> http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/ROI.html
> http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/ROIShape.html
> 
> Then you can either use a JAI iterator to count value occurrences
> within the ROI...
> http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/iterator/RectIterFactory.html
> 
> ...or the JAI histogram operation to count occurrences of all values
> within the ROI.  Both can deal with multiple bands.
> 
> An example using an iterator and an ROI based on a second grid
> coverage.  It assumes that the two coverages have the same bounds...
> 
>         RenderedImage dataImg = cov1.getRenderedImage();
>         RenderedImage maskImg = cov2.getRenderedImage();
> 
>         // create an ROI based on all pixels in maskImg with value
>         // >= threshold
>         ROI roi = new ROI(maskImg, threshold);
> 
>         RectIter iter = RectIterFactory.create(dataImg, null);
>         int numBands = dataImg.getSampleModel().getNumBands();
>         int[] values = new int[numBands];
>         int[] count = new int[numBands];
>         for (int i = 0; i < numBands; i++) count[i] = 0;
> 
>         int y = roi.getBounds().y;
>         do {
>             iter.startPixels();
>             int x = roi.getBounds().x;
>             do {
>                 if (roi.contains(x, y)) {
>                     iter.getPixel(values);
>                     for (int i = 0; i < numBands; i++) {
>                         if (values[i] == searchValue) {
>                             count[i]++;
>                         }
>                     }
>                 }
>                 x++ ;
>             } while (!iter.nextPixelDone());
>             y++ ;
>         } while (!iter.nextLineDone());
> 
> 
> Michael
> 
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by:
> SourcForge Community
> SourceForge wants to tell your story.
> http://p.sf.net/sfu/sf-spreadtheword
> _______________________________________________
> Geotools-gt2-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
> 
> 

-- 
View this message in context: 
http://n2.nabble.com/Masking-an-RasterImage-with-another-one-tp2232089p2238120.html
Sent from the geotools-gt2-users mailing list archive at Nabble.com.


------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to