Changeset 5614 for branches/4.1


Ignore:
Timestamp:
10/19/09 05:28:30 (11 years ago)
Author:
melissa
Message:

Fixed several bugs exposed during testing.

Location:
branches/4.1/components/bio-formats/src/loci/formats/in
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/4.1/components/bio-formats/src/loci/formats/in/FV1000Reader.java

    r5584 r5614  
    10391039        store.setLogicalChannelEmWave(channel.emWave, 0, channelIndex); 
    10401040      } 
    1041       store.setLogicalChannelExWave(channel.exWave, 0, channelIndex); 
     1041      if (channel.exWave.intValue() > 0) { 
     1042        store.setLogicalChannelExWave(channel.exWave, 0, channelIndex); 
     1043      } 
    10421044      store.setLogicalChannelFilterSet(filterSet, 0, channelIndex); 
    10431045 
     
    10451047        MetadataTools.createLSID("LightSource", 0, channelIndex); 
    10461048      store.setLightSourceSettingsLightSource(lightSourceID, 0, channelIndex); 
    1047       store.setLightSourceSettingsWavelength(channel.exWave, 0, channelIndex); 
     1049      if (channel.exWave.intValue() > 0) { 
     1050        store.setLightSourceSettingsWavelength(channel.exWave, 0, channelIndex); 
     1051      } 
    10481052 
    10491053      // populate Filter data 
  • branches/4.1/components/bio-formats/src/loci/formats/in/IPLabReader.java

    r5596 r5614  
    7373    if (!FormatTools.validStream(stream, blockLen, false)) return false; 
    7474    String s = stream.readString(4); 
    75     boolean big = s.equals("iiii"); 
    76     boolean little = s.equals("mmmm"); 
     75    boolean little = s.equals("iiii"); 
     76    boolean big = s.equals("mmmm"); 
    7777    if (!big && !little) return false; 
    7878    stream.order(little); 
  • branches/4.1/components/bio-formats/src/loci/formats/in/MetamorphReader.java

    r5597 r5614  
    172172    if (stks[series].length == 1) ndx = 0; 
    173173    String file = stks[series][ndx]; 
     174    if (file == null) return buf; 
    174175 
    175176    // the original file is a .nd file, so we need to construct a new reader 
     
    406407      for (int s=0; s<stks.length; s++) { 
    407408        for (int f=0; f<stks[s].length; f++) { 
    408           String original = stks[s][f]; 
    409409          Location l = new Location(ndfile.getParent(), stks[s][f]); 
    410           debug("Looking for file: " + stks[s][f]); 
    411410          if (!l.exists()) { 
    412411            // '%' can be converted to '-' 
     
    414413              stks[s][f] = stks[s][f].replaceAll("%", "-"); 
    415414              l = new Location(ndfile.getParent(), stks[s][f]); 
    416               debug("Looking for file: " + stks[s][f]); 
    417415              if (!l.exists()) { 
    418416                // try replacing extension 
     
    420418                  stks[s][f].lastIndexOf(".")) + ".TIF"; 
    421419                l = new Location(ndfile.getParent(), stks[s][f]); 
    422                 debug("Looking for file: " + stks[s][f]); 
    423420                if (!l.exists()) { 
    424421                  stks[s][f] = stks[s][f].substring(0, 
    425422                    stks[s][f].lastIndexOf(".")) + ".tif"; 
    426423                  l = new Location(ndfile.getParent(), stks[s][f]); 
    427                   debug("Looking for file: " + stks[s][f]); 
    428424                  if (!l.exists()) { 
    429                     stks = null; 
    430                     throw new FormatException("Missing pixels file: " + 
    431                       original); 
     425                    stks[s][f] = null; 
    432426                  } 
    433427                } 
     
    440434                stks[s][f].lastIndexOf(".")) + ".TIF"; 
    441435              l = new Location(ndfile.getParent(), stks[s][f]); 
    442               debug("Looking for file: " + stks[s][f]); 
    443436              if (!l.exists()) { 
    444437                stks[s][f] = stks[s][f].substring(0, 
    445438                  stks[s][f].lastIndexOf(".")) + ".tif"; 
    446439                l = new Location(ndfile.getParent(), stks[s][f]); 
    447                 debug("Looking for file: " + stks[s][f]); 
    448440                if (!l.exists()) { 
    449                   stks = null; 
    450                   throw new FormatException("Missing pixels file: " + 
    451                     original); 
     441                  stks[s][f] = null; 
    452442                } 
    453443              } 
    454444            } 
    455445          } 
    456           if (stks != null) stks[s][f] = l.getAbsolutePath(); 
    457           else break; 
     446          if (stks != null && l.exists()) stks[s][f] = l.getAbsolutePath(); 
     447          else if (stks == null) break; 
    458448        } 
    459449        if (stks == null) break; 
    460450      } 
    461451 
    462       RandomAccessInputStream s = new RandomAccessInputStream(stks[0][0]); 
     452      int q = 0; 
     453      int f = 0; 
     454      String file = stks[q][f]; 
     455      while (file == null) { 
     456        if (f < stks[q].length - 1) f++; 
     457        else if (q < stks.length - 1) { 
     458          q++; 
     459          f = 0; 
     460        } 
     461        file = stks[q][f]; 
     462      } 
     463 
     464      RandomAccessInputStream s = new RandomAccessInputStream(file); 
    463465      TiffParser tp = new TiffParser(s); 
    464466      IFD ifd = tp.getFirstIFD(); 
     
    507509    } 
    508510 
    509     if (getSizeZ() * getSizeT() * (isRGB() ? 1 : getSizeC()) != getImageCount()) 
    510     { 
    511       for (int i=0; i<getSeriesCount(); i++) { 
    512         core[i].sizeZ = getImageCount(); 
    513         core[i].sizeT = 1; 
    514         if (!isRGB()) core[i].sizeC = 1; 
    515       } 
    516     } 
    517  
    518511    Vector<String> timestamps = null; 
    519512    MetamorphHandler handler = null; 
     
    534527      String comment = null; 
    535528 
    536       if (stks != null) { 
     529      if (stks != null && stks[i][0] != null) { 
    537530        RandomAccessInputStream stream = 
    538531          new RandomAccessInputStream(stks[i][0]); 
     
    658651        Float exposureTime = 0f; 
    659652 
    660         if (coords[2] > 0 && stks != null) { 
     653        if (coords[2] > 0 && stks != null && lastFile >= 0 && 
     654          stks[i][lastFile] != null) 
     655        { 
    661656          int fileIndex = getIndex(0, 0, coords[2]) / getSizeZ(); 
    662657          if (fileIndex != lastFile) { 
     
    898893    if (getSizeZ() == 0) core[0].sizeZ = 1; 
    899894    if (getSizeT() == 0) core[0].sizeT = 1; 
     895 
     896    if (getSizeZ() * getSizeT() * (isRGB() ? 1 : getSizeC()) != getImageCount()) 
     897    { 
     898      core[0].sizeZ = getImageCount(); 
     899      core[0].sizeT = 1; 
     900      if (!isRGB()) core[0].sizeC = 1; 
     901    } 
    900902  } 
    901903 
  • branches/4.1/components/bio-formats/src/loci/formats/in/NikonReader.java

    r5550 r5614  
    192192    options.bitsPerSample = dataSize; 
    193193    options.curve = curve; 
    194     options.vPredictor = new int[vPredictor.length]; 
     194    if (vPredictor != null) { 
     195      options.vPredictor = new int[vPredictor.length]; 
     196    } 
    195197    options.lossy = lossyCompression; 
    196198    options.split = split; 
     
    356358                new RandomAccessInputStream(buf); 
    357359              TiffParser tp = new TiffParser(makerNote); 
    358               IFD note = tp.getFirstIFD(); 
     360              IFD note = null; 
     361              try { 
     362                note = tp.getFirstIFD(); 
     363              } 
     364              catch (Exception e) { 
     365                traceDebug(e); 
     366              } 
    359367              if (note != null) { 
    360368                for (Integer nextKey : note.keySet()) { 
  • branches/4.1/components/bio-formats/src/loci/formats/in/NikonTiffReader.java

    r5607 r5614  
    223223    store.setObjectiveSettingsObjective(objectiveID, 0); 
    224224    store.setObjectiveNominalMagnification(new Integer(magnification), 0, 0); 
     225 
     226    if (correction == null) correction = "Unknown"; 
    225227    store.setObjectiveCorrection(correction, 0, 0); 
    226228    store.setObjectiveLensNA(new Float(lensNA), 0, 0); 
    227229    store.setObjectiveWorkingDistance(new Float(workingDistance), 0, 0); 
     230    if (immersion == null) immersion = "Unknown"; 
    228231    store.setObjectiveImmersion(immersion, 0, 0); 
    229232 
    230233    for (int i=0; i<wavelength.size(); i++) { 
    231       store.setLightSourceID("LightSource:" + laserIDs.get(i), 0, i); 
     234      String laser = MetadataTools.createLSID("LightSource", 0, i); 
     235      store.setLightSourceID(laser, 0, i); 
     236      store.setLightSourceModel(laserIDs.get(i), 0, i); 
    232237      store.setLaserWavelength(wavelength.get(i), 0, i); 
    233238      store.setLaserType("Unknown", 0, i); 
  • branches/4.1/components/bio-formats/src/loci/formats/in/PerkinElmerReader.java

    r5544 r5614  
    138138 
    139139    Location htmlFile = new Location(prefix + ".htm"); 
     140    if (ext.toLowerCase().equals("htm")) { 
     141      htmlFile = new Location(name).getAbsoluteFile(); 
     142    } 
    140143    if (!htmlFile.exists()) { 
    141144      htmlFile = new Location(prefix + ".HTM"); 
  • branches/4.1/components/bio-formats/src/loci/formats/in/ScanrReader.java

    r5574 r5614  
    2525 
    2626import java.io.IOException; 
    27 import java.util.Arrays; 
    2827import java.util.Vector; 
    2928 
     
    114113    Vector<String> files = new Vector<String>(); 
    115114    for (String file : metadataFiles) { 
    116       files.add(file); 
     115      if (file != null) files.add(file); 
    117116    } 
    118117 
     
    120119      int offset = getSeries() * getImageCount(); 
    121120      for (int i=0; i<getImageCount(); i++) { 
    122         files.add(tiffs[offset + i]); 
     121        if (tiffs[offset + i] != null) { 
     122          files.add(tiffs[offset + i]); 
     123        } 
    123124      } 
    124125    } 
     
    217218 
    218219    int next = 0; 
    219     for (int i=0; i<getSeriesCount(); i++) { 
     220    for (int i=0; i<nSeries; i++) { 
    220221      int well = i / (fieldRows * fieldColumns); 
    221222      String wellPos = String.valueOf(well + 1); 
  • branches/4.1/components/bio-formats/src/loci/formats/in/TCSReader.java

    r5517 r5614  
    379379    core[0].interleaved = tiffReaders[0].isInterleaved(); 
    380380    core[0].falseColor = true; 
     381    core[0].indexed = tiffReaders[0].isIndexed(); 
    381382 
    382383    if (isRGB()) core[0].imageCount /= (getSizeC() / channelCount); 
  • branches/4.1/components/bio-formats/src/loci/formats/in/ZeissZVIReader.java

    r5553 r5614  
    760760        else if (key.startsWith("Emission Wavelength")) { 
    761761          if (cIndex != -1 && nextEmWave < effectiveSizeC) { 
    762             store.setLogicalChannelEmWave(new Integer(value), 0, nextEmWave); 
    763             nextEmWave++; 
     762            Integer wave = new Integer(value); 
     763            if (wave.intValue() > 0) { 
     764              store.setLogicalChannelEmWave(wave, 0, nextEmWave); 
     765              nextEmWave++; 
     766            } 
    764767          } 
    765768        } 
    766769        else if (key.startsWith("Excitation Wavelength")) { 
    767770          if (cIndex != -1 && nextExWave < effectiveSizeC) { 
    768             store.setLogicalChannelExWave(new Integer(value), 0, nextExWave); 
    769             nextExWave++; 
     771            Integer wave = new Integer(value); 
     772            if (wave.intValue() > 0) { 
     773              store.setLogicalChannelExWave(wave, 0, nextExWave); 
     774              nextExWave++; 
     775            } 
    770776          } 
    771777        } 
Note: See TracChangeset for help on using the changeset viewer.