Ilwis::OperationImplementation::State RasterClassification::prepare(ExecutionContext *, const SymbolTable &sym){ QString rasterSetName = _expression.parm(0).value(); IRasterCoverage rcSet; if (!rcSet.prepare(rasterSetName)) { ERROR2(ERR_COULD_NOT_LOAD_2,rasterSetName,""); return sPREPAREFAILED; } QString domain = _expression.parm(1).value(); IThematicDomain themes; if ( !themes.prepare(domain)){ ERROR2(ERR_COULD_NOT_LOAD_2,domain,""); return sPREPAREFAILED; } QString trainingsRaster = _expression.parm(2).value(); IRasterCoverage rcTraining; if (!rcTraining.prepare(trainingsRaster, itRASTER)) { ERROR2(ERR_COULD_NOT_LOAD_2,trainingsRaster,""); return sPREPAREFAILED; } _sampleSet = SampleSet(rcSet, themes, rcTraining); _sampleSet.prepare(); QString outputName = _expression.parm(0,false).value(); OperationHelperRaster::initialize(_sampleSet.sampleRasterSet(), _outputRaster, itCOORDSYSTEM | itGEODETICDATUM | itGEOREF | itRASTERSIZE); if ( !_outputRaster.isValid()) { ERROR1(ERR_NO_INITIALIZED_1, "output rastercoverage"); return sPREPAREFAILED; } _outputRaster->datadefRef().domain(_sampleSet.thematicDomain()); _outputRaster->size(_sampleSet.sampleRasterSet()->size().twod()); if ( outputName!= sUNDEF) _outputRaster->name(outputName); return sPREPARED; }
void Ilwis::Postgresql::PostgresqlDatabaseUtil::prepareSubFeatureSemantics(Ilwis::IDomain &domain, const QList<MetaGeometryColumn> &geomColumns) const { QString columns; if ( !_options.contains("pg.features.order")) { auto join = [&columns](MetaGeometryColumn item) { QString column = item.geomColumn; return columns.isEmpty() ? columns.append(column) : columns.append(",").append(column); }; std::for_each(geomColumns.begin(), geomColumns.end(), join); } else { columns = _options["pg.features.order"].toString(); } QStringList orderedColumns = columns.split(","); NamedIdentifierRange priorities; foreach (QString column, orderedColumns) { priorities << column.trimmed(); } IThematicDomain trackIdx; trackIdx.prepare(); trackIdx->setRange(priorities); domain = trackIdx; }