adjusted maps comparison

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-analysis/EcologicalEngineGeoSpatialExtension@97863 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Gianpaolo Coro 2014-06-26 14:46:29 +00:00
parent 0d615fe1a8
commit 6036b6dfe5
5 changed files with 325 additions and 22 deletions

View File

@ -1,10 +1,14 @@
package org.gcube.dataanalysis.geo.algorithms;
import java.awt.Image;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.contentmanagement.graphtools.data.conversions.ImageTools;
@ -21,11 +25,14 @@ import org.gcube.dataanalysis.ecoengine.evaluation.DiscrepancyAnalysis;
import org.gcube.dataanalysis.ecoengine.interfaces.DataAnalysis;
import org.gcube.dataanalysis.ecoengine.utils.DatabaseUtils;
import org.gcube.dataanalysis.ecoengine.utils.IOHelper;
import org.gcube.dataanalysis.ecoengine.utils.Operations;
import org.gcube.dataanalysis.geo.connectors.netcdf.NetCDFDataExplorer;
import org.gcube.dataanalysis.geo.connectors.wfs.WFS;
import org.gcube.dataanalysis.geo.infrastructure.GeoNetworkInspector;
import org.gcube.dataanalysis.geo.matrixmodel.MatrixExtractor;
import org.gcube.dataanalysis.geo.matrixmodel.RasterTable;
import org.gcube.dataanalysis.geo.matrixmodel.XYExtractor;
import org.hibernate.SessionFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.function.NormalDistributionFunction2D;
import org.jfree.data.general.DatasetUtilities;
@ -56,7 +63,7 @@ public class MapsComparator extends DataAnalysis {
@Override
public String getDescription() {
return "An algorithm for comparing two OGC/NetCDF maps in seamless way to the user. The algorithm assesses the similarities between two geospatial maps by comparing them in a point-to-point fashion. It accepts as input the two geospatial maps (via their UUIDs in the infrastructure spatial data repository - recoverable through the Geoexplorer portlet) and some parameters affecting the comparison such as the z-index, the time index, the comparison threshold.";
return "An algorithm for comparing two OGC/NetCDF maps in seamless way to the user. The algorithm assesses the similarities between two geospatial maps by comparing them in a point-to-point fashion. It accepts as input the two geospatial maps (via their UUIDs in the infrastructure spatial data repository - recoverable through the Geoexplorer portlet) and some parameters affecting the comparison such as the z-index, the time index, the comparison threshold. Note: in the case of WFS layers it makes comparisons on the last feature column.";
}
public double BBxLL = -180;
@ -120,33 +127,42 @@ public class MapsComparator extends DataAnalysis {
AnalysisLogger.getLogger().debug("MapsComparator: ****Rasterizing map 1****");
double[][] slice1 = intersector.extractXYGrid(layerT1, time1, BBxLL, BBxUR, BByLL, BByUR, z, resolution, resolution);
HashMap<Double,Map<String, String>> polygonsFeatures = null;
if (intersector.currentconnector instanceof WFS)
polygonsFeatures = ((WFS) intersector.currentconnector).getPolygonsFeatures();
AnalysisLogger.getLogger().debug("MapsComparator: Dumping map 1");
status = 30;
RasterTable raster1 = new RasterTable(BBxLL, BBxUR, BByLL, BByUR, z, resolution, resolution, slice1, config);
RasterTable raster1 = new RasterTable(BBxLL, BBxUR, BByLL, BByUR, z, resolution, resolution, slice1, polygonsFeatures,config);
raster1.dumpGeoTable();
String rastertable1 = raster1.getTablename();
AnalysisLogger.getLogger().debug("MapsComparator: Map 1 was dumped in table: " + rastertable1);
status = 40;
String columnToCompare1 = assessComparisonColumn(intersector, raster1);
intersector = new XYExtractor (config);
AnalysisLogger.getLogger().debug("MapsComparator: ****Rasterizing map 2****");
double[][] slice2 = intersector.extractXYGrid(layerT2, time2, BBxLL, BBxUR, BByLL, BByUR, z, resolution, resolution);
polygonsFeatures = null;
if (intersector.currentconnector instanceof WFS)
polygonsFeatures = ((WFS) intersector.currentconnector).getPolygonsFeatures();
AnalysisLogger.getLogger().debug("MapsComparator: Dumping map 2");
status = 50;
RasterTable raster2 = new RasterTable(BBxLL, BBxUR, BByLL, BByUR, z, resolution, resolution, slice2, config);
RasterTable raster2 = new RasterTable(BBxLL, BBxUR, BByLL, BByUR, z, resolution, resolution, slice2, polygonsFeatures,config);
raster2.dumpGeoTable();
String rastertable2 = raster2.getTablename();
AnalysisLogger.getLogger().debug("MapsComparator: Map 2 was dumped in table: " + rastertable2);
status = 60;
/*
* String rastertable1 = "rstr909f60c1d3f1472e9de998e844990724"; String rastertable2 = "rstre52e744c99224de3a1c5354263c6c8d8"; String resolution = "0.5";
*/
String columnToCompare2 = assessComparisonColumn(intersector, raster2);
AnalysisLogger.getLogger().debug("MapsComparator: Comparing on the following features : " + columnToCompare1+" vs "+columnToCompare2);
config.setNumberOfResources(1);
config.setParam("FirstTable", rastertable1);
config.setParam("SecondTable", rastertable2);
config.setParam("FirstTableCsquareColumn", RasterTable.csquareColumn);
config.setParam("SecondTableCsquareColumn", RasterTable.csquareColumn);
config.setParam("FirstTableProbabilityColumn", RasterTable.valuesColumn);
config.setParam("SecondTableProbabilityColumn", RasterTable.valuesColumn);
config.setParam("FirstTableProbabilityColumn", columnToCompare1);
config.setParam("SecondTableProbabilityColumn", columnToCompare2);
config.setParam("ComparisonThreshold", "" + valuesthreshold);
AnalysisLogger.getLogger().debug("MapsComparator: Analyzing discrepancy between maps: " + rastertable1 + " and " + rastertable2);
DiscrepancyAnalysis da = new DiscrepancyAnalysis();
@ -161,10 +177,10 @@ public class MapsComparator extends DataAnalysis {
connection = DatabaseUtils.initDBSession(config);
AnalysisLogger.getLogger().debug("MapsComparator: Deleting table " + rastertable1);
DatabaseFactory.executeSQLUpdate(DatabaseUtils.dropTableStatement(rastertable1), connection);
// DatabaseFactory.executeSQLUpdate(DatabaseUtils.dropTableStatement(rastertable1), connection);
status = 90;
AnalysisLogger.getLogger().debug("MapsComparator: Deleting table " + rastertable2);
DatabaseFactory.executeSQLUpdate(DatabaseUtils.dropTableStatement(rastertable2), connection);
// DatabaseFactory.executeSQLUpdate(DatabaseUtils.dropTableStatement(rastertable2), connection);
AnalysisLogger.getLogger().debug("MapsComparator: Elapsed: Whole operation completed in " + ((double) (System.currentTimeMillis() - t0) / 1000d) + "s");
} catch (Exception e) {
e.printStackTrace();
@ -177,6 +193,26 @@ public class MapsComparator extends DataAnalysis {
}
private String assessComparisonColumn(XYExtractor intersector, RasterTable raster) throws Exception{
String columnToCompare = RasterTable.valuesColumn;
try{
if (intersector.currentconnector instanceof WFS){
String[] columns = RasterTable.propertiesMapToColumnString(raster.valuesPropertiesMap.values().iterator().next(),false).split(",");
//take the last value as comparison column!
columnToCompare = columns[columns.length-1];
AnalysisLogger.getLogger().debug("Mapscomparator: Preparing column "+columnToCompare);
org.gcube.dataanalysis.ecoengine.utils.DatabaseFactory.executeUpdateNoTransaction("ALTER TABLE "+raster.getTablename()+" ALTER COLUMN "+columnToCompare+" TYPE real USING "+columnToCompare+"::real",
config.getDatabaseDriver(),config.getDatabaseUserName(),config.getDatabasePassword(),config.getDatabaseURL(), true);
}
}catch(Exception e){
throw new Exception ("Cannot compare the maps: the column "+columnToCompare+" is not real valued");
}
finally{
}
return columnToCompare;
}
public double getBestComparisonResolution(MatrixExtractor intersector, String layerID1, String layerID2) throws Exception{
GeoNetworkInspector fm = intersector.getFeaturer();

View File

@ -0,0 +1,263 @@
package org.gcube.dataanalysis.geo.batch;
import org.gcube.dataanalysis.geo.meta.GenericLayerMetadata;
import org.opengis.metadata.identification.TopicCategory;
public class GeothermalDataMetadataInsertDev {
static String geonetworkurl = "http://geonetwork.geothermaldata.d4science.org/geonetwork";
static String geoserverurl = "http://geoserver-dev.d4science-ii.research-infrastructures.eu/geoserver";
/*
static String geonetworkurl = "http://geonetwork.d4science.org/geonetwork/";
static String geoserverurl = "http://geoserver.d4science-ii.research-infrastructures.eu/geoserver";
*/
//static String geoserverurl = "http://geoserver-dev.d4science-ii.research-infrastructures.eu/geoserver";
static String user = "admin";
static String password = "d4science2014";
// static String workspace= "timeseriesgisdb";
//Temperature Isoline at 3 km depth
//Surface Heat Flow Map of Italy
//Temperature Isoline at 2 km depth
// Temperature Isoline at 1 km depth
//Temperature map at 1 km depth
//Surface Heat Flow Contour Map of Italy
//Temperature map at 2 km depth
//Temperature map at 3 km depth
public static void main(String[] args) throws Exception{
TemperatureIsolineat3kmdepth();
SurfaceHeatFlowMapofItaly();
TemperatureIsolineat2kmdepth();
TemperatureIsolineat1kmdepth();
Temperaturemapat1kmdepth();
SurfaceHeatFlowContourMapofItaly();
Temperaturemapat2kmdepth();
Temperaturemapat3kmdepth();
}
private static void TemperatureIsolineat3kmdepth() throws Exception{
GenericLayerMetadata metadataInserter = new GenericLayerMetadata();
metadataInserter.setGeonetworkUrl(geonetworkurl);
metadataInserter.setGeonetworkUser(user);
metadataInserter.setGeonetworkPwd(password);
metadataInserter.setResolution(0);
metadataInserter.setXLeftLow(6.62397);
metadataInserter.setYLeftLow(36.64916);
metadataInserter.setXRightUpper(18.51444);
metadataInserter.setYRightUpper(47.09458);
metadataInserter.setTitle("Temperature Isoline at 3 km depth");
metadataInserter.setAbstractField("Temperature map at 3km depth (below ground level) of Italy");
metadataInserter.setCustomTopics("geothermal energy","map","Italy","Energy resources","EGIP","D4Science");
metadataInserter.setCategoryTypes("_"+TopicCategory.CLIMATOLOGY_METEOROLOGY_ATMOSPHERE.name()+"_"+"_"+TopicCategory.ENVIRONMENT.name()+"_");
metadataInserter.setResolution(0);
metadataInserter.setLayerName("IGG:iso_3000");
String [] urls = {
"http://repoigg.services.iit.cnr.it/geoserver/IGG/wms?service=WMS&version=1.3.0&request=GetMap&layers=IGG:iso_3000&styles=&bbox=7.59535694122314,36.5945739746094,17.2513008117676,46.1617622375488&width=512&height=507&crs=EPSG:4326&format=application/openlayers",
"http://repoigg.services.iit.cnr.it/geoserver/IGG/ows?service=WFS&version=1.1.0&request=GetFeature&typeName=IGG:iso_3000&srsName=urn:x-ogc:def:crs:EPSG:4326"
};
String [] protocols = {"WMS","WFS"};
metadataInserter.customMetaDataInsert(urls,protocols);
}
private static void SurfaceHeatFlowMapofItaly() throws Exception{
GenericLayerMetadata metadataInserter = new GenericLayerMetadata();
metadataInserter.setGeonetworkUrl(geonetworkurl);
metadataInserter.setGeonetworkUser(user);
metadataInserter.setGeonetworkPwd(password);
metadataInserter.setResolution(0);
metadataInserter.setXLeftLow(6.62397);
metadataInserter.setYLeftLow(36.64916);
metadataInserter.setXRightUpper(18.51444);
metadataInserter.setYRightUpper(47.09458);
metadataInserter.setTitle("Surface Heat Flow Map of Italy");
metadataInserter.setAbstractField("Surface Heat Flow Contour Map of Italy");
metadataInserter.setCustomTopics("geothermal energy","map","Italy","Energy resources","EGIP","D4Science");
metadataInserter.setCategoryTypes("_"+TopicCategory.CLIMATOLOGY_METEOROLOGY_ATMOSPHERE.name()+"_"+"_"+TopicCategory.ENVIRONMENT.name()+"_");
metadataInserter.setResolution(0);
metadataInserter.setLayerName("IGG:hf_1");
String [] urls = {
"http://repoigg.services.iit.cnr.it/geoserver/IGG/wms?service=WMS&version=1.3.0&request=GetMap&layers=IGG:hf_1&styles=&bbox=6.66010808944702,36.571231842041,18.6017723083496,47.099250793457&width=512&height=451&crs=EPSG:4326&format=application/openlayers",
"http://repoigg.services.iit.cnr.it/geoserver/IGG/ows?service=WFS&version=1.1.0&request=GetFeature&typeName=IGG:hf_1&srsName=urn:x-ogc:def:crs:EPSG:4326"
};
String [] protocols = {"WMS","WFS"};
metadataInserter.customMetaDataInsert(urls,protocols);
}
private static void TemperatureIsolineat2kmdepth() throws Exception{
GenericLayerMetadata metadataInserter = new GenericLayerMetadata();
metadataInserter.setGeonetworkUrl(geonetworkurl);
metadataInserter.setGeonetworkUser(user);
metadataInserter.setGeonetworkPwd(password);
metadataInserter.setResolution(0);
metadataInserter.setXLeftLow(6.62397);
metadataInserter.setYLeftLow(36.64916);
metadataInserter.setXRightUpper(18.51444);
metadataInserter.setYRightUpper(47.09458);
metadataInserter.setTitle("Temperature Isoline at 2 km depth");
metadataInserter.setAbstractField("Temperature Isoline at 2 km depth (below ground level) of Italy");
metadataInserter.setCustomTopics("geothermal energy","map","Italy","Energy resources","EGIP","D4Science");
metadataInserter.setCategoryTypes("_"+TopicCategory.CLIMATOLOGY_METEOROLOGY_ATMOSPHERE.name()+"_"+"_"+TopicCategory.ENVIRONMENT.name()+"_");
metadataInserter.setResolution(0);
metadataInserter.setLayerName("IGG:iso_2000");
String [] urls = {
"http://repoigg.services.iit.cnr.it/geoserver/IGG/wms?service=WMS&version=1.1.0&request=GetMap&layers=IGG:iso_2000&styles=&bbox=7.53796720504761,36.6590042114258,17.1645240783691,46.0757904052734&width=512&height=500&crs=EPSG:4326&format=application/openlayers",
"http://repoigg.services.iit.cnr.it/geoserver/IGG/ows?service=WFS&version=1.1.0&request=GetFeature&typeName=IGG:iso_2000&srsName=urn:x-ogc:def:crs:EPSG:4326"
};
String [] protocols = {"WMS","WFS"};
metadataInserter.customMetaDataInsert(urls,protocols);
}
private static void TemperatureIsolineat1kmdepth() throws Exception{
GenericLayerMetadata metadataInserter = new GenericLayerMetadata();
metadataInserter.setGeonetworkUrl(geonetworkurl);
metadataInserter.setGeonetworkUser(user);
metadataInserter.setGeonetworkPwd(password);
metadataInserter.setResolution(0);
metadataInserter.setXLeftLow(6.62397);
metadataInserter.setYLeftLow(36.64916);
metadataInserter.setXRightUpper(18.51444);
metadataInserter.setYRightUpper(47.09458);
metadataInserter.setTitle("Temperature Isoline at 1 km depth");
metadataInserter.setAbstractField("Temperature Isoline at 1 km depth (below ground level) of Italy");
metadataInserter.setCustomTopics("geothermal energy","map","Italy","Energy resources","EGIP","D4Science");
metadataInserter.setCategoryTypes("_"+TopicCategory.CLIMATOLOGY_METEOROLOGY_ATMOSPHERE.name()+"_"+"_"+TopicCategory.ENVIRONMENT.name()+"_");
metadataInserter.setResolution(0);
metadataInserter.setLayerName("IGG:iso_1000");
String [] urls = {
"http://repoigg.services.iit.cnr.it/geoserver/IGG/wms?service=WMS&version=1.3.0&request=GetMap&layers=IGG:iso_1000&styles=&bbox=7.40797662734985,36.7031669616699,17.1524467468262,46.1305541992188&width=512&height=495&crs=EPSG:4326&format=application/openlayers",
"http://repoigg.services.iit.cnr.it/geoserver/IGG/ows?service=WFS&version=1.1.0&request=GetFeature&typeName=IGG:iso_1000&srsName=urn:x-ogc:def:crs:EPSG:4326"
};
String [] protocols = {"WMS","WFS"};
metadataInserter.customMetaDataInsert(urls,protocols);
}
private static void Temperaturemapat1kmdepth() throws Exception{
GenericLayerMetadata metadataInserter = new GenericLayerMetadata();
metadataInserter.setGeonetworkUrl(geonetworkurl);
metadataInserter.setGeonetworkUser(user);
metadataInserter.setGeonetworkPwd(password);
metadataInserter.setResolution(0);
metadataInserter.setXLeftLow(6.62397);
metadataInserter.setYLeftLow(36.64916);
metadataInserter.setXRightUpper(18.51444);
metadataInserter.setYRightUpper(47.09458);
metadataInserter.setTitle("Temperature map at 1 km depth");
metadataInserter.setAbstractField("Temperature map at 1km depth (below ground level) of Italy");
metadataInserter.setCustomTopics("geothermal energy","map","Italy","Energy resources","EGIP","D4Science");
metadataInserter.setCategoryTypes("_"+TopicCategory.CLIMATOLOGY_METEOROLOGY_ATMOSPHERE.name()+"_"+"_"+TopicCategory.ENVIRONMENT.name()+"_");
metadataInserter.setResolution(0);
metadataInserter.setLayerName("IGG:area_temp_1000");
String [] urls = {
"http://repoigg.services.iit.cnr.it/geoserver/IGG/wms?service=WMS&version=1.3.0&request=GetMap&layers=IGG:area_temp_1000&styles=&bbox=6.62688943789748,36.6438921370804,18.5206117399977,47.0919540445501&width=512&height=449&crs=EPSG:4326&format=application/openlayers",
"http://repoigg.services.iit.cnr.it/geoserver/IGG/ows?service=WFS&version=1.1.0&request=GetFeature&typeName=IGG:area_temp_1000&srsName=urn:x-ogc:def:crs:EPSG:4326"
};
String [] protocols = {"WMS","WFS"};
metadataInserter.customMetaDataInsert(urls,protocols);
}
private static void SurfaceHeatFlowContourMapofItaly() throws Exception{
GenericLayerMetadata metadataInserter = new GenericLayerMetadata();
metadataInserter.setGeonetworkUrl(geonetworkurl);
metadataInserter.setGeonetworkUser(user);
metadataInserter.setGeonetworkPwd(password);
metadataInserter.setResolution(0);
metadataInserter.setXLeftLow(6.62397);
metadataInserter.setYLeftLow(36.64916);
metadataInserter.setXRightUpper(18.51444);
metadataInserter.setYRightUpper(47.09458);
metadataInserter.setTitle("Surface Heat Flow Contour Map of Italy");
metadataInserter.setAbstractField("Surface Heat Flow Contour Map of Italy");
metadataInserter.setCustomTopics("geothermal energy","map","Italy","Energy resources","EGIP","D4Science");
metadataInserter.setCategoryTypes("_"+TopicCategory.CLIMATOLOGY_METEOROLOGY_ATMOSPHERE.name()+"_"+"_"+TopicCategory.ENVIRONMENT.name()+"_");
metadataInserter.setResolution(0);
metadataInserter.setLayerName("IGG:heat_flow_1");
String [] urls = {
"http://repoigg.services.iit.cnr.it/geoserver/IGG/wms?service=WMS&version=1.3.0&request=GetMap&layers=IGG:heat_flow_1&styles=&bbox=6.699791431427,36.5742835998535,18.6017723083496,47.0844573974609&width=512&height=452&crs=EPSG:4326&format=application/openlayers",
"http://repoigg.services.iit.cnr.it/geoserver/IGG/ows?service=WFS&version=1.1.0&request=GetFeature&typeName=IGG:heat_flow_1&srsName=urn:x-ogc:def:crs:EPSG:4326"
};
String [] protocols = {"WMS","WFS"};
metadataInserter.customMetaDataInsert(urls,protocols);
}
private static void Temperaturemapat2kmdepth() throws Exception{
GenericLayerMetadata metadataInserter = new GenericLayerMetadata();
metadataInserter.setGeonetworkUrl(geonetworkurl);
metadataInserter.setGeonetworkUser(user);
metadataInserter.setGeonetworkPwd(password);
metadataInserter.setResolution(0);
metadataInserter.setXLeftLow(6.62397);
metadataInserter.setYLeftLow(36.64916);
metadataInserter.setXRightUpper(18.51444);
metadataInserter.setYRightUpper(47.09458);
metadataInserter.setTitle("Temperature map at 2 km depth");
metadataInserter.setAbstractField("Temperature map at 2km depth (below ground level) of Italy");
metadataInserter.setCustomTopics("geothermal energy","map","Italy","Energy resources","EGIP","D4Science");
metadataInserter.setCategoryTypes("_"+TopicCategory.CLIMATOLOGY_METEOROLOGY_ATMOSPHERE.name()+"_"+"_"+TopicCategory.ENVIRONMENT.name()+"_");
metadataInserter.setResolution(0);
metadataInserter.setLayerName("IGG:area_temp_2000");
String [] urls = {
"http://repoigg.services.iit.cnr.it/geoserver/IGG/wms?service=WMS&version=1.3.0&request=GetMap&layers=IGG:area_temp_2000&styles=&bbox=6.6268892288208,36.6438903808594,18.5206127166748,47.0919570922852&width=512&height=449&crs=EPSG:4326&format=application/openlayers",
"http://repoigg.services.iit.cnr.it/geoserver/IGG/ows?service=WFS&version=1.1.0&request=GetFeature&typeName=IGG:area_temp_2000&srsName=urn:x-ogc:def:crs:EPSG:4326"
};
String [] protocols = {"WMS","WFS"};
metadataInserter.customMetaDataInsert(urls,protocols);
}
private static void Temperaturemapat3kmdepth() throws Exception{
GenericLayerMetadata metadataInserter = new GenericLayerMetadata();
metadataInserter.setGeonetworkUrl(geonetworkurl);
metadataInserter.setGeonetworkUser(user);
metadataInserter.setGeonetworkPwd(password);
metadataInserter.setResolution(0);
metadataInserter.setXLeftLow(6.62397);
metadataInserter.setYLeftLow(36.64916);
metadataInserter.setXRightUpper(18.51444);
metadataInserter.setYRightUpper(47.09458);
metadataInserter.setTitle("Temperature map at 3 km depth");
metadataInserter.setAbstractField("Temperature map at 3km depth (below ground level) of Italy");
metadataInserter.setCustomTopics("geothermal energy","map","Italy","Energy resources","EGIP","D4Science");
metadataInserter.setCategoryTypes("_"+TopicCategory.CLIMATOLOGY_METEOROLOGY_ATMOSPHERE.name()+"_"+"_"+TopicCategory.ENVIRONMENT.name()+"_");
metadataInserter.setResolution(0);
metadataInserter.setLayerName("IGG:area_temp_3000");
String [] urls = {
"http://repoigg.services.iit.cnr.it/geoserver/IGG/wms?service=WMS&version=1.3.0&request=GetMap&layers=IGG:area_temp_3000&styles=&bbox=6.6268892288208,36.5945739746094,18.5206127166748,47.0919570922852&width=512&height=451&crs=EPSG:4326&format=application/openlayers",
"http://repoigg.services.iit.cnr.it/geoserver/IGG/ows?service=WFS&version=1.1.0&request=GetFeature&typeName=IGG:area_temp_3000&srsName=urn:x-ogc:def:crs:EPSG:4326"
};
String [] protocols = {"WMS","WFS"};
metadataInserter.customMetaDataInsert(urls,protocols);
}
}

View File

@ -24,7 +24,7 @@ import org.hibernate.SessionFactory;
public class RasterTable {
private double valuesMatrix[][];
private HashMap<Double, Map<String, String>> valuesPropertiesMap;
public HashMap<Double, Map<String, String>> valuesPropertiesMap;
double x1;
double x2;
double y1;
@ -39,10 +39,10 @@ public class RasterTable {
private String tablename = "rstr" + ("" + UUID.randomUUID()).replace("-", "");
// static String createTableStatement = "CREATE TABLE %1$s (id serial, csquarecode character varying, x real, y real, z real, t real, fvalue real)";
static String createTableStatementStandard = "CREATE TABLE %1$s (id serial, csquarecode character varying, x real, y real, z real, t real, fvalue character varying)";
static String createTableStatementWithFields = "CREATE TABLE %1$s (id serial, approx_x real, approx_y real, z real, t real, %2$s)";
static String createTableStatementWithFields = "CREATE TABLE %1$s (id serial, csquarecode character varying, approx_x real, approx_y real, z real, t real, %2$s)";
static String columnsnamesStandard = "csquarecode, x , y , z , t, fvalue";
static String columnsnamesWithFields = "approx_x , approx_y , z , t , %1$s";
static String columnsnamesWithFields = "csquarecode, approx_x , approx_y , z , t , %1$s";
public static String csquareColumn = "csquarecode";
public static String valuesColumn = "fvalue";
@ -168,7 +168,7 @@ public class RasterTable {
if (valuesPropertiesMap == null)
sb.append("('" + csquare + "'," + x + "," + y + "," + zVal + "," + tVal + ",'" + valueForTable + "')");
else
sb.append("(" + x + "," + y + "," + zVal + "," + tVal + "," + valueForTable + ")");
sb.append("('" + csquare + "',"+ x + "," + y + "," + zVal + "," + tVal + "," + valueForTable + ")");
}
if (rowcounter % 5000 == 0) {
// AnalysisLogger.getLogger().debug("Partial Inserting Buffer of " + sb.length() + " Values");
@ -224,7 +224,7 @@ public class RasterTable {
int m = valuesMap.size();
int i = 0;
for (String keys : valuesMap.keySet()) {
sb.append(keys);
sb.append("f_"+keys);
if (withtype)
sb.append(" character varying");
if (i < m - 1)

View File

@ -81,7 +81,7 @@ public class GenericLayerMetadata {
private String contactInfo = "support@d4science.org";
private String abstractField = "";
private String purpose = "Maps publication";
private String author = "i-Marine";
private String author = "D4Science";
private double res = 0.5d;
private double xLL = -180;
private double xRU = 180;
@ -296,7 +296,7 @@ public class GenericLayerMetadata {
// layer keywords
HashMap<KeywordType, HashSet<String>> descriptiveKeyWords = new HashMap<KeywordType, HashSet<String>>();
HashSet<String> keySet = new HashSet<String>();
keySet.add("i-Marine");
keySet.add("D4Science");
if (customTopics!=null)
keySet.addAll(customTopics);

View File

@ -29,23 +29,27 @@ public class TestMapsComparison {
// String layertitle2 = "FAO aquatic species distribution map of Teuthowenia megalops";
//{MEAN=1.0, VARIANCE=0.0, NUMBER_OF_ERRORS=38596, NUMBER_OF_COMPARISONS=260281, ACCURACY=85.17, MAXIMUM_ERROR=1.0, MAXIMUM_ERROR_POINT=3207:219:1, TREND=CONTRACTION, Resolution=0.5}
String layertitle = "Sarda orientalis";
String layertitle2 = "FAO aquatic species distribution map of Sarda chiliensis";
//String layertitle = "Sarda orientalis";
//String layertitle2 = "FAO aquatic species distribution map of Sarda chiliensis";
String layertitle2 = "4e5c1bbf-f5ce-4b66-a67c-14d7d9920aa0";
String layertitle = "38b2eb74-1c07-4569-8a81-36ac2f973146";
AnalysisLogger.setLogger(cfg+AlgorithmConfiguration.defaultLoggerFile);
AlgorithmConfiguration config = new AlgorithmConfiguration();
config.setConfigPath(cfg);
config.setGcubeScope("/gcube/devsec/devVRE");
config.setPersistencePath("./");
config.setParam("DatabaseUserName","gcube");
config.setParam("DatabasePassword","d4science2");
config.setParam("DatabaseURL","jdbc:postgresql://localhost/testdb");
config.setParam("DatabaseDriver","org.postgresql.Driver");
config.setParam("Layer_1",layertitle);
config.setParam("Layer_2",layertitle2);
config.setParam("ValuesComparisonThreshold","0.01");
config.setParam("ValuesComparisonThreshold","0.1");
config.setParam("Z","0");
config.setGcubeScope(null);
MapsComparator mc = new MapsComparator();
mc.setConfiguration(config);