本文整理汇总了Java中org.eclipse.january.dataset.IDataset.getMetadata方法的典型用法代码示例。如果您正苦于以下问题:Java IDataset.getMetadata方法的具体用法?Java IDataset.getMetadata怎么用?Java IDataset.getMetadata使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.eclipse.january.dataset.IDataset
的用法示例。
在下文中一共展示了IDataset.getMetadata方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: validateFieldUnits
import org.eclipse.january.dataset.IDataset; //导入方法依赖的package包/类
/**
* Validates that the given field has units consistent with the given unit category.
*
* @param fieldName field name
* @param dataset field value, an {@link IDataset}
* @param unitCategory expected unit category
* @throws Exception if an unexpected exception occurs
* @throws NexusValidationException if the field's units are not consistent with the given unit category
*/
protected void validateFieldUnits(final String fieldName, final IDataset dataset,
final NexusUnitCategory unitCategory) throws NexusValidationException {
List<? extends MetadataType> metadata;
try {
metadata = dataset.getMetadata(UnitMetadata.class);
} catch (Exception e) {
throw new NexusValidationException("Could not get unit metadata for field '" + fieldName + "'", e);
}
// TODO why does getMetadata return a list? Can I assume I'm only interested in the first element?
if (metadata == null || metadata.isEmpty() || !metadata.get(0).getClass().equals(UnitMetadata.class)) {
failValidation("No unit metadata for field '" + fieldName + "', expected " + unitCategory);
}
if (metadata.size() > 1) {
failValidation("Multiple unit metadata items found for field '" + fieldName + "'");
}
Unit<?> unit = ((UnitMetadata) metadata.get(0)).getUnit();
if (!unitCategory.isCompatible(unit)) {
failValidation("Unit " + unit + " is not compatible with the unit category " + unitCategory);
}
}
示例2: loadDataset
import org.eclipse.january.dataset.IDataset; //导入方法依赖的package包/类
private IDataset loadDataset(String filename, IMonitor mon) throws IOException {
IDataHolder data = null;
// if (loaderClass != null) {
// try {
// data = ServiceHolder.getLoaderService().getData(loaderClass, filename, true, mon);
// } catch (Exception e) {
// // do nothing and try with all registered loaders
// }
// }
if (data == null) {
try {
data = ServiceHolder.getLoaderService().getData(filename, mon);
} catch (Exception e) {
throw new IOException("Cannot load image in image stack", e);
}
if (data == null) {
throw new IOException("Cannot load image in image stack");
}
}
if (loaderClass == null) {
loaderClass = data.getLoaderClass();
}
IDataset dataset = data.getDataset(0);
IMetadata metadata = dataset.getMetadata();
if (metadata == null)
metadata = new Metadata();
((Metadata)metadata).setFilePath(filename);
dataset.setMetadata(metadata);
dataset.setName(filename);
return dataset;
}
示例3: copyMetadata
import org.eclipse.january.dataset.IDataset; //导入方法依赖的package包/类
/**
* Convenience method to copy the metadata from one dataset to another.
* Use if a process doesnt change the shape of the data to maintain axes, masks etc
*
* @param original
* @param out
* @param copyAxesMetadata flag to determine whether the AxesMetadata should be copied too
*/
public static void copyMetadata(IDataset original, IDataset out, boolean copyAxesMetadata) {
try {
List<MetadataType> metadata = original.getMetadata(null);
for (MetadataType m : metadata) {
if (m instanceof ErrorMetadata) continue;
if (!copyAxesMetadata && m instanceof AxesMetadata) continue;
out.setMetadata(m);
}
} catch (Exception e) {
e.printStackTrace();
}
}
示例4: updateOutputToFullRank
import org.eclipse.january.dataset.IDataset; //导入方法依赖的package包/类
/**
* Pads the output dataset (and axes) to the match the rank of the input dataset, accounting for any loss of dimensionality
* in the process. Suitable only for 2D and 1D datasets
*
* @param output
* @param original
* @return <D>
* @throws OperationException
*/
private D updateOutputToFullRank(OperationData output, IDataset original) throws OperationException {
int outr = output.getData().getRank();
int inr = original.getRank();
//Check ranks acceptable for this step
if (getOutputRank().equals(OperationRank.ZERO) || getOutputRank().equals(OperationRank.NONE) || getOutputRank().getRank() > 2)
throw new OperationException(null, "Invalid Operation Rank!");
int rankDif = 0;
if (!getOutputRank().equals(OperationRank.SAME)) {
// TODO: a case that is currently not covered is ANY -> ANY... e.g. a sum operation that can deal with any rank will return that rank minus one
if (getInputRank().equals(OperationRank.ANY) && getOutputRank().equals(OperationRank.ANY)) {
throw new OperationException(this, "Both Operation Rangs set to ANY is currently not supported");
} else if (getInputRank().equals(OperationRank.ANY)) {
rankDif = ShapeUtils.squeezeShape(original.getShape(), false).length - getOutputRank().getRank();
} else {
rankDif = getInputRank().getRank() - getOutputRank().getRank();
}
}
//Single image/line case, nothing to alter
if (inr == outr) return (D)output;
List<AxesMetadata> metadata = null;
try {
metadata = original.getMetadata(AxesMetadata.class);
} catch (Exception e) {
throw new OperationException(this, e);
}
//Clone and sort dimensions for searching
int[] datadims = getOriginalDataDimensions(original).clone();
int[] oddims = datadims.clone();
Arrays.sort(datadims);
Arrays.sort(oddims);
if (datadims.length > outr) {
datadims = new int[]{datadims[0]};
}
//Update rank of dataset (will automatically update rank of axes)
updateOutputDataShape(output.getData(), inr-rankDif, datadims, rankDif);
updateAxes(output.getData(),original,metadata,rankDif, datadims, oddims);
updateAuxData(output.getAuxData(), original);
return (D)output;
}
示例5: updateAuxData
import org.eclipse.january.dataset.IDataset; //导入方法依赖的package包/类
/**
* Updates the auxiliary data (of shape [1]) to correct rank and adds all axes of rank zero (when squeezed)
* @param auxData
* @param original
*/
private void updateAuxData(Serializable[] auxData, IDataset original){
if (auxData == null || auxData.length == 0 || auxData[0] == null) return;
List<AxesMetadata> metadata = null;
try {
metadata = original.getMetadata(AxesMetadata.class);
} catch (Exception e) {
throw new OperationException(this, e);
}
for (int i = 0; i < auxData.length; i++) {
if (!(auxData[i] instanceof IDataset)) {
continue;
}
IDataset ds = (IDataset)auxData[i];
int outr = ds.getRank();
int inr = original.getRank();
int rankDif = 0;
if (!getOutputRank().equals(OperationRank.SAME)) {
if (getInputRank().equals(OperationRank.ANY)) {
rankDif = ShapeUtils.squeezeShape(original.getShape(), false).length - outr;
} else {
rankDif = getInputRank().getRank() - outr;
}
}
int[] datadims = getOriginalDataDimensions(original).clone();
int[] oddims = datadims.clone();
if (datadims.length > outr) {
datadims = new int[]{datadims[0]};
}
Arrays.sort(datadims);
Arrays.sort(oddims);
updateOutputDataShape(ds, inr-rankDif, datadims, rankDif);
updateAxes(ds,original,metadata,rankDif, datadims, oddims);
}
}