use of org.vcell.util.document.ExternalDataIdentifier in project vcell by virtualcell.
the class FRAPStudy method getPSFFieldData.
public static FieldDataIdentifierSpec getPSFFieldData(LocalWorkspace localWorkspace) {
// create ROI image
short[] psfFieldData = null;
psfFieldData = new short[9];
psfFieldData[4] = (short) 1;
// create field data
int NumTimePoints = 1;
// 8 rois integrated into 1 image
int NumChannels = 1;
short[][][] pixData = new short[NumTimePoints][NumChannels][1];
pixData[0][0] = psfFieldData;
// get extental data id
ExternalDataIdentifier newPsfExtDataID = FRAPStudy.createNewExternalDataInfo(localWorkspace, FRAPStudy.PSF_DATA_NAME).getExternalDataIdentifier();
CartesianMesh cartesianMesh;
try {
Origin origin = new Origin(0, 0, 0);
Extent ext = new Extent(1, 1, 1);
ISize isize = new ISize(3, 3, 1);
cartesianMesh = CartesianMesh.createSimpleCartesianMesh(origin, ext, isize, new RegionImage(new VCImageUncompressed(null, new byte[isize.getXYZ()], ext, isize.getX(), isize.getY(), isize.getZ()), 0, null, null, RegionImage.NO_SMOOTHING));
FieldDataFileOperationSpec fdos = new FieldDataFileOperationSpec();
fdos.opType = FieldDataFileOperationSpec.FDOS_ADD;
fdos.cartesianMesh = cartesianMesh;
fdos.shortSpecData = pixData;
fdos.specEDI = newPsfExtDataID;
fdos.varNames = new String[] { "psfVar" };
fdos.owner = LocalWorkspace.getDefaultOwner();
fdos.times = new double[] { 0.0 };
fdos.variableTypes = new VariableType[] { VariableType.VOLUME };
fdos.origin = origin;
fdos.extent = ext;
fdos.isize = isize;
localWorkspace.getDataSetControllerImpl().fieldDataFileOperation(fdos);
FieldFunctionArguments psfFieldFunc = new FieldFunctionArguments(PSF_DATA_NAME, "psfVar", new Expression(0.0), VariableType.VOLUME);
FieldDataIdentifierSpec fdis = new FieldDataIdentifierSpec(psfFieldFunc, newPsfExtDataID);
return fdis;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
use of org.vcell.util.document.ExternalDataIdentifier in project vcell by virtualcell.
the class MicroscopyXmlReader method getExternalDataIdentifier.
/**
* Method getExternalDataIdentifier.
* @param externalDataIDElement Element
* @return ExternalDataIdentifier
*/
private static ExternalDataIdentifier getExternalDataIdentifier(Element externalDataIDElement) {
String name = externalDataIDElement.getAttributeValue(XMLTags.NameAttrTag);
String keyValueStr = externalDataIDElement.getAttributeValue(XMLTags.KeyValueAttrTag);
String ownerName = externalDataIDElement.getAttributeValue(MicroscopyXMLTags.OwnerNameAttrTag);
String ownerKey = externalDataIDElement.getAttributeValue(XMLTags.OwnerKeyAttrTag);
return new ExternalDataIdentifier(new KeyValue(keyValueStr), new User(ownerName, new KeyValue(ownerKey)), name);
}
use of org.vcell.util.document.ExternalDataIdentifier in project vcell by virtualcell.
the class DataSetControllerImpl method getFieldDataIdentifierSpecs_private.
private FieldDataIdentifierSpec[] getFieldDataIdentifierSpecs_private(FieldFunctionArguments[] fieldFuncArgumentsArr, User user, boolean bForceUpdate) throws DataAccessException {
Vector<ExternalDataIdentifier> userExtDataIdentifiersV = userExtDataIDH.get(user);
if (userExtDataIdentifiersV == null || userExtDataIdentifiersV.size() < fieldFuncArgumentsArr.length || bForceUpdate) {
// must refresh
ExternalDataIdentifierService extDataIDService = VCellServiceHelper.getInstance().loadService(ExternalDataIdentifierService.class);
userExtDataIDH = extDataIDService.getAllExternalDataIdentifiers();
userExtDataIdentifiersV = userExtDataIDH.get(user);
}
FieldDataIdentifierSpec[] fieldDataIdentifierSpecs = new FieldDataIdentifierSpec[fieldFuncArgumentsArr.length];
Arrays.fill(fieldDataIdentifierSpecs, null);
for (int i = 0; i < fieldFuncArgumentsArr.length; i++) {
for (int j = 0; userExtDataIdentifiersV != null && j < userExtDataIdentifiersV.size(); j++) {
if (fieldFuncArgumentsArr[i].getFieldName().equals(userExtDataIdentifiersV.elementAt(j).getName())) {
fieldDataIdentifierSpecs[i] = new FieldDataIdentifierSpec(fieldFuncArgumentsArr[i], userExtDataIdentifiersV.elementAt(j));
break;
}
}
if (fieldDataIdentifierSpecs[i] == null) {
throw new ObjectNotFoundException("The data locator for FieldData Function '" + fieldFuncArgumentsArr[i].getFieldName() + "' could not be found.");
}
}
return fieldDataIdentifierSpecs;
}
use of org.vcell.util.document.ExternalDataIdentifier in project vcell by virtualcell.
the class DataProcessingInstructions method getSampleImageFieldData.
public FieldDataIdentifierSpec getSampleImageFieldData(User user) {
if (scriptInput != null) {
int index = scriptInput.indexOf("SampleImage");
StringTokenizer st = new StringTokenizer(scriptInput.substring(index));
// SampleImage
st.nextToken();
// numRegions
st.nextToken();
if (getScriptName().equals(VFRAP)) {
// zSlice
st.nextToken();
}
// key
String key = st.nextToken();
index = scriptInput.indexOf(FieldFunctionDefinition.FUNCTION_name);
if (index >= 0) {
st = new StringTokenizer(scriptInput.substring(index), "\n");
if (st.hasMoreTokens()) {
String fieldFunction = st.nextToken();
try {
Expression exp = new Expression(fieldFunction);
FieldFunctionArguments[] ffa = FieldUtilities.getFieldFunctionArguments(exp);
return new FieldDataIdentifierSpec(ffa[0], new ExternalDataIdentifier(KeyValue.fromString(key), user, ffa[0].getFieldName()));
} catch (ExpressionException e) {
e.printStackTrace();
throw new RuntimeException(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("Failed to load data processing script.");
}
}
}
}
return null;
}
use of org.vcell.util.document.ExternalDataIdentifier in project vcell by virtualcell.
the class ROIDataGenerator method getSampleImageFieldData.
public FieldDataIdentifierSpec getSampleImageFieldData(User user) {
// key
String key = fieldDataKey.toString();
String fieldInput = fieldFuncArguments.infix();
StringTokenizer st = null;
int index = fieldInput.indexOf(FieldFunctionDefinition.FUNCTION_name);
if (index >= 0) {
st = new StringTokenizer(fieldInput.substring(index), "\n");
if (st.hasMoreTokens()) {
String fieldFunction = st.nextToken();
try {
Expression exp = new Expression(fieldFunction);
FieldFunctionArguments[] ffa = FieldUtilities.getFieldFunctionArguments(exp);
return new FieldDataIdentifierSpec(ffa[0], new ExternalDataIdentifier(KeyValue.fromString(key), user, ffa[0].getFieldName()));
} catch (ExpressionException e) {
e.printStackTrace();
throw new RuntimeException(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("Failed to load data processing script.");
}
}
}
return null;
}
Aggregations