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

Public Member Functions

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

Member Function Documentation

◆ attribute()

String attribute ( GridCoverage  raster)

Reimplemented from RasterAttributeStringFunction.

21  {
22  StringBuilder builder = new StringBuilder();
23  RenderedImage rendered;
24  rendered = raster.render(null);
25  builder.append("Raster of " + rendered.getWidth() + "x" + rendered.getHeight() +"\n MemSize: "+raster.render(null).getData().getDataBuffer().getSize()+
26  "\nMINX/Y: ["+rendered.getMinX()+","+rendered.getMinY()+"] pixels has "
27  + raster.getSampleDimensions().size() + " bands\n and extent of " +raster.getGridGeometry().getEnvelope().toString()
28  );//+"\n and grid geometry of "+ raster.getGridGeometry() + System.lineSeparator());
29  builder.append("SampleModel: "+rendered.getSampleModel()+"\n");
30  builder.append("PropertyNames: "+rendered.getPropertyNames()+"\n");
31  builder.append("Tiles: "+rendered.getNumXTiles()+"/"+rendered.getNumYTiles()+"["+rendered.getTileWidth()+"/"+rendered.getTileHeight()+"] Offset: ["+rendered.getTileGridXOffset()+"/"+rendered.getTileGridYOffset()+"]\n");
32  builder.append("Dimensions: "+raster.getGridGeometry().getDimension()+"\n");
33  builder.append("DataElements: "+rendered.getData().getNumDataElements()+"\n");
34  builder.append("DataType: "+rendered.getData().getDataBuffer().getDataType()+"\n");
35  builder.append("ColorModel: "+rendered.getColorModel()+"\n");
36  GridGeometry gridGeometry2D = raster.getGridGeometry();
37  AffineTransform gridToWorld = (AffineTransform) gridGeometry2D.getGridToCRS(PixelInCell.CELL_CENTER);
38  builder.append("Shear: ["+gridToWorld.getShearX()+"/"+gridToWorld.getShearY()+"] Scale: ["+gridToWorld.getScaleX()+"/"+gridToWorld.getScaleY()+"]\n");
39  builder.append("GridToWorld: ["+gridToWorld. getShearX()+"/"+gridToWorld.getShearY()+"] Scale: ["+gridToWorld.getScaleX()+"/"+gridToWorld.getScaleY()+"]\n");
40  builder.append("PixelData: \n");
41  for(int k=0;k<raster.getSampleDimensions().size();k++) {
42  builder.append("Band "+k+"\n");
43  for(int i=0;i<rendered.getSampleModel().getWidth();i++) {
44  builder.append("| ");
45  for(int j=0;j<rendered.getSampleModel().getHeight();j++) {
46  builder.append(rendered.getData().getSample(i, j, k)+" | ");
47  }
48  builder.append("\n");
49  }
50  }
51  builder.append("CRS: "+raster.getGridGeometry().getCoordinateReferenceSystem().getName()+"\n");
52  for (int i = 0; i < raster.getSampleDimensions().size(); i++) {
53  builder.append("band " + i + " of pixtype " + raster.getSampleDimensions().get(i).getMeasurementRange() + " is in-db with NODATA value of " + raster.getSampleDimensions().get(i).getNoDataValues() + System.lineSeparator());
54  }
55  return builder.toString();
56  }

◆ 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  System.out.println(((Literal)args[0]).getDatatype().toString());
21  System.out.println(LiteralRegistry.getLiteral(((Literal)args[0]).getDatatype().toString()));
22  LiteralType l=LiteralRegistry.getLiteral(((Literal)args[0]).getDatatype().toString());
23  System.out.println(l);
24  if(l instanceof RasterLiteral) {
25  GridCoverage geom=((RasterLiteral)l).read(args[0].stringValue());
26  //System.out.println("Extracted GridCoverage: "+geom);
27  String result = attribute(geom);
28  return valueFactory.createLiteral(result);
29  }
30  return null;
31  }

References RasterAttributeStringFunction.attribute(), and LiteralRegistry.getLiteral().

Referenced by SampleRasters.displayRasterSummary().

◆ getURI()

String getURI ( )
15  {
16  return POSTGIS.st_summary.stringValue();
17  }

References POSTGIS.st_summary.