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

Public Member Functions

String getURI ()
 
GridCoverage modify (GridCoverage raster, Boolean type, Double zFactor)
 
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 != 3) {
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  Boolean type = Boolean.valueOf(args[1].stringValue());
24  Double zFactor = Double.valueOf(args[2].stringValue());
25  GridCoverage result = modify(geom,type,zFactor);
26  return valueFactory.createLiteral(((RasterLiteral) l).unparse(result),((Literal)args[0]).getDatatype());
27  }
28  return null;
29  }
abstract GridCoverage modify(GridCoverage coverage, Boolean type, Double zFactor)

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

◆ getURI()

String getURI ( )
21  {
22  return POSTGIS.st_mirror.stringValue();
23  }

References POSTGIS.st_mirror.

◆ modify()

GridCoverage modify ( GridCoverage  raster,
Boolean  type,
Double  zFactor 
)

Reimplemented from RasterModifierBoolDoubleFunction.

26  {
27  // transpose parameters: type
28  // http://download.java.net/media/jai/javadoc/1.1.3/jai-apidocs/javax/media/jai/operator/TransposeDescriptor.html
29  // http://java.sun.com/products/java-media/jai/forDevelopers/jai1_0_1guide-unc/Geom-image-manip.doc.html#51140
30  final PlanarImage inputImage = (PlanarImage) raster.render(raster.getGridGeometry().getExtent());
31  ParameterBlockJAI parameterBlock = new ParameterBlockJAI("transpose", "rendered");
32  parameterBlock.addSource(inputImage);
33 
34  parameterBlock.setParameter("type", TransposeDescriptor.FLIP_HORIZONTAL);
35  PlanarImage outputImage = JAI.create("transpose", parameterBlock);
36 
37  final int numBands = raster.getSampleDimensions().size();
38  /*
39  if (numBands == 1) {
40  return raster;
41  } else {
42  List<SampleDimension> bands = raster.getSampleDimensions();
43 
44  Set<Number> nodataValues = bands.get(0).getNoDataValues();
45  Object noData = nodataValues == null ? Integer.MAX_VALUE : nodataValues[0];
46 
47  Map properties = raster.getProperties();
48  properties.put(Vocabulary.formatInternational(VocabularyKeys.NODATA), noData);
49  properties.put("GC_NODATA", noData);
50 
51  GridCoverageFactory factory = CoverageFactoryFinder.getGridCoverageFactory(null);
52  return CoverageWrapper.createGeometry(factory.create(raster. getName(), outputImage, raster.getEnvelope(), bands, null,
53  properties), wrapper.getSrsURI(), wrapper.getRasterDatatypeURI()).asNodeValue();
54  }*/
55  return null;
56  }