Refine search
/** * Creates a transform from the specified group of parameter values. * * @param parameters The group of parameter values. * @return The created math transform. * @throws ParameterNotFoundException if a required parameter was not found. */ protected MathTransform createMathTransform(final ParameterValueGroup parameters) throws ParameterNotFoundException { // make sure we assume a spherical reference parameters .parameter("semi_minor") .setValue(parameters.parameter("semi_major").getValue()); return new Spherical(parameters); } }
private GridCoverage2D retainBands( List<Integer> bandIndices, GridCoverage2D coverage, Hints hints) { final ParameterValueGroup param = PROCESSOR.getOperation("SelectSampleDimension").getParameters(); param.parameter("Source").setValue(coverage); final int[] sampleDimensionArray = ArrayUtils.toPrimitive(bandIndices.toArray(new Integer[bandIndices.size()])); param.parameter("SampleDimensions").setValue(sampleDimensionArray); coverage = (GridCoverage2D) PROCESSOR.doOperation(param, hints); return coverage; }
/** * <strong>Reprojecting</strong><br> * The new grid geometry can have a different coordinate reference system than the underlying * grid geometry. For example, a grid coverage can be reprojected from a geodetic coordinate * reference system to Universal Transverse Mercator CRS. * * @param coverage GridCoverage2D * @param sourceCRS CoordinateReferenceSystem * @param targetCRS CoordinateReferenceSystem * @return GridCoverage2D * @throws WcsException */ public static GridCoverage2D resample( final GridCoverage2D coverage, final CoordinateReferenceSystem sourceCRS, final CoordinateReferenceSystem targetCRS, final GridGeometry2D gridGeometry, final Interpolation interpolation) throws WcsException { final ParameterValueGroup param = (ParameterValueGroup) PROCESSOR.getOperation("Resample").getParameters(); param.parameter("Source").setValue(coverage); param.parameter("CoordinateReferenceSystem").setValue(targetCRS); param.parameter("GridGeometry").setValue(gridGeometry); param.parameter("InterpolationType").setValue(interpolation); return (GridCoverage2D) ((Resample) PROCESSOR.getOperation("Resample")).doOperation(param, hints); }
public static Coverage bandSelect(final GridCoverage coverage, final int[] bands) { Coverage bandSelectedCoverage; if ((bands != null) && (bands.length > 0)) { /* Operations.DEFAULT.selectSampleDimension(coverage, bands) */ final ParameterValueGroup param = (ParameterValueGroup) PROCESSOR.getOperation("SelectSampleDimension").getParameters(); param.parameter("Source").setValue(coverage); param.parameter("SampleDimensions").setValue(bands); // param.parameter("VisibleSampleDimension").setValue(bands); bandSelectedCoverage = ((SelectSampleDimension) PROCESSOR.getOperation("SelectSampleDimension")) .doOperation(param, hints); } else { bandSelectedCoverage = coverage; } return bandSelectedCoverage; }
/** * Crops the coverage to the specified bounds * * @param coverage * @param bounds */ public static GridCoverage2D crop(final GridCoverage2D coverage, final Envelope bounds) { // checks final ReferencedEnvelope cropBounds = new ReferencedEnvelope(bounds); final ReferencedEnvelope coverageBounds = new ReferencedEnvelope(coverage.getEnvelope()); if (cropBounds.contains((org.locationtech.jts.geom.Envelope) coverageBounds)) { return coverage; } Polygon polygon = JTS.toGeometry(cropBounds); Geometry roi = polygon.getFactory().createMultiPolygon(new Polygon[] {polygon}); // perform the crops final ParameterValueGroup param = PROCESSOR.getOperation("CoverageCrop").getParameters(); param.parameter("Source").setValue(coverage); param.parameter("Envelope").setValue(bounds); param.parameter("ROI").setValue(roi); return (GridCoverage2D) PROCESSOR.doOperation(param); }
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); } } };
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."); }
Filter originalFilter = (Filter) pvalue.getValue(); if (originalFilter == null || Filter.INCLUDE.equals(originalFilter)) { pvalue.setValue(readFilter); } else { Filter combined = Predicates.and(originalFilter, readFilter); pvalue.setValue(combined); if (coverageBounds.intersects(rasterFilter)) { final ParameterValueGroup param = cropParams.clone(); param.parameter("source").setValue(grid); param.parameter("ROI").setValue(rasterFilter); grid = (GridCoverage2D) coverageCropFactory.doOperation(param, null); } else {
requestedGridGeometry.getGridToCRS(), requestedGridGeometry.getCoordinateReferenceSystem()); value.setValue(expandedGG); final ParameterValueGroup param = PROCESSOR.getOperation(operationName).getParameters(); if (!handler.isHomogeneousCoverages()) { param.parameter("transform_choice").setValue("index"); param.parameter("coverage_idx").setValue(transformationChoice); param.parameter("sources").setValue(coverages); localHints.put( JAI.KEY_COLOR_MODEL_FACTORY,
public void encode( GridCoverage2D sourceCoverage, String outputFormat, Map<String, String> econdingParameters, OutputStream output) throws IOException { Utilities.ensureNonNull("sourceCoverage", sourceCoverage); Utilities.ensureNonNull("econdingParameters", econdingParameters); GeoTiffWriterHelper writerHelper = new GeoTiffWriterHelper(sourceCoverage); // compression handleCompression(econdingParameters, writerHelper); // tiling handleTiling(econdingParameters, sourceCoverage, writerHelper); // interleaving handleInterleaving(econdingParameters, sourceCoverage, writerHelper); if (geoserver.getService(WCSInfo.class).isLatLon()) { final ParameterValueGroup gp = writerHelper.getGeotoolsWriteParams(); gp.parameter(GeoTiffFormat.RETAIN_AXES_ORDER.getName().toString()).setValue(true); } try { writerHelper.write(output); } finally { sourceCoverage.dispose(false); } }
/** {@inheritDoc} */ protected void setProjectionParameters(final ParameterValueGroup parameters, final Code code) { final double centralMeridian = code.longitude; final double falseNorthing = code.latitude >= 0.0 ? 0.0 : 10000000.0; parameters.parameter("latitude_of_origin").setValue(0.0); parameters.parameter("central_meridian").setValue(centralMeridian); parameters.parameter("false_easting").setValue(500000.0); parameters.parameter("false_northing").setValue(falseNorthing); parameters.parameter("scale_factor").setValue(0.9996); } }
/** {@inheritDoc} */ protected void setProjectionParameters(final ParameterValueGroup parameters, final Code code) { final double centralMeridian = code.longitude; final double standardParallel1 = code.latitude; parameters.parameter("central_meridian").setValue(centralMeridian); parameters.parameter("latitude_of_origin").setValue(0.0); parameters.parameter("standard_parallel_1").setValue(standardParallel1); } }
/** {@inheritDoc} */ protected void setProjectionParameters(final ParameterValueGroup parameters, final Code code) { final double latitudeOfCenter = code.latitude; final double longitudeOfCenter = code.longitude; parameters.parameter("Latitude_Of_Center").setValue(latitudeOfCenter); parameters.parameter("Longitude_Of_Center").setValue(longitudeOfCenter); } }
/** {@inheritDoc} */ protected void setProjectionParameters(final ParameterValueGroup parameters, final Code code) { final double latitudeOfOrigin = code.latitude; final double centralMeridian = code.longitude; parameters.parameter("latitude_of_origin").setValue(latitudeOfOrigin); parameters.parameter("central_meridian").setValue(centralMeridian); } }
/** {@inheritDoc} */ protected void setProjectionParameters(final ParameterValueGroup parameters, final Code code) { final double zone = Math.min(Math.floor((code.longitude + 180.0) / 6.0) + 1, 60); final double centralMeridian = -183.0 + zone * 6.0; final double falseNorthing = code.latitude >= 0.0 ? 0.0 : 10000000.0; parameters.parameter("latitude_of_origin").setValue(0.0); parameters.parameter("central_meridian").setValue(centralMeridian); parameters.parameter("false_easting").setValue(500000.0); parameters.parameter("false_northing").setValue(falseNorthing); parameters.parameter("scale_factor").setValue(0.9996); } }