public void write(OutputStream outStream) { try { long t0 = System.currentTimeMillis(); GeoTiffWriteParams wp = new GeoTiffWriteParams(); wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("LZW"); ParameterValueGroup params = new GeoTiffFormat().getWriteParameters(); params.parameter(AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString()).setValue(wp); new GeoTiffWriter(outStream).write(coverage, (GeneralParameterValue[]) params.values().toArray(new GeneralParameterValue[1])); //new GeoTiffWriter(outStream).write(coverage, null); //wasn't this line writing twice and trashing compressed version? long t1 = System.currentTimeMillis(); LOG.debug("wrote geotiff in {}msec", t1-t0); } catch (Exception e) { LOG.error("exception while preparing geotiff : {}", e.getMessage()); throw new WebApplicationException(e); } } };
private GeoTiffWriteParams buildWriteParams(GridCoverage2D coverage) { final RenderedImage renderedImage = coverage.getRenderedImage(); int tileWidth = renderedImage.getTileWidth(); int tileHeight = renderedImage.getTileHeight(); // avoid tiles bigger than the image final GridEnvelope gr = coverage.getGridGeometry().getGridRange(); if (gr.getSpan(0) < tileWidth) { tileWidth = gr.getSpan(0); } if (gr.getSpan(1) < tileHeight) { tileHeight = gr.getSpan(1); } GeoTiffWriteParams writeParams = new GeoTiffWriteParams(); writeParams.setTilingMode(GeoToolsWriteParams.MODE_EXPLICIT); writeParams.setTiling(tileWidth, tileHeight); return writeParams; }
if (compressionS != null && !compressionS.equalsIgnoreCase("none")) { if (compressionS.equals("LZW")) { wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("LZW"); if (predictorS != null) { if (predictorS.equals("Horizontal")) { wp.setTIFFCompressor( new TIFFLZWCompressor( BaselineTIFFTagSet.PREDICTOR_HORIZONTAL_DIFFERENCING)); wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("JPEG"); wp.setCompressionQuality(DEFAULT_JPEG_COMPRESSION_QUALITY); final int quality = Integer.valueOf(quality_); if (quality > 0 && quality <= 100) { wp.setCompressionQuality(quality / 100.f); } else { wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("PackBits"); } else if (compressionS.equals("DEFLATE") || compressionS.equals("Deflate")) { wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("Deflate"); } else if (compressionS.equals("Huffman")) { wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("CCITT RLE");
public void encode(OutputStream output) throws ServiceException, IOException { if (sourceCoverage == null) { throw new IllegalStateException("It seems prepare() has not been called" + " or has not succeed"); } final GeoTiffFormat format = new GeoTiffFormat(); final GeoTiffWriteParams wp = new GeoTiffWriteParams(); wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("LZW"); wp.setCompressionQuality(0.75F); wp.setTilingMode(GeoToolsWriteParams.MODE_EXPLICIT); wp.setTiling(256, 256); final ParameterValueGroup writerParams = format.getWriteParameters(); writerParams.parameter(AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString()) .setValue(wp); GridCoverageWriter writer = format.getWriter(output); writer.write(sourceCoverage, (GeneralParameterValue[]) writerParams.values().toArray(new GeneralParameterValue[1])); writer.dispose(); this.sourceCoverage.dispose(false); this.sourceCoverage = null; } }
GeoTiffWriter writer = new GeoTiffWriter(coverageFile); final GeoTiffFormat format = new GeoTiffFormat(); final GeoTiffWriteParams wp = new GeoTiffWriteParams(); wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("LZW"); wp.setCompressionQuality(0.75F);
/** * Returns an instance of {@link GeoTiffWriteParams} for controlling an hypothetic writing * process. * * @return an instance of {@link GeoTiffWriteParams}. */ @Override public GeoToolsWriteParams getDefaultImageIOWriteParameters() { return new GeoTiffWriteParams(); } }
wp.setTilingMode(GeoToolsWriteParams.MODE_EXPLICIT); wp.setTiling(tileDimensions.width, tileDimensions.height);
int tw = Integer.parseInt(tileWidth); int th = Integer.parseInt(tileHeight); writeParams.setTilingMode(ImageWriteParam.MODE_EXPLICIT); writeParams.setTiling(tw, th); writeParams.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); writeParams.setCompressionType(compressionType); if (encodingParameters.containsKey(QUALITY_KEY)) { String compressionQuality = (String) encodingParameters.get(QUALITY_KEY); try { writeParams.setCompressionQuality(Float.parseFloat(compressionQuality));
GeoTiffWriter writer = new GeoTiffWriter(coverageFile); final GeoTiffFormat format = new GeoTiffFormat(); final GeoTiffWriteParams wp = new GeoTiffWriteParams(); wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("LZW"); wp.setCompressionQuality(0.75F);
/** * Returns an instance of {@link GeoTiffWriteParams} for controlling an * hypothetic writing process. * * @return an instance of {@link GeoTiffWriteParams}. */ @Override public GeoToolsWriteParams getDefaultImageIOWriteParameters() { return new GeoTiffWriteParams(); }
private void writeGeotiff(GeoTiffWriter geoTiffWriter, GridCoverage coverage){ GeoTiffFormat format = new GeoTiffFormat(); GeoTiffWriteParams wp = new GeoTiffWriteParams(); wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("LZW"); wp.setTilingMode(GeoToolsWriteParams.MODE_EXPLICIT); int width = ((GridCoverage2D) coverage).getRenderedImage().getWidth(); int tileWidth = 1024; tileWidth = new Double(Math.sqrt(width)).intValue(); wp.setTiling(tileWidth, tileWidth); ParameterValueGroup paramWrite = format.getWriteParameters(); paramWrite.parameter(AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString()).setValue(wp);
public void writeGeotiff(String fileName, ResultSet results) { LOG.info("writing geotiff."); float[][] imagePixelData = new float[rows][cols]; for (int row = 0; row < rows; row++) { for (int col = 0; col < cols; col++) { int index = row * cols + col; float pixel = (float) (results.results[index]); if (unitySeconds > 0) pixel /= unitySeconds; imagePixelData[row][col] = pixel; } } GridCoverage2D coverage = new GridCoverageFactory().create("OTPAnalyst", imagePixelData, refEnvelope); try { GeoTiffWriteParams wp = new GeoTiffWriteParams(); wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("LZW"); ParameterValueGroup params = new GeoTiffFormat().getWriteParameters(); params.parameter(AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString()).setValue(wp); GeoTiffWriter writer = new GeoTiffWriter(new File(fileName)); writer.write(coverage, (GeneralParameterValue[]) params.values().toArray(new GeneralParameterValue[1])); } catch (Exception e) { LOG.error("exception while writing geotiff.", e); } LOG.info("done writing geotiff."); }
if (gtParams == null) gtParams = new GeoTiffWriteParams();
public GridCoverage2D saveAsGeoTiff(GridCoverage2D sourceCoverage, String tiffFile) throws IllegalArgumentException, IndexOutOfBoundsException, IOException { final GeoTiffWriteParams wp = new GeoTiffWriteParams(); if (useCompressionMode) { wp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); wp.setCompressionType(compressionType); wp.setCompressionQuality(compressionQuality); } else { wp.setCompressionMode(ImageWriteParam.MODE_DEFAULT); wp.setTilingMode(ImageWriteParam.MODE_EXPLICIT); wp.setTiling(tileWidth, tileHeight); } else { wp.setTilingMode(ImageWriteParam.MODE_DEFAULT);
/** Write this grid out in GeoTIFF format */ public void writeGeotiff (OutputStream out) { try { float[][] data = new float[height][width]; for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { data[y][x] = (float) grid[x][y]; } } ReferencedEnvelope env = getMercatorEnvelopeMeters(); GridCoverage2D coverage = new GridCoverageFactory().create("GRID", data, env); GeoTiffWriteParams wp = new GeoTiffWriteParams(); wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("LZW"); ParameterValueGroup params = new GeoTiffFormat().getWriteParameters(); params.parameter(AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString()).setValue(wp); GeoTiffWriter writer = new GeoTiffWriter(out); writer.write(coverage, params.values().toArray(new GeneralParameterValue[1])); writer.dispose(); out.close(); } catch (Exception e) { throw new RuntimeException(e); } }
gtParams = new GeoTiffWriteParams();
try { final GeoTiffWriteParams wp = new GeoTiffWriteParams(); wp.setTilingMode(GeoToolsWriteParams.MODE_EXPLICIT); wp.setTiling(internalTileWidth, internalTileHeight); wp.setSourceRegion(sourceRegion); if (this.compressionScheme != null&& !Double.isNaN(compressionRatio)) { wp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); wp.setCompressionType(compressionScheme); wp.setCompressionQuality((float) this.compressionRatio);
/** Write this grid out in GeoTIFF format */ public void writeGeotiff (OutputStream out) { try { float[][] data = new float[height][width]; for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { data[y][x] = (float) grid[x][y]; } } ReferencedEnvelope env = getMercatorEnvelopeMeters(); GridCoverage2D coverage = new GridCoverageFactory().create("GRID", data, env); GeoTiffWriteParams wp = new GeoTiffWriteParams(); wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("LZW"); ParameterValueGroup params = new GeoTiffFormat().getWriteParameters(); params.parameter(AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString()).setValue(wp); GeoTiffWriter writer = new GeoTiffWriter(out); writer.write(coverage, params.values().toArray(new GeneralParameterValue[1])); writer.dispose(); out.close(); } catch (Exception e) { throw new RuntimeException(e); } }
GeoTiffFormat format = new GeoTiffFormat(); final GeoTiffFormat wformat = new GeoTiffFormat(); final GeoTiffWriteParams wp = new GeoTiffWriteParams(); wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("LZW"); wp.setTilingMode(GeoToolsWriteParams.MODE_EXPLICIT); wp.setTiling(256, 256); final ParameterValueGroup wparams = wformat.getWriteParameters(); wparams.parameter(AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString())
GridCoverage2D coverage = gcf.create("TIMEGRID", raster, env); GeoTiffWriteParams wp = new GeoTiffWriteParams(); wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setCompressionType("LZW"); ParameterValueGroup params = new GeoTiffFormat().getWriteParameters(); params.parameter(AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString()).setValue(wp);