code: @Execute
      public void process() throws Exception {
          if (!concatOr(outTca == null, doReset)) {
              return;
          }
          checkNull(inPit, inFlow);
          HashMap<String, Double> regionMap = CoverageUtilities.getRegionParamsFromGridCoverage(inPit);
          cols = regionMap.get(CoverageUtilities.COLS).intValue();
          rows = regionMap.get(CoverageUtilities.ROWS).intValue();
          xRes = regionMap.get(CoverageUtilities.XRES);
          yRes = regionMap.get(CoverageUtilities.YRES);
  
          RenderedImage pitfillerRI = inPit.getRenderedImage();
          WritableRaster pitWR = CoverageUtilities.renderedImage2WritableRaster(pitfillerRI, false);
          RenderedImage flowRI = inFlow.getRenderedImage();
          WritableRaster flowWR = CoverageUtilities.renderedImage2WritableRaster(flowRI, true);
  
          // Initialize new RasterData and set value
          WritableRaster tca3dWR = CoverageUtilities.createWritableRaster(cols, rows, null, null, doubleNovalue);
  
          tca3dWR = area3d(pitWR, flowWR, tca3dWR);
          outTca = CoverageUtilities.buildCoverage("tca3d", tca3dWR, regionMap, //$NON-NLS-1$
                  inPit.getCoordinateReferenceSystem());
  
      }
docs: Calculates total contributing areas
  
  @throws Exception