ecological-engine-geospatia.../src/main/java/org/gcube/dataanalysis/geo/test/projections/ProduceASCFile.java

144 lines
6.0 KiB
Java

package org.gcube.dataanalysis.geo.test.projections;
import java.io.File;
import java.io.FileWriter;
import java.util.List;
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
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;
import org.gcube.dataanalysis.ecoengine.utils.Tuple;
import org.gcube.dataanalysis.geo.connectors.asc.AscRasterWriter;
import org.gcube.dataanalysis.geo.connectors.table.Table;
import org.gcube.dataanalysis.geo.connectors.table.TableMatrixRepresentation;
import org.gcube.dataanalysis.geo.utils.MapUtils;
import org.gcube.dataanalysis.geo.utils.VectorOperations;
public class ProduceASCFile {
static String layer = "http://geoserver-dev.d4science-ii.research-infrastructures.eu/geoserver/ows?service=wfs&version=1.0.0&request=GetFeature&srsName=urn:x-ogc:def:crs:EPSG:4326&TYPENAME=aquamaps:worldborders";
// static String layer = "ed8f77bd-2423-4036-b34d-2f1cb5fcaffc";
// static String layer = "http://geoserver-dev.d4science-ii.research-infrastructures.eu/geoserver/ows?service=wfs&version=1.0.0&request=GetFeature&srsName=urn:x-ogc:def:crs:EPSG:4326&TYPENAME=aquamaps:eezall";
// static String layer = "http://geo.vliz.be/geoserver/MarineRegions/ows?service=wfs&version=1.0.0&request=GetFeature&srsName=urn:x-ogc:def:crs:EPSG:4326&typename=MarineRegions:eez";
// static String layer = "aeabfdb5-9ddb-495e-b628-5b7d2cf1d8a2";
static String field = "f_cat";
// static String field = "eez_id";
// static String field = "f_eezall";
// static String field = "f_eez_id";
// static String field = "f_zone";
static double res = 0.3;
static String table = "testextraction4";
static String scope = "/gcube/devsec/devVRE";
static String databaseUser = "gcube";
static String databasePwd = "d4science2";
static String databaseURL = "jdbc:postgresql://localhost/testdb";
static String databaseDriver = "org.postgresql.Driver";
static double xll = -180;
static double yll=-90;
static double xur=180;
static double yur=90;
static String outASCIIMAP = "producedmap.txt";
static String outASCFile = "produced.asc";
private static AlgorithmConfiguration XYExtractionConfig() {
AlgorithmConfiguration config = new AlgorithmConfiguration();
config.setAgent("XYEXTRACTOR");
config.setConfigPath("./cfg/");
config.setPersistencePath("./");
config.setParam("DatabaseUserName", databaseUser);
config.setParam("DatabasePassword", databasePwd);
config.setParam("DatabaseURL", databaseURL);
config.setParam("DatabaseDriver", databaseDriver);
config.setGcubeScope(scope);
config.setParam("Layer", layer);
config.setParam("Z", "0");
config.setParam("TimeIndex", "0");
config.setParam("BBox_LowerLeftLat", ""+yll);
config.setParam("BBox_LowerLeftLong", ""+xll);
config.setParam("BBox_UpperRightLat", ""+yur);
config.setParam("BBox_UpperRightLong", ""+xur);
config.setParam("XResolution", ""+res);
config.setParam("YResolution", ""+res);
config.setParam("OutputTableName", table);
config.setParam("OutputTableLabel", table);
return config;
}
private static AlgorithmConfiguration TableExtractionConfig() {
AlgorithmConfiguration config = new AlgorithmConfiguration();
config.setConfigPath("./cfg/");
config.setPersistencePath("./");
config.setParam("DatabaseUserName", databaseUser);
config.setParam("DatabasePassword", databasePwd);
config.setParam("DatabaseURL", databaseURL);
config.setParam("DatabaseDriver", databaseDriver);
config.setGcubeScope(scope);
config.setParam("BBox_LowerLeftLat", ""+yll);
config.setParam("BBox_LowerLeftLong", ""+xll);
config.setParam("BBox_UpperRightLat", ""+xur);
config.setParam("BBox_UpperRightLong", ""+yur);
config.setParam("XResolution", ""+res);
config.setParam("YResolution", ""+res);
config.setParam("OutputTableName", table);
config.setParam("OutputTableLabel", table);
config.setParam(TableMatrixRepresentation.tableNameParameter, table);
config.setParam(TableMatrixRepresentation.xDimensionColumnParameter, "approx_x");
config.setParam(TableMatrixRepresentation.yDimensionColumnParameter, "approx_y");
config.setParam(TableMatrixRepresentation.timeDimensionColumnParameter, "time");
config.setParam(TableMatrixRepresentation.valueDimensionColumnParameter, field);
config.setParam(TableMatrixRepresentation.filterParameter, " ");
return config;
}
public static void main(String[] args) throws Exception{
// produce(XYExtractionConfig());
AnalysisLogger.setLogger("./cfg/"+AlgorithmConfiguration.defaultLoggerFile);
List<Tuple<Double>> tuples = VectorOperations.generateCoordinateTripletsInBoundingBox(xll,xur,yll,yur, 0, res, res);
Table connector = new Table(TableExtractionConfig(), res);
List<Double> values = connector.getFeaturesInTimeInstantAndArea(null, null, 0, tuples, xll,xur,yll,yur);
double[][] matrix = VectorOperations.vectorToMatix(values, xll,xur,yll,yur,res, res);
System.out.println(MapUtils.globalASCIIMap(matrix));
FileWriter fw = new FileWriter(new File(outASCIIMAP));
fw.write(MapUtils.globalASCIIMap(matrix));
fw.close();
AscRasterWriter writer = new AscRasterWriter();
writer.writeRasterInvertYAxis(outASCFile, matrix, xll,yll, res, "-9999");
}
public static void produce(AlgorithmConfiguration config) throws Exception {
System.out.println("TEST 1");
AnalysisLogger.getLogger().debug("Executing: "+config.getAgent());
List<ComputationalAgent> trans = null;
trans = TransducerersFactory.getTransducerers(config);
trans.get(0).init();
Regressor.process(trans.get(0));
StatisticalType st = trans.get(0).getOutput();
AnalysisLogger.getLogger().debug("ST:" + st);
trans = null;
}
}