• Views
  • Iteration Report
  • My Iteration Report
  •  
OMERO.server
  • Login
  • Help/Guide
  • About Trac
  • Preferences
  • Wiki
  • Timeline
  • Roadmap
  • Browse Source
  • View Tickets
  • Search

Context Navigation

  • ← Previous Change
  • Next Change →

Changeset 1596 for branches/3.0-Beta2

Show
Ignore:
Timestamp:
06/05/07 20:08:58 (17 months ago)
Author:
david
Message:

DeltaVision? pixelbuffer testing unfinished

Location:
branches/3.0-Beta2/components/romio
Files:
2 added
2 modified

  • src/ome/io/nio/DeltaVision.java (modified) (29 diffs)
  • src/ome/io/nio/DeltaVisionHeader.java (modified) (6 diffs)
  • test/ome/io/nio/utests/DeltaVisionTest.java (added)
  • test/ome/io/nio/utests/tinyTest.d3d.dv (added)

Legend:

Unmodified
Added
Removed
  • branches/3.0-Beta2/components/romio/src/ome/io/nio/DeltaVision.java

    r1578 r1596  
    2020 * image file. 
    2121 * <p> 
    22  * Copyright 2007 Glencoe Software Inc. All rights reserved. 
    23  * Use is subject to license terms supplied in LICENSE.txt  
    24  * <p/> 
    25  * 
     22 * Copyright 2007 Glencoe Software Inc. All rights reserved. Use is subject to 
     23 * license terms supplied in LICENSE.txt <p/> 
     24 *  
    2625 * @author David L. Whitehurst &nbsp;&nbsp;&nbsp;&nbsp; <a 
    2726 *         href="mailto:david@glencoesoftware.com">david@glencoesoftware.com</a> 
    … …  
    5554 
    5655        public boolean little = false; 
    57          
     56 
    5857        public DeltaVisionHeader header; 
    5958 
    … …  
    8382                                        "Original file not available, Critical Error!"); 
    8483                } catch (RuntimeException rtex) { 
     84                        rtex.printStackTrace(); 
    8585                        throw new RuntimeException( 
    8686                                        "The binary file is not a valid DeltaVision file!"); 
    … …  
    9090        } 
    9191 
    92         /* (non-Javadoc) 
     92        /* 
     93         * (non-Javadoc) 
     94         *  
    9395         * @see ome.io.nio.PixelBuffer#calculateMessageDigest() 
    9496         */ 
    9597        public byte[] calculateMessageDigest() throws IOException { 
    96  
     98                // TODO - test 
    9799                MessageDigest md; 
    98100 
    … …  
    116118        } 
    117119 
    118         /* (non-Javadoc) 
     120        /* 
     121         * (non-Javadoc) 
     122         *  
    119123         * @see ome.io.nio.PixelBuffer#close() 
    120124         */ 
    … …  
    126130        } 
    127131 
    128         /* (non-Javadoc) 
    129          * @see ome.io.nio.PixelBuffer#getPlane(java.lang.Integer, java.lang.Integer, java.lang.Integer) 
     132        /* 
     133         * (non-Javadoc) 
     134         *  
     135         * @see ome.io.nio.PixelBuffer#getPlane(java.lang.Integer, 
     136         *      java.lang.Integer, java.lang.Integer) 
    130137         */ 
    131138        public MappedByteBuffer getPlane(Integer z, Integer c, Integer t) 
    132139                        throws IOException, DimensionsOutOfBoundsException { 
     140                // TODO - test 
    133141                Long offset = getPlaneOffset(z, c, t); 
    134142                Integer size = getPlaneSize(); 
    135                  
     143 
    136144                MappedByteBuffer region = getRegion(size, offset); 
    137145 
    … …  
    148156        } 
    149157 
    150         /* (non-Javadoc) 
    151          * @see ome.io.nio.PixelBuffer#getPlaneOffset(java.lang.Integer, java.lang.Integer, java.lang.Integer) 
     158        /* 
     159         * (non-Javadoc) 
     160         *  
     161         * @see ome.io.nio.PixelBuffer#getPlaneOffset(java.lang.Integer, 
     162         *      java.lang.Integer, java.lang.Integer) 
    152163         */ 
    153164        public Long getPlaneOffset(Integer z, Integer c, Integer t) 
    … …  
    155166 
    156167                checkBounds(null, z, c, t); 
    157  
    158                 Integer timepointSize = getTimepointSize(); 
    159                 Integer stackSize = getStackSize(); 
    160                 Integer planeSize = getPlaneSize(); 
    161  
    162                 return (long) timepointSize * t + (long) stackSize * c 
    163                                 + (long) planeSize * z; 
    164  
    165         } 
    166  
    167         /* (non-Javadoc) 
     168                int planeNo = getAbsolutePlaneOffset(z, c, t); 
     169 
     170                return (long) getPlaneSize() * planeNo; 
     171 
     172        } 
     173 
     174        /** 
     175         * Privately returns the absolute plane number index in the set of X-Y 
     176         * planes (planes start with 1) 
     177         *  
     178         * @param z 
     179         * @param c 
     180         * @param t 
     181         * @return 
     182         */ 
     183        private int getAbsolutePlaneOffset(Integer z, Integer c, Integer t) { 
     184 
     185                int result = 0; 
     186 
     187                switch (getHeader().getSequence()) { 
     188 
     189                case 0: // ZTC 
     190                        result = ((c * getSizeT() * getSizeZ()) + (t * getSizeZ()) + z); 
     191                        break; 
     192 
     193                case 1: // CZT 
     194                        result = ((t * getSizeC() * getSizeZ()) + (z * getSizeC()) + c); 
     195                        break; 
     196 
     197                case 2: // ZCT 
     198                        result = ((t * getSizeC() * getSizeZ()) + (c * getSizeZ()) + z); 
     199                        break; 
     200 
     201                default: 
     202                        result = -1; 
     203                } 
     204 
     205                return result; 
     206        } 
     207 
     208        /* 
     209         * (non-Javadoc) 
     210         *  
    168211         * @see ome.io.nio.PixelBuffer#getPlaneSize() 
    169212         */ 
    … …  
    175218        } 
    176219 
    177         /* (non-Javadoc) 
     220        /* 
     221         * (non-Javadoc) 
     222         *  
    178223         * @see ome.io.nio.PixelBuffer#getRegion(java.lang.Integer, java.lang.Long) 
    179224         */ 
    … …  
    187232        } 
    188233 
    189         /* (non-Javadoc) 
    190          * @see ome.io.nio.PixelBuffer#getRow(java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer) 
     234        /* 
     235         * (non-Javadoc) 
     236         *  
     237         * @see ome.io.nio.PixelBuffer#getRow(java.lang.Integer, java.lang.Integer, 
     238         *      java.lang.Integer, java.lang.Integer) 
    191239         */ 
    192240        public MappedByteBuffer getRow(Integer y, Integer z, Integer c, Integer t) 
    … …  
    199247        } 
    200248 
    201         /* (non-Javadoc) 
    202          * @see ome.io.nio.PixelBuffer#getRowOffset(java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer) 
     249        /* 
     250         * (non-Javadoc) 
     251         *  
     252         * @see ome.io.nio.PixelBuffer#getRowOffset(java.lang.Integer, 
     253         *      java.lang.Integer, java.lang.Integer, java.lang.Integer) 
    203254         */ 
    204255        public Long getRowOffset(Integer y, Integer z, Integer c, Integer t) 
    … …  
    216267        } 
    217268 
    218         /* (non-Javadoc) 
     269        /* 
     270         * (non-Javadoc) 
     271         *  
    219272         * @see ome.io.nio.PixelBuffer#getRowSize() 
    220273         */ 
    … …  
    228281        } 
    229282 
    230         /* (non-Javadoc) 
     283        /* 
     284         * (non-Javadoc) 
     285         *  
    231286         * @see ome.io.nio.PixelBuffer#getSizeC() 
    232287         */ 
    … …  
    235290        } 
    236291 
    237         /* (non-Javadoc) 
     292        /* 
     293         * (non-Javadoc) 
     294         *  
    238295         * @see ome.io.nio.PixelBuffer#getSizeT() 
    239296         */ 
    … …  
    242299        } 
    243300 
    244         /* (non-Javadoc) 
     301        /* 
     302         * (non-Javadoc) 
     303         *  
    245304         * @see ome.io.nio.PixelBuffer#getSizeX() 
    246305         */ 
    … …  
    249308        } 
    250309 
    251         /* (non-Javadoc) 
     310        /* 
     311         * (non-Javadoc) 
     312         *  
    252313         * @see ome.io.nio.PixelBuffer#getSizeY() 
    253314         */ 
    … …  
    256317        } 
    257318 
    258         /* (non-Javadoc) 
     319        /* 
     320         * (non-Javadoc) 
     321         *  
    259322         * @see ome.io.nio.PixelBuffer#getSizeZ() 
    260323         */ 
    … …  
    263326        } 
    264327 
    265         /* (non-Javadoc) 
    266          * @see ome.io.nio.PixelBuffer#getStack(java.lang.Integer, java.lang.Integer) 
     328        /* 
     329         * (non-Javadoc) 
     330         *  
     331         * @see ome.io.nio.PixelBuffer#getStack(java.lang.Integer, 
     332         *      java.lang.Integer) 
    267333         */ 
    268334        public MappedByteBuffer getStack(Integer c, Integer t) throws IOException, 
    … …  
    275341        } 
    276342 
    277         /* (non-Javadoc) 
    278          * @see ome.io.nio.PixelBuffer#getStackOffset(java.lang.Integer, java.lang.Integer) 
     343        /** 
     344         * Privately returns the absolute stack number.  Starts with 1 
     345         *  
     346         * @param c 
     347         * @param t 
     348         * @return 
     349         */ 
     350        private int getAbsoluteStackOffset(Integer c, Integer t) { 
     351                int result = 0; 
     352 
     353                switch (getHeader().getSequence()) { 
     354 
     355                case 0: // ZTC 
     356                        result = ((c * getSizeT()) + t);   
     357                        break; 
     358 
     359                case 1: // CZT 
     360                        // TODO - tricky one 
     361                        break; 
     362 
     363                case 2: // ZCT 
     364                        result = ((t * getSizeC()) + c); 
     365                        break; 
     366 
     367                default: 
     368                        result = -1; 
     369                } 
     370 
     371                return result; 
     372        } 
     373         
     374        /* 
     375         * (non-Javadoc) 
     376         *  
     377         * @see ome.io.nio.PixelBuffer#getStackOffset(java.lang.Integer, 
     378         *      java.lang.Integer) 
    279379         */ 
    280380        public Long getStackOffset(Integer c, Integer t) 
    281381                        throws DimensionsOutOfBoundsException { 
    282                 // TODO - affected by ZCT ordering 
     382 
    283383                checkBounds(null, null, c, t); 
    284384 
    285                 Integer timepointSize = getTimepointSize(); 
    286                 Integer stackSize = getStackSize(); 
    287  
    288                 return (long) timepointSize * t + (long) stackSize * c; 
    289         } 
    290  
    291         /* (non-Javadoc) 
     385                int stackNo = getAbsoluteStackOffset(c, t); 
     386                return (long) stackNo * stackSize; 
     387                 
     388        } 
     389 
     390        /* 
     391         * (non-Javadoc) 
     392         *  
    292393         * @see ome.io.nio.PixelBuffer#getStackSize() 
    293394         */ 
    294395        public Integer getStackSize() { 
    295                 // stack is X-Y (plane) by Z (focalpoints) 
    296                 if (stackSize == null) { 
    297                         stackSize = getPlaneSize() * getSizeZ(); 
     396 
     397                // stack is X-Y (plane) by Z (focalpoints) ... Z first 
     398                if (getHeader().getSequence() == 0 || getHeader().getSequence() == 2) { 
     399                        if (stackSize == null) { 
     400                                stackSize = getPlaneSize() * getSizeZ(); 
     401                        } 
     402                } else { 
     403                        // TODO - we need some new code 
    298404                } 
    299405 
    … …  
    301407        } 
    302408 
    303         /* (non-Javadoc) 
     409        /* 
     410         * (non-Javadoc) 
     411         *  
    304412         * @see ome.io.nio.PixelBuffer#getTimepoint(java.lang.Integer) 
    305413         */ 
    … …  
    313421        } 
    314422 
    315         /* (non-Javadoc) 
     423        /* 
     424         * (non-Javadoc) 
     425         *  
    316426         * @see ome.io.nio.PixelBuffer#getTimepointOffset(java.lang.Integer) 
    317427         */ 
    … …  
    326436        } 
    327437 
    328         /* (non-Javadoc) 
     438        /* 
     439         * (non-Javadoc) 
     440         *  
    329441         * @see ome.io.nio.PixelBuffer#getTimepointSize() 
    330442         */ 
    … …  
    337449        } 
    338450 
    339         /* (non-Javadoc) 
     451        /* 
     452         * (non-Javadoc) 
     453         *  
    340454         * @see ome.io.nio.PixelBuffer#getTotalSize() 
    341455         */ 
    … …  
    348462        } 
    349463 
    350  
    351         /* (non-Javadoc) 
    352          * @see ome.io.nio.PixelBuffer#checkBounds(java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer) 
     464        /* 
     465         * (non-Javadoc) 
     466         *  
     467         * @see ome.io.nio.PixelBuffer#checkBounds(java.lang.Integer, 
     468         *      java.lang.Integer, java.lang.Integer, java.lang.Integer) 
    353469         */ 
    354470        public void checkBounds(Integer y, Integer z, Integer c, Integer t) 
    … …  
    374490                } 
    375491        } 
    376          
    377         /* (non-Javadoc) 
     492 
     493        /* 
     494         * (non-Javadoc) 
     495         *  
    378496         * @see ome.io.nio.PixelBuffer#getId() 
    379497         */ 
    … …  
    382500        } 
    383501 
     502        /** 
     503         * Getter for Header 
     504         *  
     505         * @return 
     506         */ 
    384507        public DeltaVisionHeader getHeader() { 
    385508                return header; 
    386509        } 
    387510 
     511        /* 
     512         * (non-Javadoc) 
     513         *  
     514         * @see ome.io.nio.PixelBuffer#getPath() 
     515         */ 
     516        public String getPath() { 
     517                return originalFile.getPath(); 
     518        } 
     519 
     520        /** 
     521         * Setter for Header 
     522         *  
     523         * @param header 
     524         */ 
    388525        public void setHeader(DeltaVisionHeader header) { 
    389526                this.header = header; 
    390527        } 
    391          
     528 
    392529        // ---------- set or write methods ---------- 
    393530        /** 
    … …  
    468605        } 
    469606 
    470         /* (non-Javadoc) 
    471          * @see ome.io.nio.PixelBuffer#getPath() 
    472          */ 
    473         public String getPath() { 
    474                 return originalFile.getPath(); 
    475         } 
    476  
    477607        // ---------- private methods ---------------------- 
    478608 
    … …  
    483613                return header.getBytesPerPixel(); 
    484614        } 
    485          
     615 
    486616        /** 
    487617         * This method is used to establish most of the DeltaVision data that the 
    … …  
    495625                File file = new File(originalFile.getPath()); 
    496626                RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw"); 
    497                  
     627 
    498628                channel = randomAccessFile.getChannel(); 
    499                  
     629 
    500630                buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, 1024); 
    501631 
  • branches/3.0-Beta2/components/romio/src/ome/io/nio/DeltaVisionHeader.java

    r1578 r1596  
    22 
    33import java.nio.ByteOrder; 
     4import java.nio.CharBuffer; 
    45import java.nio.MappedByteBuffer; 
     6 
     7import ome.io.nio.utests.DeltaVisionTest; 
     8 
     9import org.apache.commons.logging.Log; 
     10import org.apache.commons.logging.LogFactory; 
    511 
    612/** 
    … …  
    5359        private String imageType; 
    5460 
     61        private transient static Log log = LogFactory.getLog(DeltaVisionHeader.class); 
     62 
    5563        /** 
    5664         * Constructor 
    … …  
    6169        public DeltaVisionHeader(MappedByteBuffer data, boolean endian) { 
    6270 
     71 
    6372                // make sure this is a header 
    6473                if (data.capacity() != IMAGE_HEADER_SIZE) { 
    … …  
    6776                } 
    6877 
     78                // set our data 
     79                this.data = data; 
     80 
    6981                // endianness 
    7082                if (isNative()) { 
     83                        data.order(ByteOrder.BIG_ENDIAN); 
     84                } else { 
    7185                        data.order(ByteOrder.LITTLE_ENDIAN); 
    72                 } else { 
    73                         data.order(ByteOrder.BIG_ENDIAN); 
    74                 } 
    75  
    76                 // set our data 
    77                 this.data = data; 
     86                } 
     87                 
    7888        } 
    7989 
    … …  
    91101         */ 
    92102        public int getImageCount() { 
    93                 return data.getShort(IMAGE_COUNT_OFFSET); 
     103                return data.getInt(IMAGE_COUNT_OFFSET); 
    94104        } 
    95105 
    … …  
    163173         */ 
    164174        public int getSizeZ() { 
    165                 return getImageCount() / getSizeC() * getSizeT(); 
     175                 
     176                int result = 0; 
     177                if (getSizeC() == 0) { 
     178                        result = getImageCount() / getSizeT(); 
     179                } else if (getSizeT() == 0) { 
     180                        result = getImageCount() / getSizeC(); 
     181                } else { 
     182                        result = getImageCount()/(getSizeT() * getSizeC()); 
     183                } 
     184                 
     185                return result; 
    166186        } 
    167187 

Download in other formats:

  • Unified Diff
  • Zip Archive

Trac Powered

Powered by Trac 0.11
By Edgewall Software.

Visit the Trac open source project at
http://trac.edgewall.org/