package uk.ac.diamond.scisoft.analysis.peakfinding.peakfinders;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.eclipse.january.dataset.Dataset;
import org.eclipse.january.dataset.DatasetFactory;
/**
*
* Example sample data produced from x-ray diffraction
*
*/
public class ExamplePeakData {
private String rawDataPath = "src/uk/ac/diamond/scisoft/analysis/peakfinding/peakfinders/exampleDetrendingQuasiPeriodicData.xy";
//TODO: correct the results
private String resultsDataPath = "src/uk/ac/diamond/scisoft/analysis/peakfinding/peakfinders/exampleDetrendingQuasiPeriodicDataPeaks";
private Dataset xData = null;
private Dataset yData = null;
public Dataset getxData() {
return xData;
}
public Dataset getyData() {
return yData;
}
public ExamplePeakData(){
extractData(rawDataPath);
}
public void extractData(String data){
List<Double> xraw = new ArrayList<Double>();
List<Double> yraw = new ArrayList<Double>();
try {
for (String line : Files.readAllLines(Paths.get(data))) {
String[] xy = line.split("\\s+");
Double x = Double.parseDouble(xy[0]);
Double y = Double.parseDouble(xy[1]);
xraw.add(x);
yraw.add(y);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
xData = DatasetFactory.createFromList(xraw);
yData = DatasetFactory.createFromList(yraw);
}
//Example Expectance
public List<Double> expectedPeakValues() {
List<Double> peaks = new ArrayList<Double>();
try {
for (String line : Files.readAllLines(Paths.get(resultsDataPath))) {
peaks.add(Double.parseDouble(line));
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return peaks;
}
}