diff --git a/cfg/transducerers.properties b/cfg/transducerers.properties index dfb185d..d444058 100644 --- a/cfg/transducerers.properties +++ b/cfg/transducerers.properties @@ -1,2 +1,4 @@ -TESTTRANS=org.gcube.dataanalysis.ecoengine.transducers.TestTrans BIOCLIMATE_HSPEC=org.gcube.dataanalysis.ecoengine.transducers.BioClimateHSPECTransducer +BIOCLIMATE_HCAF=org.gcube.dataanalysis.ecoengine.transducers.BioClimateHCAFTransducer +BIOCLIMATE_HSPEN=org.gcube.dataanalysis.ecoengine.transducers.BioClimateHSPENTransducer +HCAF_INTERPOLATION=org.gcube.dataanalysis.ecoengine.transducers.InterpolationTransducer \ No newline at end of file diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/clustering/DBScan.java b/src/main/java/org/gcube/dataanalysis/ecoengine/clustering/DBScan.java index b4858bb..0f2ac14 100644 --- a/src/main/java/org/gcube/dataanalysis/ecoengine/clustering/DBScan.java +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/clustering/DBScan.java @@ -10,6 +10,7 @@ import org.gcube.dataanalysis.ecoengine.datatypes.DatabaseType; import org.gcube.dataanalysis.ecoengine.datatypes.InputTable; import org.gcube.dataanalysis.ecoengine.datatypes.OutputTable; import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType; +import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveTypesList; import org.gcube.dataanalysis.ecoengine.datatypes.ServiceType; import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType; import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.DatabaseParameters; @@ -178,7 +179,7 @@ public class DBScan implements Clusterer{ } //create Table AnalysisLogger.getLogger().debug("DBScan: Creating table "+OccurrencePointsClusterTable); - String [] features = FeaturesColumnNames.split(","); + String [] features = FeaturesColumnNames.split(AlgorithmConfiguration.getListSeparator()); String columns = ""; for (int i=0;i list; protected List templateNames; - public InputTablesList(List templateNames, String name, String description, boolean optional) { + public TablesList(List templateNames, String name, String description, boolean optional) { super(name, description, optional); list = new ArrayList(); this.templateNames=templateNames; diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/datatypes/enumtypes/PrimitiveTypes.java b/src/main/java/org/gcube/dataanalysis/ecoengine/datatypes/enumtypes/PrimitiveTypes.java index 1c84922..1ac5a0c 100644 --- a/src/main/java/org/gcube/dataanalysis/ecoengine/datatypes/enumtypes/PrimitiveTypes.java +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/datatypes/enumtypes/PrimitiveTypes.java @@ -3,6 +3,7 @@ package org.gcube.dataanalysis.ecoengine.datatypes.enumtypes; public enum PrimitiveTypes { STRING, NUMBER, + ENUMERATED, CONSTANT, RANDOM, FILE, diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/test/regression/RegressionTestTransducers.java b/src/main/java/org/gcube/dataanalysis/ecoengine/test/regression/RegressionTestTransducers.java index fb10f5d..d4b1845 100644 --- a/src/main/java/org/gcube/dataanalysis/ecoengine/test/regression/RegressionTestTransducers.java +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/test/regression/RegressionTestTransducers.java @@ -3,17 +3,12 @@ package org.gcube.dataanalysis.ecoengine.test.regression; import java.util.List; import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; -import org.gcube.dataanalysis.ecoengine.interfaces.Clusterer; +import org.gcube.dataanalysis.ecoengine.evaluation.bioclimate.InterpolateTables.INTERPOLATIONFUNCTIONS; import org.gcube.dataanalysis.ecoengine.interfaces.Transducerer; -import org.gcube.dataanalysis.ecoengine.processing.factories.ClusterersFactory; import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory; public class RegressionTestTransducers { - /** - * example of parallel processing on a single machine the procedure will generate a new table for a distribution on suitable species - * - */ - + public static void main(String[] args) throws Exception { System.out.println("TEST 1"); @@ -23,6 +18,20 @@ public static void main(String[] args) throws Exception { Regressor.process(trans.get(0)); trans = null; + trans = TransducerersFactory.getTransducerers(testConfigLocal2()); + trans.get(0).init(); + Regressor.process(trans.get(0)); + trans = null; + + trans = TransducerersFactory.getTransducerers(testConfigLocal3()); + trans.get(0).init(); + Regressor.process(trans.get(0)); + trans = null; + + trans = TransducerersFactory.getTransducerers(testConfigLocal4()); + trans.get(0).init(); + Regressor.process(trans.get(0)); + trans = null; } @@ -36,4 +45,41 @@ public static void main(String[] args) throws Exception { return config; } + + private static AlgorithmConfiguration testConfigLocal2() { + + AlgorithmConfiguration config = Regressor.getConfig(); + config.setAgent("BIOCLIMATE_HCAF"); + config.setParam("HCAF_TABLE_LIST","hcaf_d"+AlgorithmConfiguration.getListSeparator()+"hcaf_d_2016_linear_01332632269756"+AlgorithmConfiguration.getListSeparator()+"hcaf_d_2016_linear_01336062995861"+AlgorithmConfiguration.getListSeparator()+"hcaf_d_2050"); + config.setParam("HCAF_TABLE_NAMES", "test"+AlgorithmConfiguration.getListSeparator()+"test"+AlgorithmConfiguration.getListSeparator()+"test"+AlgorithmConfiguration.getListSeparator()+"test"); + + return config; + } + + private static AlgorithmConfiguration testConfigLocal3() { + + AlgorithmConfiguration config = Regressor.getConfig(); + config.setAgent("BIOCLIMATE_HSPEN"); + config.setParam("HSPEN_TABLE_LIST","hspen"+AlgorithmConfiguration.getListSeparator()+"hspen_2016"+AlgorithmConfiguration.getListSeparator()+"hspen_2020"+AlgorithmConfiguration.getListSeparator()+"hspen_2050"); + config.setParam("HSPEN_TABLE_NAMES", "test"+AlgorithmConfiguration.getListSeparator()+"test"+AlgorithmConfiguration.getListSeparator()+"test"+AlgorithmConfiguration.getListSeparator()+"test"); + + return config; + } + + + private static AlgorithmConfiguration testConfigLocal4() { + + AlgorithmConfiguration config = Regressor.getConfig(); + config.setAgent("HCAF_INTERPOLATION"); + + config.setParam("FirstHCAF","hcaf_d"); + config.setParam("SecondHCAF","hcaf_d_2050"); + config.setParam("YearStart","2012"); + config.setParam("YearEnd","2050"); + config.setParam("NumberOfInterpolations","2"); + config.setParam("InterpolationFunction",INTERPOLATIONFUNCTIONS.LINEAR.name()); + + return config; + } + } diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/BioClimateHCAFTransducer.java b/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/BioClimateHCAFTransducer.java new file mode 100644 index 0000000..10204c0 --- /dev/null +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/BioClimateHCAFTransducer.java @@ -0,0 +1,80 @@ +package org.gcube.dataanalysis.ecoengine.transducers; + +import java.util.ArrayList; +import java.util.List; + +import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; +import org.gcube.dataanalysis.ecoengine.datatypes.DatabaseType; +import org.gcube.dataanalysis.ecoengine.datatypes.TablesList; +import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveTypesList; +import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType; +import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.DatabaseParameters; +import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes; +import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.TableTemplates; +import org.gcube.dataanalysis.ecoengine.evaluation.bioclimate.BioClimateAnalysis; + +public class BioClimateHCAFTransducer extends BioClimateHSPECTransducer{ + + private String[] hcafTables; + private String[] hcafTablesNames; + + @Override + public void init() throws Exception { + //init the analyzer + bioClimate=new BioClimateAnalysis(config.getConfigPath(),config.getPersistencePath(),config.getParam("DatabaseURL"),config.getParam("DatabaseUserName"), config.getParam("DatabasePassword"), false); + //build the hspec names: + hcafTables = config.getParam("HCAF_TABLE_LIST").split(AlgorithmConfiguration.getListSeparator()); + hcafTablesNames = config.getParam("HCAF_TABLE_NAMES").split(AlgorithmConfiguration.getListSeparator()); + } + + @Override + public String getDescription() { + return "Evaluates the climatic changes impact on the variation of the ocean features contained in Hcaf tables"; + } + + @Override + public List getInputParameters() { + List parameters = new ArrayList(); + + DatabaseType p1 = new DatabaseType(DatabaseParameters.DATABASEUSERNAME, "DatabaseUserName", "db user name"); + DatabaseType p2 = new DatabaseType(DatabaseParameters.DATABASEPASSWORD, "DatabasePassword", "db password"); + DatabaseType p3 = new DatabaseType(DatabaseParameters.DATABASEDRIVER, "DatabaseDriver", "db driver"); + DatabaseType p4 = new DatabaseType(DatabaseParameters.DATABASEURL, "DatabaseURL", "db url"); + DatabaseType p5 = new DatabaseType(DatabaseParameters.DATABASEDIALECT, "DatabaseDialect", "db dialect"); + DatabaseType p6 = new DatabaseType(DatabaseParameters.DATABASETABLESPACE, "DatabaseTableSpace", "db dialect"); + + List templateHspec = new ArrayList(); + templateHspec.add(TableTemplates.HCAF); + TablesList p7 = new TablesList(templateHspec, "HCAF_TABLE_LIST", "List of HCAF tables to analyze", false); + PrimitiveTypesList p8 = new PrimitiveTypesList(PrimitiveTypes.STRING, "HCAF_TABLE_NAMES", "List of HCAF table names to be used as labels", false); + + parameters.add(p1); + parameters.add(p2); + parameters.add(p3); + parameters.add(p4); + parameters.add(p5); + parameters.add(p6); + parameters.add(p7); + parameters.add(p8); + + return parameters; + } + + @Override + public void compute() throws Exception { + + status = 0.1f; + try{ + bioClimate.hcafEvolutionAnalysis(hcafTables, hcafTablesNames); + producedImages=bioClimate.getProducedImages(); + }catch(Exception e){ + e.printStackTrace(); + throw e; + } + finally{ + status = 100f; + } + } + + +} diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/BioClimateHSPECTransducer.java b/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/BioClimateHSPECTransducer.java index d1b2f32..6140a08 100644 --- a/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/BioClimateHSPECTransducer.java +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/BioClimateHSPECTransducer.java @@ -8,7 +8,7 @@ import java.util.List; import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; import org.gcube.dataanalysis.ecoengine.configuration.INFRASTRUCTURE; import org.gcube.dataanalysis.ecoengine.datatypes.DatabaseType; -import org.gcube.dataanalysis.ecoengine.datatypes.InputTablesList; +import org.gcube.dataanalysis.ecoengine.datatypes.TablesList; import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType; import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveTypesList; import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType; @@ -27,7 +27,7 @@ public class BioClimateHSPECTransducer implements Transducerer{ private String[] hspecTables; private String[] hspecTablesNames; - float status = 0; + protected float status = 0; @Override public INFRASTRUCTURE getInfrastructure() { @@ -38,7 +38,7 @@ public class BioClimateHSPECTransducer implements Transducerer{ @Override public void init() throws Exception { //init the analyzer - bioClimate=new BioClimateAnalysis(config.getConfigPath(),"./",config.getParam("DatabaseURL"),config.getParam("DatabaseUserName"), config.getParam("DatabasePassword"), false); + bioClimate=new BioClimateAnalysis(config.getConfigPath(),config.getPersistencePath(),config.getParam("DatabaseURL"),config.getParam("DatabaseUserName"), config.getParam("DatabasePassword"), false); //build the hspec names: hspecTables = config.getParam("HSPEC_TABLE_LIST").split(AlgorithmConfiguration.getListSeparator()); hspecTablesNames = config.getParam("HSPEC_TABLE_NAMES").split(AlgorithmConfiguration.getListSeparator()); @@ -81,7 +81,7 @@ public class BioClimateHSPECTransducer implements Transducerer{ List templateHspec = new ArrayList(); templateHspec.add(TableTemplates.HSPEC); - InputTablesList p7 = new InputTablesList(templateHspec, "HSPEC_TABLE_LIST", "List of HSPEC tables to analyze", false); + TablesList p7 = new TablesList(templateHspec, "HSPEC_TABLE_LIST", "List of HSPEC tables to analyze", false); PrimitiveTypesList p8 = new PrimitiveTypesList(PrimitiveTypes.STRING, "HSPEC_TABLE_NAMES", "List of HSPEC table names to be used as labels", false); PrimitiveType p9 = new PrimitiveType(Double.class.getName(), null, PrimitiveTypes.NUMBER, "Threshold", "A threshold of probability over which the abundancy per species will be calculated","0.5"); @@ -91,7 +91,6 @@ public class BioClimateHSPECTransducer implements Transducerer{ parameters.add(p3); parameters.add(p4); parameters.add(p5); - parameters.add(p5); parameters.add(p6); parameters.add(p7); parameters.add(p8); diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/BioClimateHSPENTransducer.java b/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/BioClimateHSPENTransducer.java new file mode 100644 index 0000000..1a7a26f --- /dev/null +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/BioClimateHSPENTransducer.java @@ -0,0 +1,80 @@ +package org.gcube.dataanalysis.ecoengine.transducers; + +import java.util.ArrayList; +import java.util.List; + +import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; +import org.gcube.dataanalysis.ecoengine.datatypes.DatabaseType; +import org.gcube.dataanalysis.ecoengine.datatypes.TablesList; +import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveTypesList; +import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType; +import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.DatabaseParameters; +import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes; +import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.TableTemplates; +import org.gcube.dataanalysis.ecoengine.evaluation.bioclimate.BioClimateAnalysis; + +public class BioClimateHSPENTransducer extends BioClimateHSPECTransducer{ + + private String[] envelopeTables; + private String[] envelopeTablesNames; + + @Override + public void init() throws Exception { + //init the analyzer + bioClimate=new BioClimateAnalysis(config.getConfigPath(),config.getPersistencePath(),config.getParam("DatabaseURL"),config.getParam("DatabaseUserName"), config.getParam("DatabasePassword"), false); + //build the hspec names: + envelopeTables = config.getParam("HSPEN_TABLE_LIST").split(AlgorithmConfiguration.getListSeparator()); + envelopeTablesNames = config.getParam("HSPEN_TABLE_NAMES").split(AlgorithmConfiguration.getListSeparator()); + } + + @Override + public String getDescription() { + return "Evaluates the climatic changes impact on the variation of the salinity values in several ranges of a set of species envelopes"; + } + + @Override + public List getInputParameters() { + List parameters = new ArrayList(); + + DatabaseType p1 = new DatabaseType(DatabaseParameters.DATABASEUSERNAME, "DatabaseUserName", "db user name"); + DatabaseType p2 = new DatabaseType(DatabaseParameters.DATABASEPASSWORD, "DatabasePassword", "db password"); + DatabaseType p3 = new DatabaseType(DatabaseParameters.DATABASEDRIVER, "DatabaseDriver", "db driver"); + DatabaseType p4 = new DatabaseType(DatabaseParameters.DATABASEURL, "DatabaseURL", "db url"); + DatabaseType p5 = new DatabaseType(DatabaseParameters.DATABASEDIALECT, "DatabaseDialect", "db dialect"); + DatabaseType p6 = new DatabaseType(DatabaseParameters.DATABASETABLESPACE, "DatabaseTableSpace", "db dialect"); + + List templateHspec = new ArrayList(); + templateHspec.add(TableTemplates.HCAF); + TablesList p7 = new TablesList(templateHspec, "HSPEN_TABLE_LIST", "List of HSPEN tables containing the species for which the salinity will be analyzed", false); + PrimitiveTypesList p8 = new PrimitiveTypesList(PrimitiveTypes.STRING, "HSPEN_TABLE_NAMES", "List of HSPEN table names to be used as labels", false); + + parameters.add(p1); + parameters.add(p2); + parameters.add(p3); + parameters.add(p4); + parameters.add(p5); + parameters.add(p6); + parameters.add(p7); + parameters.add(p8); + + return parameters; + } + + @Override + public void compute() throws Exception { + + status = 0.1f; + try{ + bioClimate.speciesEvolutionAnalysis(envelopeTables,envelopeTablesNames, BioClimateAnalysis.salinityMinFeature, BioClimateAnalysis.salinityDefaultRange); + producedImages=bioClimate.getProducedImages(); + }catch(Exception e){ + e.printStackTrace(); + throw e; + } + finally{ + status = 100f; + } + } + + +} diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/InterpolationTransducer.java b/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/InterpolationTransducer.java new file mode 100644 index 0000000..ff5631d --- /dev/null +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/InterpolationTransducer.java @@ -0,0 +1,161 @@ +package org.gcube.dataanalysis.ecoengine.transducers; + +import java.awt.Image; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; +import org.gcube.dataanalysis.ecoengine.configuration.INFRASTRUCTURE; +import org.gcube.dataanalysis.ecoengine.datatypes.DatabaseType; +import org.gcube.dataanalysis.ecoengine.datatypes.InputTable; +import org.gcube.dataanalysis.ecoengine.datatypes.OutputTable; +import org.gcube.dataanalysis.ecoengine.datatypes.TablesList; +import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType; +import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType; +import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.DatabaseParameters; +import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes; +import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.TableTemplates; +import org.gcube.dataanalysis.ecoengine.evaluation.bioclimate.InterpolateTables; +import org.gcube.dataanalysis.ecoengine.evaluation.bioclimate.InterpolateTables.INTERPOLATIONFUNCTIONS; +import org.gcube.dataanalysis.ecoengine.interfaces.Transducerer; +import org.gcube.dataanalysis.ecoengine.utils.ResourceFactory; + +public class InterpolationTransducer implements Transducerer{ + + protected AlgorithmConfiguration config; + protected InterpolateTables interp; + private String[] producedtables; + + protected float status = 0; + + @Override + public INFRASTRUCTURE getInfrastructure() { + return INFRASTRUCTURE.LOCAL; + } + + + @Override + public void init() throws Exception { + interp = new InterpolateTables(config.getConfigPath(), config.getPersistencePath(), config.getParam("DatabaseURL"),config.getParam("DatabaseUserName"), config.getParam("DatabasePassword")); + } + + @Override + public void setConfiguration(AlgorithmConfiguration config) { + this.config=config; + } + + @Override + public void shutdown() { + + } + + @Override + public float getStatus() { + if ((status>0)&&(status<100)){ + return Math.min(interp.getStatus(),95f); + } + else + return status; + } + + @Override + public String getDescription() { + return "Evaluates the climatic changes impact on species presence"; + } + + @Override + public List getInputParameters() { + List parameters = new ArrayList(); + + DatabaseType p1 = new DatabaseType(DatabaseParameters.DATABASEUSERNAME, "DatabaseUserName", "db user name"); + DatabaseType p2 = new DatabaseType(DatabaseParameters.DATABASEPASSWORD, "DatabasePassword", "db password"); + DatabaseType p3 = new DatabaseType(DatabaseParameters.DATABASEDRIVER, "DatabaseDriver", "db driver"); + DatabaseType p4 = new DatabaseType(DatabaseParameters.DATABASEURL, "DatabaseURL", "db url"); + DatabaseType p5 = new DatabaseType(DatabaseParameters.DATABASEDIALECT, "DatabaseDialect", "db dialect"); + DatabaseType p6 = new DatabaseType(DatabaseParameters.DATABASETABLESPACE, "DatabaseTableSpace", "db dialect"); + + List templates = new ArrayList(); + templates.add(TableTemplates.HCAF); + + InputTable p7 = new InputTable(templates, "FirstHCAF", "HCAF table representing the starting point", "hcaf_d"); + InputTable p8 = new InputTable(templates, "SecondHCAF", "HCAF table representing the ending point", "hcaf_d_2050"); + PrimitiveType p9 = new PrimitiveType(Integer.class.getName(), null, PrimitiveTypes.NUMBER, "YearStart", "The year associated to the FirstHCAF parameter","2012"); + PrimitiveType p10 = new PrimitiveType(Integer.class.getName(), null, PrimitiveTypes.NUMBER, "YearEnd", "The year associated to the SecondHCAF parameter","2050"); + PrimitiveType p11 = new PrimitiveType(Integer.class.getName(), null, PrimitiveTypes.NUMBER, "NumberOfInterpolations", "Number of Intermediate Interpolation points","2"); + PrimitiveType p12 = new PrimitiveType(Enum.class.getName(), null, PrimitiveTypes.ENUMERATED, "InterpolationFunction", "The interpolation Function to use",""); + + parameters.add(p1); + parameters.add(p2); + parameters.add(p3); + parameters.add(p4); + parameters.add(p5); + parameters.add(p6); + parameters.add(p7); + parameters.add(p8); + parameters.add(p9); + parameters.add(p10); + parameters.add(p11); + parameters.add(p12); + + + return parameters; + } + + @Override + public StatisticalType getOutput() { + + List template = new ArrayList(); + template.add(TableTemplates.HCAF); + TablesList p = new TablesList(template, "INTEPOLATED_HCAF_TABLE_LIST", "List of HCAF tables produced by the interpolation", false); + + if ((producedtables!=null) &&(producedtables.length>0)){ + int i=1; + for (String table:producedtables){ + p.add(new OutputTable(template,table,table,"Interpolation point number "+i)); + i++; + } + } + + return p; + + } + + @Override + public void compute() throws Exception { + + status = 0.1f; + try{ + int nInterpolations = Integer.parseInt(config.getParam("NumberOfInterpolations"))+2; + String interpolationType = config.getParam("InterpolationFunction"); + INTERPOLATIONFUNCTIONS fun = INTERPOLATIONFUNCTIONS.valueOf(interpolationType); + int year1 = Integer.parseInt(config.getParam("YearStart")); + int year2 = Integer.parseInt(config.getParam("YearEnd")); + + interp.interpolate( config.getParam("FirstHCAF"), config.getParam("SecondHCAF"), nInterpolations, fun, year1, year2); + producedtables = interp.getInterpolatedTables(); + + }catch(Exception e){ + e.printStackTrace(); + throw e; + } + finally{ + status = 100f; + } + } + + + ResourceFactory resourceManager; + public String getResourceLoad() { + if (resourceManager==null) + resourceManager = new ResourceFactory(); + return resourceManager.getResourceLoad(1); + } + + + @Override + public String getResources() { + return ResourceFactory.getResources(100f); + } + +}