Changeset 4893


Ignore:
Timestamp:
03/05/09 12:10:17 (11 years ago)
Author:
melissa
Message:

Fixed Plane.DeltaT population for Leica LIF.

Location:
trunk/components/bio-formats/src/loci/formats/in
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/components/bio-formats/src/loci/formats/in/LIFReader.java

    r4787 r4893  
    326326    Vector stageY = handler.getYPosition(); 
    327327    Vector stageZ = handler.getZPosition(); 
     328    Hashtable timestamps = handler.getTimestamps(); 
    328329 
    329330    numDatasets = widths.size(); 
     
    426427      } 
    427428    } 
    428     MetadataTools.populatePixels(store, this, false); 
     429    MetadataTools.populatePixels(store, this, true); 
    429430 
    430431    store.setInstrumentID("Instrument:0", 0); 
     
    433434 
    434435    for (int i=0; i<numDatasets; i++) { 
     436      setSeries(i); 
    435437      // populate Dimensions data 
    436438      Float xf = i < xcal.size() ? (Float) xcal.get(i) : null; 
     
    451453      MetadataTools.setDefaultCreationDate(store, getCurrentFile(), i); 
    452454 
     455      // populate Plane data 
     456 
     457      boolean timestampPerPlane = timestamps.get("Series " + i + " Plane " + 
     458        (getImageCount() - 1)) != null; 
     459 
     460      for (int plane=0; plane<getImageCount(); plane++) { 
     461        int[] coords = getZCTCoords(plane); 
     462        int index = -1; 
     463        if (timestampPerPlane) index = plane; 
     464        else if (coords[0] == 0 && coords[1] == 0) { 
     465          index = coords[2]; 
     466        } 
     467 
     468        Float timestamp = 
     469          (Float) timestamps.get("Series " + i + " Plane " + index); 
     470        if (timestamp != null) { 
     471          store.setPlaneTimingDeltaT(timestamp, i, 0, plane); 
     472        } 
     473      } 
     474 
    453475      // populate StagePosition data 
    454476 
    455477      if (i < stageX.size()) { 
    456         for (int q=0; q<core[i].imageCount; q++) { 
     478        for (int q=0; q<getImageCount(); q++) { 
    457479          store.setStagePositionPositionX((Float) stageX.get(i), i, 0, q); 
    458480        } 
    459481      } 
    460482      if (i < stageY.size()) { 
    461         for (int q=0; q<core[i].imageCount; q++) { 
     483        for (int q=0; q<getImageCount(); q++) { 
    462484          store.setStagePositionPositionY((Float) stageY.get(i), i, 0, q); 
    463485        } 
    464486      } 
    465487      if (i < stageZ.size()) { 
    466         for (int q=0; q<core[i].imageCount; q++) { 
     488        for (int q=0; q<getImageCount(); q++) { 
    467489          store.setStagePositionPositionZ((Float) stageZ.get(i), i, 0, q); 
    468490        } 
     
    487509      } 
    488510    } 
    489  
     511    setSeries(0); 
    490512    DataTools.parseXML(xml, new LeicaHandler(store)); 
    491513  } 
  • trunk/components/bio-formats/src/loci/formats/in/LeicaHandler.java

    r4794 r4893  
    6363  private Vector laserNames, detectorNames; 
    6464  private Vector xPosition, yPosition, zPosition; 
     65 
     66  private Hashtable timestamps; 
    6567 
    6668  // -- Constructor -- 
     
    9092    yPosition = new Vector(); 
    9193    zPosition = new Vector(); 
     94    timestamps = new Hashtable(); 
    9295    this.store = store; 
    9396  } 
     
    134137 
    135138  public Vector getZPosition() { return zPosition; } 
     139 
     140  public Hashtable getTimestamps() { return timestamps; } 
    136141 
    137142  // -- DefaultHandler API methods -- 
     
    563568      if (originalPlane < planeNum) return; 
    564569 
    565       store.setPlaneTheC(new Integer(0), seriesNames.size() - 1, 0, planeNum); 
    566       store.setPlaneTheZ(new Integer(0), seriesNames.size() - 1, 0, planeNum); 
    567       store.setPlaneTheT(new Integer(planeNum), seriesNames.size() - 1, 0, 
    568         planeNum); 
    569       store.setPlaneTimingDeltaT(new Float(time), seriesNames.size() - 1, 0, 
    570         planeNum); 
     570      timestamps.put("Series " + (seriesNames.size() - 1) + " Plane " + 
     571        planeNum, new Float(time)); 
    571572      planeNum++; 
    572573      nextPlane.setElementAt(new Integer(planeNum), seriesNames.size() - 1); 
Note: See TracChangeset for help on using the changeset viewer.