当前位置: 首页>>代码示例>>Java>>正文


Java IDataset.getMetadata方法代码示例

本文整理汇总了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);
	}
}
 
开发者ID:eclipse,项目名称:dawnsci,代码行数:32,代码来源:AbstractNexusValidator.java

示例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;
	}
 
开发者ID:eclipse,项目名称:dawnsci,代码行数:34,代码来源:MockImageStackLoader.java

示例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();
	}
}
 
开发者ID:eclipse,项目名称:dawnsci,代码行数:23,代码来源:AbstractOperationBase.java

示例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;
}
 
开发者ID:eclipse,项目名称:dawnsci,代码行数:60,代码来源:AbstractOperation.java

示例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);
		
	}
}
 
开发者ID:eclipse,项目名称:dawnsci,代码行数:52,代码来源:AbstractOperation.java


注:本文中的org.eclipse.january.dataset.IDataset.getMetadata方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。