Search in sources :

Example 46 with Origin

use of org.vcell.util.Origin in project vcell by virtualcell.

the class MicroscopyXmlReader method getUShortImage.

/**
 * This method returns a VCIMage object from a XML representation.
 * Creation date: (3/16/2001 3:41:24 PM)
 * @param param org.jdom.Element
 * @return VCImage
 * @throws XmlParseException
 */
private UShortImage getUShortImage(Element param) throws XmlParseException {
    // get the attributes
    Element tempelement = param.getChild(XMLTags.ImageDataTag);
    int aNumX = Integer.parseInt(tempelement.getAttributeValue(XMLTags.XAttrTag));
    int aNumY = Integer.parseInt(tempelement.getAttributeValue(XMLTags.YAttrTag));
    int aNumZ = Integer.parseInt(tempelement.getAttributeValue(XMLTags.ZAttrTag));
    int compressSize = Integer.parseInt(tempelement.getAttributeValue(XMLTags.CompressedSizeTag));
    final int BYTES_PER_SHORT = 2;
    int UNCOMPRESSED_SIZE_BYTES = aNumX * aNumY * aNumZ * BYTES_PER_SHORT;
    // getpixels
    String hexEncodedBytes = tempelement.getText();
    byte[] rawBytes = org.vcell.util.Hex.toBytes(hexEncodedBytes);
    ByteArrayInputStream rawByteArrayInputStream = new ByteArrayInputStream(rawBytes);
    InputStream rawInputStream = rawByteArrayInputStream;
    if (compressSize != UNCOMPRESSED_SIZE_BYTES) {
        rawInputStream = new InflaterInputStream(rawByteArrayInputStream);
    }
    byte[] shortsAsBytes = new byte[UNCOMPRESSED_SIZE_BYTES];
    int readCount = 0;
    try {
        while ((readCount += rawInputStream.read(shortsAsBytes, readCount, shortsAsBytes.length - readCount)) != shortsAsBytes.length) {
        }
    } catch (Exception e) {
        e.printStackTrace();
        throw new XmlParseException("error reading image pixels: ", e);
    } finally {
        if (rawInputStream != null) {
            try {
                rawInputStream.close();
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
    }
    ByteBuffer byteBuffer = ByteBuffer.wrap(shortsAsBytes);
    short[] shortPixels = new short[aNumX * aNumY * aNumZ];
    for (int i = 0; i < shortPixels.length; i++) {
        shortPixels[i] = byteBuffer.getShort();
    }
    Element extentElement = param.getChild(XMLTags.ExtentTag);
    Extent extent = null;
    if (extentElement != null) {
        extent = vcellXMLReader.getExtent(extentElement);
    }
    Element originElement = param.getChild(XMLTags.OriginTag);
    Origin origin = null;
    if (originElement != null) {
        origin = vcellXMLReader.getOrigin(originElement);
    }
    // //set attributes
    // String name = this.unMangle( param.getAttributeValue(XMLTags.NameAttrTag) );
    // String annotation = param.getChildText(XMLTags.AnnotationTag);
    UShortImage newimage;
    try {
        newimage = new UShortImage(shortPixels, origin, extent, aNumX, aNumY, aNumZ);
    } catch (ImageException e) {
        e.printStackTrace();
        throw new XmlParseException("error reading image", e);
    }
    return newimage;
}
Also used : Origin(org.vcell.util.Origin) ImageException(cbit.image.ImageException) Extent(org.vcell.util.Extent) InflaterInputStream(java.util.zip.InflaterInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) InflaterInputStream(java.util.zip.InflaterInputStream) ProfileDataElement(org.vcell.optimization.ProfileDataElement) Element(org.jdom.Element) UShortImage(cbit.vcell.VirtualMicroscopy.UShortImage) XmlParseException(cbit.vcell.xml.XmlParseException) ByteBuffer(java.nio.ByteBuffer) XmlParseException(cbit.vcell.xml.XmlParseException) ImageException(cbit.image.ImageException) ByteArrayInputStream(java.io.ByteArrayInputStream)

Example 47 with Origin

use of org.vcell.util.Origin in project vcell by virtualcell.

the class FrapDataUtils method saveROIsAsExternalData.

public static void saveROIsAsExternalData(FRAPData frapData, LocalWorkspace localWorkspace, ExternalDataIdentifier newROIExtDataID, int startingIndexForRecovery, CartesianMesh cartesianMesh) throws ObjectNotFoundException, FileNotFoundException {
    ImageDataset imageDataset = frapData.getImageDataset();
    Extent extent = imageDataset.getExtent();
    ISize isize = imageDataset.getISize();
    int NumTimePoints = 1;
    // actually it is total number of ROIs(cell,bleached + 8 rings)+prebleach+firstPostBleach+lastPostBleach
    int NumChannels = 13;
    // dimensions: time points, channels, whole image ordered by z slices.
    double[][][] pixData = new double[NumTimePoints][NumChannels][];
    double[] temp_background = frapData.getAvgBackGroundIntensity();
    double[] avgPrebleachDouble = calculatePreBleachAverageXYZ(frapData, startingIndexForRecovery);
    // average of prebleach with background subtracted
    pixData[0][0] = avgPrebleachDouble;
    // first post-bleach with background subtracted
    pixData[0][1] = createDoubleArray(imageDataset.getPixelsZ(0, startingIndexForRecovery), temp_background[startingIndexForRecovery], true);
    // adjustPrebleachAndPostbleachData(avgPrebleachDouble, pixData[0][1]);
    // last post-bleach image (at last time point) with background subtracted
    pixData[0][2] = createDoubleArray(imageDataset.getPixelsZ(0, imageDataset.getSizeT() - 1), temp_background[imageDataset.getSizeT() - 1], true);
    // below are ROIs, we don't need to subtract background for them.
    pixData[0][3] = createDoubleArray(frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BLEACHED.name()).getBinaryPixelsXYZ(1), 0, false);
    pixData[0][4] = createDoubleArray(frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_CELL.name()).getBinaryPixelsXYZ(1), 0, false);
    if (frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BLEACHED_RING1.name()) == null) {
        // throw new RuntimeException("must first generate \"derived masks\"");
        pixData[0][5] = new double[imageDataset.getISize().getXYZ()];
        pixData[0][6] = new double[imageDataset.getISize().getXYZ()];
        pixData[0][7] = new double[imageDataset.getISize().getXYZ()];
        pixData[0][8] = new double[imageDataset.getISize().getXYZ()];
        pixData[0][9] = new double[imageDataset.getISize().getXYZ()];
        pixData[0][10] = new double[imageDataset.getISize().getXYZ()];
        pixData[0][11] = new double[imageDataset.getISize().getXYZ()];
        pixData[0][12] = new double[imageDataset.getISize().getXYZ()];
    } else {
        pixData[0][5] = createDoubleArray(frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BLEACHED_RING1.name()).getBinaryPixelsXYZ(1), 0, false);
        pixData[0][6] = createDoubleArray(frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BLEACHED_RING2.name()).getBinaryPixelsXYZ(1), 0, false);
        pixData[0][7] = createDoubleArray(frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BLEACHED_RING3.name()).getBinaryPixelsXYZ(1), 0, false);
        pixData[0][8] = createDoubleArray(frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BLEACHED_RING4.name()).getBinaryPixelsXYZ(1), 0, false);
        pixData[0][9] = createDoubleArray(frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BLEACHED_RING5.name()).getBinaryPixelsXYZ(1), 0, false);
        pixData[0][10] = createDoubleArray(frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BLEACHED_RING6.name()).getBinaryPixelsXYZ(1), 0, false);
        pixData[0][11] = createDoubleArray(frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BLEACHED_RING7.name()).getBinaryPixelsXYZ(1), 0, false);
        pixData[0][12] = createDoubleArray(frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BLEACHED_RING8.name()).getBinaryPixelsXYZ(1), 0, false);
    }
    Origin origin = new Origin(0, 0, 0);
    FieldDataFileOperationSpec fdos = new FieldDataFileOperationSpec();
    fdos.opType = FieldDataFileOperationSpec.FDOS_ADD;
    fdos.cartesianMesh = cartesianMesh;
    fdos.doubleSpecData = pixData;
    fdos.specEDI = newROIExtDataID;
    fdos.varNames = new String[] { "prebleach_avg", "postbleach_first", "postbleach_last", "bleached_mask", "cell_mask", "ring1_mask", "ring2_mask", "ring3_mask", "ring4_mask", "ring5_mask", "ring6_mask", "ring7_mask", "ring8_mask" };
    fdos.owner = LocalWorkspace.getDefaultOwner();
    fdos.times = new double[] { 0.0 };
    fdos.variableTypes = new VariableType[] { VariableType.VOLUME, VariableType.VOLUME, VariableType.VOLUME, VariableType.VOLUME, VariableType.VOLUME, VariableType.VOLUME, VariableType.VOLUME, VariableType.VOLUME, VariableType.VOLUME, VariableType.VOLUME, VariableType.VOLUME, VariableType.VOLUME, VariableType.VOLUME };
    fdos.origin = origin;
    fdos.extent = extent;
    fdos.isize = isize;
    localWorkspace.getDataSetControllerImpl().fieldDataFileOperation(fdos);
}
Also used : Origin(org.vcell.util.Origin) ImageDataset(cbit.vcell.VirtualMicroscopy.ImageDataset) Extent(org.vcell.util.Extent) ISize(org.vcell.util.ISize) FieldDataFileOperationSpec(cbit.vcell.field.io.FieldDataFileOperationSpec)

Example 48 with Origin

use of org.vcell.util.Origin in project vcell by virtualcell.

the class DataSetControllerImpl method iterateHDF5.

private static void iterateHDF5(HObject hObject, String indent, DataProcessingHelper dataProcessingHelper) throws Exception {
    if (hObject instanceof Group) {
        Group group = ((Group) hObject);
        printInfo(group, indent);
        if (group.getName().equals("/") || group.getName().equals(SimDataConstants.DATA_PROCESSING_OUTPUT_EXTENSION_POSTPROCESSING)) {
            List<HObject> postProcessMembers = ((Group) hObject).getMemberList();
            for (HObject nextHObject : postProcessMembers) {
                iterateHDF5(nextHObject, indent + " ", dataProcessingHelper);
            }
        } else if (group.getName().equals(SimDataConstants.DATA_PROCESSING_OUTPUT_EXTENSION_VARIABLESTATISTICS) && dataProcessingHelper.isInfoOnly()) {
            populateStatNamesAndUnits(hObject, dataProcessingHelper);
            List<HObject> statDataAtEachTime = group.getMemberList();
            dataProcessingHelper.statValues = new double[dataProcessingHelper.statVarNames.length][statDataAtEachTime.size()];
            for (HObject nextStatData : statDataAtEachTime) {
                printInfo(nextStatData, indent + " ");
                // always get stats data when ask for info
                processDims(nextStatData, dataProcessingHelper, false);
                double[] stats = (double[]) dataProcessingHelper.tempData;
                int timeIndex = Integer.parseInt(nextStatData.getName().substring("time".length()));
                for (int j = 0; j < stats.length; j++) {
                    dataProcessingHelper.statValues[j][timeIndex] = stats[j];
                }
            }
        } else {
            // must be image data
            if (dataProcessingHelper.isInfoOnly()) {
                dataProcessingHelper.imageNames = new ArrayList<String>();
                dataProcessingHelper.imageISize = new ArrayList<ISize>();
                dataProcessingHelper.imageOrigin = new ArrayList<Origin>();
                dataProcessingHelper.imageExtent = new ArrayList<Extent>();
                Origin imgDataOrigin;
                Extent imgDataExtent;
                HashMap<String, String> attrHashMap = getHDF5Attributes(group);
                if (attrHashMap.size() == 2) {
                    imgDataOrigin = new Origin(Double.valueOf(attrHashMap.get(DATA_PROCESSING_OUTPUT_ORIGINX)), 0, 0);
                    // this is 1D, however the extentY, Z cannot take 0
                    imgDataExtent = new Extent(Double.valueOf(attrHashMap.get(DATA_PROCESSING_OUTPUT_EXTENTX)), 1, 1);
                } else if (attrHashMap.size() == 4) {
                    imgDataOrigin = new Origin(Double.valueOf(attrHashMap.get(DATA_PROCESSING_OUTPUT_ORIGINX)), Double.valueOf(attrHashMap.get(DATA_PROCESSING_OUTPUT_ORIGINY)), 0);
                    // this is 2D, however the extentZ cannot take 0
                    imgDataExtent = new Extent(Double.valueOf(attrHashMap.get(DATA_PROCESSING_OUTPUT_EXTENTX)), Double.valueOf(attrHashMap.get(DATA_PROCESSING_OUTPUT_EXTENTY)), 1);
                } else if (attrHashMap.size() == 6) {
                    imgDataOrigin = new Origin(Double.valueOf(attrHashMap.get(DATA_PROCESSING_OUTPUT_ORIGINX)), Double.valueOf(attrHashMap.get(DATA_PROCESSING_OUTPUT_ORIGINY)), Double.valueOf(attrHashMap.get(DATA_PROCESSING_OUTPUT_ORIGINZ)));
                    imgDataExtent = new Extent(Double.valueOf(attrHashMap.get(DATA_PROCESSING_OUTPUT_EXTENTX)), Double.valueOf(attrHashMap.get(DATA_PROCESSING_OUTPUT_EXTENTY)), Double.valueOf(attrHashMap.get(DATA_PROCESSING_OUTPUT_EXTENTZ)));
                } else {
                    throw new Exception("Unexpected number of origin/extent values");
                }
                dataProcessingHelper.imageNames.add(hObject.getName());
                dataProcessingHelper.imageOrigin.add(imgDataOrigin);
                dataProcessingHelper.imageExtent.add(imgDataExtent);
                // get ISize
                processDims((H5ScalarDS) (((Group) hObject).getMemberList()).get(0), dataProcessingHelper, true);
                long[] dims = dataProcessingHelper.tempDims;
                ISize isize = new ISize((int) dims[0], (int) (dims.length > 1 ? dims[1] : 1), (int) (dims.length > 2 ? dims[2] : 1));
                dataProcessingHelper.imageISize.add(isize);
            } else {
                int currentVarNameIndex = -1;
                for (int i = 0; i < dataProcessingHelper.specificVarNames.length; i++) {
                    if (group.getName().equals(dataProcessingHelper.specificVarNames[i])) {
                        currentVarNameIndex = i;
                        break;
                    }
                }
                if (currentVarNameIndex == -1) {
                    // skip this group
                    return;
                }
                dataProcessingHelper.specificDataValues[currentVarNameIndex] = new double[(dataProcessingHelper.specificTimePointHelper.isAllTimePoints() ? dataProcessingHelper.times.length : dataProcessingHelper.specificTimePointHelper.getTimePoints().length)][];
                List<HObject> imageDataAtEachTime = ((Group) hObject).getMemberList();
                int foundTimePointIndex = 0;
                for (HObject nextImageData : imageDataAtEachTime) {
                    // if(dataProcessingHelper.isInfoOnly()){
                    // printInfo(nextImageData,indent+" ");
                    // processDims(nextImageData, dataProcessingHelper,true);
                    // long[] dims = dataProcessingHelper.tempDims;
                    // ISize isize = new ISize((int)dims[0], (int)(dims.length>1?dims[1]:1), (int)(dims.length>2?dims[2]:1));
                    // dataProcessingHelper.imageISize.add(isize);
                    // break;//only need 1st one for info
                    // }else{
                    int hdf5GroupTimeIndex = Integer.parseInt(nextImageData.getName().substring(SimDataConstants.DATA_PROCESSING_OUTPUT_EXTENSION_TIMEPREFIX.length()));
                    if (dataProcessingHelper.specificTimePointHelper.isAllTimePoints() || dataProcessingHelper.specificTimePointHelper.getTimePoints()[foundTimePointIndex] == dataProcessingHelper.times[hdf5GroupTimeIndex]) {
                        int timeIndex = (dataProcessingHelper.specificTimePointHelper.isAllTimePoints() ? hdf5GroupTimeIndex : foundTimePointIndex);
                        processDims(nextImageData, dataProcessingHelper, false);
                        long[] dims = dataProcessingHelper.tempDims;
                        ISize isize = new ISize((int) dims[0], (int) (dims.length > 1 ? dims[1] : 1), (int) (dims.length > 2 ? dims[2] : 1));
                        if (dataProcessingHelper.specificDataIndexHelper.isAllDataIndexes()) {
                            dataProcessingHelper.specificDataValues[currentVarNameIndex][timeIndex] = (double[]) dataProcessingHelper.tempData;
                        } else if (dataProcessingHelper.specificDataIndexHelper.isSingleSlice()) {
                            dataProcessingHelper.specificDataValues[currentVarNameIndex][timeIndex] = new double[isize.getX() * isize.getY()];
                            System.arraycopy((double[]) dataProcessingHelper.tempData, dataProcessingHelper.specificDataIndexHelper.getSliceIndex() * (isize.getX() * isize.getY()), dataProcessingHelper.specificDataValues[currentVarNameIndex][timeIndex], 0, isize.getX() * isize.getY());
                        } else {
                            dataProcessingHelper.specificDataValues[currentVarNameIndex][timeIndex] = new double[dataProcessingHelper.specificDataIndexHelper.getDataIndexes().length];
                            for (int i = 0; i < dataProcessingHelper.specificDataIndexHelper.getDataIndexes().length; i++) {
                                dataProcessingHelper.specificDataValues[currentVarNameIndex][timeIndex][i] = ((double[]) dataProcessingHelper.tempData)[dataProcessingHelper.specificDataIndexHelper.getDataIndexes()[i]];
                            }
                        }
                        foundTimePointIndex++;
                        if (!dataProcessingHelper.specificTimePointHelper.isAllTimePoints() && foundTimePointIndex == dataProcessingHelper.specificTimePointHelper.getTimePoints().length) {
                            // break out after we get our data
                            break;
                        }
                    }
                // }
                }
            }
        }
    } else if (hObject instanceof Dataset) {
        Dataset dataset = (Dataset) hObject;
        printInfo(dataset, indent);
        if (dataset.getName().equals(SimDataConstants.DATA_PROCESSING_OUTPUT_EXTENSION_TIMES)) {
            processDims(hObject, dataProcessingHelper, false);
            dataProcessingHelper.times = (double[]) dataProcessingHelper.tempData;
        }
    } else if (hObject instanceof Datatype) {
        printInfo(hObject, indent);
    } else {
        printInfo(hObject, indent);
    }
}
Also used : Origin(org.vcell.util.Origin) Group(ncsa.hdf.object.Group) HObject(ncsa.hdf.object.HObject) Extent(org.vcell.util.Extent) HashMap(java.util.HashMap) ISize(org.vcell.util.ISize) Dataset(ncsa.hdf.object.Dataset) ArrayList(java.util.ArrayList) H5ScalarDS(ncsa.hdf.object.h5.H5ScalarDS) ObjectNotFoundException(org.vcell.util.ObjectNotFoundException) XmlParseException(cbit.vcell.xml.XmlParseException) IOException(java.io.IOException) DataAccessException(org.vcell.util.DataAccessException) DivideByZeroException(cbit.vcell.parser.DivideByZeroException) CacheException(org.vcell.util.CacheException) ExpressionBindingException(cbit.vcell.parser.ExpressionBindingException) FileNotFoundException(java.io.FileNotFoundException) ExpressionException(cbit.vcell.parser.ExpressionException) MathException(cbit.vcell.math.MathException) Datatype(ncsa.hdf.object.Datatype) ArrayList(java.util.ArrayList) List(java.util.List)

Example 49 with Origin

use of org.vcell.util.Origin in project vcell by virtualcell.

the class SimulationData method createPostProcessingMesh.

private CartesianMesh createPostProcessingMesh(String varName, OutputContext outputContext) throws DataAccessException {
    try {
        refreshDataProcessingOutputInfo(outputContext);
        // create mesh here because we know the variablename
        ISize varISize = dataProcessingOutputInfo.getVariableISize(varName);
        Extent varExtent = dataProcessingOutputInfo.getVariableExtent(varName);
        Origin varOrigin = dataProcessingOutputInfo.getVariableOrigin(varName);
        VCImage vcImage = new VCImageUncompressed(null, new byte[varISize.getXYZ()], varExtent, varISize.getX(), varISize.getY(), varISize.getZ());
        RegionImage regionImage = new RegionImage(vcImage, 1 + (varISize.getY() > 0 ? 1 : 0) + (varISize.getZ() > 0 ? 1 : 0), varExtent, varOrigin, RegionImage.NO_SMOOTHING);
        return CartesianMesh.createSimpleCartesianMesh(dataProcessingOutputInfo.getVariableOrigin(varName), varExtent, varISize, regionImage);
    } catch (DataAccessException dae) {
        throw dae;
    } catch (Exception e) {
        throw new DataAccessException(e.getMessage(), (e.getCause() == null ? e : e.getCause()));
    }
}
Also used : Origin(org.vcell.util.Origin) Extent(org.vcell.util.Extent) ISize(org.vcell.util.ISize) RegionImage(cbit.vcell.geometry.RegionImage) VCImage(cbit.image.VCImage) VCImageUncompressed(cbit.image.VCImageUncompressed) DataAccessException(org.vcell.util.DataAccessException) FileNotFoundException(java.io.FileNotFoundException) XmlParseException(cbit.vcell.xml.XmlParseException) IOException(java.io.IOException) DataAccessException(org.vcell.util.DataAccessException) ExpressionException(cbit.vcell.parser.ExpressionException) MathException(cbit.vcell.math.MathException)

Example 50 with Origin

use of org.vcell.util.Origin in project vcell by virtualcell.

the class FrapDataUtils method saveImageDatasetAsExternalData.

public static void saveImageDatasetAsExternalData(FRAPData frapData, LocalWorkspace localWorkspace, ExternalDataIdentifier newImageExtDataID, int startingIndexForRecovery, CartesianMesh cartesianMesh) throws ObjectNotFoundException, FileNotFoundException {
    ImageDataset imageDataset = frapData.getImageDataset();
    if (imageDataset.getSizeC() > 1) {
        throw new RuntimeException("FRAPData.saveImageDatasetAsExternalData(): multiple channels not yet supported");
    }
    Extent extent = imageDataset.getExtent();
    ISize isize = imageDataset.getISize();
    // not include the prebleach
    int numImageToStore = imageDataset.getSizeT() - startingIndexForRecovery;
    // original fluor data and back ground average
    double[][][] pixData = new double[numImageToStore][2][];
    double[] timesArray = new double[numImageToStore];
    double[] bgAvg = frapData.getAvgBackGroundIntensity();
    for (int tIndex = startingIndexForRecovery; tIndex < imageDataset.getSizeT(); tIndex++) {
        // images according to zIndex at specific time points(tIndex)
        short[] originalData = imageDataset.getPixelsZ(0, tIndex);
        double[] doubleData = new double[originalData.length];
        double[] expandBgAvg = new double[originalData.length];
        for (int i = 0; i < originalData.length; i++) {
            doubleData[i] = 0x0000ffff & originalData[i];
            expandBgAvg[i] = bgAvg[tIndex];
        }
        pixData[tIndex - startingIndexForRecovery][0] = doubleData;
        pixData[tIndex - startingIndexForRecovery][1] = expandBgAvg;
        timesArray[tIndex - startingIndexForRecovery] = imageDataset.getImageTimeStamps()[tIndex] - imageDataset.getImageTimeStamps()[startingIndexForRecovery];
    }
    // changed in March 2008. Though biomodel is not created, we still let user save to xml file.
    Origin origin = new Origin(0, 0, 0);
    FieldDataFileOperationSpec fdos = new FieldDataFileOperationSpec();
    fdos.opType = FieldDataFileOperationSpec.FDOS_ADD;
    fdos.cartesianMesh = cartesianMesh;
    fdos.doubleSpecData = pixData;
    fdos.specEDI = newImageExtDataID;
    fdos.varNames = new String[] { SimulationContext.FLUOR_DATA_NAME, "bg_average" };
    fdos.owner = LocalWorkspace.getDefaultOwner();
    fdos.times = timesArray;
    fdos.variableTypes = new VariableType[] { VariableType.VOLUME, VariableType.VOLUME };
    fdos.origin = origin;
    fdos.extent = extent;
    fdos.isize = isize;
    localWorkspace.getDataSetControllerImpl().fieldDataFileOperation(fdos);
}
Also used : Origin(org.vcell.util.Origin) ImageDataset(cbit.vcell.VirtualMicroscopy.ImageDataset) Extent(org.vcell.util.Extent) ISize(org.vcell.util.ISize) FieldDataFileOperationSpec(cbit.vcell.field.io.FieldDataFileOperationSpec)

Aggregations

Origin (org.vcell.util.Origin)64 Extent (org.vcell.util.Extent)58 ISize (org.vcell.util.ISize)45 CartesianMesh (cbit.vcell.solvers.CartesianMesh)18 VCImageUncompressed (cbit.image.VCImageUncompressed)17 FieldDataFileOperationSpec (cbit.vcell.field.io.FieldDataFileOperationSpec)17 ImageException (cbit.image.ImageException)14 RegionImage (cbit.vcell.geometry.RegionImage)14 VCImage (cbit.image.VCImage)13 ArrayList (java.util.ArrayList)13 Expression (cbit.vcell.parser.Expression)12 IOException (java.io.IOException)12 SubVolume (cbit.vcell.geometry.SubVolume)11 File (java.io.File)11 UShortImage (cbit.vcell.VirtualMicroscopy.UShortImage)10 Geometry (cbit.vcell.geometry.Geometry)9 ExternalDataIdentifier (org.vcell.util.document.ExternalDataIdentifier)8 ImageDataset (cbit.vcell.VirtualMicroscopy.ImageDataset)7 BioModel (cbit.vcell.biomodel.BioModel)7 AnalyticSubVolume (cbit.vcell.geometry.AnalyticSubVolume)7