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

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 ( )
22  {
23  return POSTGIS.ST_rast_algebra_minfilter.stringValue();
24  }

References POSTGIS.ST_rast_algebra_minfilter.

◆ modify()

GridCoverage modify ( GridCoverage  raster,
Integer  rd1 
)

Reimplemented from RasterAlgebraUnaryFunction.

28  {
29  ParameterBlock pbSubtracted = new ParameterBlock();
30  pbSubtracted.addSource(raster.render(raster.getGridGeometry().getExtent()));
31  RenderedOp subtractedImage = JAI.create("minfilter", pbSubtracted);
32  /*
33  * final GridGeometry grid = new
34  * GridGeometry(raster.getGridGeometry().getExtent(), PixelInCell.CELL_CENTER,
35  * MathTransforms.identity(2),
36  * raster.getGridGeometry().getCoordinateReferenceSystem());
37  *
38  * final MathTransform1D toUnits = (MathTransform1D) MathTransforms.linear(0.5,
39  * 100);
40  */
41  final SampleDimension sd = new SampleDimension.Builder().setName("t")
42  .addQuantitative(
43  (raster.getSampleDimensions().get(rd1).getName() + "minfilter"),
44  raster.getSampleDimensions().get(0).getMeasurementRange().get(),
45  raster.getSampleDimensions().get(0).getTransferFunction().get(),
46  raster.getSampleDimensions().get(0).getUnits().get())
47  .build();
48 
49  List<SampleDimension>sds=new LinkedList<SampleDimension>();
50  sds.add(sd);
51  /*
52  * Create the grid coverage, gets its image and set values directly as short
53  * integers.
54  */
55  BufferedGridCoverage coverage = new BufferedGridCoverage(raster.getGridGeometry(),
56  sds, DataBuffer.TYPE_SHORT);
57  WritableRaster rasterr = ((BufferedImage) coverage.render(null)).getRaster();
58  rasterr.setRect(subtractedImage.getSourceImage(0).getData());
59  return coverage;
60  }