54 lines
1.6 KiB
Java
54 lines
1.6 KiB
Java
|
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<zcounter;i++){
|
||
|
dsignal[i] = signal[i];
|
||
|
i++;
|
||
|
}
|
||
|
|
||
|
return dsignal;
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|