Changeset 4756


Ignore:
Timestamp:
01/26/09 12:48:27 (11 years ago)
Author:
melissa
Message:

Fixed some MetadataStore population bugs.

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

Legend:

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

    r4750 r4756  
    482482                int index = key.indexOf("_DET_") + 5; 
    483483                if (key.lastIndexOf("_") > index) { 
    484                   int detector = Integer.parseInt( 
    485                     key.substring(index, key.indexOf("_", index))); 
     484                  String idx = key.substring(index, key.indexOf("_", index)); 
     485                  int detector = Integer.parseInt(idx) - 1; 
    486486                  if (key.endsWith("OFFSET")) { 
    487487                    store.setDetectorSettingsOffset( 
     
    560560                  addMeta("Black level for PMT " + (i + 1), values[i * 4 + 2]); 
    561561                  addMeta("Emission filter for PMT " + (i+1), values[i*4] + 3); 
    562                 } 
    563                 addMeta("Multiplier for channel 1", values[12]); 
    564                 addMeta("Multiplier for channel 2", values[13]); 
    565                 addMeta("Multiplier for channel 3", values[14]); 
     562                  addMeta("Multiplier for channel " + (i+1), values[12 + i]); 
     563                } 
    566564                break; 
    567565              case 4: 
     
    570568                addMeta("Number of transmission detectors", values[1]); 
    571569                addMeta("Number of PMTs", values[2]); 
    572                 addMeta("Shutter present for laser 1", values[3]); 
    573                 addMeta("Shutter present for laser 2", values[4]); 
    574                 addMeta("Shutter present for laser 3", values[5]); 
    575570                for (int i=1; i<=3; i++) { 
    576                   addMeta("Neutral density filter for laser " + i, 
    577                     values[(i + 1) * 3]); 
    578                   addMeta("Excitation filter for laser " + i, 
    579                     values[(i + 1) * 3 + 1]); 
    580                   addMeta("Use laser " + i, values[(i + 1) * 3 + 2]); 
     571                  int idx = (i + 1) * 3; 
     572                  addMeta("Shutter present for laser " + i, values[i + 2]); 
     573                  addMeta("Neutral density filter for laser " + i, values[idx]); 
     574                  addMeta("Excitation filter for laser " + i, values[idx + 1]); 
     575                  addMeta("Use laser " + i, values[idx + 2]); 
    581576                } 
    582577                for (int i=0; i<nLasers; i++) { 
     
    597592              case 7: 
    598593                for (int i=0; i<2; i++) { 
    599                   addMeta("Mixer " +i+ " - enhanced", values[i*7]); 
    600                   addMeta("Mixer " +i+ " - PMT 1 percentage", values[i*7 + 1]); 
    601                   addMeta("Mixer " +i+ " - PMT 2 percentage", values[i*7 + 2]); 
    602                   addMeta("Mixer " +i+ " - PMT 3 percentage", values[i*7 + 3]); 
    603                   addMeta("Mixer " +i+ " - Transmission 1 percentage", 
     594                  String prefix = "Mixer " + i; 
     595                  addMeta(prefix + " - enhanced", values[i*7]); 
     596                  addMeta(prefix + " - PMT 1 percentage", values[i*7 + 1]); 
     597                  addMeta(prefix + " - PMT 2 percentage", values[i*7 + 2]); 
     598                  addMeta(prefix + " - PMT 3 percentage", values[i*7 + 3]); 
     599                  addMeta(prefix + " - Transmission 1 percentage", 
    604600                    values[i * 7 + 4]); 
    605                   addMeta("Mixer " +i+ " - Transmission 2 percentage", 
     601                  addMeta(prefix + " - Transmission 2 percentage", 
    606602                    values[i * 7 + 5]); 
    607                   addMeta("Mixer " +i+ " - Transmission 3 percentage", 
     603                  addMeta(prefix + " - Transmission 3 percentage", 
    608604                    values[i * 7 + 6]); 
    609605                } 
     
    631627                  store.setDetectorOffset(new Float(values[i * 3]), 0, i); 
    632628                  store.setDetectorGain(new Float(values[i * 3 + 1]), 0, i); 
     629                  store.setDetectorType("Unknown", 0, i); 
    633630                } 
    634631                break; 
     
    672669              case 17: 
    673670                int year = Integer.parseInt(values[5]) + 1900; 
    674                 String month = values[4]; 
    675                 if (month.length() == 1) month = "0" + month; 
    676                 String day = values[3]; 
    677                 if (day.length() == 1) day = "0" + day; 
     671                for (int i=0; i<5; i++) { 
     672                  if (values[i].length() == 1) values[i] = "0" + values[i]; 
     673                } 
    678674 
    679675                // date is in yyyy-MM-dd'T'HH:mm:ss 
    680                 String date = year + "-" + month + "-" + day + "T" + 
     676                String date = year + "-" + values[4] + "-" + values[3] + "T" + 
    681677                  values[2] + ":" + values[1] + ":" + values[0]; 
    682678                addMeta("Acquisition date", date); 
     
    685681              case 18: 
    686682                addMeta("Mixer 3 - enhanced", values[0]); 
    687                 addMeta("Mixer 3 - PMT 1 percentage", values[1]); 
    688                 addMeta("Mixer 3 - PMT 2 percentage", values[2]); 
    689                 addMeta("Mixer 3 - PMT 3 percentage", values[3]); 
    690                 addMeta("Mixer 3 - Transmission 1 percentage", values[4]); 
    691                 addMeta("Mixer 3 - Transmission 2 percentage", values[5]); 
    692                 addMeta("Mixer 3 - Transmission 3 percentage", values[6]); 
     683                for (int i=1; i<=3; i++) { 
     684                  addMeta("Mixer 3 - PMT " + i + " percentage", values[i]); 
     685                  addMeta("Mixer 3 - Transmission " + i + " percentage", 
     686                    values[i + 3]); 
     687                  addMeta("Mixer 3 - photon counting " + i, values[i + 7]); 
     688                } 
    693689                addMeta("Mixer 3 - low signal on", values[7]); 
    694                 addMeta("Mixer 3 - photon counting 1", values[8]); 
    695                 addMeta("Mixer 3 - photon counting 2", values[9]); 
    696                 addMeta("Mixer 3 - photon counting 3", values[10]); 
    697690                addMeta("Mixer 3 - mode", values[11]); 
    698691                break; 
    699692              case 19: 
    700693                for (int i=1; i<=2; i++) { 
    701                   addMeta("Mixer " + i + " - photon counting 1", 
    702                     values[i * 4 - 4]); 
    703                   addMeta("Mixer " + i + " - photon counting 2", 
    704                     values[i * 4 - 3]); 
    705                   addMeta("Mixer " + i + " - photon counting 3", 
    706                     values[i * 4 - 2]); 
    707                   addMeta("Mixer " + i + " - mode", values[i * 4 - 1]); 
     694                  String prefix = "Mixer " + i; 
     695                  addMeta(prefix + " - photon counting 1", values[i * 4 - 4]); 
     696                  addMeta(prefix + " - photon counting 2", values[i * 4 - 3]); 
     697                  addMeta(prefix + " - photon counting 3", values[i * 4 - 2]); 
     698                  addMeta(prefix + " - mode", values[i * 4 - 1]); 
    708699                } 
    709700                break; 
     
    720711              case 22: 
    721712                addMeta("PIC file generated on Isoscan (lite)", values[0]); 
    722                 addMeta("Photon counting used (PMT 1)", values[1]); 
    723                 addMeta("Photon counting used (PMT 2)", values[2]); 
    724                 addMeta("Photon counting used (PMT 3)", values[3]); 
    725                 addMeta("Hot spot filter (polariser) used (PMT 1)", values[4]); 
    726                 addMeta("Hot spot filter (polariser) used (PMT 2)", values[5]); 
    727                 addMeta("Hot spot filter (polariser) used (PMT 3)", values[6]); 
    728                 addMeta("Tx Selector (mirror) used (TX 1)", values[7]); 
    729                 addMeta("Tx Selector (mirror) used (TX 2)", values[8]); 
    730                 addMeta("Tx Selector (mirror) used (TX 3)", values[9]); 
     713                for (int i=1; i<=3; i++) { 
     714                  addMeta("Photon counting used (PMT " + i + ")", values[i]); 
     715                  addMeta("Hot spot filter used (PMT " + i + ")", values[i+3]); 
     716                  addMeta("Tx Selector used (TX " + i + ")", values[i + 6]); 
     717                } 
    731718                break; 
    732719            } 
  • trunk/components/bio-formats/src/loci/formats/in/LeicaReader.java

    r4750 r4756  
    964964            } 
    965965            else if (tokens[2].equals("State")) { 
    966               if (data.equals("Active")) { 
    967                 // link Detector to Image, if the detector was actually used 
    968                 store.setDetectorID("Detector:" + detector, 0, detector); 
    969                 store.setDetectorSettingsDetector("Detector:" + detector, 0, 
     966              // link Detector to Image, if the detector was actually used 
     967              store.setDetectorID("Detector:" + detector, 0, detector); 
     968              for (int i=0; i<getSeriesCount(); i++) { 
     969                store.setDetectorSettingsDetector("Detector:" + detector, i, 
    970970                  detector); 
    971971              } 
  • trunk/components/bio-formats/src/loci/formats/in/ZeissZVIReader.java

    r4750 r4756  
    6666 
    6767  private Hashtable tagsToParse; 
     68  private int nextEmWave = 0, nextExWave = 0, nextChName = 0; 
    6869 
    6970  // -- Constructor -- 
     
    209210    poi = null; 
    210211    tagsToParse = null; 
     212    nextEmWave = nextExWave = nextChName = 0; 
    211213  } 
    212214 
     
    407409    } 
    408410 
     411    if (bpp == 1 || bpp == 3) core[0].pixelType = FormatTools.UINT8; 
     412    else if (bpp == 2 || bpp == 6) core[0].pixelType = FormatTools.UINT16; 
     413 
    409414    MetadataTools.populatePixels(store, this, true); 
    410415    store.setImageName("", 0); 
    411  
    412     if (bpp == 1 || bpp == 3) core[0].pixelType = FormatTools.UINT8; 
    413     else if (bpp == 2 || bpp == 6) core[0].pixelType = FormatTools.UINT16; 
    414416 
    415417    long firstStamp = 0; 
     
    451453 
    452454    // link DetectorSettings to an actual Detector 
    453     for (int i=0; i<getSizeC(); i++) { 
     455    for (int i=0; i<getEffectiveSizeC(); i++) { 
    454456      store.setDetectorID("Detector:" + i, 0, i); 
    455457      store.setDetectorSettingsDetector("Detector:" + i, 0, i); 
     
    526528    int count = s.readInt(); 
    527529 
    528     // limit count to 4096 
    529  
    530530    float pixelSizeX = 0f, pixelSizeY = 0f, pixelSizeZ = 0f; 
     531 
     532    int effectiveSizeC = 0; 
     533    try { 
     534      effectiveSizeC = getEffectiveSizeC(); 
     535    } 
     536    catch (ArithmeticException e) { } 
    531537 
    532538    for (int i=0; i<count; i++) { 
     
    581587        } 
    582588        else if (key.startsWith("Emission Wavelength")) { 
    583           if (cIndex != -1) { 
    584             store.setLogicalChannelEmWave(new Integer(value), 0, cIndex); 
     589          if (cIndex != -1 && nextEmWave < effectiveSizeC) { 
     590            store.setLogicalChannelEmWave(new Integer(value), 0, nextEmWave); 
     591            nextEmWave++; 
    585592          } 
    586593        } 
    587594        else if (key.startsWith("Excitation Wavelength")) { 
    588           if (cIndex != -1) { 
    589             store.setLogicalChannelExWave(new Integer(value), 0, cIndex); 
     595          if (cIndex != -1 && nextExWave < effectiveSizeC) { 
     596            store.setLogicalChannelExWave(new Integer(value), 0, nextExWave); 
     597            nextExWave++; 
    590598          } 
    591599        } 
    592600        else if (key.startsWith("Channel Name")) { 
    593           if (cIndex != -1) store.setLogicalChannelName(value, 0, cIndex); 
     601          if (cIndex != -1 && nextChName < effectiveSizeC) { 
     602            store.setLogicalChannelName(value, 0, nextChName); 
     603            nextChName++; 
     604          } 
    594605        } 
    595606        else if (key.startsWith("BlackValue")) { 
     
    631642        } 
    632643        else if (key.startsWith("Objective Name")) { 
    633           store.setObjectiveModel(value, 0, 0); 
     644          boolean foundMag = false; 
     645          String[] tokens = value.split(" "); 
     646          StringBuffer correction = new StringBuffer(); 
     647          for (int q=0; q<tokens.length; q++) { 
     648            if (!foundMag) { 
     649              if (tokens[q].indexOf("/") != -1) { 
     650                foundMag = true; 
     651                String mag = tokens[q].substring(0, tokens[q].indexOf("/") - 1); 
     652                String na = tokens[q].substring(tokens[q].indexOf("/") + 1); 
     653                store.setObjectiveNominalMagnification(new Integer(mag), 0, 0); 
     654                store.setObjectiveLensNA(new Float(na), 0, 0); 
     655              } 
     656              else { 
     657                correction.append(tokens[q]); 
     658                correction.append(" "); 
     659              } 
     660            } 
     661            else { 
     662              store.setObjectiveImmersion(tokens[q], 0, 0); 
     663              break; 
     664            } 
     665          } 
     666          store.setObjectiveCorrection(correction.toString().trim(), 0, 0); 
    634667        } 
    635668        else if (key.startsWith("Objective Working Distance")) { 
Note: See TracChangeset for help on using the changeset viewer.