From 874c3e203a865dd4ba76cd8ee14ad3510e314c1d Mon Sep 17 00:00:00 2001 From: Gianpaolo Coro Date: Mon, 29 Feb 2016 12:32:54 +0000 Subject: [PATCH] git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-analysis/EcologicalEngineExternalAlgorithms@124652 82a268e6-3cf1-43bd-a215-b396298e98cf --- .project | 2 +- distro/CHANGELOG | 8 +- distro/README | 4 +- distro/changelog.xml | 9 + distro/svnpath.txt | 2 +- pom.xml | 85 +------- .../taxamatch/TaxaMatchListTransducer.java | 1 - .../precipitations/AnnualPrecipitation.java | 192 ------------------ .../test/TestAverageAnnualPrecipitation.java | 49 ----- .../{gube => gcube}/examples/MyAlgorithm.java | 2 +- target/profile.xml | 25 --- 11 files changed, 25 insertions(+), 354 deletions(-) delete mode 100644 src/main/java/org/gcube/dataanalysis/precipitations/AnnualPrecipitation.java delete mode 100644 src/main/java/org/gcube/dataanalysis/test/TestAverageAnnualPrecipitation.java rename src/main/java/org/{gube => gcube}/examples/MyAlgorithm.java (94%) delete mode 100644 target/profile.xml diff --git a/.project b/.project index d611b7b..054927a 100644 --- a/.project +++ b/.project @@ -1,6 +1,6 @@ - ecological-engine-external-algorithms + ecological-engine-external-algorithms1.1.5 diff --git a/distro/CHANGELOG b/distro/CHANGELOG index ce676c1..15a7fba 100644 --- a/distro/CHANGELOG +++ b/distro/CHANGELOG @@ -1,2 +1,6 @@ -v. 1.0.0 (19-03-2013) - * First release +v. 1.1.5 (05-09-2014) + * Geothermal analysis +v. 1.1.6 (30-06-2015) + * Introducing average annual precipitation +v. 1.1.7 (23-09-2015) + * Adding algorithms by univ Brazil \ No newline at end of file diff --git a/distro/README b/distro/README index 1c70066..e430054 100644 --- a/distro/README +++ b/distro/README @@ -17,7 +17,7 @@ Authors Version and Release Date ------------------------ -version 1.0.0 (19-04-2013) +version 1.1.7 (23-09-2015) Description -------------------- @@ -29,7 +29,7 @@ Download information -------------------- Source code is available from SVN: -http://svn.research-infrastructures.eu/d4science/gcube/trunk/content-management/EcologicalModelling +https://svn.d4science.research-infrastructures.eu/gcube/branches/data-analysis/EcologicalEngineExternalAlgorithms/1.1/ Binaries can be downloaded from: http://software.d4science.research-infrastructures.eu/ diff --git a/distro/changelog.xml b/distro/changelog.xml index b4a1bd5..63c55f8 100644 --- a/distro/changelog.xml +++ b/distro/changelog.xml @@ -10,4 +10,13 @@ Fix problem in species/taxa procedures + + Geothermal analysis + + + Introducing average annual precipitation + + + Adding algorithms by univ Brazil + \ No newline at end of file diff --git a/distro/svnpath.txt b/distro/svnpath.txt index 8408b3a..07295e3 100644 --- a/distro/svnpath.txt +++ b/distro/svnpath.txt @@ -1 +1 @@ -https://svn.d4science.research-infrastructures.eu/gcube/branches/data-analysis/EcologicalEngineExternalAlgorithms/1.0 \ No newline at end of file +https://svn.d4science.research-infrastructures.eu/gcube/branches/data-analysis/EcologicalEngineExternalAlgorithms/1.1/ \ No newline at end of file diff --git a/pom.xml b/pom.xml index 4b1a630..79e6210 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ org.gcube.dataanalysis ecological-engine-external-algorithms - 1.1.7-SNAPSHOT + 1.1.8-SNAPSHOT ecological-engine-external-algorithms ecological-engine-external-algorithms library @@ -26,54 +26,15 @@ taxamatchpostgres 1.2.0 - - postgresql - postgresql - 8.4-702.jdbc4 - rapidminer-custom gsay-service 1.0.0 - - org.gcube.core - common-gcore-stubs - [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) - - - - org.gcube.core - common-encryption - [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) - - - org.gcube.core - common-scope-maps - [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) - - - org.slf4j - slf4j-api - 1.6.4 - provided - - - log4j - log4j - 1.2.16 - provided - - - org.slf4j - slf4j-log4j12 - 1.6.4 - provided - org.gcube.data.spd spd-client-library - [1.0.0-SNAPSHOT, 4.0.0-SNAPSHOT) + [1.0.0, 4.0.0) org.gcube.data.spd @@ -81,8 +42,6 @@ - xerces xercesImpl @@ -92,54 +51,20 @@ org.gcube.data.spd spql-parser - [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT) + [2.0.0, 3.0.0) provided - org.gcube.common csv4j - [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) + [1.0.0, 2.0.0) provided - org.gcube.data.spd spd-model - [1.0.0-SNAPSHOT, 4.0.0-SNAPSHOT) + [1.0.0, 4.0.0) - - - org.gcube.resources.discovery - discovery-client - [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) - provided - - - org.gcube.core - common-clients - [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT) - - - org.gcube.core - common-gcore-clients - [1.0.0-SNAPSHOT,3.0.0-SNAPSHOT) - - - - - - org.gcube.resources.discovery - ic-client - [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) - - - - org.gcube.core - common-scope-maps - [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) - - diff --git a/src/main/java/org/gcube/dataanalysis/fin/taxamatch/TaxaMatchListTransducer.java b/src/main/java/org/gcube/dataanalysis/fin/taxamatch/TaxaMatchListTransducer.java index adf5027..ad8d31c 100644 --- a/src/main/java/org/gcube/dataanalysis/fin/taxamatch/TaxaMatchListTransducer.java +++ b/src/main/java/org/gcube/dataanalysis/fin/taxamatch/TaxaMatchListTransducer.java @@ -3,7 +3,6 @@ package org.gcube.dataanalysis.fin.taxamatch; import java.util.ArrayList; import java.util.List; -import org.apache.bcel.generic.ALOAD; import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger; import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; import org.gcube.dataanalysis.ecoengine.datatypes.ColumnTypesList; diff --git a/src/main/java/org/gcube/dataanalysis/precipitations/AnnualPrecipitation.java b/src/main/java/org/gcube/dataanalysis/precipitations/AnnualPrecipitation.java deleted file mode 100644 index dec6771..0000000 --- a/src/main/java/org/gcube/dataanalysis/precipitations/AnnualPrecipitation.java +++ /dev/null @@ -1,192 +0,0 @@ -package org.gcube.dataanalysis.precipitations; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; - -import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger; -import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; -import org.gcube.dataanalysis.ecoengine.datatypes.ColumnTypesList; -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.ServiceType; -import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType; -import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.ServiceParameters; -import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.TableTemplates; -import org.gcube.dataanalysis.ecoengine.interfaces.StandardLocalExternalAlgorithm; -import org.gcube.dataanalysis.ecoengine.utils.DatabaseFactory; -import org.gcube.dataanalysis.ecoengine.utils.DatabaseUtils; -import org.hibernate.SessionFactory; - -public class AnnualPrecipitation extends StandardLocalExternalAlgorithm { - // Class Attributes - String outputtablename; - String outputtable; - - @Override - public String getDescription() { - return "This is a simple algorithm that returns the annual precipitation. The input is a general tabular resource with two columns (date and precipitation)."; - } - - @Override - public void init() throws Exception { - AnalysisLogger.getLogger().debug("Initialization"); - } - - @Override - protected void process() throws Exception { - // Recovering data - config.setParam("DatabaseDriver", "org.postgresql.Driver"); - SessionFactory dbconnection = DatabaseUtils.initDBSession(config); - try { - String tablename = getInputParameter("PrecTable"); - String columnnames = getInputParameter("PrecColumns"); - outputtablename = getInputParameter("OutputTableName"); - outputtable = getInputParameter("OutputTable"); - String[] columnlist = columnnames.split(AlgorithmConfiguration.getListSeparator()); - List dataList = DatabaseFactory.executeSQLQuery("select " + columnlist[0] + " from " + tablename + " order by " + columnlist[0] + " asc", dbconnection); - List precList = DatabaseFactory.executeSQLQuery("select " + columnlist[1] + " from " + tablename + " order by " + columnlist[0] + " asc", dbconnection); - // Business Logic - AnalysisLogger.getLogger().info("Creating output table [" + "create table " + outputtable + " (year integer, value real)]"); - DatabaseFactory.executeSQLUpdate("create table " + outputtable + " (year integer, value real)", dbconnection); - Double averageValue = new Double(0); - for (int i = 0; i < dataList.size(); i++) { // for each line - if (i == 0) { // first iteration - averageValue = averageValue + Double.parseDouble(String.valueOf(precList.get(i))); - if (dataList.size() == 1) { // if first iteration is also - // the last - Date currentDate = anyStringToDate(String.valueOf(dataList.get(i))); - AnalysisLogger.getLogger().info("i=0 Current Date: "+currentDate); - Calendar currentDateCal = Calendar.getInstance(); - currentDateCal.setTime(currentDate); - int yearCurrentDate = currentDateCal.get(Calendar.YEAR); - AnalysisLogger.getLogger().info("Inserting into table " + "insert into " + outputtable + " (year,value) values (" + yearCurrentDate + "," + averageValue + ")"); - DatabaseFactory.executeSQLUpdate("insert into " + outputtable + " (year,value) values (" + yearCurrentDate + "," + averageValue + ")", dbconnection); - averageValue = new Double(0); - } - } - if (i > 0) { // other iterations - Date currentDate = anyStringToDate(String.valueOf(dataList.get(i))); - Date lastDate = anyStringToDate(String.valueOf(dataList.get(i - 1))); - AnalysisLogger.getLogger().info("Current Date: "+currentDate); - AnalysisLogger.getLogger().info("Last Date: "+lastDate); - Calendar currentDateCal = Calendar.getInstance(); - currentDateCal.setTime(currentDate); - int yearCurrentDate = currentDateCal.get(Calendar.YEAR); - Calendar lastDateCal = Calendar.getInstance(); - lastDateCal.setTime(lastDate); - int yearLastDate = lastDateCal.get(Calendar.YEAR); - if (yearCurrentDate > yearLastDate) { - // inserting average annual - AnalysisLogger.getLogger().info("Inserting into table " + "insert into " + outputtable + " (year,value) values (" + yearLastDate + "," + averageValue + ")"); - DatabaseFactory.executeSQLUpdate("insert into " + outputtable + " (year,value) values (" + yearLastDate + "," + averageValue + ")", dbconnection); - averageValue = new Double(0); - averageValue = new Double(String.valueOf(precList.get(i))); - } else { - averageValue = averageValue + Double.parseDouble(String.valueOf(precList.get(i))); - } - } - if (i != 0 && i == dataList.size() - 1) { // last iteration - Date currentDate = anyStringToDate(String.valueOf(dataList.get(i))); - Calendar currentDateCal = Calendar.getInstance(); - currentDateCal.setTime(currentDate); - int yearCurrentDate = currentDateCal.get(Calendar.YEAR); - AnalysisLogger.getLogger().info("Inserting into table " + "insert into " + outputtable + " (year,value) values (" + yearCurrentDate + "," + averageValue + ")"); - DatabaseFactory.executeSQLUpdate("insert into " + outputtable + " (year,value) values (" + yearCurrentDate + "," + averageValue + ")", dbconnection); - averageValue = new Double(0); - } - } - } catch (Exception e) { - AnalysisLogger.getLogger().error(e.getMessage()); - throw e; - } finally { - DatabaseUtils.closeDBConnection(dbconnection); - } - } - - @Override - protected void setInputParameters() { - // First parameter: Internal tabular resource - List templates = new ArrayList(); - templates.add(TableTemplates.GENERIC); - InputTable tinput = new InputTable(templates, "PrecTable", "Precipitation tabular resource"); - ColumnTypesList columns = new ColumnTypesList("PrecTable", "PrecColumns", "Selected columns for date and precipitation", false); - inputs.add(tinput); - inputs.add(columns); - // Second parameter: Output table - ServiceType randomstring = new ServiceType(ServiceParameters.RANDOMSTRING, "OutputTable", "", "prec"); - inputs.add(randomstring); - DatabaseType.addDefaultDBPars(inputs); - // Third parameter: Output table name - addStringInput("OutputTableName", "The name of the output table", "prec_"); - } - - @Override - public StatisticalType getOutput() { - List outtemplate = new ArrayList(); - outtemplate.add(TableTemplates.GENERIC); - OutputTable out = new OutputTable(outtemplate, outputtablename, outputtable, "The output table containing all the matches"); - return out; - } - - @Override - public void shutdown() { - AnalysisLogger.getLogger().debug("Shutdown"); - } - - /** - * An auxiliary method that converts string to date - * - * @param value - * @return - */ - public static Date anyStringToDate(String value) { - Date date = null; - try { - if (isValidFormat("yyyy-mm-dd", value)) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd"); - date = sdf.parse(value); - } - if (isValidFormat("yyyymmdd", value)) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyymmdd"); - date = sdf.parse(value); - } - if (isValidFormat("dd/mm/yyyy", value)) { - SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy"); - date = sdf.parse(value); - } - if (isValidFormat("dd-mm-yyyy", value)) { - SimpleDateFormat sdf = new SimpleDateFormat("dd-mm-yyyy"); - date = sdf.parse(value); - } - } catch (Exception e) { - date = null; - } - return date; - } - - /** - * An auxiliary method that validates if a string respect a specified date format - * - * @param format - * @param value - * @return - */ - public static boolean isValidFormat(String format, String value) { - Date date = null; - try { - SimpleDateFormat sdf = new SimpleDateFormat(format); - date = sdf.parse(value); - if (!value.equals(sdf.format(date))) { - date = null; - } - } catch (ParseException ex) { - date = null; - } - return date != null; - } -} diff --git a/src/main/java/org/gcube/dataanalysis/test/TestAverageAnnualPrecipitation.java b/src/main/java/org/gcube/dataanalysis/test/TestAverageAnnualPrecipitation.java deleted file mode 100644 index 56f132f..0000000 --- a/src/main/java/org/gcube/dataanalysis/test/TestAverageAnnualPrecipitation.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.gcube.dataanalysis.test; - -import java.util.List; -import java.util.UUID; - -import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; -import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType; -import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent; -import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory; -import org.gcube.dataanalysis.ecoengine.test.regression.Regressor; - -public class TestAverageAnnualPrecipitation { - - /** - * @param args - */ - public static void main(String[] args) throws Exception { - - System.out.println("TEST of PREC ALGO 1"); - List trans = null; - trans = TransducerersFactory.getTransducerers(testConfig()); - trans.get(0).init(); - Regressor.process(trans.get(0)); - StatisticalType st = trans.get(0).getOutput(); - trans = null; - } - - private static AlgorithmConfiguration testConfig() { - AlgorithmConfiguration config = Regressor.getConfig(); - config.setConfigPath("./cfg/"); - config.setPersistencePath("./"); - - config.setAgent("AVERAGE_ANNUAL_PREC"); - - config.setParam("DatabaseUserName","postgres"); - config.setParam("DatabasePassword","postgres"); - config.setParam("DatabaseURL","jdbc:postgresql://localhost"); - config.setParam("DatabaseDriver","org.postgresql.Driver"); - config.setParam("PrecTable", "test"); - config.setParam("PrecColumns", "day" + AlgorithmConfiguration.listSeparator + "precipitation"); - String tablename = "testprec" + (UUID.randomUUID()); - - config.setParam("OutputTableName", "Test Prec"); - config.setParam("OutputTable", tablename.replace("-", "")); - - return config; - } - -} diff --git a/src/main/java/org/gube/examples/MyAlgorithm.java b/src/main/java/org/gcube/examples/MyAlgorithm.java similarity index 94% rename from src/main/java/org/gube/examples/MyAlgorithm.java rename to src/main/java/org/gcube/examples/MyAlgorithm.java index 04fd621..ccc0f89 100644 --- a/src/main/java/org/gube/examples/MyAlgorithm.java +++ b/src/main/java/org/gcube/examples/MyAlgorithm.java @@ -1,4 +1,4 @@ -package org.gube.examples; +package org.gcube.examples; import java.io.File; import java.io.FileWriter; diff --git a/target/profile.xml b/target/profile.xml deleted file mode 100644 index fc25ab4..0000000 --- a/target/profile.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - Library - - Ecological Engine Library - EcologicalEngineExternalAlgorithms - ecological-engine-external-algorithms - 1.1.1 - - - ecological-engine-external-algorithms - 1.1.7-SNAPSHOT - - org.gcube.dataanalysis - ecological-engine-external-algorithms - 1.1.7-SNAPSHOT - - - ecological-engine-external-algorithms-1.1.7-SNAPSHOT.jar - - - - - \ No newline at end of file