/** @throws CoreException */ @Override public void run(IProgressMonitor monitor, ILogger logger, IRepository repository) throws CoreException { Grid3d property = _inputGrid.get(); int size = _size.get(); String propertyName = _outputGridName.get(); String outputComments = _outputComments.get(); float[][] kernel = _filterMethodProp.get().getFilter().getDefaultKernel(_size.get()); // apply the filter on the horizon float[][] result = _filterMethodProp.get().getFilter().execute(property, size, kernel, monitor); // Create the new property Grid3d newProperty = Grid3dFactory.create(repository, property, result, propertyName); newProperty.setComment(outputComments); try { newProperty.update(); } catch (IOException ex) { throw new RuntimeException(ex.getMessage()); } }
@Override public void validate(IValidation results) { // Validate the input grid is non-null and of the correct type. if (_inputGrid.isNull()) { results.error(_inputGrid, "No input grid specified."); } // Validate the output name is non-zero length. if (_outputGridName.isEmpty()) { results.error(_outputGridName, "No output grid name specified."); } // Validate the filter size if (!_filterMethodProp.get().getFilter().validateSize(_size.get())) { results.error(_size, _filterMethodProp.get().getFilter().getMessage()); } // Check if an entry already exists in the datastore. if (!_inputGrid.isNull() && !_outputGridName.isEmpty()) { if (Grid3dFactory.existsInStore(_inputGrid.get(), _outputGridName.get())) { results.warning(_outputGridName, "Exists in datastore and will be overwritten."); } } }