public Function function(Name processName, List<Expression> args, Literal fallback) { // if the param function just return it if (processName.equals(new NameImpl(ParameterFunction.NAME.getName()))) { return new ParameterFunction(fallback, args); } // lookup the process if (functionNames == null) { init(); } if (!processToFunction.containsKey(processName)) { // no such function return null; } else { // wrap the process org.geotools.process.Process process = Processors.createProcess(processName); Map<String, Parameter<?>> parameters = Processors.getParameterInfo(processName); if (process instanceof RenderingProcess) { return new RenderingProcessFunction( processName, args, parameters, (RenderingProcess) process, fallback); } else { return new ProcessFunction(processName, args, parameters, process, fallback); } } }
public void testSPI() throws Exception { NameImpl boundsName = new NameImpl("bean", "Bounds"); ProcessFactory factory = Processors.createProcessFactory(boundsName); assertNotNull(factory); assertTrue(factory instanceof BeanProcessFactory); org.geotools.process.Process buffer = Processors .createProcess(boundsName); assertNotNull(buffer); }
@Override public void run () { Name n = new NameImpl("ras", "PolygonExtraction"); //System.out.println(Processors.getParameterInfo(n)); Map<String,Object> params = new HashMap<>(); params.put("data", coverage); params.put("insideEdges", true); List<Number> noDataValues = new ArrayList<>(); noDataValues.add(NO_DATA); params.put("nodata", noDataValues); //TODO: try to extract min/max from coverage values (or cache as properties on MeasurementGrid?), // split data range into e.g. 10 equally sized classification ranges if (usesRanges) { params.put("ranges", ranges); } // TODO: clip to enclosing field geometry (use "roi" param) Process process = Processors.createProcess(n); Map<String, Object> result = process.execute(params, null); SimpleFeatureCollection featureCollection = (SimpleFeatureCollection) result.get("result"); handleFeatures(featureCollection); }
public Function function(Name processName, List<Expression> args, Literal fallback) { // if the param function just return it if(processName.equals(new NameImpl(ParameterFunction.NAME))) { return new ParameterFunction(fallback, args); } // lookup the process if(functionNames == null) { init(); } if (!processToFunction.containsKey(processName)) { // no such function return null; } else { // wrap the process org.geotools.process.Process process = Processors.createProcess(processName); Map<String, Parameter<?>> parameters = Processors.getParameterInfo(processName); if (process instanceof RenderingProcess){ return new RenderingProcessFunction(processName.getLocalPart(), processName, args, parameters, (RenderingProcess) process, fallback); } else { return new ProcessFunction(processName.getLocalPart(), processName, args, parameters, process, fallback); } } }