Changeset 6042


Ignore:
Timestamp:
03/18/10 15:01:13 (10 years ago)
Author:
melissa
Message:

Attempt to retrieve dimension information from plane names.

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

Legend:

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

    r6026 r6042  
    621621    } 
    622622 
     623    Vector<String> uniqueT = new Vector<String>(); 
     624    Vector<String> uniqueC = new Vector<String>(); 
     625    Vector<String> uniqueZ = new Vector<String>(); 
     626    String[] axes = new String[] {"Z", "C", "T"}; 
     627 
     628    for (int s=0; s<getSeriesCount(); s++) { 
     629      core[s].dimensionOrder = "XY"; 
     630      uniqueT.clear(); 
     631      uniqueC.clear(); 
     632      uniqueZ.clear(); 
     633      for (PlaneInfo plane : planes) { 
     634        if (plane == null) continue; 
     635        if (plane.series == s) { 
     636          String name = plane.planeName; 
     637          for (String axis : axes) { 
     638            Vector<String> unique = null; 
     639            if (axis.equals("Z")) unique = uniqueZ; 
     640            else if (axis.equals("C")) unique = uniqueC; 
     641            else if (axis.equals("T")) unique = uniqueT; 
     642 
     643            int index = name.indexOf(axis + "="); 
     644            if (index == -1) index = name.indexOf(axis + " ="); 
     645            if (index != -1) { 
     646              int nextEqual = name.indexOf("=", index + 3); 
     647              if (nextEqual < 0) { 
     648                nextEqual = (int) Math.min(index + 3, name.length()); 
     649              } 
     650              int end = name.lastIndexOf(" ", nextEqual); 
     651              if (end < index) end = name.length(); 
     652 
     653              String i = name.substring(name.indexOf("=", index), end); 
     654              if (!unique.contains(i)) { 
     655                unique.add(i); 
     656                if (unique.size() > 1 && 
     657                  core[s].dimensionOrder.indexOf(axis) == -1) 
     658                { 
     659                  core[s].dimensionOrder += axis; 
     660                } 
     661              } 
     662            } 
     663          } 
     664        } 
     665      } 
     666 
     667      for (String axis : axes) { 
     668        if (core[s].dimensionOrder.indexOf(axis) == -1) { 
     669          core[s].dimensionOrder += axis; 
     670        } 
     671      } 
     672      if (uniqueC.size() > 1) { 
     673        core[s].sizeC *= uniqueC.size(); 
     674        core[s].sizeZ /= uniqueC.size(); 
     675      } 
     676      if (uniqueT.size() > 1) { 
     677        core[s].sizeT = uniqueT.size(); 
     678        core[s].sizeZ /= core[s].sizeT; 
     679      } 
     680    } 
     681 
    623682    MetadataStore store = 
    624683      new FilterMetadata(getMetadataStore(), isMetadataFiltered()); 
  • trunk/components/bio-formats/src/loci/formats/in/PictReader.java

    r6026 r6042  
    245245    super.initFile(id); 
    246246    in = new RandomAccessInputStream(id); 
    247  
    248     LOGGER.info("Populating metadata"); 
    249247 
    250248    core[0].littleEndian = false; 
Note: See TracChangeset for help on using the changeset viewer.