package org.gcube.dataanalysis.geo.matrixmodel; import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger; import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; import org.gcube.dataanalysis.geo.interfaces.GISDataConnector; public class ZExtractor extends MatrixExtractor{ public ZExtractor(AlgorithmConfiguration configuration) { super(configuration); } public double[] extractZ(String layerTitle, double x, double y, int timeIndex, double resolution) throws Exception { double[] signal = new double[maxzLength]; GISDataConnector connector = getConnector(layerTitle); double z0 = connector.getMinZ(layerURL, layerName); double z1 = connector.getMaxZ(layerURL, layerName); AnalysisLogger.getLogger().debug("ZExtractor: minimum Z "+z0+" maximum Z:"+z1+" step: "+resolution); int zcounter=0; if (resolution==0) resolution=1; for (double z=z0;z<=z1;z=z+resolution){ try { if (z%100==0) AnalysisLogger.getLogger().debug("Matrix Extractor-> Extracting Z value " + z); double[][] values = extractXYGridWithFixedTZ(layerTitle, timeIndex, x, x, y, y, z, resolution, resolution, true); signal[zcounter]=values[0][0]; zcounter++; } catch (Exception e) { AnalysisLogger.getLogger().debug("Matrix Extractor-> No More Time Intervals!"); break; } } AnalysisLogger.getLogger().debug("Matrix Extractor-> Signal Length:"+zcounter); double[] dsignal = new double[zcounter]; for (int i=0;i