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

Public Member Functions

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

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

Referenced by ExpTest.testExp(), InvertTest.testInvert(), and NotTest.testNot().

◆ getURI()

String getURI ( )
27  {
28  return POSTGIS.ST_rast_algebra_exp.stringValue();
29  }

References POSTGIS.ST_rast_algebra_exp.

◆ modify()

GridCoverage modify ( GridCoverage  raster,
Integer  rd1 
)

Reimplemented from RasterAlgebraUnaryFunction.

33  {
34  ParameterBlock pbSubtracted = new ParameterBlock();
35  pbSubtracted.addSource(raster.render(raster.getGridGeometry().getExtent()));
36  RenderedOp subtractedImage = JAI.create("exp", pbSubtracted);
37  final SampleDimension sd =raster.getSampleDimensions().get(rd1);
38  List<SampleDimension>sds=new LinkedList<SampleDimension>();
39  sds.add(sd);
40  GridExtent extent=new GridExtent(subtractedImage.getWidth(), subtractedImage.getHeight());
41  GridGeometry gridgeom=new GridGeometry(extent, PixelInCell.CELL_CENTER, raster.getGridGeometry().getGridToCRS(PixelInCell.CELL_CENTER), raster.getCoordinateReferenceSystem());
42  List<SampleDimension> dimensions=new LinkedList<SampleDimension>();
43  DefaultNameFactory fac=new DefaultNameFactory();
44  for(int i=0;i<subtractedImage.getNumBands();i++) {
45  dimensions.add(new SampleDimension(fac.createGenericName(null, "Dimension "+i),0.,new LinkedList<Category>()));
46  }
47  BufferedGridCoverage coverage=new BufferedGridCoverage(
48  gridgeom, dimensions, subtractedImage.getData().getDataBuffer());
49  return coverage;
50  }