Changeset 4668


Ignore:
Timestamp:
12/02/08 17:48:04 (11 years ago)
Author:
melissa
Message:

Improved Objective/LightSource population.

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

Legend:

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

    r4660 r4668  
    1 //// 
     1// 
    22// DeltavisionReader.java 
    33// 
     
    371371          new Float(extHdrFields[0][w][0].getNdFilter()), 0, w); 
    372372      } 
    373       store.setLightSourceSettingsWavelength(new Integer(waves[w]), 0, w); 
    374  
    375       // link LightSourceSettings to an actual LightSource 
    376       store.setLightSourceID("LightSource:" + w, 0, w); 
    377       store.setLightSourceSettingsLightSource("LightSource:" + w, 0, w); 
    378373    } 
    379374 
  • trunk/components/bio-formats/src/loci/formats/in/LeicaReader.java

    r4655 r4668  
    849849 
    850850      // link Instrument and Image 
    851       store.setImageInstrumentRef("Instrument:0", 0); 
     851      store.setImageInstrumentRef("Instrument:0", i); 
    852852 
    853853      store.setDimensionsPhysicalSizeX(new Float(physicalSizes[i][0]), i, 0); 
     
    896896    int nElements = stream.readInt(); 
    897897    stream.skipBytes(4); 
     898 
     899    Vector[] channelNames = new Vector[getSeriesCount()]; 
     900    Vector[] emWaves = new Vector[getSeriesCount()]; 
     901    Vector[] exWaves = new Vector[getSeriesCount()]; 
     902 
     903    for (int i=0; i<getSeriesCount(); i++) { 
     904      channelNames[i] = new Vector(); 
     905      emWaves[i] = new Vector(); 
     906      exWaves[i] = new Vector(); 
     907    } 
    898908 
    899909    for (int j=0; j<nElements; j++) { 
     
    944954              store.setDetectorVoltage(new Float(data), 0, detector); 
    945955            } 
    946  
    947             // link Detector to Image 
    948             store.setDetectorID("Detector:" + detector, 0, detector); 
    949             store.setDetectorSettingsDetector("Detector:" + detector, 0, 
    950               detector); 
     956            else if (tokens[2].equals("State")) { 
     957              if (data.equals("Active")) { 
     958                // link Detector to Image, if the detector was actually used 
     959                store.setDetectorID("Detector:" + detector, 0, detector); 
     960                store.setDetectorSettingsDetector("Detector:" + detector, 0, 
     961                  detector); 
     962              } 
     963            } 
    951964          } 
    952965          catch (NumberFormatException e) { 
     
    963976        } 
    964977        else if (tokens[2].equals("Objective")) { 
    965           store.setObjectiveModel(data, 0, objective); 
     978          String[] objectiveData = data.split(" "); 
     979          StringBuffer model = new StringBuffer(); 
     980          String mag = null, na = null; 
     981          StringBuffer correction = new StringBuffer(); 
     982          for (int i=0; i<objectiveData.length; i++) { 
     983            if (objectiveData[i].indexOf("x") != -1 && mag == null && 
     984              na == null) 
     985            { 
     986              int xIndex = objectiveData[i].indexOf("x"); 
     987              mag = objectiveData[i].substring(0, xIndex).trim(); 
     988              na = objectiveData[i].substring(xIndex + 1).trim(); 
     989            } 
     990            else if (mag == null && na == null) { 
     991              model.append(objectiveData[i]); 
     992              model.append(" "); 
     993            } 
     994            else { 
     995              correction.append(objectiveData[i]); 
     996              correction.append(" "); 
     997            } 
     998          } 
     999          store.setObjectiveCorrection(correction.toString().trim(), 0, 
     1000            objective); 
     1001          store.setObjectiveModel(model.toString().trim(), 0, objective); 
     1002          store.setObjectiveLensNA(new Float(na), 0, objective); 
     1003          store.setObjectiveNominalMagnification( 
     1004            new Integer((int) Float.parseFloat(mag)), 0, objective); 
    9661005        } 
    9671006        else if (tokens[2].equals("OrderNumber")) { 
     
    9811020          Integer wavelength = new Integer((int) Float.parseFloat(data)); 
    9821021          if (tokens[3].equals("0")) { 
    983             store.setLogicalChannelEmWave(wavelength, series, channel); 
     1022            emWaves[series].add(wavelength); 
    9841023          } 
    9851024          else if (tokens[3].equals("1")) { 
    986             store.setLogicalChannelExWave(wavelength, series, channel); 
     1025            exWaves[series].add(wavelength); 
    9871026          } 
    9881027        } 
    9891028        else if (tokens[2].equals("Stain")) { 
    990           store.setLogicalChannelName(data, series, channel); 
     1029          channelNames[series].add(data); 
    9911030        } 
    9921031      } 
     
    10221061    } 
    10231062    stream.close(); 
     1063 
     1064    // populate saved LogicalChannel data 
     1065 
     1066    for (int i=0; i<getSeriesCount(); i++) { 
     1067      int nextChannel = 0; 
     1068      for (int channel=0; channel<channelNames[i].size(); channel++) { 
     1069        String name = (String) channelNames[i].get(channel); 
     1070        if (name == null || name.trim().equals("")) continue; 
     1071 
     1072        store.setLogicalChannelName(name, i, nextChannel); 
     1073        store.setLogicalChannelEmWave((Integer) emWaves[i].get(channel), 
     1074          i, nextChannel); 
     1075        store.setLogicalChannelExWave((Integer) exWaves[i].get(channel), 
     1076          i, nextChannel); 
     1077 
     1078        nextChannel++; 
     1079      } 
     1080    } 
     1081 
    10241082  } 
    10251083 
  • trunk/components/bio-formats/src/loci/formats/in/ZeissLSMReader.java

    r4657 r4668  
    448448    Hashtable channelData = new Hashtable(); 
    449449 
     450    Hashtable acquireLasers = new Hashtable(); 
     451    Hashtable laserData = new Hashtable(); 
     452 
    450453    if (scanInformationOffset != 0) { 
    451454      in.seek(scanInformationOffset); 
     
    552555        if (key != null) addMeta(key, value); 
    553556 
    554         if (key.endsWith("Acquire") && key.indexOf("Detection Channel") != -1) 
    555         { 
    556           acquireChannels.put(new Integer(count - 2), 
    557             new Integer(value.toString())); 
     557        if (key.endsWith("Acquire")) { 
     558          Integer index = new Integer(count - 2); 
     559          Integer acquire = new Integer(value.toString()); 
     560          if (key.indexOf("Detection Channel") != -1) { 
     561            acquireChannels.put(index, acquire); 
     562          } 
     563          else if (key.indexOf("Laser") != -1) { 
     564            acquireLasers.put(index, acquire); 
     565          } 
    558566        } 
    559567 
     
    620628            else if (medium.equals("Enterprise")) medium = null; 
    621629 
    622             if (medium != null && laserType != null) { 
    623               // link LightSource to Image 
    624               store.setLightSourceID("LightSource:" + nextLaserType, 0, 
    625                 nextLaserType); 
    626               store.setLightSourceSettingsLightSource( 
    627                 "LightSource:" + nextLaserType, 0, nextLaserType); 
    628  
    629               store.setLaserLaserMedium(medium, 0, nextLaserMedium++); 
    630               store.setLaserType(laserType, 0, nextLaserType++); 
    631             } 
     630            laserData.put("medium " + nextLaserMedium, 
     631              medium == null ? "" : medium); 
     632            laserData.put("type " + nextLaserType, 
     633              laserType == null ? "" : laserType); 
     634 
     635            nextLaserMedium++; 
     636            nextLaserType++; 
    632637 
    633638            break; 
     
    664669 
    665670        if (!done) done = in.getFilePointer() >= in.length() - 12; 
     671      } 
     672    } 
     673 
     674    // set laser data 
     675 
     676    int nextLaser = 0; 
     677 
     678    for (int i=0; i<acquireLasers.size(); i++) { 
     679      boolean acquire = 
     680        ((Integer) acquireLasers.get(new Integer(i))).intValue() != 0; 
     681      if (!acquire) continue; 
     682 
     683      String medium = (String) laserData.get("medium " + i); 
     684      String laserType = (String) laserData.get("type " + i); 
     685 
     686      if (!medium.equals("") && !laserType.equals("")) { 
     687        store.setLaserLaserMedium(medium, 0, nextLaser); 
     688        store.setLaserType(laserType, 0, nextLaser); 
     689 
     690        // link Laser (LightSource) to Image 
     691        store.setLightSourceID("LightSource:" + nextLaser, 0, nextLaser); 
     692        store.setLightSourceSettingsLightSource("LightSource:" + nextLaser, 
     693          0, nextLaser); 
     694 
     695        nextLaser++; 
    666696      } 
    667697    } 
Note: See TracChangeset for help on using the changeset viewer.