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); } } };
@Override public GridCoverage2D getGridCoverage() { try { // There is a serious standardization failure around the axis order of WGS84. See issue #1930. // GeoTools assumes strict EPSG axis order of (latitude, longitude) unless told otherwise. // Both NED and SRTM data use the longitude-first axis order, so OTP makes grid coverages // for unprojected DEMs assuming coordinates are in (longitude, latitude) order. Hints forceLongLat = new Hints(Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER, Boolean.TRUE); GeoTiffFormat format = new GeoTiffFormat(); GeoTiffReader reader = format.getReader(path, forceLongLat); coverage = reader.read(null); LOG.info("Elevation model CRS is: {}", coverage.getCoordinateReferenceSystem2D()); } catch (IOException e) { throw new RuntimeException("Error getting coverage automatically. ", e); } return coverage; }
(AbstractGridCoverageWriter) TIFF_FORMAT.getWriter(stream); if (writer == null) throw new ServiceException(
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; } }
public Format getFormat() { return new GeoTiffFormat(); }
private void saveCoverage(IState state, File file, Iterable<IScale.Locator> locators) throws KlabException { SpaceExtent space = (SpaceExtent) state.getSpace(); if (space.getGrid() != null) { GridCoverage2D coverage = GISOperations.stateToCoverage(state, locators); if (coverage != null) { if (!file.toString().endsWith(".tif") && !file.toString().endsWith(".tiff")) { file = new File(file + ".tif"); } GridCoverageWriter writer = new GeoTiffFormat().getWriter(file); try { writer.write(coverage, null); } catch (Exception e) { throw new KlabIOException(e); } } } }
private ParameterValueGroup buildGeoToolsWriteParams(GeoTiffWriteParams writeParams) { final ParameterValueGroup wparams = TIFF_FORMAT.getWriteParameters(); wparams.parameter(AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString()) .setValue(writeParams); return wparams; }
/** * If <CODE>source</CODE> is a file, this will return a reader object. This file does not use * hints in the construction of the geotiff reader. * * @param source must be a GeoTiff File * @return a GeoTiffReader object initialized to the specified File. */ @Override public GeoTiffReader getReader(Object source) { return getReader(source, null); }
new ImageWorker(coverage.getRenderedImage()).writeTIFF(os, "LZW", 0.75f, 256, 256); } else { GeoTiffFormat format = new GeoTiffFormat(); final GeoTiffFormat wformat = new GeoTiffFormat(); final GeoTiffWriteParams wp = new GeoTiffWriteParams(); wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT); wp.setTilingMode(GeoToolsWriteParams.MODE_EXPLICIT); wp.setTiling(256, 256); final ParameterValueGroup wparams = wformat.getWriteParameters(); wparams.parameter(AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString()) .setValue(wp); new GeneralParameterValue[1]); AbstractGridCoverageWriter writer = (AbstractGridCoverageWriter) format.getWriter(os); if (writer == null) throw new WPSException(
/** @see org.opengis.coverage.grid.GridCoverageReader#getFormat() */ public Format getFormat() { return new GeoTiffFormat(); }
file = new File(file + ".tif"); GridCoverageWriter writer = new GeoTiffFormat().getWriter(file); try { writer.write(coverage, null);
/** * If <CODE>source</CODE> is a file, this will return a reader object. * This file does not use hints in the construction of the geotiff reader. * * @param source * must be a GeoTiff File * * @return a GeoTiffReader object initialized to the specified File. */ @Override public GeoTiffReader getReader(Object source) { return getReader(source, null); }
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."); }
final GeoTiffFormat format = new GeoTiffFormat(); } else { final ParameterValueGroup pvg = format.getWriteParameters(); final String paramKey = AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString(); pvg.parameter(paramKey).setValue(wp); GeoTiffWriter writer = (GeoTiffWriter) format.getWriter(outputFile); try { writer.write(sourceCoverage, paramValues);
assertEquals("image/tiff;subtype=\"geotiff\"", response.getContentType()); GeoTiffFormat format = new GeoTiffFormat(); AbstractGridCoverage2DReader reader = format.getReader(getBinaryInputStream(response));
/** * Creates and returns a new instance of the <CODE>GeoTiffFormat</CODE> class if the required * libraries are present. If JAI and JAI Image I/O are not present, will throw an <CODE> * UnsupportedOperationException</CODE>. * * @return <CODE>GeoTiffFormat</CODE> object. * @throws UnsupportedOperationException if this format is unavailable. */ public AbstractGridFormat createFormat() { if (!isAvailable()) { throw new UnsupportedOperationException( "The GeoTiff plugin requires the JAI and JAI ImageI/O libraries!"); } return new GeoTiffFormat(); }
final GeoTiffFormat format = new GeoTiffFormat(); final GeoTiffWriteParams wp = new GeoTiffWriteParams(); wp.setCompressionQuality(0.75F); final ParameterValueGroup params = format.getWriteParameters(); List<GeneralParameterValue> paramsValues = params.values(); writer.write(
assertEquals("image/tiff", response.getContentType()); GeoTiffFormat format = new GeoTiffFormat(); GridCoverage2DReader reader = format.getReader(getBinaryInputStream(response));
/** * @see org.opengis.coverage.grid.GridCoverageReader#getFormat() */ public Format getFormat() { return new GeoTiffFormat(); }
final GeoTiffFormat format = new GeoTiffFormat(); final GeoTiffWriteParams wp = new GeoTiffWriteParams(); wp.setCompressionQuality(0.75F); final ParameterValueGroup params = format.getWriteParameters(); List<GeneralParameterValue> paramsValues = params.values(); writer.write(