/*- * Copyright 2016 Diamond Light Source Ltd. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package uk.ac.diamond.scisoft.analysis.processing.surfacescattering; import org.eclipse.dawnsci.analysis.dataset.slicer.SliceFromSeriesMetadata; import org.eclipse.january.DatasetException; import org.eclipse.january.dataset.IDataset; import org.eclipse.january.dataset.ILazyDataset; import uk.ac.diamond.scisoft.analysis.processing.operations.utils.ProcessingUtils; public class ScanMetadata { private static final String adc2 = "adc2"; private static final String qdcd_ = "qdcd_"; // public static SliceFromSeriesMetadata getSliceMetadata (IDataset input) { SliceFromSeriesMetadata ssm = input.getFirstMetadata(SliceFromSeriesMetadata.class); return ssm; } public static double getTheta(IDataset input) throws Exception { IDataset dcdtheta = null; try{ ILazyDataset dcdthetaL = ProcessingUtils.getLazyDataset(null, getSliceMetadata(input).getFilePath(), "dcdtheta"); dcdtheta = getSliceMetadata(input).getMatchingSlice(dcdthetaL); } catch (DatasetException e){ try { ILazyDataset dcdthetaL = ProcessingUtils.getLazyDataset(null, getSliceMetadata(input).getFilePath(), "sdcdtheta"); dcdtheta = getSliceMetadata(input).getMatchingSlice(dcdthetaL); } catch (DatasetException e2){ System.out.println("No theta parameter"); throw new Exception("No theta parameter"); } } double theta = (double) dcdtheta.getDouble(0); System.out.println("Scan Metadata theta: " + theta); return theta; } public IDataset getqdcd(IDataset input) { IDataset qdcdDataset = ProcessingUtils.getDataset(null, getSliceMetadata(input).getFilePath(), "qdcd"); return qdcdDataset; } public ILazyDataset getqdcdLazy (IDataset input){ ILazyDataset getqdcdLazy = ProcessingUtils.getLazyDataset(null, getSliceMetadata(input).getFilePath(), "qdcd"); return getqdcdLazy; } public IDataset adc2DataLazy (Polynomial1DReflectivityModel model) { IDataset adc2data = ProcessingUtils.getDataset(null, model.getPath(), adc2); return adc2data; } public IDataset qdcd_dataDataLazy (Polynomial1DReflectivityModel model) { IDataset qdcd_data = ProcessingUtils.getDataset(null, model.getPath(), qdcd_); return qdcd_data; } }