Clone wiki

prida_one / Home

Navigation
Project Plan Project Requirements Project Design README

Software Release Schedule

Revision Date Description
1.5 12 Jun 2017 Menu bar, on-the-fly configuration, raw image support, EXIF attributes, preview photo, export images as
1.4 12 Jul 2016 Configurable modes, preview image save, editable project attributes, reset config file, and TIFF/binary image support
1.3 01 Mar 2016 Prida package, data threading, PLANTS database, and data deletion option
1.2 14 Jan 2016 User configuration file, hardware package, error messages, attribute handling, analysis mode, and file compression
1.1 20 Nov 2016 Style fixes, logging, preview image rotation, and PID auto-filling
1.0 30 Oct 2015 Major release with attribute editing, EXIF tag reader, PID completer; Python 3 only
0.7 21 Oct 2015 Data import/export and inter-file search
0.6* 30 Sep 2015 Python 2/3 support and about pop-up
0.5 09 Sep 2015 Thumbnail preview, IDA widget, imaging class, hardware config, search, greeter easter egg
0.4 21 Jul 2015 Welcome screen, explorer mode, spreadsheet view, image preview, progress bar and meta data fields
0.3 01 Jul 2015 PyQt based GUI with basic HDF5 file handling and hardware thread; imaging mode only (requires gphoto2)
0.2* 24 Jun 2015 Transition from TkInter to PyQt
0.1 16 Jun 2015 Camera counter and motor step size adjustment based on number of images
0.0* 11 Jun 2015 TkInter GUI with controls for camera capture, motor step, and HDF5 saving; Python 2/Raspberry Pi only

*unreleased

Team

Primary Developer

Software Consultant

Graduate Research Assistant

Technical Support

  • Jon Shaff, Robert W. Holley Center

  • Brandon Larson, Robert W. Holley Center

  • Eric Craft, USDA-ARS

  • Bill Armstrong, USDA-ARS

Undergraduate Interns

  • Nathanael Shaw, Dept. Mechanical Engineering, Rochester Institute of Technology (2015-2016)

  • Hoi Cheng, Dept. Computer Science, Cornell University (2015)

Public Domain Notice

See License and Copying.

Problem Statement

In an effort to produce high throughput phenotyping via plant root imaging, a new control system is being developed at the Robert Holley Center for Agriculture and Health in Ithaca, New York. The goal is to produce a hardware/software co-design for simple 2D and 3D image collection, preview, and analysis. Building on top of the original 3D imaging framework, introduced in Clark et al. (2011), along with the updates described in Piñeros et al. (2015), our software runs natively on Linux computers (including an Mac OS X app) and we have developed an explorer-only Microsoft Windows version (see Current Releases). A cost-conscience version has also been developed that runs on the Raspberry Pi single-board computer. For convenience and traceability, the software saves all images, including experimental details and experimenter contact information, in a single hierarchical file (HDF5).

This software is still under development and new features are currently being added. The first is the development of a semi-automated camera calibration process, eliminating subjective calibration parameters, reducing the overall process time, and facilitating the repeatability of experiments. Image processing and data extraction methods based, in part, on the RootReader2D program (Clark et al., 2013) are also in development, including: image thresholding, plant root skeletonization, and trait calculation. Additional updates that are being considered including object identification, gap-filling, root reconstruction, and data management.

As the application of image-based phenotyping moves toward larger and more complex root systems, mesh systems are necessary to protect and preserve root system architecture during the imaging process (Piñeros et al., 2015); however, these mesh systems systematically introduce discontinuities along root segments during reconstruction. One proposed method for dealing with this is by implementing the valence-driven spatial median method (Wang and Chen, 2008), which, under the assumption that plant roots grow along paths of least resistance, would approximate root distributions across these obstructed regions.

For the root reconstruction process, improvements in data throughput include either a re-write of the software in a more efficient programming language (e.g., from Java to Python and/or C++) or the adoption of an existing high-efficiency 3D reconstruction algorithm (e.g., Topp et al., 2013; Zheng et al., 2011).

Improvements in data management of root reconstructions are also sought after through the implementation of an octree classification scheme (Szeliski, 1993).


*HDF5 was developed by The HDF Group and by the National Center for Supercomputing Applications at the University of Illinois at Urbana-Champaign.

*Java is the registered trademark of Oracle Corporation in the United States and other countries.

*Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

*Mac and OS X are trademarks of Apple Inc., registered in the United States and other countries.

*Python is the registered trademark of the Python Software Foundation in the United States and other countries.

*Raspberry Pi is the registered trademark of the Raspberry Pi Foundation in the United States and other countries.

*Windows is a registered trademark of Microsoft Corporation in the United States and/or other countries.

References:

  • Clark, R. T., MacCurdy, R. B., Jung, J. K., Shaff, J. E., McCouch, S. R., Aneshansley, D. J., and Kochian, L. V. (2011). Three-dimensional root phenotyping with a novel imaging and software platform. Plant Physiology, 156(2), 455–465.

  • Clark, R. T., Famoso, A. N., Zhao, K., Shaff, J. E., Craft, E. J., Bustamante, C. D., McCouch, S. R., Aneshansley, D. J., and Kochian, L. V. (2013). High-throughput two-dimensional root system phenotyping platform facilitates genetic analysis of root growth and development. Plant, Cell and Environment, 36, 454–466.

  • Piñeros, M. A., Larson, B. G., Shaff, J. E., Schneider, D. J., Falcão, A. X., Lixing, Y., Clark, R. T., Craft, E. J., Davis, T. W., Pradier, P.-L., Assaranurak, I., McCouch, S. R., Sturrock, C., Bennett, M., and Kochian, L. V. (2015). Evolving technologies for growing, imaging, and analyzing 3D root system architecture of crop plants, J. Integr. Plant Biol., 58(3), 230-241, doi: 10.1111/ jipb.12456.

  • Szeliski, R. (1993). Rapid octree construction from image sequences. CVIP: Image Understanding, 58(1), 23–32.

  • Topp, C. N., Iyer-Pascuzzi, A. S., Anderson, J. T., Lee, C.-R., Zurek, P. R., Symonova, O., Zheng, Y., Bucksch, A., Mileyko, Y., Galkovsky, T., Moore, B. T., Harer, J., Edelsbrunner, H., Mitchell-Olds, T., Weitz, J. S., & Benfey, P. N. (2013). 3D phenotyping and quantitative trait locus mapping identify core regions of the rice genome controlling root architecture. PNAS, 110(18), E1695–E1704.

  • Wang, T. & Cheng, I. (2008). Generation of unit-width curve skeletons based on valence driven spatial median (VDSM). In G. Bebis et al. (Ed.), Advances in Visual Computing (pp. 1051–1060). Berlin: Springer.

  • Zheng, Y., Gu, S., Edelsbrunner, H., Tomasi, C., Benfey, P. (2011, Nov. 6–13). Detailed reconstruction of 3D plant root shape. In Proceedings of the 2011 International Conference on Computer Vision, Barcelona (pp. 2026–2033). Washington, DC, IEEE.

Milestone Schedule


  • 2017-06-12 -- Software 1.5 Release
    • Known Issues
      • Plant and session note fields do not display long text
      • Abort feature (e.g., imaging, importing, saving) is not implemented
      • Unsearchable session metadata
      • PyInstaller incompatible with Python 3.6
    • Results
      • Created the ui Python package and images directory
      • NEF image support (via rawpy package and libraw library)
      • Removed scipy dependency from core GUI; still required for hardware and analysis modes
      • New session attributes; includes previously forgotten hardware properties
      • New photo attributes + EXIF tag info (as photo group attrs)
      • Software version saved as root attribute in HDF5 file and checked against current running software version during open project file
      • Moved controls to the menu bar (removed old menu, about and save buttons)
      • Added parameter configuration within GUI (via menu); includes most configurable parameters found in prida.config (does not include changing the imaging modes between 'Explorer', '2D' and '3D')
      • Added hardware testing functions (via menu); includes test motor, test gear ratio and take preview photo
      • Created 'export as' options (includes image file types and naming scheme)
      • Remember the last opened / saved directory
      • Added open / take preview photo functionality (via menu)
      • Added image cropping (via session attributes); images will be cropped during export if checkbox option is checked
      • Added motor speed ramping (avoids jerky start/stops)
      • Added PTPCamera process handling for camera connections on Mac
      • Added warning message for over/under rotating bearing for a given gear ratio and number of images
      • Updated camera calibration (new processes and element identification)
    • Requests
      • Live preview from camera

  • 2017-01-25 -- Python 3.6 on ArchLinux on Raspberry Pi 3
    • Results
      • The upgrade from Python 3.5 to 3.6 required the reinstallation of Python packages
      • Successfully loaded Explorer Mode
      • Successfully loaded 2D Mode (pip install gphoto2)
      • Successfully loaded 3D Mode w/ Shield Controller (python-pyserial)
      • Successfully loaded 3D Mode w/ HAT Controller (i2c-tools-git and python-smbus-git)
    • Known Issues
      • Receive the Gtk-Message GtkDialog mapped without a transient parent when a dialog window opens

  • 2017-01-18 -- Calibration Object Extraction Method 2
    • Results
      • Implemented a second method for identifying calibration objects (i.e., the rings formed from merging photos with calibration rod hashes).
      • This method does not require individual object pixels to be contiguous (i.e., gaps allowed).
      • Single pixel objects are ignored.
      • Median filter updated to clean the boundaries (i.e., the half-distance of the kernel).
    • Known Issues
      • Method is sensitive to small clusters of dust/noise.

  • 2017-01-12 -- Photo EXIF Tag Saving
    • Results
      • During import and imaging, photo EXIF tags are read and saved to the HDF5 image group.
      • In the GUI, the session attributes switch to a view of the dataset attributes when a thumbnail is clicked.
      • A pop-up window is available to show all tag info for a given dataset.
    • Known Issues
      • No tag export

  • 2016-12-16 -- American Geophysical Union Fall Meeting Presentation, San Francisco
    • "Next Generation Image-Based Phenotyping of Root System Architecture," by Tyler W. Davis, Nathanael M. Shaw, Hoi Cheng, Brandon G. Larson, Eric J. Craft, Jon E. Shaff, David J. Schneider, Miguel A. Pineros, and Leon V. Kochian. Abstract B54D-06: Advances in Imaging and Quantification of Plant Roots and Root-Soil Interactions II.

  • 2016-12-08 -- Maize Experiment in Rm 101
    • Results
      • Imaged two maize plants (Wu312 and Ye478) that were germinated 2016-11-18 and transplanted 2016-11-22 (16 day old plants); grown in 30 cm mesh towers in hydroponics (Magnavaca, pH 5.8) in 80-liter tubs in the growth chamber (26/23 deg C day/night temperature; 14-hr photoperiod).
      • Biofilm was present on the roots of both plants, which clouded the water in the imaging tank and reduced clarity of imaging (water in imaging tank is from 2016-11-29)
      • The milk frother can whisk away bubbles from the first 2--3 layers, but cannot reach any deeper into the tank; also the vibration from the whisk motor does not appear to be strong enough to loosen all the deeper bubbles from the mesh discs and line
      • The self-contained darkroom (blackout curtain) and blackout materials (foam and foam board) around the camera and LEDs successfully darken the work area and reduce/eliminate the glare from the front of the tank while the researcher works in the light
      • The new LEDs (Yuji Intl.) produce a more true-color illumination such that the yellow fishing line can be removed from the image by extracting the blue color band from the RGB image
      • The LED rack and foam surrounds are adequate to protect the electronics; however, it is best practice to have a towel down and LEDs off while moving plants into/out of the imaging tank
      • A motor speed of 10 (rather than 15) is better for 100-image sequences (less jerky motion); a two-second settling time is still adequate
    • Known Issues
      • [FIXED] PRIDAPeripheral Errors for failed camera initialization are not producing pop-up warnings but are successfully reverting to Explorer Mode---see Issues for example
      • The 50 mm lens requires the camera mount to be positioned almost completely away from the tank and still does not capture the field of view from the top of the seed to the bottom of the tank (it does capture all ten mesh layers---about 15.5-inches tall---but not roots that go through the bottom layer)
      • Still have not figured out the best camera settings for shutter speed, aperture, etc.; currently using aperture priority setting
    • Requests
      • N/A

  • 2016-11-29 -- New Hardware Testing in Rm 101
    • Results
      • The new adapter plate successfully holds the 20 and 30 cm mesh towers with 7 day old maize plant.
      • There may be signs of warping on the 20 cm meshes.
      • The Arduino Shield controller must be driven by a double stepping regime in order to turn the bearing.
      • The new run sequence appears to be operating smoothly; albeit slightly under-rotating.
    • Known Issues
      • Images using Nikon D300S with 28 mm lens are coming out blurry.
      • Fishing line and mesh suspend a large number of problematic bubbles.
      • Yellow fishing line currently is too bright for traditional thresholding.
        • Could a yellow filter be placed over the camera lens to eliminate the mesh?
        • Could reducing the exposure time increase the contrast (set at 2 s during testing)?
      • [ADDRESSED] Camera settings do not dynamically update.
        • If you change a camera setting (e.g., aperture or shutter speed), the new setting will not show up in the session attributes (these settings are defined during program boot)
      • [WONTFIX] Calibration steps do not seem to do anything (i.e., micro-stepping does not register on the large bearing).
      • [FIXED] The motor stopping causes some jerking motions---requires about 2 seconds of settling time.
        • Could be solved by ramping the motor speed
      • [FIXED] Issue with Imaging's total rotation calculation---needs divided by the gear ratio.
      • [FIXED] Camera errors (unspecified GPhoto2 exceptions) do not trigger end sequence.
      • [ADDRESSED] Progress bar is not showing correct status---progress value needs corrected.
    • Requests
      • Single image load in image calibration (i.e., analysis mode).
      • [FIXED] Ramp-up and ramp-down motor speed at start and end of stepping between photos.
      • [FIXED] Read Nikon NEF files during imaging (currently using JPG).

  • 2016-10-26 -- NEF Raw Image Support
    • Results
      • Utilizes the libraw library and rawpy Python package for reading NEF files
    • Requests
      • [ADDRESSED] Export NEF imported images as (scaled) grayscale TIFF (for RootReader)

  • 2016-09-09 -- Camera Calibration Results
    • Results
      • Calculates all camera calibration parameters and uncertainty
      • Saves calibration parameters to file
    • Requests
      • [FIXED] Include image rotation in Analysis view
      • Plot COI, AOR, and Yt
      • [ADDRESSED] Create EXIF tag reader for finding camera specifications (e.g., make, model, lens focal length)

  • 2016-08-03 -- Software 1.4 Testing
    • Known Issues
      • Saving HDF5 files directly to the Drobo network drive during 3D imaging is not recommended due to the limited bandwidth when file sizes exceed 20 GB (experienced screen freeze for longer than 10 minutes)
      • Experienced two incomplete sessions (57 and 65 images); however, all JPGs were saved in the ~/Prida/photos folder---I had to import JPGs into new session and exclude the previous incomplete sessions (Rosa's HDD ran out of room!)
    • Results
      • Moved Rosa (mini PC) to G8 imaging lab and successfully connected with the digital camera and Arduino motor controller
      • Zhigang imaged 16 sorghum plants grown in hydroponics (both yesterday and today)
      • Imaging time is fast; however, file sizes are large (due to no compression during imaging)
      • Workflow is to now save HDF5 file to Desktop whilst imaging and save compressed copy to Drobo
    • Requests
      • [FIXED] Allow compressed copy save to specified directory

  • 2016-07-21 -- Setup Scripts
    • Known Issues
      • Unicode escape character error message when fixing mainwindow.ui under Raspberry Pi ArchLinux (not encountered elsewhere)
    • Results
      • Created setup.py scripts for releases 1.4, 1.3, and 1.2
      • Checks running Python version
      • Checks for pyuic5 utility
      • Checks for Python libraries (PyQt5, numpy, scipy, PIL, h5py)
      • Checks for Prida package (v.1.3 and later) and main module
      • Finds Qt UI files and compiles them (v.1.3 and later)
      • Checks for local Prida directory, configuration file, and configuration file version (v.1.3 and later)

  • 2016-07-14 -- Development Team Shrinks
    • Good luck back in school, Nathanael!

  • 2016-07-12 -- Software 1.4 Release
    • Known Issues
      • Camera calibration is incomplete
      • Plant and session note fields do not display long text
      • Abort feature (e.g., imaging, importing, saving) is not implemented
      • Unsearchable session metadata
      • Motor HAT controller outdated
      • Software freezes when connected to digital cameras without capture feature
    • Results
      • Removed Raspberry Pi dependencies (now runs on most Unix-based systems)
      • Generalized controller for interchangeable motor driver
      • Shield (Arduino)
      • Hat (Raspberry Pi)
      • Added new configurable software properties
        • Hardware mode
        • Piezo and LED
        • Motor driver
      • User-definable Explorer, 2D and 3D modes
      • About button now has software information (version, copyright, website)
      • Data handling made thread safe via signals and sockets
      • Metadata fields special character handling (does not crash with quotes or unicode escape)
      • Binary and grayscale image support (preview images and thumbnails)
      • Popups for alerting hardware mode failures (PRIDAPeripheralError exception implemented)
      • 2D (file) and 3D (folder of files) import
      • Right-click image preview to save as
      • Updated default Prida home directory structure (~/Prida/prida.config; ~/Prida/dictionary.txt; ~/Prida/logs; ~/Prida/photos)
      • Validation of import images (size and shape consistency check)
      • New analysis mode for camera calibration (implemented but not finished)
    • Requests
      • [ADDRESSED] Image preview before saving (2D and 3D mode)
      • [FIXED] Raw .NEF image support

  • 2016-06-22 -- Software 1.4-dev Demo & Requirements Elicitation
    • Known Issues:
      • Camera seems to still be capable of capturing images during motor movement
      • Long session metadata (i.e., notes) are not fully visible in the current QTreeView; however, can be accessed either via Edit button or Export feature
      • [FIXED] Prida crashes on attempted launch when an empty string is provided from the config file for Imaging's 'driver' parameter.
      • [FIXED] Fix compatibility issues with the USDA Plants database utility and the new source code structure
      • [FIXED] Inter-file search +/- buttons missing status bar messages
      • [FIXED] Inter-file search missing loading gif
      • [ADDRESSED] No popup notice for imaging import error from hardware to explorer mode
    • Results:
      • Mostly positive feedback
      • Some new minor feature requests
    • Requests:
      • [FIXED] Settling time units are inconsistent across multiple locations; change all instances of settling time to seconds
      • [ADDRESSED] Add a glossary of Prida specific terminology to the README
      • [FIXED] Add a imaging mode indicator to the main window title bar
      • [FIXED] Implement a right-click save-as feature for supporting exporting lossless image types
      • [ADDRESSED] Indicate forbidden characters in sensitive metadata fields
        • Most forbidden characters are now caught and made harmless
      • [ADDRESSED] Remove antiquated "rep" metadata field
        • Rep field is now an optional QLineEdit field

  • 2016-03-31 -- Software-Hardware Progress Review
    • Known Issues:
      • Investigate how to prevent scratches on the acrylic tank
      • Tank dimensions not sufficient to fit hex mesh in current design
      • G8 has a heating issue, likely due to the facilities configuration
    • Results:
      • Acrylic preferred over glass tank
      • Wood table preferred over metal
      • Vibration damping measures are well received
      • Green light on development of additional RM101 Prototype unit
    • Requests:
      • Investigate alternative lighting methods (e.g. halogen vs. led)
      • Investigate 15 Mpx Monochrome Camera
      • Continue investigating calibration method improvements
      • Test long term effects of aluminum on pH in growth solution
      • 'Production' Unit of new design requested for G8

  • 2016-03-01 -- Software v1.3 Release
    • Known Issues:
      • Abort button currently disabled (consider using a state machine?)
      • Areas for improvement regarding memory management where certain resources are not appropriately de-allocated
      • [FIXED] Data file operations not fully threaded
      • [FIXED] Binary tiff images still not supported
    • Results:
      • Threading, using QThreads, for hardware and data keeps the GUI from blocking during image capture, saves, and exports
      • Hardware mode image capture now fully threaded
      • New loading graphic on main window for indicating saves or exports in currently in progress
      • USDA Plants Database now fully integrated
      • Tiff images now partially supported
      • Prida is now a separate, importable python package, distinct from the main script
      • Hardware and Preview mode now fully Python 3 compatible
      • Session metadata now includes both a delete and a orientation attribute
      • Enabled hi-resolution mac app support
      • Added version checking to Prida configuration file parsing

  • 2016-02-05 -- Requirements Elicitation Meeting with Pierre-Luc (technician)
    • Known Issues:
      • [ADDRESSED] System 'crash' observed on file compression.
        • Likely not an actual crash, but due to the slow process where the GUI is locked appears to be frozen.
      • [FIXED] Currently cannot properly assign dimensions to binary tif datasets
        • Potentially true of all binary images, disabled for next release
      • [FIXED] Monochrome tif images do not display correctly as thumbnails or IDA images
    • Requests:
      • Add an abort button or other method for stopping an image sequence.
      • [ADDRESSED] Add a delete button for removing useless or otherwise bad session data.

  • 2016-01-14 -- Software v1.2 Release
    • Known Issues:
      • Log record emailing and credential file validation disabled in this release
      • [FIXED] Genus species suggestion field does not show
      • Mac App:
        • [FIXED] RUN_EXP screen does not display during image import (it does display on Linux and Windows)
        • [FIXED] Greeter image (InteractiveLabel) does not display properly in high resolution (disabled)
      • [FIXED] About Popup: is not refreshed/updated following an import
    • Results:
      • Create the hardware module
      • Only the first photo taken during an imaging sequence is displayed (RUN_EXP screen), saving about three minutes per 100 image session
      • Genus species input field changed to suggestion field (case insensitive)
      • QErrorMessage popup screens enabled for user feedback
      • Analysis Button enabled with initial image processing functions, including: image rotation, color to grayscale, and Otsu's threshold
      • Save Button added that creates a compressed copy of the current HDF5 file (compression level is configurable---required PridaHDF class to inherit object)
      • Added image preview during image import (via RUN_EXP screen)
      • Dataset metadata (e.g., height, width, date, time) saved during import
      • PID metadata autofill handled only for mouse-click or return key press events on selection (no longer during text editing)
      • Expanded the scope of the configuration file to include values relevant to non-hardware features
      • Redesigned system record logging workflow:
        • Reduced the number of debug logs, logs collected in debug mode no longer 10Mb or larger
        • Logging only writes records to files when system allows the app the necessary privileges
        • Logging no longer writes logs locally when unable to find the logging directory
        • Logging now captures records from the entire duration of the run, including the startup routine

  • 2015-12-21 -- Requirements Elicitation Meeting with RSA Group
    • Known Issues:
      • [ADDRESSED] Imaging time is still an issue; can HDF I/O be threaded, for example using an Observer with asyncio?
      • [ADDRESSED] HDF5 file size is substantially large; can we reduce file size by either converting color images to greyscale or following thresholding?
    • Requirements:
      • [ADDRESSED] Save images in HDF5 as 'greyscale' datasets
        • Save as compressed copy feature added
      • [ADDRESSED] Speed up 3d imaging process
        • Investigate alternative HDF5 image storage methods
        • Investigate using multi-threading for concurrent image capture and image save
        • Investigate alternative methods of representing images as datasets

  • 2015-12-17 -- American Geophysical Union Fall Meeting Poster Presentation, San Francisco
    • Questions & Comments:
      • How does soil texture influence root system architecture?
      • What about soil-root interactions (i.e., no rhizosphere)?
      • Can you use root conductivity as a trait?
      • Can you use a scanning laser to image root surface area?
      • What is the natural variation of root diameter within and across species?
      • Have you tried in situ neutron imaging (e.g., Oak Ridge National Laboratory)?

  • 2015-11-25 -- Software v1.1 Testing
    • Known Issues:
      • [ADDRESSED] PID autofill is not kind to some naming conventions (e.g., Plant1 autofills for Plant10 instead of it being based on the previous input Plant9)
    • Results
      • 3D imaging of root systems in Turface in G8 lab
      • No crashes, no core dumps, no seg faults
      • Imaging takes about 17 minutes per plant
      • Twelve plants, each imaged 100 times, resulted in a ~280 GB HDF5 file (without compression)
    • Requests
      • [ADDRESSED] Move Tub ID input field to Session Information
      • [ADDRESSED] Speed up imaging

  • 2015-11-04 -- Software v1.0.1-dev Testing
    • Known Issues:
      • [FIXED] Editing PID clears out session user, email and date; should not be cleared
      • [FIXED] Empty fields after an edit are filled with <Undefined>; should be empty
      • [FIXED] Import requires user to fill out certain fields with values such as germ. date and trans. date.
        • Need to allow for case where data is unknown and not specifiable.
      • [ADDRESSED] After Edit, starting a new image has default field values; should be last entered
      • [ADDRESSED] Images are stored in landscape; images taken in portrait
      • Received a Killed message after thirteenth image was taken
        • May be a resource limit issue; check with Linux ulimit and sysctl
    • Results:
      • 2D pouch system in G8 lab with Pierre-Luc
      • Created HDF5 file successfully
      • All images and meta data stored (saved to thumb drive)
      • Thirteen images taken, ~938 MB file created
    • Requests:
      • Batch editing of plant information
      • [FIXED] Add plant ID to image names during export

  • 2015-11-02 -- Requirements Elicitation Meeting with RSA Group
    • Known Issues:
      • [FIXED] Handling metadata for existing PID's on newly imported or created sessions
      • [ADDRESSED] Unhandled and not recorded program and system errors
      • [FIXED] Remove turntable zeroing following completion of an imaging sequence
      • [FIXED] Image metadata is not saved during image import
      • [FIXED] Cannot view the current HDF5 file's name in the explorer view
      • Unsearchable session metadata
      • [ADDRESSED] Unhandled dataset metadata (e.g. timestamps, image orientation, etc.)
    • Results:
      • Little to no negative feedback
    • Requests:
      • Implement command line interface for processing
      • Threshold previewing during image sequencing
      • [FIXED] Drobo access from the Raspberry Pi
      • [ADDRESSED] Genus Species combo box to be replaced by NCBI Taxon. ID suggestion field
      • [ADDRESSED] Export .jpg's into a single directory (session folder)
      • [ADDRESSED] Manual image cropping in addition to the auto-crop

  • 2015-10-30 -- Software v1.0 Release

  • 2015-09-30 -- Software v0.6 Release

  • 2015-08-10 -- Requirements Elicitation Meeting with RSA Group
    • Known Issues:
      • [ADDRESSED] Overwhelming user input requirements will discourage best practice for inputs and slow down experiment throughput
    • Results:
      • Overall pleased with archiving capabilities
      • Good response on chosen metadata fields
      • Pleased with interface usability and efficacy
    • Requests:
      • [FIXED] Autofill semi-static fields with previous submission or user specified default
      • [ADDRESSED] Time tractability and measurability for sequences of images
      • [ADDRESSED] Additional, user-specifiable dictionary files for select fields with entry auto-completion in said field
      • [FIXED] Include additional metadata of imaging 'rig' or location

  • 2015-07-20 -- Requirements Elicitation Meeting with Yusaku (scientist)
    • Known Issues:
      • [ADDRESSED] Some metadata fields too vague to promote consistent inputs
    • Results:
      • Mostly positive
    • Requests:
      • [FIXED] Include solution properties, light intensity, duration and quality, as well as contamination status as metadata fields
      • Root tracking and identification through time series experiments
      • Overall session and individual image calibration
      • Root development rate characteristic calculations

  • 2015-07-13 -- Requirements Elicitation Meeting with Brandon (technician)
    • Known Issues:
      • [ADDRESSED] Metadata integrity vulnerable in the case of a ignorant, careless or malicious user
    • Results:
      • Believes it covers the general needs of the user base relatively well
    • Requests:
      • [FIXED] Include treatment and photographer in archived metadata
      • [ADDRESSED] Keyword search for specific entries within an experiment
      • Some amount of security enforcement on archived files, possibly passwords to bypass and otherwise read-only status
      • Side-by-side comparisons of multiple images across different lines

  • 2015-07-08 -- Requirements Elicitation Meeting with Pierre-Luc (technician)
    • Known Issues:
      • [ADDRESSED] Different metadata fields will be interpreted differently by different types of users as currently stated, and require more precise naming and definitions
    • Results:
      • Hopeful about potential for software to standardize and improve experiment workflow
    • Requests:
      • [FIXED] Multi-experiment, interfile keyword searches across all PIDs and metadata
      • [FIXED] Include additional metadata on germination date, transplant date, growth conditions, plant and session notes or comments

  • 2015-07-07 -- Requirements Elicitation Meeting with Barbara (researcher)
    • Known Issues:
      • [FIXED] As it currently stands, data is difficult to view in a way that facilitates the required kinds of comparisons between plants to be useful
    • Requests:
      • [FIXED] Internally searchable experiment datasets
      • [FIXED] Spreadsheet-like view with exportability to csv or other spreadsheet compatible filetype
      • [FIXED] Include time series 'times' and project 'stress' as additional metadata fields
      • [ADDRESSED] Links between images and datasets that protect data integrity

  • 2015-07-07 -- Requirements Elicitation Meeting with Nathan (intern)
    • Known Issues:
      • [FIXED] Missing a variety of data fields of particular interest for recreating or distilling information from experiments
    • Requests:
      • [FIXED] Include fields for camera settings, growth chamber conditions, experiment hardware parameters such as tub size, as well as a list of all names of individuals credited with contributions to the project

  • 2015-06-22 -- Software v0.1 Testing
    • Known Issues:
      • [FIXED] Motor speed too slow for gellan gum (hardcoded to a faster speed via the time.sleep() in motor.step class function)
      • [FIXED] Image number does not reset in-between successive "Go"s (fixed with a counter reset function call)
      • [FIXED] Memory leak causes Raspberry Pi to crash after about 100 images taken due to the creation of multiple instances of the camera object (fixed by calling a single camera object instance)
      • [ADDRESSED] HDF5 file creation is too slow to practically run after each set of images are taken
    • Results:
      • 3D imaging of rice in gellan gum in G8 lab
      • Overall user happiness with the new GUI and control system
      • Billy is using PRIDA v0.1 session names to store JPG images under specific directories (simulates the output structure he is used to working with)
      • Billy will continue to use the PRIDA v0.1 for his imaging over the next few days
    • Requests:
      • [FIXED] Additional meta data fields (e.g., plant age, media type)
      • [ADDRESSED] Motor speed control/adjustment in GUI
      • [FIXED] Buzzer to signal almost done and/or done
      • [ADDRESSED] Hitting the return carriage signals "Go" or "Run"
      • [WONTFIX] Camera settings control (shutter speed and aperture) in GUI

Updated