diff --git a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/util/CoverageUtils.java b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/util/CoverageUtils.java
index 883dddfe2c..7ec1706fd5 100644
--- a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/util/CoverageUtils.java
+++ b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/util/CoverageUtils.java
@@ -19,11 +19,7 @@
**/
package com.raytheon.viz.grid.util;
-import java.awt.RenderingHints;
-import java.awt.image.Raster;
-import java.awt.image.RenderedImage;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
@@ -31,27 +27,12 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import javax.media.jai.BorderExtender;
-import javax.media.jai.Interpolation;
-import javax.media.jai.JAI;
-import javax.media.jai.ParameterBlockJAI;
-import javax.media.jai.PlanarImage;
-
-import org.geotools.coverage.grid.GridCoverage2D;
-import org.geotools.coverage.grid.GridCoverageFactory;
-import org.geotools.coverage.grid.GridGeometry2D;
-import org.geotools.coverage.grid.ViewType;
-import org.geotools.coverage.processing.Operations;
-import org.opengis.geometry.Envelope;
-
import com.raytheon.uf.common.dataplugin.grid.GridConstants;
import com.raytheon.uf.common.dataplugin.grid.GridInfoConstants;
import com.raytheon.uf.common.dataplugin.grid.GridInfoRecord;
import com.raytheon.uf.common.dataquery.requests.DbQueryRequest;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.responses.DbQueryResponse;
-import com.raytheon.uf.common.datastorage.records.FloatDataRecord;
-import com.raytheon.uf.common.geospatial.MapUtil;
import com.raytheon.uf.common.gridcoverage.GridCoverage;
import com.raytheon.uf.common.gridcoverage.lookup.GridCoverageLookup;
import com.raytheon.uf.viz.core.alerts.AlertMessage;
@@ -66,10 +47,12 @@ import com.raytheon.viz.alerts.observers.ProductAlertObserver;
*
*
* SOFTWARE HISTORY
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Jan 08, 2010 rjpeter Initial creation
- * Jul 25, 2013 2112 bsteffen Fix volume browser sounding errors.
+ * Date Ticket# Engineer Description
+ * ------------- -------- ----------- --------------------------
+ * Jan 08, 2010 rjpeter Initial creation
+ * Jul 25, 2013 2112 bsteffen Fix volume browser sounding errors.
+ * May 19, 2014 2913 bsteffen Remove dead code.
+ *
*
*
*
@@ -183,62 +166,6 @@ public class CoverageUtils implements IAlertObserver {
}
}
- /**
- * Resamples the grid to a new resolution using scale values
- *
- * @param img
- * The image to scale
- * @param xScale
- * The new horizontal resolution
- * @param yScale
- * The new vertical resolution
- * @return The resampled image
- */
- public GridCoverage2D cropGrid(GridCoverage2D inputCoverage,
- GridGeometry2D outputGeometry, Interpolation interpolation) {
- RenderingHints hint = new RenderingHints(JAI.KEY_BORDER_EXTENDER,
- BorderExtender.createInstance(BorderExtender.BORDER_COPY));
- Operations oper = new Operations(hint);
- return (GridCoverage2D) oper.resample(
- inputCoverage.view(ViewType.GEOPHYSICS),
- outputGeometry.getCoordinateReferenceSystem(),
- outputGeometry,
- interpolation == null ? Interpolation
- .getInstance(Interpolation.INTERP_BICUBIC)
- : interpolation);
- }
-
- /**
- * Resamples the grid to a new resolution using scale values
- *
- * @param img
- * The image to scale
- * @param xScale
- * The new horizontal resolution
- * @param yScale
- * The new vertical resolution
- * @return The resampled image
- */
- private PlanarImage scaleGrid(RenderedImage img, float xScale, float yScale) {
-
- PlanarImage scaledImg;
-
- ParameterBlockJAI param = new ParameterBlockJAI("Scale");
- param.addSource(img);
- param.setParameter("xScale", xScale);
- param.setParameter("yScale", yScale);
- Interpolation interpol = Interpolation
- .getInstance(Interpolation.INTERP_BICUBIC_2);
- RenderingHints hint = new RenderingHints(JAI.KEY_BORDER_EXTENDER,
- BorderExtender.createInstance(BorderExtender.BORDER_COPY));
-
- param.setParameter("interpolation", interpol);
-
- scaledImg = JAI.create("Scale", param, hint).getRendering();
-
- return scaledImg;
- }
-
@Override
public void alertArrived(Collection alertMessages) {
for (AlertMessage alertMessage : alertMessages) {
diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.gfe/src/com/raytheon/uf/common/dataplugin/gfe/RemapGrid.java b/edexOsgi/com.raytheon.uf.common.dataplugin.gfe/src/com/raytheon/uf/common/dataplugin/gfe/RemapGrid.java
index f77d255350..9c043c3a80 100644
--- a/edexOsgi/com.raytheon.uf.common.dataplugin.gfe/src/com/raytheon/uf/common/dataplugin/gfe/RemapGrid.java
+++ b/edexOsgi/com.raytheon.uf.common.dataplugin.gfe/src/com/raytheon/uf/common/dataplugin/gfe/RemapGrid.java
@@ -20,24 +20,12 @@
package com.raytheon.uf.common.dataplugin.gfe;
-import java.awt.RenderingHints;
-import java.awt.image.Raster;
-import java.awt.image.RenderedImage;
import java.lang.ref.SoftReference;
import java.nio.ByteBuffer;
import java.nio.FloatBuffer;
-import javax.media.jai.BorderExtender;
-import javax.media.jai.Interpolation;
-import javax.media.jai.JAI;
-import javax.media.jai.ParameterBlockJAI;
-import javax.media.jai.PlanarImage;
-
-import org.geotools.coverage.grid.GridCoverage2D;
-import org.geotools.coverage.grid.GridCoverageFactory;
import org.geotools.coverage.grid.GridEnvelope2D;
import org.geotools.coverage.grid.GridGeometry2D;
-import org.opengis.geometry.Envelope;
import org.opengis.referencing.FactoryException;
import org.opengis.referencing.operation.TransformException;
@@ -78,6 +66,8 @@ import com.vividsolutions.jts.geom.Coordinate;
* 07/17/13 #2185 bsteffen Cache computed grid reprojections.
* 08/13/13 #1571 randerso Passed fill values into interpolator.
* 03/07/14 #2791 bsteffen Move Data Source/Destination to numeric plugin.
+ * 05/19/14 #2913 bsteffen Remove rescale option.
+ *
*
*
*
@@ -91,8 +81,6 @@ public class RemapGrid {
/** The output grid location describing the destination data */
private GridLocation destinationGloc;
- private boolean rescale = false;
-
private SoftReference rotationRef;
/**
@@ -104,24 +92,8 @@ public class RemapGrid {
* The destination grid location describing the destination data
*/
public RemapGrid(GridLocation sourceGloc, GridLocation destinationGloc) {
- this(sourceGloc, destinationGloc, false);
- }
-
- /**
- * Constructs a new RemapGrid with the given input and output grid locations
- *
- * @param sourceGloc
- * The source grid location describing the source data
- * @param destinationGloc
- * The destination grid location describing the destination data
- * @param rescale
- * true if data is to be rescaled
- */
- public RemapGrid(GridLocation sourceGloc, GridLocation destinationGloc,
- boolean rescale) {
this.sourceGloc = sourceGloc;
this.destinationGloc = destinationGloc;
- this.rescale = rescale;
this.rotationRef = new SoftReference(null);
}
@@ -549,67 +521,25 @@ public class RemapGrid {
GridGeometry2D sourceGeometry = MapUtil.getGridGeometry(sourceGloc);
float[] data = input.getFloats();
- float[] f1 = null;
- /*
- * Checks the CRSs to see if they are the same. If they are, then
- * reprojection is not necessary, only resampling
- */
- if (rescale
- && sourceGeometry.getCoordinateReferenceSystem().toWKT()
- .equals(destinationGloc.getCrsWKT())) {
+ GridGeometry2D destGeometry = MapUtil.getGridGeometry(destinationGloc);
- GridCoverageFactory factory = new GridCoverageFactory();
+ GridReprojection interp = PrecomputedGridReprojection.getReprojection(
+ sourceGeometry, destGeometry);
- Envelope inputEnvelope = sourceGeometry.getEnvelope();
+ DataSource source = new GeographicDataSource(FloatBuffer.wrap(data),
+ sourceGeometry);
+ source = FillValueFilter.apply(source, inputFill);
+ ;
- // Map the data into an array
- float[][] dataPoints = new float[input.getYdim()][input.getXdim()];
+ FloatBufferWrapper rawDest = new FloatBufferWrapper(
+ destGeometry.getGridRange2D());
+ DataDestination dest = InverseFillValueFilter.apply(
+ (DataDestination) rawDest, outputFill);
- int i = 0;
- for (int y = 0; y < input.getYdim(); y++) {
- for (int x = 0; x < input.getXdim(); x++) {
- dataPoints[y][x] = data[i++];
- }
- }
+ interp.reprojectedGrid(new BilinearInterpolation(), source, dest);
- // Construct the source grid coverage object
- GridCoverage2D inputGC = factory.create("in", dataPoints,
- inputEnvelope);
-
- float scaleX = ((float) destinationGloc.getNx() / (float) sourceGloc
- .getNx());
- float scaleY = ((float) destinationGloc.getNy() / (float) sourceGloc
- .getNy());
- PlanarImage image = scaleGrid(inputGC.getRenderedImage(), scaleX,
- scaleY);
- Raster rasterData = image.getData();
- f1 = rasterData.getPixels(rasterData.getMinX(),
- rasterData.getMinY(), rasterData.getWidth(),
- rasterData.getHeight(), f1);
-
- JAI.getDefaultInstance().getTileCache().flush();
- } else {
- GridGeometry2D destGeometry = MapUtil
- .getGridGeometry(destinationGloc);
-
- GridReprojection interp = PrecomputedGridReprojection
- .getReprojection(sourceGeometry, destGeometry);
-
- DataSource source = new GeographicDataSource(
- FloatBuffer.wrap(data), sourceGeometry);
- source = FillValueFilter.apply(source, inputFill);
- ;
-
- FloatBufferWrapper rawDest = new FloatBufferWrapper(
- destGeometry.getGridRange2D());
- DataDestination dest = InverseFillValueFilter.apply(
- (DataDestination) rawDest, outputFill);
-
- interp.reprojectedGrid(new BilinearInterpolation(), source, dest);
-
- f1 = rawDest.getArray();
- }
+ float[] f1 = rawDest.getArray();
// Remap the the output data into a Grid2DFloat object
@@ -619,37 +549,6 @@ public class RemapGrid {
return retVal;
}
- /**
- * Resamples the grid to a new resolution using scale values
- *
- * @param img
- * The image to scale
- * @param xScale
- * The new horizontal resolution
- * @param yScale
- * The new vertical resolution
- * @return The resampled image
- */
- private PlanarImage scaleGrid(RenderedImage img, float xScale, float yScale) {
-
- PlanarImage scaledImg;
-
- ParameterBlockJAI param = new ParameterBlockJAI("Scale");
- param.addSource(img);
- param.setParameter("xScale", xScale);
- param.setParameter("yScale", yScale);
- Interpolation interpol = Interpolation
- .getInstance(Interpolation.INTERP_BICUBIC);
- RenderingHints hint = new RenderingHints(JAI.KEY_BORDER_EXTENDER,
- BorderExtender.createInstance(BorderExtender.BORDER_COPY));
-
- param.setParameter("interpolation", interpol);
-
- scaledImg = JAI.create("Scale", param, hint);
-
- return scaledImg;
-
- }
private float getRot(int x, int y) {
Grid2DFloat rotation;
diff --git a/edexOsgi/com.raytheon.uf.common.mpe/src/com/raytheon/uf/common/mpe/util/XmrgFile.java b/edexOsgi/com.raytheon.uf.common.mpe/src/com/raytheon/uf/common/mpe/util/XmrgFile.java
index b9edf194e0..b2164d436b 100644
--- a/edexOsgi/com.raytheon.uf.common.mpe/src/com/raytheon/uf/common/mpe/util/XmrgFile.java
+++ b/edexOsgi/com.raytheon.uf.common.mpe/src/com/raytheon/uf/common/mpe/util/XmrgFile.java
@@ -20,9 +20,6 @@
package com.raytheon.uf.common.mpe.util;
import java.awt.Rectangle;
-import java.awt.image.BufferedImage;
-import java.awt.image.DataBufferUShort;
-import java.awt.image.Raster;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -37,8 +34,6 @@ import java.util.Arrays;
import java.util.Date;
import java.util.TimeZone;
-import javax.imageio.ImageIO;
-import javax.media.jai.RasterFactory;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
@@ -51,6 +46,8 @@ import javax.xml.bind.annotation.XmlElement;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Sep 30, 2008 randerso Initial creation
+ * May 20, 2014 2913 bsteffen Remove main
+ *
*
*
* @author randerso
@@ -447,52 +444,6 @@ public class XmrgFile {
}
}
- public static void main(String[] args) {
- try {
- XmrgFile xFile = new XmrgFile(
- // "/home/randerso/oaxData/precip_proc/local/data/mpe/rmosaic/RMOSAIC2008092213z");
- "/home/randerso/oaxData/precip_proc/local/data/app/mpe/prism/prism_mean_precip_oax_sep");
- // "/home/randerso/MPE/RMOSAIC2008102315z");
- xFile.load();
- Rectangle extent = xFile.getHrapExtent();
-
- XmrgHeader header = xFile.getHeader();
-
- short[] data = xFile.getData();
-
- System.out.println(extent);
- System.out.println(header);
-
- DataBufferUShort dataBuffer = new DataBufferUShort(data,
- data.length);
-
- int[] bandMasks = new int[] { 0xf800, 0x07e0, 0x001f };
- Raster raster = RasterFactory.createPackedRaster(dataBuffer,
- extent.width, extent.height, extent.width, bandMasks, null);
-
- BufferedImage bi = new BufferedImage(extent.width, extent.height,
- BufferedImage.TYPE_USHORT_565_RGB);
- bi.setData(raster);
- ImageIO.write(bi, "png", new File("/tmp/xxx.png"));
-
- xFile.save("/tmp/xmrg.dat");
-
- Rectangle rect = new Rectangle(
- //
- // extent.x, extent.y, 7, 7);
- extent.x + extent.width - 7, extent.y + extent.height - 7,
- 7, 7);
- short[][] subData = xFile.getData(rect);
- for (int i = 0; i < rect.height; i++) {
- System.out.println(Arrays.toString(subData[i]));
- }
-
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
/**
* @return the file
*/