rdf4j-postgis  Version 0.1.0.0
Flip Class Reference
Inheritance diagram for Flip:
Collaboration diagram for Flip:

Public Member Functions

String getURI ()
 
GridCoverage modify (GridCoverage raster)
 
Value evaluate (ValueFactory valueFactory, Value... args) throws ValueExprEvaluationException
 

Member Function Documentation

◆ evaluate()

Value evaluate ( ValueFactory  valueFactory,
Value...  args 
) throws ValueExprEvaluationException
inherited
16  {
17  if (args.length != 1) {
18  throw new ValueExprEvaluationException(getURI() + " requires exactly 1 arguments, got " + args.length);
19  }
20  LiteralType l=LiteralRegistry.getLiteral(((Literal)args[0]).getDatatype().toString());
21  if(l instanceof RasterLiteral) {
22  GridCoverage geom=((RasterLiteral)l).read(args[0].stringValue());
23  GridCoverage result = modify(geom);
24  return valueFactory.createLiteral(((RasterLiteral) l).unparse(result),((Literal)args[0]).getDatatype());
25  }
26  return null;
27  }

References LiteralRegistry.getLiteral(), and RasterModifierFunction.modify().

◆ getURI()

String getURI ( )
20  {
21  return POSTGIS.st_flip.stringValue();
22  }

References POSTGIS.st_flip.

◆ modify()

GridCoverage modify ( GridCoverage  raster)

Reimplemented from RasterModifierFunction.

25  {/*
26  final PlanarImage inputImage = (PlanarImage) ((GridCoverage)raster).getRenderedImage();
27  ParameterBlockJAI parameterBlock = new ParameterBlockJAI("transpose", "rendered");
28  parameterBlock.addSource(inputImage);
29 
30  parameterBlock.setParameter("type", TransposeDescriptor.FLIP_VERTICAL);
31  PlanarImage outputImage = JAI.create("transpose", parameterBlock);
32 
33  final int numBands = raster.getSampleDimensions().size();
34  GridCoverageFactory factory = CoverageFactoryFinder.getGridCoverageFactory(null);
35  if (numBands == 1) {
36  return raster;
37  } else {
38  SampleDimension[] bands = raster.getSampleDimensions().toArray(new SampleDimension[0]);
39 
40  Set<Number> nodataValues = bands[0].getNoDataValues();
41  Object noData = nodataValues == null ? Integer.MAX_VALUE : nodataValues.iterator().next().doubleValue();
42 
43  Map properties = raster.getProperties();
44  properties.put(Vocabulary.formatInternational(VocabularyKeys.NODATA), noData);
45  properties.put("GC_NODATA", noData);
46 
47  return factory.create(raster.getName(), outputImage, raster.getEnvelope(), bands, null,
48  properties);*/
49  return null;
50  }