Open Collections

UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Visual resolution of Anna's hummingbirds (Calypte anna) in space and time Fellows, Tyee Kenneth 2015

Your browser doesn't seem to have a PDF viewer, please download the PDF to view this item.

Item Metadata

Download

Media
24-ubc_2015_september_fellows_tyee.pdf [ 7.21MB ]
Metadata
JSON: 24-1.0166301.json
JSON-LD: 24-1.0166301-ld.json
RDF/XML (Pretty): 24-1.0166301-rdf.xml
RDF/JSON: 24-1.0166301-rdf.json
Turtle: 24-1.0166301-turtle.txt
N-Triples: 24-1.0166301-rdf-ntriples.txt
Original Record: 24-1.0166301-source.json
Full Text
24-1.0166301-fulltext.txt
Citation
24-1.0166301.ris

Full Text

  Visual Resolution of  Anna's Hummingbirds (Calypte anna)  in Space and Time   by   Tyee Kenneth Fellows  B.Sc., The University of British Columbia, 2013     A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF  THE REQUIREMENTS FOR THE DEGREE OF  MASTER OF SCIENCE   in   The Faculty of Graduate and Postdoctoral Studies  (Zoology)    THE UNIVERSITY OF BRITISH COLUMBIA (Vancouver)   June 2015  © Tyee Kenneth Fellows, 2015  ii Abstract The sampling of spatial and temporal visual information for all living organisms is finite. The speed and accuracy of visual systems contributes in part to an animal's sensitivity to visual motion. The ability to see swift motions is a crucial adaptation among bird species, which are high-speed animals that navigate in a three-dimensional world. Hummingbirds are emerging as important models for studying visual guidance in vertebrates. However, their sensitivity to visual motion remains unknown. A method that can be used to identify hummingbirds' sensitivity to visual motion is to characterise the spatial and temporal acuity of their visual system. It is hypothesised that temporal acuity scales positively with mass-specific metabolic rate and negatively with body size, and spatial acuity scales positively with body size. Given hummingbirds possess the highest mass-specific metabolic rates among vertebrates and the smallest body sizes among birds, I predicted that the Anna's hummingbird (Calypte anna) would have high temporal and low spatial acuities among bird species. Using operant conditioning and optocollic reflex experiments, I identified the temporal and spatial acuity thresholds of the Anna's hummingbird's visual system. Training hummingbirds to differentiate flickering from non-flickering lights at different rates and colours measured their temporal acuity for wavelengths of light between 380-750nm. Spatial acuity was measured by subjecting hummingbirds to rotating stimuli that varied in spatial frequency and luminance. The results indicate the hummingbird's temporal acuity is between 70 and 80Hz, and is unaffected by light colour (red, white, and ultraviolet). Spatial resolving capacity is measured to be between 4.95 and 6.18 cycles per degree in light conditions below 1.77 candela/m2. Therefore, my measurements of spatial acuity in the Anna's hummingbird provide support for a positive relationship with body size, and my measurements of temporal acuity do not provide support for a positive relationship with mass-specific metabolic rate. This study marks the first time both spatial and temporal acuity is measured in a sustained hovering animal.   iii Preface This thesis is an original intellectual product of the author, Tyee Fellows. All experimental procedures were approved by the UBC Animal Care Committee (certificate number: A10-0233) and conducted in accordance with guidelines followed by the Canadian Council on Animal Care. The experimental design and writing of this thesis was done myself with guidance from Dr. Douglas Altshuler. The illustration of the avian eye was adapted by Michela Sutter from the Manual of Ornithology: Avian Structure and Function (Proctor and Lynch, 1998). The experimental arena for measuring temporal acuity was designed and constructed myself. The arena for measuring spatial acuity was designed myself, but built by Bruce Gillespie and Vince Grant of the Zoology Mechanical Workshop. Ambient light measurements for both experimental arenas were collected using a Minolta LS-100 photometer, which was kindly provided by Dr. Deborah Giaschi and used by Kim Meier. Alexandra Ferland and Ricardo Pelai digitised the videos from the spatial acuity experiment. Statistical analysis for the spatial and temporal acuity dataset was done with assistance from Dr. Rosalyn Dakin. Specifically, she assisted in creating the scripts to perform the Dunnett's contrast test for the spatial acuity data and bootstrapping the confidence intervals in the temporal acuity dataset. All software programs using Arduino, MATLAB, PostScript, Python, and R languages were written myself, with the exception of two: fmf2lift and DLTdv5. The video recording for the spatial acuity experiments were converted from fmf to avi files using a Python script written by Paolo Segre called fmf2lift. The software used to track head position during the spatial acuity experiments used a MATLAB program called DLTdv5, written by Ty Hedrick (Hedrick, 2008).  The equation used to estimate hummingbird temporal acuity in the concluding chapter was provided by Kevin Healy himself (Healy et al., 2013).   iv Table of Contents Abstract ......................................................................................................................................... ii Preface .......................................................................................................................................... iii Table of Contents ........................................................................................................................ iv List of Tables ............................................................................................................................... vi List of Figures ............................................................................................................................. vii List of Equations ......................................................................................................................... ix List of Abbreviations .................................................................................................................... x Acknowledgements ...................................................................................................................... xi Dedication ................................................................................................................................... xii 1   Introduction ............................................................................................................................. 1 2   Research Chapter .................................................................................................................. 20      2.1   Introduction ................................................................................................................... 20      2.2   Materials & Methods .................................................................................................... 21           2.2.1   Birds ....................................................................................................................... 21           2.2.2   Temporal Acuity Arena ........................................................................................ 21           2.2.3   Temporal Acuity Training ................................................................................... 25           2.2.4   Temporal Acuity Experiment .............................................................................. 26           2.2.5   Spatial Acuity Arena ............................................................................................. 28           2.2.6   Spatial Acuity Experiment ................................................................................... 30  v           2.2.7   Data Analysis ......................................................................................................... 32                2.2.7.1   Temporal Acuity ............................................................................................ 32                2.2.7.2   Spatial Acuity ................................................................................................ 33      2.3   Results ............................................................................................................................ 36           2.3.1   Temporal Acuity .................................................................................................... 36           2.3.2   Spatial Acuity ........................................................................................................ 38      2.4   Discussion ....................................................................................................................... 45 3   Conclusion .............................................................................................................................. 49 Bibliography ............................................................................................................................... 58 Appendices .................................................................................................................................. 77      Appendix A: Controlling LED Flicker Rates in Arduino ................................................. 77      Appendix B: Randomising Temporal Experiments in R ................................................... 82      Appendix C: Programming in PostScript ........................................................................... 83      Appendix D: Randomise Spatial Acuity Experiments in R .............................................. 92      Appendix E: Statistical Analysis of Temporal Acuity Data in R ...................................... 93      Appendix F: Processing Spatial Acuity Data in MATLAB ............................................. 101      Appendix G: Statistical Analysis of Spatial Data in R ..................................................... 112      Appendix H: Dunnetts Contrast for Assessing Spatial Acuity in R ............................... 115      Appendix I: Pupil Diameter Analysis in R ....................................................................... 118   vi List of Tables Table 1. Dunnet contrasts for assessing hummingbird spatial acuity ................................... 44        Table 2. The scope of spatial and temporal acuities across multiple taxa ............................ 49  	       vii List of Figures Figure 1. Illustration of the avian eye ......................................................................................... 2 Figure 2. Optical limitations of the vertebrate eye .................................................................... 5 Figure 3. The Rayleigh criterion for spatial acuity ................................................................... 6 Figure 4. Vernier acuity task ....................................................................................................... 9 Figure 5. Graphical representation of temporal acuity .......................................................... 12 Figure 6. The apeture problem ................................................................................................. 14 Figure 7. The Hassenstein-Reichardt detector ........................................................................ 15 Figure 8. The gradient detector ................................................................................................ 17 Figure 9. Temporal acuity chamber ......................................................................................... 22 Figure 10. Spectral analysis of LEDs used during the temporal acuity experiments .......... 24 Figure 11. Spatial acuity chamber ............................................................................................ 29 Figure 12. Dots used for head tracking .................................................................................... 30 Figure 13. Representative beak angle traces for measuring spatial acuity ........................... 35 Figure 14. Influence of light colour on hummingbirds' critical fusion frequency ............... 37 Figure 15. Response averages to lights flickering at frequencies from 20 to 100Hz ............ 38 Figure 16. Smoothed traces of head angles for all tested spatial frequencies ....................... 39 Figure 17. Testing the influence of luminance on eliciting the optocollic reflex ................... 41 Figure 18. Identifying the overall spatial acuity threshold .................................................... 43 Figure 19. Forward-flight in hummingbird flight tunnel ....................................................... 47  viii Figure 20. Influence of luminance on hummingbirds' pupil diameter ................................. 53    ix List of Equations Equation 1. Angular separation using wavelenth of light and pupil diameter ....................... 5 Equation 2. Measuring image velocity using changes in luminance gradients .................... 17 Equation 3. Spatial acuity using body mass ............................................................................. 52 Equation 4. Spatial acuity using axial length of eye ................................................................ 52 Equation 5. Maximum critical fusion frequency using mass-specific metabolic rate .......... 56    x List of Abbreviations     UV Ultraviolet IR Infrared OKR Optokinetic response OCR Optocollic reflex OKN Optokinetic nystagmus UVS Ultraviolet sensitive SWS Short-wavelength sensitive MWS Medium-wavelength sensitive LWS Long-wavelength sensitive CFF Critical fusion frequency Hz Hertz RGC Retinal ganglion cell RF Receptive field LED Light-emitting diode  xi Acknowledgements This thesis would not be without the inspiration and motivation of all the wonderful people around me. I would first like to thank Professor Douglas Altshuler for having me as one of his graduate students. With his guidance, leadership, and big heart, I learned more than I ever could have imagined. Your patience and sense of trust allowed me to scientifically express myself, and I am in debt to you for that.  Next, I want to express my profound appreciation to the graduate students, post-doctoral fellows, and researchers of the Altshuler and Shadwick lab. Each one of you has left a lasting impression on me and I am thankful to have worked along side each of you. It gives me great satisfaction to acknowledge Dr. Linh Nguyen in this thesis. His supervision during my time with Parks Canada was life changing. My passion for science is a result of Dr. Nguyen and I am forever grateful. Michela Sutter, thank you for being someone whom I could always turn to. Finally, I would like to sincerely thank my family: Melinda Gillis, Terri Fellows, Christina Fellows, Topsy Cockney and Terry Fellows. The love and support I get from each of you brings me so much joy to my life. Pops (AKA, the true #1), thank you for being my inspiration.     xii Dedication    The cure for boredom is curiosity. There is no cure for curiosity. -Dorothy Parker 1 1   Introduction The vast majority of vertebrates possess image-forming eyes and specialized photoreceptors that transduce the wavelength, timing, and intensity of light reception. From this relatively sparse information, the vertebrate brain is able to extract and contextualise multiple features of the physical world including identity, colour, luminance, size, distance, orientation, and motion. Animals use this information in real time to efficiently exploit their environments. Vision is especially important to birds, which must safely navigate the three-dimensional world. The avian brain is highly specialized for vision, and the regions of the midbrain dedicated to processing visual information are relatively larger than in any other vertebrate group. The ability of a flying bird to resolve the features in its environment is dependent in part on the temporal frequency and spatial resolution of their visual system. These values have been measured for a handful of avian species, including the pigeon, which is an important model for biomechanical studies of forward flight. Hummingbirds are emerging as important species for studies of visual guidance because they are able to sustain hovering flight. However, the spatial and temporal resolution of hummingbird vision is unknown. The goal of this Master’s thesis is to fill this gap in our knowledge. This chapter introduces spatial and temporal acuity, and explains how these properties influence the motion perception of birds. I begin by describing the functional anatomy of the avian eye, and the unique features that distinguish it from the mammalian eye. In the following three sections, I define spatial and temporal acuity, and then describe how these two measurements influence perception of motion.  Functional anatomy of the avian eye The avian eye contains numerous features that are distinct from the mammalian eye. The avian eye is more asymmetric in shape and the hemispheric posterior region of the globe is  2 disproportionately larger than the anterior segment (Figure 1). Dividing these two regions is a structure unique to amphibians and birds, sclerotic plates (Martin, 1985). Sclerotic plates are small overlapping bones that functions to shape the globe, protect the eye from trauma, and act as a site for ciliary muscle attachment. The anterior pole of the vertebrate eye is the cornea, an avascular tissue that functions to freely transmit light into the anterior chamber. The curvature of the cornea is especially pronounced in birds, which increases the amount of peripheral light collected to nearly 180º in some groups such as herons (Martin, 2009; Martin and Katzir, 1994). One drawback of a highly curved cornea is that the convergence point is deeper (i.e., the focal length is longer), which all else being equal requires enlarged eyes. However, birds compensate with large circular lenses that act to shorten the focal length (Proctor and Lynch, 1998). Birds are especially good at visual accommodation because they have three specialisations of ciliary muscles that alter the curvature of the cornea and lens to further control the focal length: Crampton's, Müller's, and Brücke's muscles (Archer, 1999; Glasser and Howland, 1995). Inside the posterior chamber is a structure called pecten, a projection of vascularised tissue from the retina that functions to aid the choroid layer in supplying the retina with nutrients and transporting oxygen and carbon dioxide (Wingstrand and Munis, 1965). The avian retina is notable for having retinal specialisations like foveae, areas, and visual streaks that greatly increase visual acuity. Depending on natural history, birds may possess one or more of these specialisations in their retinas (Fernández-Juricic et al., 2011; Tyrrell et al., 2013).  Figure 1. Illustration of the avian eye. Transverse section through a Rock Dove's eye (Columba livia). [Adapted from (Proctor and Lynch, 1998) by Michela Sutter] corneaanterior chamberlenssclerotic platefoveaposteriorchamberciliary bodyiris/pupilsclerachoroidretinapectenoptic nerveThe Avian Eye 3 Although this may not be directly related to motion perception, it is notable that birds possess four distinct single cones, one double cone, and one class of rods that are tuned to capture wavelengths of light from the ultraviolet (UV) to the infrared (IR) (Bowmaker and Knowles, 1977; Bowmaker et al., 1997). Chickens (Gallus gallus) possess four single cones maximally sensitive to 415, 460, 505, and 562nm of light (Fager and Fager, 1981; Yen and Fager, 1984). These cones are named after the regions of the electromagnetic spectrum for which they are sensitive to - ultraviolet sensitive, short wavelength-sensitive, medium wavelength-sensitive, long wavelength-sensitive, respectively – and vary according to both habitat and phylogenetic relatedness (Hart, 2001). The peak sensitivity of the latter three cones exhibits only modest variation among most bird species, including, chickens, pigeons (Columba livia), zebra finches (Taeniopygia guttata), budgerigars (Melopsittacus undulatus), whooping cranes (Grus americana), and green-backed firecrown hummingbirds (Sephanoides sephaniodes) (Bowmaker et al., 1997; Hart, 2001; Herrera et al., 2008; Porter et al., 2014; Rubene et al., 2010). There is more variation among taxa in ultraviolet sensitivity. Double cones are the most common class of cones in fish, reptiles and birds and have a broad sensitivities with a maximum close to 570nm (Bowmaker et al., 1997; Pignatelli et al., 2010; Smith et al., 1985). Their function still remains unknown but is believed to be crucial receptors for luminance vision in bright conditions (photopic). Luminance vision describes differences in stimulus intensities and is used to encode features of motion, patterns and fine spatial detail (Lind et al., 2013). Rods are the primary photoreceptors used for light perception in dim conditions (scotopic) and show very little variation peak sensitivity in most bird species, 503nm (Hart, 2001). Despite some key differences in the eyes of birds and mammals, the optics of image formation is identical. A flower swaying in the wind reflects light that is transmitted to the eye, where useful information is sent to the brain for processing and interpretation. The optical system captures and compresses light for the retina.  In this process, it rotates two-dimensional images in the horizontal  4 and vertical plane. This inverted and flipped image is projected onto a given area of the retina of each eye. The flower's image stimulates photoreceptors and, in vertebrates, causes hyperpolarization. The number, class, and rate of hyperpolarized photoreceptors beneath an image ultimately define physical features of the flower like size, shape, colour, and motion. This process of image formation is what most vertebrates use to visualise and understand the physical world.   Spatial acuity Spatial acuity reflects the angular resolving capacity of the visual system. Vertebrates with high spatial acuities thresholds can visually delineate their immediate environment with fine detail, whereas those with low spatial acuity thresholds construct blurred visual representations of their surroundings. The degree to which vertebrates visually resolve their surroundings depends on how effective the optical system is at focusing light, and the density of photoreceptors and ganglion cells of the retina. Due to the imperfect nature of their optic system and the behaviour of light in media, there is uncertainty in resolving points in space. For instance, when a bird focuses light from a point-object at a great distance, it is imaged as a point-spread function at the back of the eye due to diffraction as light moves through the narrow pupil (Figure 2A). The superficial image of light produced on the retina by the point-object is termed 'Airy disc' and is the result of the point-spread function (Figure 2B).   5  Figure 2. Optical limitations of the vertebrate eye. (A) Schematic illustrating the effects of diffraction when resolving a point-object in space. (B) The 'Airy disc' is the pattern of light produced on the retina due to diffraction. The point-spread function illustrates the relative intensity and distribution of light particles when viewing a point object in space. [Adapted from (Kalloniatis and Luu, 2015)] The point-spread function is defined by the wavelength of light and the diameter of the aperture (i.e. pupil) of the optical system:    𝑎 =   1.22 ∗ 𝑙𝑑  (1) where a is the angular radius between the centre point and the inner dark band of the airy disc, l is the wavelength of light, and d is the diameter of the pupil. Because of this optical limitation, objects in space can only be differentiated from each other if the distance between two point-spread functions is sufficiently large. Rayleigh's criteria is a common and accepted principle that states two distinct objects can be resolved if the peak of the first point-spread function is at a distance equal to (or greater than) the angular radius of the second point-spread function (Strutt, 1879) (Figure 3A); if this condition is satisfied, the stimulus has the potential to be resolved by the observer and the limiting factor becomes retinal cell density. Conversely, the images of two objects visually fuse together when the angular separation between the two point-spread function peaks is shorter than the angular radius of one point-spread function (Figure 3B). object inspaceApoint-spread functionB‘Airy disc’aa 6  Figure 3. The Rayleigh Criterion for spatial acuity. Comparing the perceptual effects of observing two objects with large (A) and small (B) angular separation. [Adapted from (Kalloniatis and Luu, 2015)] The density of photoreceptors and ganglion cells of the vertebrate retina are also major limiting factors of spatial acuity. First purposed by Hermann von Helmholtz in 1867, two objects are discernable from each other if there is a row of unstimulated photoreceptors in between rows of stimulated cells (Helmholtz, 1867). If the space between two point-spread functions is large enough (i.e. Rayleigh's criterion is met) and there is a row of unstimulated photoreceptors between the two point-spread functions, then the two points are resolved by the observer. Animals that have a high density of photoreceptors and retinal ganglion cells have greater spatial acuities with respect to animals with lower retinal cell densities. Like humans, the density of photoreceptors in birds decrease with increasing eccentricities from the primary fovea (Curcio and Allen, 1990; Curcio et al., 1987; Dolan and Fernández-Juricic, 2010; Kram et al., 2010; Osterberg, 1935). However, some birds possess additional retinal specialisations (e.g. visual streaks, fovea, and areas) that are other localisations of photoreceptors and retinal ganglion cells that contribute to increasing spatial acuity. Therefore, depending on the retinal topography of a given avian species, the density of retinal cells lines in spaceline-spread functionperceptionlarge angulardisparity small angulardisparityA B 7 varies accordingly. In general, the retinal cell densities in birds decrease with increasing eccentricity from any retinal specialisations (Dolan and Fernández-Juricic, 2010).  Measuring humans' spatial acuity is a routine clinical practice that has been performed by eye care professionals for over 150 years (Snellen, 1862). There are two main types of spatial acuity measurements in humans: recognition and resolution acuity. Recognition acuity estimates spatial acuity by asking observers at a given distance to identify the smallest discernable object in visual charts like the Snellen, Bailey-Lovie, and Regan charts (Bailey and Lovie, 1976; Ferris et al., 1982; Regan, 1988; Snellen, 1862). Recognition acuity is commonly expressed as a Snellen ratio, which is ratio that compares the observer's spatial capacity to the average adults' spatial capacity. For instance, an observer with a Snellen ratio of 6/3 can resolve the same objects at 6m for what an average adult can resolve at 3m. However, these charts can only estimate spatial acuity if communication between the experimenter and observer can be established; when dealing with non-verbal subjects (e.g. infants), this method is not possible and instead resolution acuity experiments are performed. Resolution acuity estimates spatial acuity by using moving gratings of increasing spatial frequencies; the highest spatial frequency that fails to elicit a reflex response in the observer is identified as the spatial acuity threshold. The units for resolution acuity is typically cycles per degree (cycles/degree), which is the maximum number of paired black and white stripes (one pair of black and white stripes is considered one cycle) in one degree of the observer's visual field. Although both methods characterise an observer's spatial acuity, both use different responses (i.e. verbal versus reflex) and therefore are not equivalent. The average adult human has a recognition acuity with a Snellen ratio of 6/6 and resolution acuity of 30 cycles per degree (Campbell and Green, 1965).  Identifying the spatial acuity of non-verbal animals pose similar obstacles as measuring spatial acuity in human infants. However, non-human animals can be subjected to more invasive technique, which increase the number of ways to measure spatial acuity. The literature is rich with well- 8 established methods that circumvent the communication barrier between humans and other animals by taking advantage of the following: operant conditioning (Birch et al., 1983; Fox et al., 1976; Hahmann and Gunturkun, 1993; Jacobs et al., 1982; Jacobson et al., 1975; Macuda et al., 2001; Orlowski et al., 2012; Reymond, 1985; Reymond, 1987; Srinivasan and Lehrer, 1988; Timney and Keil, 1992), behavioural reflexes (Haug et al., 2010; Hecht and Wolf, 1929; Rinner et al., 2005; Schmid and Wildsoet, 1998; Thomas et al., 2004), electrophysiological recordings (Dubs, 1982; Gaffney and Hodos, 2003; Odom et al., 1983), and topographic estimations (Hart, 2002; Litherland et al., 2009; Petrowitz et al., 2000; Tyrrell et al., 2013; Wathey and Pettigrew, 1989).  Methods used to measure spatial acuity vary depending on the organism being tested. Animals that can be housed and trained easily tend to be subjected to operant conditioning, which requires extensive training and is the preferred method. Trained animals can discriminate horizontal from vertical stripes of different spatial frequencies; the highest spatial frequency at which animals begin to select randomly is denoted as the spatial acuity threshold. Animals that are not trainable or cannot be housed for long periods of time are typically subjected to reflex experiments, which requires no training. All vertebrates and invertebrates possess a characteristic optokinetic response (OKR) that helps to control and limit the amount of image motion on the retina by moving their head (optocollic reflex; OCR), eyes (optokinetic nystagmus; OKN), or both in the direction of object motion (Gioanni, 1988; Miles and Wallman, 1993; Steinman, 2004). Studies that implement this method estimate the spatial acuity threshold by identifying the highest spatial frequency that fails to elicit an optokinetic response in test subjects. For animals that need to be sedated because they are either too large or dangerous, electrophysiological recordings can be used to estimate their spatial acuity. A recording electrode is inserted on or within the eye (e.g. cornea, posterior chamber, retina) and the animal is presented with stimuli of various spatial frequencies. The lowest spatial frequency that yields no response is defined as the spatial acuity threshold. Finally, spatial acuity can be measured  9 from any deceased animal by topographically measuring the density of photoreceptors and retinal ganglion cells of their retinas. The measured density can predict the theoretical spatial acuity because the distance between retinal cells defines spatial resolving capacity. Animals with high retinal cell densities possess higher spatial acuities with respect to animals with lower retinal cell densities. Factors influencing spatial acuity are many. An animal's capacity to resolve their surroundings depends on two broad factors: environmental (e.g. quality of light) and morphological (e.g. aspects of the optical system). Not surprisingly, the quality of light impacts perceptibility and these factors are categorised by the fact that the observer has no control over the severity of each; these factors include illumination, contrast, and spectral composition. The latter set of factors influence spatial resolving power, but unlike light quality, these elements are defined by morphological limitations; these factors include refractive error, pupil diameter, retinal location, adaptive state, retinal cell density, and eye size.  It is noteworthy to mention that humans can identify tiny offsets in visual stimuli that are narrower than the width of a single photoreceptor and is called hyperacuity. First described by Gerald Westheimer in 1976, hyperacuity exemplifies that spatial acuity is not entirely limited by the size and spacing of photoreceptors and visual delineation of spatial features are also processed in higher levels of the brain (Westheimer, 1976). A measure of hyperacuity is Vernier acuity, which estimates the visual systems' ability to detect misalignment in vertical line segments (Figure 4) (Westheimer, 2012). In humans, Vernier acuity is measured to be approximately 60 cycles/degree, which is 30 cycles/degree greater than spatial acuity measurements using sinusoidal gratings. For Figure 4. Vernier acuity task. Alignment of vertical lines can be used to identify the hyperacuity of an observer. Horizontal offsets of A, B, and C represents a hyperacuity of 5, 30, and 60 cycles/degree when viewed 30 cm away. The upper lines in A, B, and C are shifted to the left with respect to the lower lines 5 30 60cycles/degreeA B C 10 birds, the only study that has measured Vernier acuity was done in the barn owls (Tyto alba) and was estimated to be 51.7 cycles/degree (Harmening et al., 2007).  Temporal acuity Temporal acuity is a measure of a visual systems' ability to discern one moment in time from the next. Vertebrates with high temporal acuities integrate time over fine timescales, which is thought to improve an animals ability to process motion (Fritsches et al., 2005; Hagura et al., 2012; Land and Collett, 1974), and its perception of the passage of time (Correa and Nobre, 2008). However, access to visual information at high temporal resolutions also increases the energetic demand of the neural system (Laughlin, 2001). A major avenue of metabolic expenditure in resting vertebrates and invertebrates is the activity of the sodium-potassium ATPase as it pumps ions to maintain concentration gradients across membranes following the generation of sensory signals (Ames et al., 1992; Howard et al., 1987; Nilsson, 1996). As a consequence, high temporal acuity is more energetically costly because more visual information is signalled per unit of time. To appreciate the temporal efficiency of vertebrates' visual systems, I will briefly summarise the series of events that need to occur to convert light into neural information. Perception of light starts with the absorption of photons by photosensitive cells in the retina. Rods are the most sensitive photoreceptors in vertebrate eyes and function in scotopic conditions, whereas cones are less sensitive and function in photopic conditions and are used for colour vision (Berg et al., 2002; Hecht et al., 1942). Rods are slender elongated cells that contain a photosensitive pigment called rhodopsin, a combination of the protein, opsin, and the chromophore, 11-cis-retinal (Berg et al., 2002). The amino-acid structure of rhodopsin differs among and within species and these slight structural variations influence the wavelength of light for which the photosensitive pigment is maximally sensitive to. The percentage of similarity between the chicken's and human's  11 rod photosensitive pigment is 87.3% (Okano et al., 1992). Rods are maximally sensitive to light of 500nm and when absorbed, the 11-cis-retinal group undergoes a conformational shift to form all-trans-retinal. This structural shift initiates a cascade of events that lead to hyperpolarisation of the membrane and results in cellular signalling (Berg et al., 2002; Wald, 1968). This signal propagates through one or both pathways known as the vertical organisation – photoreceptors, bipolar cells, and retinal ganglion cells – and horizontal organisation – horizontal cells, amacrine cells. The cellular signals eventually reach the visual forebrain for high-level processing. (Frisby and Stone, 2010).  Avian cones undergo a similar process, but differ in the band of wavelengths in which they are sensitive to (i.e. UVS, SWS, MWS, LWS for birds). These sensitivities are further tuned by the filtering function of oil droplets in each type of photoreceptor. Oil droplets act as selective long-pass filters that permits the transmission of light of their respective wavelengths (Bowmaker and Knowles, 1977; Porter et al., 2014). Each step in this process of phototransduction requires some time, which introduces a limitation to the speed in which visual information is processed. The perception of time is accordingly influenced by morphological and physiological variation among and within species.  The primary method to quantify the temporal resolving power of animals' visual systems is to identify the lowest rate at which a flickering light appears continuous, otherwise known as the critical fusion frequency (CFF). The measure of flicker rate is cycles per second or Hertz (Hz). When a light flickers at a rate less than an animal's CFF threshold, the light appears to flicker because the time between the ON-cycles is longer than the time it takes an animal to process an interval of time (Figure 5A). If the light flickers at a rate equal to (or greater than) the animal's CFF, the ON-cycles effectively fuse together and appear continuous (Figure 5B).    12  Figure 5. Graphical representation of temporal acuity. Comparing the perceptual effects of observing a flickering light at low (A) and high (B) rates.  (A) Flicker rates less than the CFF will are perceivable because there are intervals of time where the visual system receives no input from the light (e.g. t1 to t2). (B) Flicker rates equal to (or greater than) the CFF will appear continuous because every interval of time receives visual input from the light. There are two primary methods to identify an animal's CFF threshold: behavioural (Coile et al., 1988; Correa and Nobre, 2008; Regal, 1980; Rinner et al., 2005; Rubene et al., 2010; Srinivasan and Lehrer, 1984; Williams et al., 1985; Wolf, 1933) and electrophysiological (Dodt and Wirth, 1954; Fritsches et al., 2005; Howard et al., 1984; Kalinoski et al., 2014; Laughlin and Weckström, 1993; McComb et al., 2010; Wells et al., 2001). Behavioural assessments of temporal resolution utilize operant conditioning as a means to quantify the CFF threshold, wherein animals are conditioned to differentiate flickering from non-flickering stimuli (e.g. light, moving grating). Animals are then subjected to a set of conditions that test different flicker rates and the frequency where animals fail to discriminate the flickering from the non-flickering stimuli is identified as the CFF threshold. Studies that take the electrophysiological approach characterised the CFF threshold of photoreceptor and their connecting retinal ganglion cells by using electroretinograms. This technique positions the recording electrodes in or on different parts of the animal's eyes (e.g. cornea, posterior chamber, or retina) and monitors the electrical signals from proximate cells to temporal frequencies of different rates. The lowest flicker rate recording that is indistinguishable from the control frequency (i.e. non-flickering light) is identified as the CFF threshold.  low flicker rate high flicker rateA BONOFFONOFFflickerrateONOFFperceptionsamplingrate(CFF)time (msec)ONOFF ONONOFFflickerrateONOFFperceptiontime (msec)t1 t2samplingrate(CFF) 13 Like spatial acuity, temporal acuity is highly variable among animals and can depend on morphological and environmental factors. Intrinsic qualities that limit an animal's CFF include eye size, photoreceptor composition, and retinal cell ganglion density; extrinsic factors that effect an animal's CFF threshold is stimulus luminance, spectral composition, retinal position, stimulus size, and adaptive state of eye.  Relationship of spatial and temporal acuity to motion perception As intuitive as it may be to visualise motion, describing the method used by visual systems to perceive motion is a contentious issue with a number of purposed mechanisms. In this section, I define the structural unit necessary for motion perception, the receptive field. Thereafter, I summarise two popular algorithms that make use of multiple receptive fields to estimate aspects of motion: Hassenstein-Reichardt detector (also known as Reichardt detector, Reichardt correlator and elementary motion detector) (Reichardt, 1961; van Santen and Sperling, 1985) and gradient detector (Fennema and Thompson, 1979; Haag et al., 2004; Hildreth and Koch, 1987; Limb and Murphy, 1975; Marr and Ullman, 1981; Srinivasan, 1990). I conclude highlighting how these two algorithms may be influenced by spatial and temporal acuity. In the visual system, receptive fields are volumes in visual space. Depending on the level of the visual system, the size of the receptive field changes. The human retina possesses approximately 120 million rods and 6 million cones (Frisby and Stone, 2010). Each photoreceptor has an individual receptive field that captures light and conveys visual information to retinal ganglion cells (RGC) downstream of the visual pathway. Not all photoreceptors have a 'direct' connection to a single RGC. The human retina is estimated to have 1.2 million RGCs, which means there are roughly 100 photoreceptors for every RGC (Frisby and Stone, 2010). As a result of this cellular arrangement, visual information is compressed at the level of RGCs. The area around the fovea nearly has a 1:2  14 ratio of photoreceptors to RCGs, which improves spatial acuity because little image compression results (Curcio and Allen, 1990; Frisby and Stone, 2010; Perry and Cowey, 1988; Schein, 1988). The collection of photoreceptors connected to each RGC is called also called a receptive field and can be thought of as the RGC receptive fields. These RGC receptive fields influence spatial acuity (Devries and Baylor, 1997; Nelson, 2007), and can collectively be used to estimate optic flow (Burr et al., 1998), and aspects of object motion (McDermott et al., 2001). It is noteworthy to mention that RGC receptive fields are subject to the aperture problem because of their small size. The aperture problem is a well-known phenomenon in psychophysics that states the motion of an edge seen through an aperture is inherently ambiguous (Figure 6A) (McDermott et al., 2001). As a result, contours of different orientations moving at different velocities can create identical responses through apertures (Figure 6B and 6C).   Figure 6. The aperture problem. Graphic illustrating the ambiguity in knowing the global motion of a moving object when viewed through an aperture. (A) The moving edge appears to be moving diagonally, from the top-left to bottom-right. However, this edge can be moving either rightward (B) or downward (C) and produce an identical response through the aperture. [Adapted from (Frisby and Stone, 2010)] ABCt1 t2 t3 t4 t5 15 Therefore, a single RGC receptive field is insufficient in determining global motion of objects due to the aperture problem. One mechanism to overcome this problem is to monitor multiple RGC receptive fields in parallel to estimate an object's global motion.  In humans this is believed to be accomplished at the level of the V5/MT in the primary visual cortex and higher (Chapman et al., 2004; DeYoe and Van Essen, 1988).  One of the primary methods to overcome the computational problem of sensing motion may be formulated by monitoring the change in an image's position over time. A neural algorithm for estimating motion was first described by Bernhard Hassenstein and Werner Reichardt in 1956, and has since been called Hassenstein-Reichardt detector or Reichardt detector (Figure 7) (Hassenstein and Reichardt, 1956). The Reichardt detector, at it's simplest, is the spatial separation of two distinct receptive fields (RF1 and RF2), of which one field's response is delayed (α) with respect to the other, and are monitored by a motion sensitive cell (M-detector). Whenever an image feature is above a RF, the RF's pathway is activated and positively stimulates downstream elements. In Figure 7, motion is detected when an image feature moves from RF1 to RF2 in given amount of time. The time period needed to pass is defined by α-coefficient of RF1's pathway, which delays the transmitted signal from RF1 to the M-detector. When the image feature arrives at RF2, positive input signals are instantly sent to the M-detector. If the speed of the image feature is coincident, the M-detector will receive positive inputs from both RF1 and RF2 simultaneously. In this event, the M-detector will be maximally stimulated and signal further elements that Figure 7. The Hassenstein-Reichardt detector. Schematic of the basic Reichardt detector. RF1 and RF2 are receptive fields, α-coefficient is a delay function, and the M-detector is a motion sensitive cell.  RF1 RF2αMDetector(AND gate)+ +outputThe Hassenstein-ReichardtDetector 16 motion has taken place.  The Reichardt detector possesses two characteristics for processing motion. First, this detector is maximally sensitive to a particular speed. Image features that are slower or faster lead to a weaker coincidence in signals at the M-detector, which consequently lowers the output signal by the M-detector. The degree to which the signal is lowered depends on the response function of the M-detector, which is a necessary feature of all sensory systems. Second, this detector is sensitive to motion in a preferred direction, rightward. Image features that move in the left direction will stimulate RF2 followed by RF1, which lead to asynchronous signals at the M-detector. Signals from RF2 arrive at the M-detector instantaneously, while RF1 signals are delayed by the α-coefficient. To monitor all possible directions, Reichardt detectors are paired with each unit being sensitive in the opposite direction.  One of the key components in Reichardt detectors is the M-detector. This cell outputs a signal when it receives input from RF1 and RF2 concurrently. Because of this condition, it functions as a biological 'AND' gate, where RF1 and RF2 signal must be present to perceive motion. The AND gate is one of three elementary logic gates (AND, OR, NOT) used in all computers to solve any logical problem. A multitude of Reichardt detectors have been hypothesised and tested for that use different combinations of biological logic gates, receptive fields, and M-detector cells to perceive motion. A famous study by Barlow and Levick shows the possible existence of exclusive OR gates in the retinas of rabbits (Barlow and Levick, 1965). Their purposed Reichardt detector (inhibitory veto method) would allow the rabbit to be optimally sensitive to motion at any speed. Many of the cells of the Reichardt detector circuit have recently been described in the fruit fly Drosophila melanogaster using genetic targeting of specific cells lines (Bahl et al., 2013; Behnia et al., 2014; Joesch et al., 2010).  17 In humans, the M-detector of a single Reichardt detector is believed to be the direction-selective neuron found in the V1 (primary visual cortex) that is sensitive to local motion (DeYoe and Van Essen, 1988). However, the receptive field of single M-detectors is so small, it suffers from the aperture problem and fails to identify the global motion of objects. To identify the global motion of objects, local motion inputs from multiple Reichardt detectors are projected and integrated in the MT/V5 to estimate global motions (Chapman et al., 2004; DeYoe and Van Essen, 1988). Neurons of the MT/V5 have large enough receptive fields that are not limited by the aperture problem.  The second algorithm purposed to solve motion perception is called the gradient detector (Figure 8). First hypothesised by Limb and Murphy in 1975 (Limb and Murphy, 1975), the gradient detector relies on the relationship between spatial and temporal gradients of image intensity. When an image feature motions across the retina, it's luminance changes in space and time.  By monitoring these changes, the speed and direction of an image feature can be acquired. In Figure 8, motion is detected when the image feature moves from one receptive field to the next, RF1 to RF2. During this action, the temporal luminance gradient (δI/δt) is divided by the spatial luminance gradient (δI/δx) to yield an estimate of image velocity (Equation 2). The temporal luminance gradient is measured after RF1 and is the change in luminance over time at RF1, while the spatial luminance gradient is the difference in relative luminance between RF1 and RF2.   𝑣 = (δI/δt)(δI/δx) =   δx/δ (2) Figure 8. The gradient detector. Schematic of the basic gradient detector used to detect motion. Motion is detected when an image features moves from RF1 to RF2 [Adapted from (Haag et al., 2004)] RF1 RF2The Gradient DetectorδIδtδIδxoutput 18 where v is the image velocity, δI is the change image luminance, δt is the time interval between the two measurements, and δx is the distance between the two RFs.  In contrast to the Reichardt detector, the gradient detector generates a output signal that is directly proportional to the image velocity and is independent of pattern properties (Borst, 2007; Fennema and Thompson, 1979; Haag et al., 2004; Srinivasan, 1990). These two features may be utilised by invertebrates with compound eyes because they are able to extract more information from an equally complex system like the Reichardt detector (Srinivasan, 1990). However, one major limitation to this motion detector is its dependence on image quality. If the change in the spatial luminance gradient (δI/δx) is small or zero (i.e. image is uniform in luminance), the calculated image velocity will be very noisy and introduce uncertainty in motion perception (Borst, 2007; Haag et al., 2004; Valois, 2000). Interestingly, Potters and Bialek suggests that these two detectors are not qualitatively different, but rather two limits to a smoothly varying family of algorithms that adapt to different image conditions (Potters and Bialek, 1994). The Reichardt detector is favoured when the image with high amounts of noise, whereas the gradient detector is optimal for images with minimal amounts of noise.  Both of the mentioned algorithms rely on responding to stimuli varying through space and in time. The Reichardt detector monitor motion by measuring the change in image position over time, whereas the gradient detector measures the change in luminance gradients over space and time. The performance of each algorithm is dependent on the spatial and temporal resolving power of visual systems. For instance, animals with high spatial acuities possess a greater density of RGCs, increasing the number of possible detectors (both Reichardt and gradient) in an area of the retina. This density increase would give animals more spatial information per unit of time, allowing them to better perceive motion. Likewise, organisms with high temporal acuities sample more information  19 per unit time, and therefore, increase the amount of visual information available to the animal for tasks like motion perception. The degree to which spatial or temporal acuity influences motion perception is remains unknown. But, it is likely that these measures are direct or indirect indicators of relative capabilities to detect motion. Previous comparisons of visual acuity across animals have lead to the hypotheses that spatial acuity is positively correlated with both body size and eye's axial length (Kiltie, 2000) and that temporal acuity is positively related to metabolic rate and negatively related to body size (Healy et al., 2013). The first motivation for this study was to test these hypotheses with hummingbirds, which are among the smallest body sizes and highest mass-specific metabolic rates of vertebrates (Suarez, 1992). I accordingly predicted that hummingbirds would have high temporal acuity and low spatial acuity relative to other birds. A second motivation was to obtain hummingbird acuity data that will be critical for interpreting the results of visual guidance and visual neuroscience studies. Visual guidance is a growing field of research that has primarily used invertebrates as its model organism. Hummingbirds are emerging as important models for studying visual guidance in vertebrates. Our laboratory is also now making electrophysiological recordings from neurons that respond to visual motion in hummingbirds. By characterising the spatial and temporal limits of hummingbirds' visual system, we can begin unify visual guidance with the response properties of visually sensitive neurons, which should allow for a new understanding of how visual acuity influences motion perception.    20 2   Research Chapter 2.1   Introduction Birds are highly visual animals, which allow them to efficiently forage for food, defend territories from conspecifics, court potential mates, and safely navigate their aerial landscape. Performing these tasks in an efficient manner is hypothesized to be a function of their high capacity for detecting visual motion. The performance of a visual system can be described in part by measuring spatial and temporal acuity. These features influence motion sensitivity because visual stimuli vary over both space and in time. (Fahle and Bach, 2006). Visual acuity data have been measured primarily in forward-flying birds, with the exception of one transient hoverer, the American kestrel (Falco sparverius) (Gaffney and Hodos, 2003). How these values range for hovering birds like hummingbirds is unknown. This study aims to address this void by characterising the spatial and temporal acuity of the Anna's hummingbird (Calypte anna). Acuity data also represent important background information for studies of visual guidance. Hummingbirds are notable for being the only birds that can sustain hovering (Altshuler and Dudley, 2002). Hovering is a visually demanding flight manoeuvre that is strongly influenced by motion (Goller and Altshuler, 2014). Hummingbirds control their hovering position by stabilising motions in their visual field. Their pronounced sensitivity to visual motion may be reflective of high temporal acuity. Because hummingbirds are emerging as an important model for visual guidance in birds, the results of this thesis will be highly informative for future work with this model organism. The Anna's hummingbird was selected for this study for multiple reasons. First, they are a species of hummingbird whose visual system as yet to be characterised. This study marks the first time spatial and temporal acuity data are obtain from the Anna's hummingbird. Second, hummingbird research is becoming more common and the species typically used for experimentation  21 is the Anna's hummingbird. Therefore, knowing their spatial and temporal acuities will prove to be useful for future vision studies. Finally, the Anna's hummingbird is a species of hummingbird that is readily available around the campus of the University of British Columbia. Obtaining them for experiments was an easy task that accelerated the process of data collection. In this study, I identify the spatial and temporal acuity of Anna's hummingbird using accepted behavioural techniques. The spatial acuity is assessed using the optocollic reflex (OCR), and the temporal acuity is identified through operant conditioning.  2.2   Materials & Methods 2.2.1   Birds The same six adult male Anna's hummingbirds (Calypte anna) were used for both spatial and temporal acuity experiments over the course of eight weeks (December 23, 2014 – February 17, 2015). All of the birds were caught on the campus of the University of British Columbia between October 14 and November 13, 2014. Each bird was housed is a separate cage (910mm length, 610mm width, 610mm height) with two hanging artificial feeders made from a 10ml plastic syringe filled with either 15% sucrose solution (1.5g in 10ml of water) or 13% Nektar-plus.  2.2.2   Temporal Acuity Arena The experimental arena was a modified version of cages used to house the birds in the vivarium (910mm length, 610mm width, 610mm height), and included an array of four light emitting diodes (LEDs, 5mm diameter), four feeding ports, five dividers, a perch, and a network camera (Figure 9).     22  Figure 9. Temporal acuity chamber. Aerial perspective of the experimental arena showing the arrangement of the perch, network camera, syringes, dividers, and LEDs with respect to each other. Each LED-syringe port was wide enough (18cm) to allow hummingbirds to comfortably hover between the dividers (12cm wingspan). The birds were visually isolated from external stimuli by having three of the four walls of each cage covered with black poster paper and the fourth uncovered side was orientated towards the wall of the room. The front of each cage had eight cut out holes that allowed feeders and LEDs to be affixed into the wall of the chamber: four 20mm diameter syringe ports and four 5mm diameter LED ports. Each LED port was paired with a syringe port (LED-syringe port) and positioned in a horizontal line across the top face of the cage. To the left and right of each LED-syringe ports were two clear acrylic dividers (100mm length, 6mm width, 450mm height). These dividers were 18cm55cm10cm61cm91cm CameraPerchAcrylicDividerLEDLateralLeftSyringeMedialLeft MedialRight LateralRight 12cmMicrocontrollerTeensy++ 2.0 23 incorporated into the final setup to prevent the bird from quickly transitioning from one port to another. With this arrangement of material, each feeding port had the similar characteristics, which minimized the chance of birds favouring one LED-syringe port over another. In total, four identical feeding ports were available for the bird to choose and feed from – lateral left, medial left, medial right, and lateral right. A network camera (DLink DCS-933L) was affixed to the upper-back corner of each cage and orientated towards the feeding ports. This camera delivered a live video feed that allowed for direct observation of the bird's behaviour throughout the entire experiment. This feature eliminated human-bird interactions during the course of the experiment. Each LED array was controlled using a programmable microcontroller (Teensy++ 2.0 and Arduino Uno). An Arduino-based program was written to independently control the flicker-rate of each LED used in the chamber (Appendix A). For all frequency treatments, three control LEDs flickered at a rate of 10,000Hz and the one test LED flickered between 20Hz and 100Hz, depending on flicker frequency treatment. Each microcontroller used a 16MHz crystal, which allowed for a maximum obtainable flicker rate roughly 1,000,000Hz. All LEDs flickered with a square-wave function that had a duty cycle of 50%, keeping luminance constant between all LEDs for all frequency treatments, regardless of flicker frequency. Using square-wave functions to measure CFF was an arbitrary decision because the effects of using sine and square-wave functions as stimuli to measure CFFs in humans (Tyler, 1987) and chickens (Rubene et al., 2010) have been shown to yield similar results. The relative position and flicker-rate of the test LED was randomized for all birds during all of the experiments. The presentation order was determined using a custom script in R (Appendix B).  Each chamber in the temporal experiment was illuminated with a compact fluorescent lamp (Ultra mini 13W: with 830 lumens, 2700K output and 120V, 210mA, 60Hz input) from above the  24 chamber. Light levels in the arenas were manually measured using handheld photometer (Minolta LS-110) positioned 1m away from the interior walls. Average light levels fluctuated between 10.2 and 16.2 candela/m2, with an average of 13.8 ± 2.1 candela/m2. The spectral emissions from all the lights used in this experiment were measured using a handheld spectrophotometer (USB 2000 Spectrophotometer) positioned 5cm away from each light. Three nearly identical chambers were constructed for this experiment. The only differences among cages were the colours of LEDs used: red (605-660nm, 374±39candela/m2), white (420-740nm, 980±110candela/m2), ultraviolet (380-425nm, 120±15candela/m2) (Figure 10).   Figure 10. Spectral analysis of LEDs used during the temporal acuity experiments. Measurements were taken in a day-lit room, which was representative of the light present during experimentation. Consequently, there is considerable noise in the infrared portion of the spectrum because of infrared's ability to permeate walls. The device used measure irradiance was a USB 2000 spectrophotometer and was positioned 5cm away from each light source. 300 400 500 600 700 8000.00.51.01.52.02.53.0wavelength (nm)irradiance (uW/cm2/nm)visible spectrumredwhiteultraviolet 25 2.2.3   Temporal Acuity Training All individuals underwent the same training protocol. The first goal of training was to condition the birds to make the association between flickering light and food. This association was accomplished by presenting the bird with four syringes paired with four illuminated LED lights.  Three syringes contained water (penalty) and paired with the control flickering LED (10,000Hz), and one 30% sucrose syringe (reward) was paired with the training flickering LED (20Hz). The training frequency was chosen to be 20Hz because it was the frequency that successfully trained the first bird during preliminary experiments. The reward syringe was always paired with the training frequency, which served to reinforce the association between flickering light and food throughout training and experiments. The second goal of training was to condition birds to feed immediately from syringes when presented. On the first day of training, birds were conditioned to make the link between the flickering light and food by having sugar syringe paired with the training frequency and provided ad libitum in a consistent location for short periods of time (10-60 minutes each; randomized using R). After each period, the location of the reward syringe was switched to a random port (randomized using R) and remained there until the next rotation began.  On the second day of training, birds were reintroduced to the same temporal cage, but all feeders were initially covered for 30 minutes to ensure the birds would feed when the feeders were presented. Afterwards, in 10-minute intervals the test and control LEDs were turned on and the four syringes were simultaneously presented into the chamber. The bird would have a single attempt to feed from the ports (docking and feeding from a feeder). Correct choices corresponded to feeding from the sucrose syringe below the training LED. Incorrect choices led to sampling from a water syringe below a control LED. Once the bird undocked from the chosen port, LEDs were turned off and the feeders were quickly removed. Incorrect choices result in no sugar intake for at least 20  26 minutes. Birds were kept in this phase of training until they successfully chose the correct LED-syringe port 80% of the time after a full day of training.  Birds monitored for the entire day (approx. eight hours) and weighed before and after to ensure that they were feeding and did not loose weight during training. The LED colour that a bird experienced during training depended on the availability of chambers, and at least one of each of the six birds was trained with each LED colour.  2.2.4   Temporal Acuity Experiment This experiment was designed to identify hummingbirds' CFF and investigate the influence of spectral properties on hummingbirds' CFF. This was accomplished by observing the behavioural response of hummingbirds that were trained to identify the flickering lights from non-flickering lights for different LED colours at different frequencies. The first set of frequency treatments subjected the hummingbirds to six trials of nine different frequencies: 20, 30, 40, 50, 60, 70, 80, 90, and 100Hz. To increase the resolution for identifying the CFF for each bird-colour combination, each bird was tested with 16 additional trials after the first 54 trials; nine of which were the previously tested frequency treatments (20-100Hz), and seven trials at a new frequency that depended on results from the first 54 trials. To identify the value for this new frequency, the response to each frequency-colour combination was plotted against test frequencies as the first stage of analysis to identify the apparent CFF. The lowest frequency that was less than 50% correct was noted as the apparent CFF. The new frequency treatment was 5Hz less than the apparent CFF. For example, if the apparent CFF for a given bird was 80Hz for white LEDs, then the new tested frequency would be 75Hz. The bird's ability to differentiate test frequencies from the control frequencies was evaluated and its CFF was estimated for each LED colour. In total, each bird underwent 70 trials and experienced ten different frequencies.  27 Individuals started the experiment in the same temporal cage they used during training and monitored for the entire day (approx. 8hours). Birds were weighed and released into their cages and allowed to freely fly for 30 minutes while the feeders were covered; this was done to ensure feeding occurred whenever presented with syringes. Next, in 10-minute intervals LEDs were turned on and four syringes were presented to the birds via the syringe ports. If the bird chose the test LED (20-100Hz depending on frequency treatment), they were allowed to feed from the 30% sucrose solution below the chosen LED; if the bird selected the control LED, they were allowed to feed from the water syringe below. Once they had undocked from the chosen syringe, the LEDs were turned off and all of the syringes were removed before they could attempt to feed from any of the other three syringes. The birds were allowed only one attempt to feed from the correct port in each trial. If birds did not attempt to feed within one minute after being presented with the syringes, the LEDs were turned off and the syringes were all removed. At the end of each experimental day, birds were reweighed and released in their cages in the vivarium. This protocol was repeated each day until the results from all 70 frequency treatments were collected from the six birds for each LED colour. For each trial, the LED-syringe port the hummingbird selected was recorded as a binary response, correct or incorrect. Based on this setup, if a bird was choosing randomly they should correctly select the correct LED-syringe port 25% of the time. Therefore, LED flicker rates that led to responses averages that were not significantly different from 25% were assumed to be visually unresolvable.  The order of the tested frequencies was arranged in random order using R, whereas the location – lateral left, medial left, medial right, lateral right - was organized in a pseudo-random order using R (Appendix B). Organizing the test LEDs location in a pseudo-random order was accomplished by ensuring each location appeared an equal number of times; for 70 trials, the test LED was found at  28 each port at least 17 times. This was done to ensure each LED-syringe port had the potential to be visited an equal number of times.  Whenever birds were introduced to the experimental setup, they were reminded to feed from the flickering LED at 20Hz. If they successfully chose the correct LED-syringe twice, they immediately started/resumed the experiment; if they missed one, they were held at this stage until they correctly selected the test LED four times in a row.  When a given bird was finished with the 70 trials for a given colour, the bird was moved to a new temporal acuity chambers that had a colour the bird had not yet experienced. If all chambers were occupied, then the bird would be returned to the vivarium and replaced with a naïve bird for further testing. In total, six birds were tested for each bird-colour combination, giving a total of 1,260 responses for the entire experiment. 2.2.5   Spatial Acuity Arena A rotating drum (0.5 radius, 0.5m height) with different black and white gratings were used to determine the spatial acuity of Anna's hummingbirds (Figure 11). Rotation of the drum was controlled using a serial arrangement of a high-speed alternating-current motor (Baldor AP7402, 3450rpm) and a gearbox (Dayton 6Z907A, 546:1 gear ratio). The floor of the drum was made of medium-density fibreboard and cut into a 1m-diameter circle. The walls of the drum were constructed from two sheets of corrugated plastic board (1.57m length, 4mm width, 0.5m height) that were screwed into the side of the fibreboard circle. The walls of drum were shaped into a circle using four ratchet straps wrapped around the circumference of the drum distributed equally along the vertical axis.  A scaffold of 80/20® (25-2525 Series) was constructed around the rotating drum to support a large black theatre curtain, two lighting fixtures, one high-speed camera, and the immobilized bird. The theatre curtain was stretched over the entire scaffold to visually isolate the bird from external  29 visual cues and prevent external light from entering the experimental chamber. The two light fixtures were attached to inside of the scaffold and connected to a potentiometer (150kOhm, linear), which controlled the luminance to the inside of the rotating drum. Three light levels were measured from the white stripes of the stimuli to determine the effects of luminance on spatial acuity: low (0.53±0.06 candela/m2), medium (1.77±0.16 candela/m2), and high (32.0±3.1 candela/m2). The scaffold suspended the bird in a handcrafted foam harness from above, which kept the bird stationary during all spatial acuity treatments. The bird was suspended 20cm from the floor of the drum, and centered (0.5m from drum wall).  The square-wave gratings were printed sheets of 30lb paper (3.21m length, 0.5m width) with images of straight black and white stripes of equal sizes oriented in the same axis as the width of paper (i.e. vertical with respect to the bird). Images were created using PostScript language (Appendix C) and printed with a 44-inch high-resolution plotting printer (HP Designjet T1120ps). Seven sheets of paper were printed: six test sheets with images of black and white stripes of different sizes (3.5, 2.5, 2, 1.5, 1.25 and 1 points) and one control sheet with no stripes that was coloured with 50% grey. The printed stripes had sizes in points (0.353mm per 1 point) because PostScript's unit of distance are points. The size of stripes were chosen in increments of fractional point sizes to evenly test a range of spatial frequencies from 3.53 to 12.37 cycles/degree. Based on the bird's distance from Figure 11. Spatial acuity chamber. The luminance of the drum (radius=0.5m; height=0.5m) was controlled by using two LED lamps and the suspended bird was recorded from above using a high-speed camera (100Hz). The wall of the rotating drum was lined with treatments of different spatial frequencies to identify the spatial acuity threshold. The drum could be rotated in the left or right direction. 0.5mleft right0.5m100HzLEDlamp 30 the wall and the size of stripes experienced, the bird was subjected to images of six spatial frequencies: 3.53, 4.95, 6.18, 8.25, 9.89, and 12.37 cycles/degree.  Each printed sheet was laminated with 0.3mm matte finish film that provided durability and rigidity to each sheet. The edges of laminated film were cut to the edge of the paper, leaving a borderless laminated image of black and white stripes. During experiments, one of these sheets was inserted into the drum and taped to the walls using double-sided tape. The length of each laminated sheet was slightly longer than the circumference of the drum, which insured black and white stripes wrapped around the circumference of the drum. At the point where the two ends of the sheets met, the top sheet was positioned in such a way that stripes seamlessly transitioned into the stripes of the other side of the sheet. This boundary was joined using double-sided tape. The bird's beak angle was recorded in 2-dimensions (x and y plane) from above using a single Prosilica G680 camera (800x600 resolution at 100 frames per second). The bird's head angle was measured using five small white dots that were created using electrical tape and liquid whiteout. One dot was taped to the end of the beak and four dots were attached to the crown of the bird at the start of each experiment (Figure 12). The bird’s beak angles were determined from using the x and y pixel coordinates of each white dot obtained by DLTdv5 (Hedrick, 2008), and calculated by finding the subtended angle between the four white spots on the crown and the one white spot on the beak. A right-angle calibration object was present in all recordings to serve as a reference angle.  2.2.6   Spatial Acuity Experiment In the morning of each day, the drum was lined with a new stimulus sheet. A randomly chosen bird was weighed and moved to the drum for testing. The bird was restrained using a strip of tensor 12345Figure 12. Dots used for head tracking. Aerial perspective of a hummingbird's cranium showing the position of white spots used for tracking head motions    31 elastic bandage, which was tight enough to prevent flapping, but loose enough to allow normal breathing and head motion. The strips of electrical tape were placed on the beak and crown of the bird and secured into the suspended harness in the middle of the drum. The bird was held in this position until the experiment was complete (approx. 30 minutes). Once the experiment finished, the bird was removed from the harness and returned to the vivarium to be reweighed and released in its cage. These steps were repeated for the remaining untested hummingbirds, and then the stimulus sheet was removed and replaced with a new one. The order of birds tested was randomized for each spatial acuity treatment using R (Appendix D). Birds were tested with six different rotational directions and light levels: left-low, right-low, left-medium, right-medium, left-high, and right-high. Before starting a trial with a new light condition, birds were held in the new luminance for two minutes to allow their eyes to adjust. For each spatial acuity treatment, a 30-second video was recorded using the high-speed camera above the secured bird. Videos were recording only if the bird's head was level with the stimulus and centered at the start of recording. If the bird oscillated its head at exceptionally high angular velocities during recording, the video was terminated and the spatial acuity treatment was repeated. The drum rotated with a rotational period of 72 seconds. Given the bird is 0.5m away from the walls of the drum, the stimulus appeared to rotate with a velocity of five degrees/second. This rotational speed was chosen because the stimulus needs to be fast enough to elicit the optocollic reflex, but slow enough not to surpass the bird's CFF. When black and white stripes are in motion, a point in a bird's visual field experiences cycling of black and white stripes, yielding a theoretical temporal frequency. By rotating the drum at five degree/second, the smallest stripes would have an apparent temporal frequency of 62Hz. Based on preliminary results from the temporal acuity experiments, all spatial frequency treatments has the potential to be seen. If the optocollic reflex is  32 not observed for a given spatial frequency, the absence reflects the limitations associated with spatial and not temporal acuity.   All individual were subjected to the same experimental protocol. Six adult male hummingbirds were tested with different seven different stimuli, three different light conditions, and two rotational directions, giving a total of 252 recordings for the entire experiment 2.2.7   Data Analysis 2.2.7.1   Temporal Acuity Data Processing During testing, the light colour, treatment location and frequency, and behavioural response were recorded by hand for six hummingbirds. These results were saved to a single comma-separated value file and transferred to R [Version 98.977, (R Core Team, 2015)] for statistical analysis (Appendix E). Statistical Analysis To assess whether light colour has an effect on hummingbirds' critical fusion frequency (CFF), the CFFs for each tested light colour (red, white and ultraviolet) were identified for the six tested birds, giving a total of 18 CFF values. The criterion used to identify the CFF for each colour was the lowest tested frequency that had a response average less than 50% correct. This threshold was chosen as a conservative estimate of a bird's CFF for a given light colour. These CFF values were averaged for each colour and a stratified bootstrap with 10,000 iterations was performed to find the 95% confidence intervals of the grand mean for each colour. The 95% confidence can be used to determine whether the grand means of each colour different significantly if no overlap is observed. To definitely determine whether light colour influences the CFF values, the grand means were tested for significant differences with a one-way analysis of variance (ANOVA).   33 Upon finding that there was no significant different in CFF values for the different light colours, I merged the data from all colours to determine the overall CFF. For the main frequencies (20, 30, 40, 50, 60, 70, 80, 90 and 100 Hz), each calculated point had 21 responses, whereas the intermediate frequencies (55, 65, 75 and 85 Hz) had either 7, 14 or 21 responses depending birds' apparent CFF for each light colour. For example, if a bird had three different apparent CFFs for each colour, the bird would have been tested with three different intermediate frequencies and each would have seven responses. If a bird had the same apparent CFF for the three light colours, then that bird would have been tested with one intermediate frequency data point with 21 responses. For each frequency, the grand mean was found across birds and a stratified bootstrap with 10,000 iterations was performed to find the 95% confidence interval. Then using these grand means and 95% confidence intervals, I defined the overall CFF as the lowest flicker frequency that was not significantly different from random chance (25%). Note this threshold is different than the one used in the colour analysis to identify CFF values. This was done because the dataset was large enough to reliably trust the means of behavioural responses. For example, if hummingbirds correctly identified a given flicker rate 40% of the time, then the hummingbirds are correct more often than if they were randomly selecting feeders. Under these circumstances, it was assumed at least some birds must have been able to resolve that frequency. 2.2.7.2   Spatial Acuity Data Processing All videos were saved with a descriptive name and converted into audio video interleave format. Each video was individually digitised using customised point-tracking software, DLTdv5 (Hedrick, 2008), in MATLAB® (MATLAB R2014a: Version 8.3.0). This software identifies and saves the x and y pixel coordinates of user-defined points for each recorded frame. The videos recorded for each spatial frequency treatment had 3000 frames because each were filmed at 100 Hz and lasted 30  34 seconds. The pixel coordinates of the five dots attached to the bird's cranium were identified in all 3000 frames of each video and could be used to determine the presence or absence of the optocollic reflex for each spatial frequency. Once all the videos were digitised, the files were further processed using a custom MATLAB script (Appendix F). The identified pixel coordinates could be used to find bird's beak angle over time as a measure for determining presence of the optocollic reflex. Beak angles were calculated by finding the subtended angle between two points on the bird's head (Points 1 and 2 in Figure 12) using the right-angle in the corner each recorded video as a reference. This generated 252 raw beak angle traces with each lasting 30 seconds. The beak angle traces were smoothed using MATLAB's built-in low-pass Butterworth filter, butter. The optimal parameters for the filter were identified using an additional MATLAB function, buttord. All beak angle traces had considerable noise due to measurement error in point tracking. Since each white dot consisted of 50 or more pixels, the tracking program had difficulty finding the true centre of the dot for each frame. Consequently, this introduced high frequency noise for all traces. The purpose of the low-pass Butterworth filter was to remove this noise. To determine the spatial acuity of all tested hummingbirds, I visually analysed individual traces for the presence or absence of the optocollic reflex. A positive response had a characteristic saw-tooth pattern (Figure 13A), whereas a negative response had either a flat line (Figure 13B) or staircase shape (Figure 13C). Saw-tooth traces consist of two phases: slow drift and rapid restoration. The slow drift phase happens when the bird slowly tracked a moving object and once a certain head angle was reached, the bird restored its head to roughly the same position it had when it started tracking the moving object. The staircase trace is result of the bird oscillating its head left and right in a periodic manner, which is normal behaviour in the absence of moving visual stimuli.    35  Figure 13. Representative beak angle traces for measuring spatial acuity. Hummingbirds that could resolve motion exhibited an optocollic reflex and produced a characteristic saw-tooth motion (A). The flat line (B) and staircase (C) traces represent negative responses. The colour of the trace corresponds to the colour scheme used to identify the birds used in the experiment. The black traces represent the raw data for each response, whereas the colour line represents the smoothed data for each response. For each trace I assessed whether the optocollic reflex was present, absent, or unclear, and guessed the direction of drum motion. Predicting the direction of drum motion served as a quality control step for the statistical analysis. If I claimed to have seen a response but had guessed the wrong drum direction, I would introduce false-positives into the dataset. I removed false-positives by treating them as if they were assessed as being absent. To ensure that my assessment of all the traces were accurate, I repeated this whole process once more myself, and had another observer repeat it twice more. To prevent biased results, I randomised the order in which the data were viewed and renamed each trace using a number from 1 to 252 to blind myself and the other observer from knowing the treatment's spatial frequency. This generated four sets of data that were transferred to R for statistical analysis (Appendix G). Statistical Analysis To conservatively estimate the spatial acuity threshold, I treated the unclear traces as if they were negative responses. I did this by converting each dataset into binary data by converting the present traces into a value of one and the rest were given a value of zero. The four sets of binary data were concatenated together, which was used for the remainder of the analysis.  5-50time (sec)0 30beak angle (°)ABC 36 The birds' responses to each spatial frequency were averaged for all birds. The 95% confidence intervals were found for each spatial frequency mean using a stratified bootstrap with 10,000 iterations. Spatial frequency means that had overlapping 95% confidence intervals with the control treatment were considered to be unresolvable by the hummingbirds. Additionally, the data were analysed using a binomial mixed model, accounting for the repeated measures. Thereafter, a Dunnett's contrast test was performed to determine significances between the means of each spatial frequency with respect to the control (50% grey stripe-less stimulus) using a separate R script for the analysis (Appendix H). The treatments that did not significantly different from the control (P > 0.05) were also considered unresolvable by the hummingbird.  2.3   Results 2.3.1   Temporal Acuity The influence of light colour on hummingbirds' critical fusion frequency (CFF) was not significant because the 95% confidence intervals of each light colour significantly overlapped (Figure 14). The results from the one-way ANOVA also yielded no significant effect (F2, 15 = 0.137, P = 0.719). The variation in CFF for the ultraviolet treatments is lower compared to red and white colour treatments. The highest observed values were consistently from one bird (bird ID: 192), with a value of 85Hz for both red and white and 80Hz for ultraviolet. Conversely, the lowest CFF values were from two separate hummingbirds (bird ID: 196, 197) with a value of 55Hz for red and white and 65Hz for ultraviolet.  37  Figure 14. Influence of light colour on hummingbirds' critical fusion frequency. Circles are the hummingbird's critical fusion frequency with respect to a given light colour (red, white and ultraviolet). Black triangles are the overall sample means with bootstrapped 95% confidence intervals. Point colour represents identify of the tested hummingbirds (n=6). After determining colour had no significant influence on hummingbirds' CFF, I merged the data from all colours to find the overall CFF (Figure 15). The CFF was identified as the lowest frequency that was not significantly different from random chance (25%). In this study, the hummingbird's overall CFF for all tested light colour is estimated to be between 70 and 80Hz. The variation in responses for low (i.e. 20, 30 and 40Hz) and high (i.e. 90 and 100Hz) flicker frequencies was low compared to intermediate flicker frequencies (i.e. 50, 60, 70 and 80Hz).  bird ID1921931941951961975060708090LED hueCFF (Hz)red white UV 38  Figure 15. Response averages to LED lights (red, white, and ultraviolet) flickering at frequencies from 20 to 100Hz. Circles at the main frequencies (20, 30, 40, 50, 60, 70, 80, 90 and 100Hz) have 21 binary responses (correct or incorrect), whereas intermediate frequencies (55, 65, 75 and 85Hz) have either 7, 14 or 21 binary responses. Black triangles are the temporal frequency means with bootstrapped 95% confidence intervals. Confidence intervals are only calculated if there are four or more data points for a given temporal frequency. Red horizontal line is positioned at 25%, where responses are expected to be if the bird was selecting randomly. Circle colour represents identity of tested hummingbirds (n=6).   2.3.2   Spatial Acuity The hummingbirds' responses to each combination of spatial frequency and light level were plotted into one figure to allow for direct comparisons (Figure 16). 20 40 60 80 100020406080100frequency (Hz)percent correct (%)bird ID19219319419519619770 905030 39  Figure 16. Smoothed traces of head angles for all tested spatial frequencies. The amplitude of each trace represents head angle, and the relative magnitude are scaled to the reference object in the top left corner of the figure. Each column of traces corresponds to the spatial frequency (cycles/degree) experienced. Traces are categorised by light level on the left [low (0.53 candela/m2), medium (1.77 candela/m2), high (32.00 candela/m2)] and direction of drum motion on the right (left and right). Trace colour represents identity of tested hummingbirds (n=6). 6.18medium12.379.898.254.953.53luminance levelspatial frequency (cycles/degree)05° 30sechighlowleftrightleftrightleftright 40 Treatments with low light levels (0.53 candela/m2) indicate the hummingbirds' spatial acuity threshold lies between 4.95 and 6.18 cycles/degree (Figure 17C). A similar result occurred at medium light levels (1.77 candela/m2) (Figure 17B), but was absent at high light levels (32.00 candela/m2) (Figure 17A). The response to spatial frequencies of 3.53 and 4.95 cycles/degree in lower luminance (<1.77 candelas/m2) were higher with respect to high luminance (Figure 17). This result may be explained by the fact that the only features visible during the lower luminance conditions were the moving walls, whereas during the high luminance conditions the birds focused on features outside of the moving drum.   41  Figure 17. Testing the influence of luminance on eliciting the optocollic reflex. Stimuli that were tested ranged in spatial frequencies from 0 to 12.37 cycles/degree under high (A), medium (B), and low (C) luminance intensities. Each point is an average of 48 binary responses from 6 birds. The red horizontal line in each subfigure indicates the percentage of optocollic response for the control frequency. 0204060801000 2 4 6 8 10 12020406080100optocollic response percentage (%)Clow (0.53 cad/m2)spatial frequency (cycles/degree)020406080100ABhigh (32.0 cad/m2)medium (1.77 cad/m2) 42 The control treatment (50% grey stripe-less stimulus) during high luminance had a response average of 43.75% (Figure 17A). This suggests that hummingbirds must have been able to resolve unintentional features of the moving drum that were absent during low and medium luminance conditions. Thus, I excluded the responses during high luminance for the final assessment of their spatial acuity because the tested spatial acuity treatments were not indicative of what birds were actually resolving under these conditions. When all the tested spatial frequencies are analysed in conjunction, the results suggests hummingbirds' spatial acuity threshold is between 3.53 and 4.95 cycles/degree (Figure 18A). If high light levels are excluded from this analysis, the relationship observed in Figure 4B and 4C returns with hummingbirds' spatial acuity threshold lying between 4.95 and 6.18 cycles/degree (Figure 18B).  43  Figure 18. Identifying the overall spatial acuity threshold. Responses averages to the tested stimuli (0 - 12.37 cycles per degree) were averaged among all light conditions (A) and only low and medium conditions (B). (A) Each point is an average of 144 binary responses (present or absent) with bootstrapped 95% confidence intervals. (B) Each point is an average of 96 binary responses with bootstrapped 95% confidence intervals. The red horizontal line in each subfigure indicates the percentage of optocollic response for the control treatments. A Dunnet's contrast test was also performed to serve as an auxiliary analysis to definitively show whether or a not the tested spatial acuities treatments differed significantly from the control treatment (Table 1). The highest spatial acuity treatment that was significantly different from the control treatment was 4.95 cycles per degree (P = 0.00163).   0 2 4 6 8 10 12020406080100spatial frequency (cycles/degree)optocollic response percentage (%)020406080100alllight levelsno highlight levelsAB 44 Table 1. Dunnet contrasts for assessing hummingbird spatial acuity. Bolded values represent the interactions between the tested means are significantly different (P<0.05). The tested hummingbirds exhibited zero responses for 6.18 and 8.25 cycles per degree treatments, and thus, were removed from the analysis because otherwise the analysis would be undefined and fail as a result. Since there were zero responses for both 6.18 and 8.25 cycles per degree anyways, they were considered unresolvable and excluded from the analysis. treatment	  interactions	  (cycles	  per	  degree)	   estimate	   std.	  error	   z	  value	   Pr	  (>|z|)	  12.37	  -­‐	  0	   0.3152	   1.7451	   0.181	   0.99928	  9.89	  -­‐	  0	   -­‐0.1579	   1.8721	   -­‐0.084	   0.99996	  4.95	  -­‐	  0	   6.8962	   1.9549	   3.528	   0.00163	  3.53	  -­‐	  0	   11.7062	   2.6674	   4.389	   <	  0.001	       45 2.4   Discussion Using operant conditioning and optocollic reflex experiments, I identified the temporal and spatial acuity thresholds of the Anna's hummingbird's visual system. Training hummingbirds to differentiate flickering from non-flickering lights at different rates and colours identified their temporal acuity threshold for three colour spectra. The results indicate their threshold lies between 70 and 80Hz (Figure 15), and is unaffected by the wavelengths of light I tested (Figure 14). Spatial acuity estimates were found by subjecting hummingbirds to rotating stimuli that varied in spatial frequency and luminance. These results indicate their spatial resolving capacity is between 4.95 and 6.18 cycles per degree in light conditions below 1.77 candela/m2 (Figure 17 and 18; Table 1). Due to the limitations of the experimental apparatus, luminance greater than 1.77 candela/m2 yielded unreliable data where no conclusions could be made because hummingbirds were able to observe unintended stimulus features of the moving drum that were not apparent with low and medium luminance. Visual guidance of flight has been studied extensively in insects (Gilbert, 1997; Kirchner and Srinivasan, 1989; Srinivasan et al., 1991; Srinivasan et al., 2000, 200), but is only now beginning to be studied with birds. Hummingbirds are emerging as important models for this topic. Goller and Altshuler have shown that hummingbird's control aerial position during hovering by stabilising features in their visual field (Goller and Altshuler, 2014). My measurements of the spatial and temporal acuity of hummingbird vision will further the understanding of visual guidance in these animals because these values define limits to their visual system both through space and in time. For instance, Goller and Altshuler visually manipulated the time to collision (τ) by rotating a looming spiral at different temporal frequencies (pg. 18377). For the rotational periods that were tested with a four black-white stripped spiral – 1.1, 2, 10 seconds, which equate to 3.6, 2, and 0.4Hz, respectively – they noticed no significant change in flight behaviour between the tested frequencies. This lack of  46 response in flight behaviour may in part be explained by how low these temporal frequencies are with respect to the newly measured hummingbird CFF. It may be the case that hummingbirds did not alter their flight behaviour because the difference between the tested temporal frequencies was not large enough with respect to the measured CFF (5%, 3%, and 0.5% of CFF, respectively), and as a result, yielded similar flight responses among the tested frequencies. In addition to hovering flight, the measurements for spatial and temporal acuity may be crucial for studies investigating visual guidance during forward-flight. Numerous studies have shown that insects, in particular bees and flies, regulate forward-flight speed by monitoring pattern velocity across their eyes (Mronz and Lehmann, 2008; Srinivasan et al., 1996). Recent studies reveal birds may use similar mechanisms to control flight velocity (Bhagavatula et al., 2011). Our laboratory is investigating the influence of visual features during forward-flight in hummingbirds by manipulating their visual environment using a virtual reality flight tunnel. In this unpublished study, birds were trained to traverse the length of the tunnel by positioning the perch and food source on opposite sides of the tunnel. During feeding bouts, the effects of visual information in controlling flight behaviour were tested by manipulating the available visual cues on the walls of the flight tunnel. The tested spatial frequencies were an assortment of vertical stripes of different sizes. As birds flew through the tunnel, they would experience a temporal frequency generated from the cycling of alternating stripes across their eyes. The temporal frequency experienced is a function of stripe size and flight velocity, where small stripes or high flight speeds increase the temporal frequencies experienced (Figure 19). By knowing the spatial and temporal acuity of hummingbird vision, it can now be estimated at which flight speed for a given stripe size fusion will occur.  Hummingbirds are high performance animals that routinely experience flights anywhere from 0 to 14m/s (Chai et al., 1999; Clark and Dudley, 2010). Depending on the aerial landscape, hummingbirds alter their flight speed accordingly to negotiate safe trajectories through their  47 surrounding architecture. For example, Chai and others observed that hummingbirds could fly at speeds as high as 14m/s when in large wind tunnels. But when in small flight corridors, the hummingbird's highest measured flight speeds were 2-3m/s. Thus, there is evidence that hummingbirds reach flight velocities that should lead to visual fusion of many surrounding objects such as shrubs and small branches.   Figure 19. Forward-flight in hummingbird flight tunnel. Illustration of how increases in hummingbird flight speed increases the temporal frequency experienced for a given width of vertical stripes. Line colour corresponds to the stripe sizes (0.29 to 9.20cm). Stripes of small sizes (0.29, 0.58, 1.15, and 2.30cm) fuse together at flight velocities greater than 3.2m/s, given the hummingbird's critical fusion frequency (CFF) is 70Hz. The visual features on the walls of the hummingbird flight tunnel are controlled using six DLP projectors connected to a graphics computer. Birds are trained to fly through the tunnel by positioning the perch and feeder at opposite sides of the tunnel. (Unpublished figure created by Dr. Rosalyn Dakin) 0 1 2 3 4 5050100150CFF 70 Hzbar size:0.29cm fusion >0.4m/s0.58cm fusion >0.8m/s1.15cm fusion >1.6m/s2.30cm fusion >3.2m/s4.60cm9.20cmflight velocity (m/s)temporal frequency (Hz)hummingbird flight tunnelfeederperch 48 The visual acuity data obtained for hummingbirds provides novel information about the visual limits for one of the smallest endothermic vertebrates with among the highest mass-specific metabolic rate. In my concluding chapter, I will consider these results in a comparative context, especially in birds, and evaluate the hypotheses that relate spatial and temporal acuity to body size and metabolic rate, respectively.  49 3   Conclusion  Measuring spatial and temporal acuity data for hummingbirds is important for the comparative biology of animal vision. Hummingbirds are the smallest aerial vertebrate, and have among the highest mass-specific metabolic rates of all vertebrates (Suarez, 1992). By studying these small creatures, I am capturing the temporal and spatial acuity of an animal at the lower extreme of the size spectrum and the upper extreme of the metabolic spectrum. A few notable studies have shown the influence of body size and metabolism on both spatial and temporal acuity. A study by Healy and others found animals of small body sizes and high metabolic rates exhibit high temporal acuities (Healy et al., 2013). Richard Kiltie empirically showed spatial acuity directly scale with body size in birds and mammals (Kiltie, 2000). I hypothesized that hummingbirds serve as an upper limit for temporal acuities and a lower limit for spatial acuity among diurnal bird species. These hypotheses were tested by measuring the spatial and temporal acuity of the Anna's hummingbird, a bird that defines the biological limits to metabolism and size among all birds. The results from this study provide some support to these hypotheses.  To develop a better understanding of the possible spatial and temporal acuities among animals, I surveyed the literature for studies that identified these acuity values for a range of taxa: mammals, fishes, insects, reptiles, amphibians, non-hovering birds, and hovering birds (Table 2). Table 2. The scope of spatial and temporal acuities across multiple taxa. Empirically determined values of spatial and temporal acuities of animals of various taxa (mammals, insects, fishes, reptiles, amphibians, non-hovering birds, and hovering birds). Values of spatial and temporal acuity are cycles per degree and cycles per second (Hz), respectively. Superscript represents type of measurement: oc = operant conditioning; r = reflex; t = topographic estimate; e = electrophysiology. Topographic estimation predicts a theoretical spatial acuity by measuring the density of retinal ganglion cells and identifying the smallest angle of resolution from the measured density. Citation to the right of each value is the publication where these values were obtained.  organism spatial acuity (cycles/degree) citation temporal acuity (hz) citation Mammals Human Adult (Homo sapiens) 30oc (Campbell and Gubisch, 1966) 60oc (Brundrett, 1974) Human Infant (6 month old) (Homo sapiens) 6r (Mayer et al., 1995) 50r (Regal, 1980)  50  organism spatial acuity (cycles/degree) citation temporal acuity (hz) citation Rhesus Monkey (Macaca mulatta) 44oc,46t  (Cowey and Ellis, 1967; Rolls and Cowey, 1970) 95oc (Shumake et al., 1967) Cat (Felis catus) 8 – 9oc (Jacobson et al., 1975) 70oc (Schwartz and Cheney, 1966) House Rat (Rattus rattus) 1.5r (Thomas et al., 2004) 30 – 40oc (Williams et al., 1985) Dog (Canislupis) 6-8e (Miller and Murphy, 1995) 70oc (Coile et al., 1988; Miller and Murphy, 1995) Horse (Equus ferus) 20oc (Timney and Keil, 1992) - - Ground Squirrel (Sciuridae) 3.9oc (Jacobs et al., 1982) - - Guinea pig (Cavia porcellus) 2.7t (Williams, 2012) 50e (Tansley et al., 1961) Harp Seal (Pagophilus groenlandicus) 6.8t (Mass and Supin, 2003) 32.7oc (Bernholz and Matthews, 1975) Insects Honey Bee (Apis melifera) 0.34 - 0.36oc (Macuda et al., 2001) 200oc (Srinivasan and Lehrer, 1984) Sheep Blowfly (Lucilia sericata) 0.46e (Dvorak and Snyder, 1978) 200e (Ruck, 1961) Blowfly (Calliphora vicina) - - 119e (Tatler et al., 2000) Fishes Sandbar Shark (Carcharhinus plumbeus) 4.3 – 8t (Litherland et al., 2009) 19e (Kalinoski et al., 2014) Larval Zebrafish (Danio rerio) 0.3r (Haug et al., 2010) 0.17r (Rinner et al., 2005) Bonnethead Shark (Sphyrna lewini) - - 31e (McComb et al., 2010) Blacknose Shark (Carcharhinus acronotus) - - 16e (McComb et al., 2010) Shortspine Spurdog (Squalus mitsukurii) 5.7 – 7.2t (Litherland et al., 2009) - - Swordfish  (Xiphias gladius) 7 – 10r (Fritsches and Warrant, 2006) 40e (Fritsches et al., 2005) Yellowfin Tuna (Thunnus albacares) 16-18r (Fritsches and Warrant, 2006) 40e (Fritsches et al., 2005) Goldfish (Carassius auratus) 2oc (Neumeyer, 2003) 67e (Hanyu and Ali, 1963) Rainbow Trout (Oncorhynchus mykiss) 0.31r, 2.1r (Carvalho et al., 2004; Rahmann et al., 1979) 27oc (Carvalho et al., 2004) Japanese Rice Fish (Oryzias latipes) 0.5r (Carvalho et al., 2002) 37r (Carvalho et al., 2002) Reptiles Loggerhead Sea Turtle (Caretta caretta) 4 – 8e (Bartol et al., 2002) 40e (Levenson et al., 2004) Green Sea Turtle (Chelonia mydas) - - 40e (Levenson et al., 2004) Amphibians Cane Toad (Bufo marinus) 6.8t (Nguyen and Straznicky, 1989) 16e (Nowak and Green, 1983)      Non-hovering Birds          Chicken (Gallus gallus domesticus) 6 - 7.7r (Schmid and Wildsoet, 1998) 84oc (Rubene, 2009) Australian Brown Falcon (Falco berigura) 73oc (Reymond, 1987) - - Wedge-tailed Eagle (Aquila audax) 132 – 143oc (Reymond, 1985) - - Barn Owl (Tyto alba) 7.9t (Wathey and Pettigrew, 1989) - - Japanese Jungle 8.4oc (Yamamoto et al., - -  51  organism spatial acuity (cycles/degree) citation temporal acuity (hz) citation Crow (Corvus macrorhynchos) 2001) Peafowl (Pavo cristatus) 20t (Hart, 2002) - - Budgerigar (Melapsittacus undulates) 10oc (Lind et al., 2012) 115e (Ginsburg and Nilsson, 1971) Pigeon (Columba livia) 12.6oc (Hahmann and Gunturkun, 1993) 100e, 116e (Bornschein and Tansley, 1961; Dodt and Wirth, 1954) Great Horned Owl (Bubo virginianus) 6.5t,oc (Fite, 1973) 45e (Ault and House, 1986) European Starling (Sturnus vulgaris) 5.93t (Dolan and Fernández-Juricic, 2010) 100oc (Greenwood et al., 2004) Hovering Birds American Kestrel (Falco sparverius) 43t, 160oc (Fox et al., 1976; Gaffney and Hodos, 2003) - - Anna's hummingbird (Calypte anna) 4.95 - 6.18r This study 70-80Hzoc This study  From this review, it is clear that the variation among and within taxa is large. This variation may in part be attributed to the natural history, environmental conditions, and morphological features of each species. Multiple studies have reported the spatial and temporal resolving capacity of birds and fish reflect the environment's light conditions in which they are immersed (Kalinoski et al., 2014; Lind et al., 2012; McComb et al., 2010). In mammals, Kirk and Kay comprehensively describe the relationship between natural history and spatial acuity, wherein diurnal mammals exhibit much higher spatial acuities with respect to nocturnal mammals (Kirk and Kay, 2003). The influence of morphology on spatial and temporal acuity is discussed below. Prior to this study, it was predicted that hummingbirds would show low spatial acuities relative to other bird species. Of the available spatial acuity evidence for bird species, hummingbirds spatial acuity is lower compared to pigeons (12.6 cycles/degree), chickens (7.7cycles/degree), budgerigars (10 cycles/degree), American kestrels (43 cycles/degree), and wedge-tailed eagles (132 cycles/degree), which are all examples of birds that are larger in size with respect to hummingbirds (Table 2). But given hummingbirds' body sizes, what might we expect their spatial acuities to be? Body size has been shown to directly relate to eye size in birds (Burton, 2008), which suggests  52 hummingbirds may have the smallest eyes among bird species. In Kilties paper he identifies the relationship between the body size and eye's axial length, a measure of eye size, to spatial acuity in bird species (Equation 3 and 4).   𝐿𝑜𝑔™ 𝑠𝑝𝑎𝑡𝑖𝑎𝑙  𝑎𝑐𝑢𝑖𝑡𝑦 = 0.76(𝐿𝑜𝑔™ 𝑏𝑜𝑑𝑦  𝑚𝑎𝑠𝑠? ?)+ 1.58 (3)  𝐿𝑜𝑔™ 𝑠𝑝𝑎𝑡𝑖𝑎𝑙  𝑎𝑐𝑢𝑖𝑡𝑦 = 1.43(𝐿𝑜𝑔™ 𝑎𝑥𝑖𝑎𝑙  𝑙𝑒𝑛𝑔𝑡ℎ)+ 0.01 (4) The average mass of the birds used during this experiment was 4.00±0.06g, which leads to an estimate for spatial acuity of 9.39 cycles per degree. Unpublished results collected of hummingbird eyes show that the average axial length is measured to be 4.355±0.042mm, yielding a predicted spatial acuity value of 8.39 cycles per degree. These predicted value are higher than what was found in this thesis (Figure 18). Why might this be the case? The size an animal's eye directly influences its visual capabilities (Land and Nilsson, 2012; Motani et al., 1999; Thomas et al., 2006). Three particular eye parameters have significant influences on spatial acuity: axial length, pupil diameter, and retinal cell density. Larger eye possess longer focal lengths, increased abundance of photoreceptors and retinal ganglion cells, and can reach greater pupil diameters that all contribute to improving the eye's resolving capacity. Given the axial lengths of hummingbird eyes, some other morphological features may explain their low spatial acuities. For instance, their eyes may possess a lower density of photoreceptor and retinal ganglion cells or have eyes with limited range of pupil diameters. Pupil diameter influences the resolving capacity by controlling the amount of light entering the eye. Animals with small pupil diameters may have lower spatial acuity because pupil diameter influences the depth of field in focus (i.e., the F-number) and the point-spread function, which was discussed in the introduction chapter. To investigate the effects of pupil diameters further, I made one more set of measurements: the hummingbird's pupil diameters under a range luminance (Figure 20; Appendix I).   53  Figure 20. Influence of luminance on hummingbirds' pupil diameter. Measurements of pupil diameter were measured by taking photographs of hummingbird eyes under different light intensities (18 to 26200 candela/m2) using a dissecting microscope and a calibration object. Each point is an average of 10 measurements in both axes and all lines represent the standard errors. Numbers beside each point are estimates of F-numbers that were calculated for each pupil diameter using 2.6mm [Tyrell and Fernadez-Juracic (unpublished)] as the eye's focal length (F-number = focal length/pupil diameter). (A) Relationship between luminance and pupil diameter. (B) Relationship between the logarithm of luminance and pupil diameter. An inverse sigmoidal curve was fitted to the logarithmic relationship to identify the minimum and maximum pupil diameters. The data were collected by taking photographs of hummingbirds' eyes using a dissecting microscope with a calibration object positioned beside the right eye. From knowing the distance between two points on the calibration object, I could measure the pupil diameter from each photograph under different light intensities. This allowed me to identify the minimum and maximum pupil diameters attainable by hummingbirds. By knowing their pupil diameters under different luminance and their eye's axial length, I estimated how much of their visual field is in focus by calculating the F-number of their ocular system. The F-number is a standard measure in photography, which is the ratio of focal length to aperture diameter (i.e. pupil size). High F-numbers corresponds to the depth of field that is in focus is long, whereas low F-numbers have narrow depths of field in focus. For diurnal birds the standard calculation for focal length is 0.6 times the axial length (Fite and Rosenfield-Wessels, 1975; Hughes, 1977; Martin, 1994). This calculation estimates the focal length of hummingbird eyes to be approximately 2.6mm [4.355±0.042mm x 0.6; axial lengths from Tyrell and Fernadez-Juracic (unpublished)]. This indicates the hummingbird's range of possible F-numbers is 0 5000 10000 15000 20000 25000 300000.51.01.52.02.53.0luminance (cad/    )m2pupil diameter (mm)1.011.181.21.41.591.741.942.22.451 2 3 4 51.011.18 1.21.41.591.741.942.22.45focal length = 2.6mmlog10luminance (10xcad/m2)A B 54 1.01 to 2.45 (Figure 19). There are two notable features of these results. First, the F-numbers are small. This suggests that the length of the depth of field in focus is narrow under all tested luminance. Second, the range of F-numbers is narrow. This means the length of the depth of field in focus is relatively constant under all tested luminance (18 to 26200 candela/m2). My pupil data suggests that when hummingbirds focus onto a target, objects both far and close are likely out of focus. This may partially explain the low spatial acuities observed in this study. The low spatial acuities may also be a result of the hummingbirds' small pupil diameters in general. The pupil data shows that hummingbirds' pupils can be as small as 1mm in diameter (Figure 20). Based on this diameter, the angular radius of the point-spread functions of objects (a) is larger with respect to pupils of larger diameters (Equation 1). This increase in a will impair the hummingbird's spatial acuity because the distance between two point-spread functions would need to be greater in order to be resolved based on Rayleigh's criterion. Because their pupil diameters are the smallest values among the measured bird species in (Lind et al., 2008), 1 – 2.5mm (Figure 20), hummingbirds may be visually inferior among birds in all light intensities to due to their diminutive size. Another hypothesis for why hummingbirds may possess low spatial acuities is that they may be adapted to use ultraviolet light to focus. This adaptation would increase their susceptibility to longitudinal chromatic aberration and lower their spatial acuity (Lind et al., 2008). Longitudinal chromatic aberration is the inability of an optical system to focus all wavelengths of light to the same focal point due to differences in the angle of refraction for different wavelengths of light. Light of longer wavelengths refract less so than light of shorter wavelengths when transferring media with refractive indices from low to high. Birds can be categorised into two visual classes: ultraviolet sensitive and violet sensitive (Ödeen and Håstad, 2013). Ultraviolet sensitive birds possess a class of cones within the ultraviolet region (<400nm), whereas violet sensitive birds lack cones in the  55 ultraviolet sensitive (>400nm). Hummingbirds are notable for being ultraviolet sensitive (Goldsmith, 1980; Goldsmith et al., 1981), and it has been shown that a species of hummingbird (Sephanoides sephaniodes) possess a class of cones in the ultraviolet region, 370nm (Herrera et al., 2008). A recent study by Lind and others has concluded that only small birds can actually take full advantage of ultraviolet sensitive cones because they have ocular media that transmit more ultraviolet light (Lind et al., 2014). Therefore, given their exceptionally small body sizes, hummingbirds may be specialised to focus ocular image using ultraviolet light because their small eyes inherently transmit more ultraviolet light. Additionally, eyes with low F-numbers (i.e. short focal lengths) suffer most from longitudinal chromatic aberration because they have short depths of focus (Lind et al., 2008). If these are the case, the hummingbird's susceptibility to longitudinal chromatic aberration may be heighted. As a result, their ability to focus light of longer wavelengths may be reduced and result in lowering their overall spatial acuity. To summarise thus far, the data from this thesis provides support to the hypothesis that spatial acuity positively scales with body size in diurnal birds. However, my results also indicate that hummingbirds' spatial acuity is lower than expected based on allometry.  The second objective of this thesis was to test the hypothesis that temporal acuity scales positively with its mass-specific metabolic rate. Given hummingbirds possess the highest mass-specific metabolic rates among all vertebrates, this study directly addresses this hypothesis by measuring the extreme of achievable mass-specific metabolic rates within the vertebrates.  Prior to this study, it was predicted hummingbirds would show high temporal acuities among birds. Of the available temporal acuity data, hummingbirds' actually possess lower temporal acuities with respect to chickens (84Hz), budgerigars (115Hz), pigeons (100-116Hz), and European starling (100Hz) (Table 2). However, in comparison to the great horned owl (Bubo virginianus; 40Hz), hummingbirds have higher CFFs. Based on this observation alone, my results challenge the current  56 hypothesis. But what might we expect their temporal acuities to be given their mass-specific metabolic rates? Using relationship between temporal acuity and mass-specific metabolic rate identified by Healy and others, the hummingbird's maximal CFF can be predicted using Equation 5 (Healy et al., 2013).  max𝐶𝐹𝐹 = 118.6+ 13.2 𝑙𝑜𝑔™ 𝑐𝑜𝑟𝑟𝑒𝑐𝑡𝑒𝑑  𝑚𝑎𝑠𝑠  𝑠𝑝𝑒𝑐𝑖𝑓𝑖𝑐  𝑚𝑒𝑡𝑎𝑏𝑜𝑙𝑖𝑐  𝑟𝑎𝑡𝑒− 0.0002(𝑏𝑜𝑑𝑦  𝑚𝑎𝑠𝑠) (5) Using the average body mass of hummingbirds (4.00±0.06g) and the mass-specific resting metabolic rate identified by Raul Suarez, 4mL O2/(g x h) (Suarez, 1992), the predicted value for maximum CFF is 96.8Hz. [Note, the unit used for metabolism needs to be converted from ml O2/(g x h) to W/g using the converting factor of 20J/ml O2 described by (Makarieva et al., 2008) in order to correctly use Equation 5.] My measurements of the hummingbird's temporal acuity are lower with respect to the predicted value.  One possible explanation for why the hummingbirds' temporal acuities were lower than expected might be a result of issues with the scaling of ocular tissue in birds. The volume of an organism scales proportionally to the body mass of an animal; whereas, the two-dimensional surfaces of animals scale to the two-thirds of body mass. Therefore, the surface area to volume ratio of small animals is high relative to large animals. This same principle might explain the slight reduction in temporal acuity observed in hummingbirds. The pecten is a volume of tissue that functions to supply the retina with nutrients and transport oxygen and carbon dioxide in birds. The retina is essentially a two-dimensional tissue that is used to perceive light. Therefore, the retinas of small birds may place heavier metabolic demands on their pectens to obtain the necessary cellular constituents to function properly. If the size of an animal is exceptionally small, like hummingbirds, their pectens may be insufficient in providing the necessary materials for optimal retinal function. Therefore, the slightly lower temporal acuities in hummingbirds may reflect limitations in gas exchange at the level of the  57 retina due to scaling and it might indicate their temporal acuities are limited by their size and not their metabolism.  In conclusion, my measurements of spatial acuity in hummingbirds provide support for a positive relationship with body size, and my measurements of temporal acuity do not provide support for a positive relationship with mass-specific metabolic rate. The lack of relationship between CFF and metabolic rate in hummingbirds may derive from energetic limitations of exchange within the eye, much like the strong influence of energetic limitations to hummingbird biology in general.       58 Bibliography	  Altshuler, D. L. and Dudley, R. (2002). The ecological and evolutionary interface of hummingbird flight physiology. J. Exp. Biol. 205, 2325–2336. Ames, A., Li, Y. Y., Heher, E. C. and Kimble, C. R. (1992). Energy metabolism of rabbit retina as related to function: high cost of Na+ transport. J. Neurosci. Off. J. Soc. Neurosci. 12, 840–853. Archer, S. (1999). Adaptive Mechanisms in the Ecology of Vision. Springer Science & Business Media. Ault, S. J. and House, E. W. (1986). Electroretinographic Responses and Retinal Ultrastructure of the Great Horned Owl, Bubo Virginianus. J. Raptor Res. 21, 147–152. Bahl, A., Ammer, G., Schilling, T. and Borst, A. (2013). Object tracking in motion-blind flies. Nat. Neurosci. 16, 730–738. Bailey, I. L. and Lovie, J. E. (1976). New Design Principles for Visual Acuity Letter Charts. J. Optom. 53, 740–745. Barlow, H. B. and Levick, W. R. (1965). The mechanism of directionally selective units in rabbit’s retina. J. Physiol. 178, 477–504. Bartol, S., Musick, J. A. and Ochs, A. L. (2002). Visual acuity thresholds of juvenile loggerhead sea turtles (Caretta caretta): an electrophysiological approach. J. Comp. Physiol. A 187, 953–960.  59 Behnia, R., Clark, D. A., Carter, A. G., Clandinin, T. R. and Desplan, C. (2014). Processing properties of ON and OFF pathways for Drosophila motion detection. Nature 512, 427–430. Berg, J., Tymoczko, J. and Stryer, L. (2002). Biochemistry. 5th ed. New York: W. H. Freeman and Company. Bernholz, C. D. and Matthews, M. L. (1975). Critical flicker frequency in a harp seal: Evidence for duplex retinal organization. Vision Res. 15, 733–736. Bhagavatula, P. S., Claudianos, C., Ibbotson, M. R. and Srinivasan, M. V. (2011). Optic Flow Cues Guide Flight in Birds. Curr. Biol. 21, 1794–1799. Birch, E. E., Gwiazda, J., Bauer Jr, J. A., Naegele, J. and Held, R. (1983). Visual acuity and its meridional variations in children aged 7–60 months. Vision Res. 23, 1019–1024. Bornschein, H. and Tansley, K. (1961). Elektroretinogramm und Netzhautstruktur der Sumpfohreule (Asio flammeus). Experientia 17, 185–187. Borst, A. (2007). Correlation versus Gradient Type Motion Detectors: The Pros and Cons. Philos. Trans. Biol. Sci. 362, 369–374. Bowmaker, J. K. and Knowles, A. (1977). The visual pigments and oil droplets of the chicken retina. Vision Res. 17, 755–764. Bowmaker, J. K., Heath, L. A., Wilkie, S. E. and Hunt, D. M. (1997). Visual pigments and oil droplets from six classes of photoreceptor in the retinas of birds. Vision Res. 37, 2183–2194. Brundrett, G. W. (1974). Human sensitivity to flicker. Light. Res. Technol. 6, 127–143.  60 Burr, D. C., Morrone, M. C. and Vaina, L. M. (1998). Large receptive fields for optic flow detection in humans. Vision Res. 38, 1731–1743. Burton, R. F. (2008). The scaling of eye size in adult birds: Relationship to brain, head and body sizes. Vision Res. 48, 2345–2351. Campbell, F. W. and Green, D. G. (1965). Optical and retinal factors affecting visual resolution. J. Physiol. 181, 576–593. Campbell, F. W. and Gubisch, R. W. (1966). Optical quality of the human eye. J. Physiol. 186, 558–578. Carvalho, P. S. M., Noltie, D. B. and Tillitt, D. E. (2002). Ontogenetic improvement of visual function in the medaka Oryzias latipes based on an optomotor testing system for larval and adult fish. Anim. Behav. 64, 1–10. Carvalho, P. S. M., Noltie, D. B. and Tillitt, D. E. (2004). Biochemical, histological and behavioural aspects of visual function during early development of rainbow trout. J. Fish Biol. 64, 833–850. Chai, P., Altshuler, D. L., Stephens, D. B. and Dillon, M. E. (1999). Maximal horizontal flight performance of hummingbirds: effects of body mass and molt. Physiol. Biochem. Zool. 72, 145–155. Chapman, C., Hoag, R. and Giaschi, D. (2004). The effect of disrupting the human magnocellular pathway on global motion perception. Vision Res. 44, 2551–2557. Clark, C. J. and Dudley, R. (2010). Hovering and Forward Flight Energetics in Anna’s and Allen’s Hummingbirds. Physiol. Biochem. Zool. 83, 654–662.  61 Coile, C., Pollitz, C. and Smith, J. (1988). Behavioural Determination of Critical Flicker Fusion in Dogs. Physiol. Behav. 45, 1087 to 1092. Correa, Á. and Nobre, A. C. (2008). Spatial and temporal acuity of visual perception can be enhanced selectively by attentional set. Exp. Brain Res. 189, 339–344. Cowey, A. and Ellis, C. M. (1967). Visual Acuity of Rhesus and Squirrel Monkeys. J. Comp. Physiol. Psychol. 64, 80–84. Curcio, C. A. and Allen, K. A. (1990). Topography of ganglion cells in human retina. J. Comp. Neurol. 300, 5–25. Curcio, C. A., Sloan, K. R., Packer, O., Hendrickson, A. E. and Kalina, R. E. (1987). Distribution of Cones in Human and Monkey Retina: Individual Variability and Radial Asymmetry. Science 236, 579–582. Devries, S. H. and Baylor, D. A. (1997). Mosaic arrangement of ganglion cell receptive fields in rabbit retina. J. Neurophysiol. 78, 2048–2060. DeYoe, E. A. and Van Essen, D. C. (1988). Concurrent processing streams in monkey visual cortex. Trends Neurosci. 11, 219–226. Dodt, E. and Wirth, A. (1954). Differentiation between rods and cones by flicker electroretinography in pigeon and guinea pig. Acta Physiol. Scand. 30, 80–89. Dolan, T. and Fernández-Juricic, E. (2010). Retinal Ganglion Cell Topography of Five Species of Ground-Foraging Birds. Brain. Behav. Evol. 75, 111–121. Dubs, A. (1982). The spatial integration of signals in the retina and lamina of the fly compound eye under different conditions of luminance. J. Comp. Physiol. 146, 321–343.  62 Dvorak, D. and Snyder, A. (1978). The relationship between visual acuity and illumination in the fly, lucilia sericata. Z. Für Naturforschung Sect. C Biosci. 33, 139–143. Fager, L. Y. and Fager, R. S. (1981). Chicken blue and chicken violet, short wavelength sensitive visual pigments. Vision Res. 21, 581–586. Fahle, M. and Bach, M. (2006). Origin of the visual evoked potentials. In the Principles and Practice of Clinical Electrophysiology of Vision. Cambridge: MA: MIT Press. Fennema, C. L. and Thompson, W. B. (1979). Velocity determination in scenes containing several moving objects. Comput. Graph. Image Process. 9, 301–315. Fernández-Juricic, E., Moore, B. A., Doppler, M., Freeman, J., Blackwell, B. F., Lima, S. L. and DeVault, T. L. (2011). Testing the Terrain Hypothesis: Canada Geese See Their World Laterally and Obliquely. Brain. Behav. Evol. 77, 147–158. Ferris, F., Kassoff, A. and Bresnick, G. H. (1982). New visual acuity charts for clinical research. Am. J. Ophthalmol. 94,. Fite, K. V. (1973). Anatomical and behavioral correlates of visual acuity in the great horned owl. Vision Res. 13, 219–IN2. Fite, K. V. and Rosenfield-Wessels, S. (1975). A Comparative Study of Deep Avian Foveas. Brain. Behav. Evol. 12, 97–115. Fox, R., Lehmkuhle, S. W. and Westendorf, D. H. (1976). Falcon Visual Acuity. Science 192, 263–265. Frisby, J. P. and Stone, J. V. (2010). Seeing, Second Edition: The Computational Approach to Biological Vision. 2nd ed. The MIT Press.  63 Fritsches, K. A. and Warrant, E. J. (2006). Differences in the visual capabilities of sea turtles and blue water fishes—implications for bycatch reduction. In Sea turtle and pelagic fish sensory biology: developing techniques to reduce sea turtle bycatch in longline fisheries, . Fritsches, K. A., Brill, R. W. and Warrant, E. J. (2005). Warm Eyes Provide Superior Vision in Swordfishes. Curr. Biol. 15, 55–58. Gaffney, M. F. and Hodos, W. (2003). The visual acuity and refractive state of the American kestrel (Falco sparverius). Vision Res. 43, 2053–2059. Gilbert, C. (1997). Visual control of cursorial prey pursuit by tiger beetles (Cicindelidae). J. Comp. Physiol. A 181, 217–230. Ginsburg, N. and Nilsson, V. (1971). Measuring flicker thresholds in the budgerigar1. J. Exp. Anal. Behav. 15, 189–192. Gioanni, H. (1988). Stabilizing gaze reflexes in the pigeon (Columba livia). Exp. Brain Res. 69, 567–582. Glasser, A. and Howland, H. C. (1995). In vitro changes in back vertex distance of chick and pigeon lenses: Species differences and the effects of aging. Vision Res. 35, 1813–1824. Goldsmith, T. H. (1980). Hummingbirds see near ultraviolet light. Science 207, 786–788. Goldsmith, T. H., Collins, J. S. and Perlman, D. L. (1981). A wavelength discrimination function for the hummingbirdArchilochus alexandri. J. Comp. Physiol. 143, 103–110. Goller, B. and Altshuler, D. L. (2014). Hummingbirds control hovering flight by stabilizing visual motion. Proc. Natl. Acad. Sci. 111, 18375–18380.  64 Greenwood, V. J., Smith, E. L., Goldsmith, A. R., Cuthill, I. C., Crisp, L. H., Walter-Swan, M. B. and Bennett, A. T. D. (2004). Does the flicker frequency of fluorescent lighting affect the welfare of captive European starlings? Appl. Anim. Behav. Sci. 86, 145–159. Haag, J., Denk, W. and Borst, A. (2004). Fly motion vision is based on Reichardt detectors regardless of the signal-to-noise ratio. Proc. Natl. Acad. Sci. U. S. A. 101, 16333–16338. Hagura, N., Kanai, R., Orgs, G. and Haggard, P. (2012). Ready steady slow: action preparation slows the subjective passage of time. Proc. R. Soc. Lond. B Biol. Sci. 279, 4399–4406. Hahmann, U. and Gunturkun, O. (1993). The Visual Acuity for the Lateral Visual Field of the Pigeon (Columba livia). Vision Res. 33, 1659–1664. Hanyu, I. and Ali, M. A. (1963). Flicker Fusion Frequency of Electroretinogram in Light-Adapted Goldfish at Various Temperatures. Science 140, 662–663. Harmening, W. M., Göbbels, K. and Wagner, H. (2007). Vernier acuity in barn owls. Vision Res. 47, 1020–1026. Hart, N. S. (2001). The Visual Ecology of Avian Photoreceptors. Prog. Retin. Eye Res. 20, 675–703. Hart, N. S. (2002). VIsion in the peafowl (Aves: Pavo cristatus). J. Exp. Biol. 3925–3935. Hassenstein, B. and Reichardt, W. (1956). Systemtheoretische Analyse der Zeit-, Reihenfolgen- und Vorzeichenauswertung bei der Bewegungsperzeption des Rüsselkäfers Chlorophanus. Z. Für Naturforschung B 11, 513–524. Haug, M. F., Biehlmaier, O., Mueller, K. P. and Neuhauss, S. C. (2010). Visual acuity in larval zebrafish: behavior and histology. Front Zool 7, 1742–9994.  65 Healy, K., McNally, L., Ruxton, G. D., Cooper, N. and Jackson, A. L. (2013). Metabolic rate and body size are linked with perception of temporal information. Anim. Behav. 86, 685–696. Hecht, S. and Wolf, E. (1929). The visual acuity of the honey bee. J. Gen. Physiol. 12, 727–760. Hecht, S., Shlaer, S. and Pirenne, M. H. (1942). Energy, Quanta, and Vision. J. Gen. Physiol. 25, 819–840. Hedrick, T. L. (2008). Software techniques for two- and three-dimensional kinematic measurements of biological and biomimetic systems. Bioinspir. Biomim. 3, 034001. Helmholtz, H. von (1867). Handbuch der physiologischen Optik. Leipzig: Leopold Voss. Herrera, G., Zagal, J. C., Diaz, M., Fernández, M. J., Vielma, A., Cure, M., Martinez, J., Bozinovic, F. and Palacios, A. G. (2008). Spectral sensitivities of photoreceptors and their role in colour discrimination in the green-backed firecrown hummingbird (Sephanoides sephaniodes). J. Comp. Physiol. A 194, 785–794. Hildreth, E. C. and Koch, C. (1987). The Analysis of Visual Motion: From Computational Theory to Neuronal Mechanisms. Annu. Rev. Neurosci. 10, 477–533. Howard, J., Dubs, A. and Payne, R. (1984). The dynamics of phototransduction in insects. J. Comp. Physiol. A 154, 707–718. Howard, J., Blakeslee, B. and Laughlin, S. B. (1987). The Intracellular Pupil Mechanism and Photoreceptor Signal: Noise Ratios in the Fly Lucilia cuprina. Proc. R. Soc. Lond. B Biol. Sci. 231, 415–435.  66 Hughes, A. (1977). The Topography of Vision in Mammals of Contrasting Life Style: Comparative Optics and Retinal Organisation. In The Visual System in Vertebrates (ed. Crescitelli, F.), pp. 613–756. Springer Berlin Heidelberg. Jacobs, G. H., Birch, D. G. and Blakeslee, B. (1982). Visual acuity and spatial contrast sensitivity in tree squirrels. Behav. Processes 7, 367–375. Jacobson, S. G., Franklin, K. B. J. and McDonald, W. I. (1975). Visual Acuity of the Cat. Vision Res. 16, 1141 to 1143. Joesch, M., Schnell, B., Raghu, S. V., Reiff, D. F. and Borst, A. (2010). ON and OFF pathways in Drosophila motion vision. Nature 468, 300–304. Kalinoski, M., Hirons, A., Horodysky, A. and Brill, R. (2014). Spectral sensitivity, luminous sensitivity, and temporal resolution of the visual systems in three sympatric temperate coastal shark species. J. Comp. Physiol. A 200, 997–1013. Kalloniatis, M. and Luu, C. (2015). Webvision: Visual Acuity. Webvision. Kiltie, R. A. (2000). Scaling of visual acuity with body size in mammals and birds. Funct. Ecol. 14, 226–234. Kirchner, W. H. and Srinivasan, M. V. (1989). Freely flying honeybees use image motion to estimate object distance. Naturwissenschaften 76, 281–282. Kirk, C. E. and Kay, R. F. (2003). The Evolution of High Visual Acuity in the Anthropoidea. Kram, Y. A., Mantey, S. and Corbo, J. C. (2010). Avian Cone Photoreceptors Tile the Retina as Five Independent, Self-Organizing Mosaics. PLoS ONE 5, 1–13.  67 Land, M. F. and Collett, T. S. (1974). Chasing behaviour of houseflies (Fannia canicularis). J. Comp. Physiol. 89, 331–357. Land, M. F. and Nilsson, D.-E. (2012). Animal Eyes. Oxford University Press. Laughlin, S. B. (2001). Energy as a constraint on the coding and processing of sensory information. Curr. Opin. Neurobiol. 11, 475–480. Laughlin, S. B. and Weckström, M. (1993). Fast and slow photoreceptors — a comparative study of the functional diversity of coding and conductances in the Diptera. J. Comp. Physiol. A 172, 593–609. Levenson, D. H., Eckert, S. A., Crognale, M. A., Deegan, J. F., Jacobs, G. H. and Douglas, M. E. (2004). Photopic Spectral Sensitivity of Green and Loggerhead Sea Turtles. Copeia 2004, 908–914. Limb, J. O. and Murphy, J. A. (1975). Estimating the Velocity of Moving Images in Television Signals. Comput. Graph. Image Process. 4, 311–327. Lind, O. E., Kelber, A. and Kroger, R. H. H. (2008). Multifocal optical systems and pupil dynamics in birds. J. Exp. Biol. 211, 2752–2758. Lind, O., Sunesson, T., Mitkus, M. and Kelber, A. (2012). Luminance-dependence of spatial vision in budgerigars (Melopsittacus undulatus) and Bourke’s parrots (Neopsephotus bourkii). J. Comp. Physiol. A 198, 69–77. Lind, O., Chavez, J. and Kelber, A. (2013). The contribution of single and double cones to spectral sensitivity in budgerigars during changing light conditions. J. Comp. Physiol. A 200, 197–207.  68 Lind, O., Mitkus, M., Olsson, P. and Kelber, A. (2014). Ultraviolet vision in birds: the importance of transparent eye media. Proc. R. Soc. B Biol. Sci. 281,. Litherland, L., Collin, S. P. and Fritsches, K. A. (2009). Eye growth in sharks: Ecological implications for changes in retinal topography and visual resolution. Vis. Neurosci. 26, 397–409. Macuda, T., Gegear, R., Laverty, T. and Timney, B. (2001). Behavioural assessment of visual acuity in bumblebees (Bombus impatiens). J. Exp. Biol. 204, 559–564. Makarieva, A. M., Gorshkov, V. G., Li, B.-L., Chown, S. L., Reich, P. B. and Gavrilov, V. M. (2008). Mean Mass-Specific Metabolic Rates Are Strikingly Similar across Life’s Major Domains: Evidence for Life’s Metabolic Optimum. Proc. Natl. Acad. Sci. U. S. A. 105, 16994–16999. Marr, D. and Ullman, S. (1981). Directional Selectivity and its Use in Early Visual Processing. Proc. R. Soc. Lond. B Biol. Sci. 211, 151–180. Martin, G. R. (1985). Eye. Academic Press, London, Orlando etc. Martin, G. R. (1994). Form and Function in the Optical Structure of Bird Eyes. In Perception and Motor Control in Birds (ed. Davies, D. M. N. O. and Green, D. P. R.), pp. 5–34. Springer Berlin Heidelberg. Martin, G. R. (2009). What is binocular vision for? A birds’ eye view. J. Vis. 9, 14–14. Martin, G. R. and Katzir, G. (1994). Visual fields and eye movements in herons (Ardeidae). Brain. Behav. Evol. 44, 74–85.  69 Mass, A. M. and Supin, A. Y. (2003). Retinal topography of the harp seal Pagophilus groenlandicus. Brain. Behav. Evol. 62, 212–222. MATLAB R2014a: Version 8.3.0. Mayer, D. L., Beiser, A. S., Warner, A. F., Pratt, E. M., Raye, K. N. and Lang, J. M. (1995). Monocular acuity norms for the Teller Acuity Cards between ages one month and four years. Invest. Ophthalmol. Vis. Sci. 36, 671–685. McComb, D. M., Frank, T. M., Hueter, R. E. and Kajiura, S. M. (2010). Temporal Resolution and Spectral Sensitivity of the Visual System of Three Coastal Shark Species from Different Light Environments. Physiol. Biochem. Zool. 100128130826096–000. McDermott, J., Weiss, Y. and Adelson, E. H. (2001). Beyond junctions: nonlocal form constraints on motion interpretation. Perception 30, 905–923. Miles, F. A. and Wallman, J. (1993). Visual motion and its role in the stabilization of gaze. Rev. Oculomot. Res. 5, i–xxiv, 1–417. Miller, P. E. and Murphy, C. J. (1995). Vision in dogs. J.-Am. Vet. Med. Assoc. 207, 1623–1634. Motani, R., Rothschild, B. M. and Wahl, W. (1999). Large eyeballs in diving ichthyosaurs. Nature 402, 747–747. Mronz, M. and Lehmann, F.-O. (2008). The free-flight response of Drosophila to motion of the visual environment. J. Exp. Biol. 211, 2026–2045. Nelson, R. (2007). Webvision: Ganglion Cell Physiology.  70 Neumeyer, C. (2003). Wavelength dependence of visual acuity in goldfish. J. Comp. Physiol. A 189, 811–821. Nguyen, V. S. and Straznicky, C. (1989). The development and the topographic organization of the retinal ganglion cell layer in Bufo marinus. Exp. Brain Res. 75, 345–353. Nilsson, G. (1996). Brain and body oxygen requirements of Gnathonemus petersii, a fish with an exceptionally large brain. J. Exp. Biol. 199, 603–607. Nowak, L. M. and Green, D. G. (1983). Flicker fusion characteristics of rod photoreceptors in the toad. Vision Res. 23, 845–849. Ödeen, A. and Håstad, O. (2013). The phylogenetic distribution of ultraviolet sensitivity in birds. BMC Evol. Biol. 13, 36. Odom, J. V., Bromberg, N. M. and Dawson, W. W. (1983). Canine visual acuity: retinal and cortical field potentials evoked by pattern stimulation. Am. J. Physiol. - Regul. Integr. Comp. Physiol. 245, R637–R641. Okano, T., Kojima, D., Fukada, Y., Shichida, Y. and Yoshizawa, T. (1992). Primary Structures of Chicken Cone Visual Pigments: Vertebrate Rhodopsins Have Evolved Out of Cone Visual Pigments. Proc. Natl. Acad. Sci. U. S. A. 89, 5932–5936. Orlowski, J., Harmening, W. and Wagner, H. (2012). Night vision in barn owls: Visual acuity and contrast sensitivity under dark adaptation. J. Vis. 12, 4–4. Osterberg, G. (1935). Topography of the layer of rods and cones in the human retina. Perry, V. H. and Cowey, A. (1988). The lengths of thefibres of henle in the retina of macaque monkeys: Implications for vision. Neuroscience 25, 225–236.  71 Petrowitz, R., Dahmen, H., Egelhaaf, M. and Krapp, H. G. (2000). Arrangement of optical axes and spatial resolution in the compound eye of the female blowfly Calliphora. J. Comp. Physiol. [A] 186, 737–746. Pignatelli, V., Champ, C., Marshall, J. and Vorobyev, M. (2010). Double cones are used for colour discrimination in the reef fish, Rhinecanthus aculeatus. Biol. Lett. 6, 537–539. Porter, M. L., Kingston, A. C. N., McCready, R., Cameron, E. G., Hofmann, C. M., Suarez, L., Olsen, G. H., Cronin, T. W. and Robinson, P. R. (2014). Characterization of visual pigments, oil droplets, lens and cornea in the whooping crane Grus americana. J. Exp. Biol. 217, 3883–3890. Potters, M. and Bialek, W. (1994). Statistical Mechanics and Visual Signal Processing. J. Phys. I 4, 1755–1775. Proctor, N. S. and Lynch, P. J. (1998). Manual of Ornithology: Avian Structure & Function. Yale University Press. Rahmann, H., Jeserich, G. and Zeutzius, I. (1979). Ontogeny of Visual Acuity of Rainbow Trout under Normal Conditions and Light Deprivation. Behaviour 68, 315–322. R Core Team (2015). R: A language and environment for statistical computing. R Found. Stat. Comput. Regal, D. M. (1980). Development of Critical Flicker Frequency in Human Infants. Vision Res. 21, 549 to 555. Regan, D. (1988). Low Contrast Letter Charts and Sinewave Grating Tests in Ophthalmological and Neurological Disorders. Clin. Vis. Sci. 2, 235–250.  72 Reichardt, W. (1961). Autocorrelation, a Principle for the Evaluation of Sensory Information by the Central Nervous System. In Sensory Communication (ed. Rosenblith, W. A.), pp. 302–317. The MIT Press. Reymond, L. (1985). Spatial Visual Acuity of the Eagle Aquila Audax: A behavioural, Optical and Anatomical Investigation. Vision Res. 25, 1477–1491. Reymond, L. (1987). Spatial visual acuity of the falcon,< i> Falco berigora</i>: A behavioural, optical and anatomical investigation. Vision Res. 27, 1859–1874. Rinner, O., Rick, J. M. and Neuhauss, S. C. F. (2005). Contrast Sensitivity, Spatial and Temporal Tuning of the Larval Zebrafish Optokinetic Response. Invest. Ophthalmol. Vis. Sci. 46, 137–142. Rolls, E. T. and Cowey, A. (1970). Topography of the retina and striate cortex and its relationship to visual acuity in rhesus monkeys and squirrel monkeys. Exp. Brain Res. 10, 298–310. Rubene, D. (2009). Functional Differences in Avian Colour Vision: A Behavioural Test of Critical Flicker Fusion Frequency (CFF) for Different Wavelengths and Light Intensities. Masterarbeit M Sc Upps. Univ. Upps. Rubene, D., Hastad, O., Tauson, R., Wall, H. and Odeen, A. (2010). The presence of UV wavelengths improves the temporal resolution of the avian visual system. J. Exp. Biol. 213, 3357–3363. Ruck, P. (1961). Photoreceptor Cell Response and Flicker Fusion Frequency in the Compound Eye of the Fly, Lucilia sericata (Meigen). Biol. Bull. 120, 375–383.  73 Schein, S. J. (1988). Anatomy of macaque fovea and spatial densities of neurons in foveal representation. J. Comp. Neurol. 269, 479–505. Schmid, K. L. and Wildsoet, C. F. (1998). Assessment of visual acuity and contrast sensitivity in the chick using an optokinetic nystagmus paradigm. Vision Res. 38, 2629–2634. Schwartz, A. S. and Cheney, C. (1966). Neural mechanisms involved in the critical flicker frequency of the cat. Brain Res. 1, 369–380. Shumake, S. A., Smith, J. C. and Taylor, H. L. (1967). Critical fusion frequency in rhesus monkeys using the conditioned suppression technique. Smith, R. L., Nishimura, Y. and Raviola, G. (1985). Interreceptor junction in the double cone of the chicken retina. J. Submicrosc. Cytol. 17, 183–186. Snellen, H. (1862). Letterproeven tot Bepaling der Gezigtsscherpte. PW Van Weijer Utrecht. Srinivasan, M. V. (1990). Generalized gradient schemes for the measurement of two-dimensional image motion. Biol. Cybern. 63, 421–431. Srinivasan, M. V. and Lehrer, M. (1984). Temporal acuity of honeybee vision: behavioural studies using moving stimuli. J. Comp. Physiol. A 155, 297–312. Srinivasan, M. V. and Lehrer, M. (1988). Spatial acuity of honeybee vision and its spectral properties. J. Comp. Physiol. A 162, 159–172. Srinivasan, M. V., Lehrer, M., Kirchner, W. H. and Zhang, S. W. (1991). Range perception through apparent image speed in freely flying honeybees. Vis. Neurosci. 6, 519–535.  74 Srinivasan, M., Zhang, S. W., Lehrer, M. and Collett, T. (1996). Honeybee navigation en route to the goal: visual flight control and odometry. J. Exp. Biol. 199, 237–244. Srinivasan, M. V., Zhang, S.-W., Chahl, J. S., Barth, E. and Venkatesh, S. (2000). How honeybees make grazing landings on flat surfaces. Biol. Cybern. 83, 171–183. Steinman, R. M. (2004). Gaze control under natural conditions. Vis. Neurosci. 2, 1339–1356. Strutt, J. W. (1879). XXXI. Investigations in optics, with special reference to the spectroscope. Philos. Mag. Ser. 5 8, 261–274. Suarez, R. K. (1992). Hummingbird flight: sustaining the highest mass-specific metabolic rates among vertebrates. Experientia 48, 565–570. Tansley, K., Copenhaver, R. M. and Gunkel, R. D. (1961). Some aspects of the electroretinographic response of the American red squirrel,Tamiosciurus hudsonicus loquax. J. Cell. Comp. Physiol. 57, 11–19. Tatler, B., O’Carroll, D. C. and Laughlin, S. B. (2000). Temperature and the temporal resolving power of fly photoreceptors. J. Comp. Physiol. -Sens. Neural Behav. Physiol. 186, 399–407. Thomas, B. B., Seiler, M. J., Sadda, S. R., Coffey, P. J. and Aramant, R. B. (2004). Optokinetic test to evaluate visual acuity of each eye independently. J. Neurosci. Methods 138, 7–13. Thomas, R. J., Székely, T., Powell, R. F. and Cuthill, I. C. (2006). Eye size, foraging methods and the timing of foraging in shorebirds. Funct. Ecol. 20, 157–165. Timney, B. and Keil, K. (1992). Visual acuity in the horse. Vision Res. 32, 2289–2293.  75 Tyler, C. W. (1987). Analysis of visual modulation sensitivity. III. Meridional variations in peripheral flicker sensitivity. J. Opt. Soc. Am. A 4, 1612–1619. Tyrrell, L. P., Moore, B. A., Loftis, C. and Fernández-Juricic, E. (2013). Looking above the prairie: localized and upward acute vision in a native grassland bird. Sci. Rep. 3,. Valois, K. K. D. (2000). Seeing. Academic Press. Van Santen, J. P. and Sperling, G. (1985). Elaborated Reichardt detectors. J. Opt. Soc. Am. A 2, 300–321. Wald, G. (1968). The Molecular Basis of Visual Excitation. Nature 219, 800–807. Wathey, J. C. and Pettigrew, J. D. (1989). Quantitative Analysis of the Retinal Ganglion Cell Layer and Optic Nerve of the Barn Owl Tyto alba. Brain. Behav. Evol. 279–292. Wells, E., Bernstein, G., Scott, B., Bennett, P. and Mendelson, J. (2001). Critical flicker frequency responses in visual cortex. Exp. Brain Res. 139, 106–110. Westheimer, G. (1976). Diffraction theory and visual hyperacuity. Am. J. Optom. Physiol. Opt. 53, 362–364. Westheimer, G. (2012). Optical superresolution and visual hyperacuity. Prog. Retin. Eye Res. 31, 467–480. Williams, D. L. (2012). Ophthalmology of Exotic Pets. John Wiley & Sons. Williams, R., Pollitz, C., Smith, J. and Williams, T. (1985). Flicker Detection in the Albino Rat Following Light-induced Retinal Damage. Physiol. Behav. 34, 259–266.  76 Wingstrand, K. G. and Munis, O. (1965). The pecten oculi of the pigeon with particular regard to its function. Biol. Skr. 14, 1–64. Wolf, E. (1933). Critical frequency of flicker as a function of intensity of illumination for the eye of the bee. J. Gen. Physiol. 17, 7–19. Yamamoto, K., Furuya, I. and Watanabe, S. (2001). Near-field visual acuity in Japanese jungle crows (Corvus macrorhynchos). Physiol. Behav. 72, 283–286. Yen, L. and Fager, R. S. (1984). Chromatographic resolution of the rod pigment from the four cone pigments of the chicken retina. Vision Res. 24, 1555–1562.     77 Appendices Appendix A: Controlling LED Flicker Rates in Arduino const float flicker_hz = 65;  //Rate of flickering light const float solid_hz = 10000;  //Rate of solid lights  const float flicker_sec = 500000/flicker_hz;  //converts whole numbers into microseconds const float solid_sec = 500000/solid_hz;  //converts whole number into microseconds  const int ledPin1 = 6; const int ledPin2 = 10; const int ledPin3 = 3; const int ledPin4 = 5; const int powerPin = 4; const int switchPin1 = 2; const int switchPin2 = 7;  int switch1 = 0; int switch2 = 0; int power = 0;  // Variables will change: int ledState1 = LOW;             // ledState used to set the LED1 int ledState2 = LOW;             // ledState used to set the LED2 int ledState3 = LOW;             // ledState used to set the LED3 int ledState4 = LOW;             // ledState used to set the LED4 long previousMicros_solid = 0;        // will store last time solid LEDs was updated long previousMicros_flicker = 0;     // will store last time flickering LED was updated // the follow variables is a long because the time, measured in miliseconds, // will quickly become a bigger number than can be stored in an int.  //configures the digital pins void setup(){   pinMode(ledPin1,OUTPUT);   pinMode(ledPin2,OUTPUT);   pinMode(ledPin3,OUTPUT);   pinMode(ledPin4,OUTPUT);   pinMode(switchPin1,INPUT);   pinMode(switchPin2,INPUT); }  //Loop for LED1 void pin1Flicker() {unsigned long currentMicros_solid = micros();   unsigned long currentMicros_flicker = micros();  78   if(currentMicros_solid - previousMicros_solid >= solid_sec)      {// save the last time you blinked the LED        previousMicros_solid = currentMicros_solid;          // if the LED is off turn it on and vice-versa:       if (ledState2 == LOW)         ledState2 = HIGH;       else         ledState2 = LOW;       if (ledState3 == LOW)         ledState3 = HIGH;       else         ledState3 = LOW;       if (ledState4 == LOW)         ledState4 = HIGH;       else         ledState4 = LOW;       // set the LED with the ledState of the variable:}     if(currentMicros_flicker - previousMicros_flicker >= flicker_sec)     {// save the last time you blinked the LED        previousMicros_flicker = currentMicros_flicker;          // if the LED is off turn it on and vice-versa:       if (ledState1 == LOW)         ledState1 = HIGH;       else         ledState1 = LOW;       // set the LED with the ledState of the variable:}       digitalWrite(ledPin1, ledState1);       digitalWrite(ledPin2, ledState2);       digitalWrite(ledPin3, ledState3);       digitalWrite(ledPin4, ledState4);}  //Loop for LED2 void pin2Flicker() {unsigned long currentMicros_solid = micros();   unsigned long currentMicros_flicker = micros();   if(currentMicros_solid - previousMicros_solid >= solid_sec)      {// save the last time you blinked the LED        previousMicros_solid = currentMicros_solid;          // if the LED is off turn it on and vice-versa:       if (ledState1 == LOW)         ledState1 = HIGH;       else         ledState1 = LOW;       if (ledState3 == LOW)         ledState3 = HIGH;       else         ledState3 = LOW;       if (ledState4 == LOW)  79         ledState4 = HIGH;       else         ledState4 = LOW;       // set the LED with the ledState of the variable:}     if(currentMicros_flicker - previousMicros_flicker >= flicker_sec)     {// save the last time you blinked the LED        previousMicros_flicker = currentMicros_flicker;          // if the LED is off turn it on and vice-versa:       if (ledState2 == LOW)         ledState2 = HIGH;       else         ledState2 = LOW;       // set the LED with the ledState of the variable:}       digitalWrite(ledPin1, ledState1);       digitalWrite(ledPin2, ledState2);       digitalWrite(ledPin3, ledState3);       digitalWrite(ledPin4, ledState4);}  //Loop for LED3 void pin3Flicker() {unsigned long currentMicros_solid = micros();   unsigned long currentMicros_flicker = micros();   if(currentMicros_solid - previousMicros_solid >= solid_sec)      {// save the last time you blinked the LED        previousMicros_solid = currentMicros_solid;          // if the LED is off turn it on and vice-versa:       if (ledState1 == LOW)         ledState1 = HIGH;       else         ledState1 = LOW;       if (ledState2 == LOW)         ledState2 = HIGH;       else         ledState2 = LOW;       if (ledState4 == LOW)         ledState4 = HIGH;       else         ledState4 = LOW;       // set the LED with the ledState of the variable:}     if(currentMicros_flicker - previousMicros_flicker >= flicker_sec)     {// save the last time you blinked the LED        previousMicros_flicker = currentMicros_flicker;          // if the LED is off turn it on and vice-versa:       if (ledState3 == LOW)         ledState3 = HIGH;       else         ledState3 = LOW;       // set the LED with the ledState of the variable:}  80       digitalWrite(ledPin1, ledState1);       digitalWrite(ledPin2, ledState2);       digitalWrite(ledPin3, ledState3);       digitalWrite(ledPin4, ledState4);} //Loop for LED4 void pin4Flicker() {unsigned long currentMicros_solid = micros();   unsigned long currentMicros_flicker = micros();   if(currentMicros_solid - previousMicros_solid >= solid_sec)      {// save the last time you blinked the LED        previousMicros_solid = currentMicros_solid;          // if the LED is off turn it on and vice-versa:       if (ledState1 == LOW)         ledState1 = HIGH;       else         ledState1 = LOW;       if (ledState2 == LOW)         ledState2 = HIGH;       else         ledState2 = LOW;       if (ledState3 == LOW)         ledState3 = HIGH;       else         ledState3 = LOW;       // set the LED with the ledState of the variable:}     if(currentMicros_flicker - previousMicros_flicker >= flicker_sec)     {// save the last time you blinked the LED        previousMicros_flicker = currentMicros_flicker;          // if the LED is off turn it on and vice-versa:       if (ledState4 == LOW)         ledState4 = HIGH;       else         ledState4 = LOW;       // set the LED with the ledState of the variable:}       digitalWrite(ledPin1, ledState1);       digitalWrite(ledPin2, ledState2);       digitalWrite(ledPin3, ledState3);       digitalWrite(ledPin4, ledState4);} //Loop that runs all the time void loop() {switch1 = digitalRead(switchPin1);   switch2 = digitalRead(switchPin2);   power = digitalRead(powerPin);   //Checks the state of the two switches and runs a specific loop in the previous line of code      if(switch1 == LOW & switch2 == LOW & power == LOW)   {pin1Flicker();}   if(switch1 == HIGH & switch2 == LOW & power == LOW)  81   {pin2Flicker();}   if(switch1 == LOW & switch2 == HIGH & power == LOW)   {pin3Flicker();}   if(switch1 == HIGH & switch2 == HIGH & power == LOW)   {pin4Flicker();}   if(power == HIGH)   {digitalWrite(ledPin1, LOW);   digitalWrite(ledPin2, LOW);   digitalWrite(ledPin3, LOW);   digitalWrite(ledPin4, LOW);} }    82 Appendix B: Randomising Temporal Experiments in R #Script to generate a random order of treatments and positions for Temporal Acuity Experiments #December 22nd 2014 #Tyee Fellows  #Creating a vector of randomized positions LR<-rep("LR",14) MR<-rep("MR",14) ML<-rep("ML",14) LL<-rep("LL",14) positions<-c(LL,ML,LR,MR) #Concatenates the 4 vectors into 1 vector positions<-sample(positions) #Randomizes the order of positions  #Creating a vector of randomized treatments treatments<-rep(c(20,30,40,50,60,70,80,90,100),6) #Defining 54 treatments into on vector treatments<-sample(treatments) #Randomizing the order of treatments treatments<-c(treatments,NA,NA) #Adding two rows to make the treatment vector the same length as the position vector order<-cbind(positions,treatments) #Binding the position and treatment vector into the final matrix:Order.    83 Appendix C: Programming in PostScript PostScript is a stack-based programming language designed to create aesthetically pleasing text and image documents. It is a complete language that is as powerful as C++ or Java, but is typically used for printing documents. Nowadays, older generation desktop printers and modern plotting printers typically utilize PostScript to print their jobs. Whenever you send a PDF to a PostScript printer, it converts the image into a sophisticated PostScript file and prints the script itself. Most of the time this is good enough, but if you need to print a precise image, letting the computer make its own PostScript file may introduce errors into your image. If you are able to code at the level of the printer language, you can have total control of your printer. The more complex the image you would like to print, the more difficult it can be to code. However, if you are trying to print a repetitive image without artefacts, PostScript may be your solution.   I used the PostScript to print a basic image of repeating black and white bars of very small sizes (0.4mm up to 2.5mm). A copy of my PostScript file will be supplied in the appendix of this document. With PostScript, I was able to move a phantom cursor between two points and draw a line of defined size. I repeated this step thousands of times to print a full image. If you are looking to create a similar repetitive document, PostScript is the language for you.  PostScript File Test   Please copy and paste the following text into a “TextEdit” file on any Mac computer or "NotePad" for a windows computer that has Adobe installed.       %!PS-Adobe-3.1 %%Creator: Tyee Fellows %%Title: The Altshuler Lab %%CreationDate: January 17 2015 %%DocumentSize: 8.5” by 11” << /PageSize [612 792] >> setpagedevice   %% Printing “The Altshuler Lab” 5 times /n 5 def  %Number of loops performed   /Courier 30 selectfont   1 1 n { newpath 72 mul 380 add 72 exch moveto (The Altshuler Lab) show } for   showpage      84 Mac Users: Save the "TextEdit" file in the Unicode (UTF-8) format onto the Desktop. Open the newly saved file from the Desktop and you should see a document with “The Altshuler Lab” printed 5 times. If this is not what you see, please ensure you have the latest version of Adobe installed. If this works, open the document using “TextEdit” and analyze each line of code thoroughly to understand how PostScript works.  Windows Users: Save the "NotePad" file to the Desktop with the suffix ".ps". This suffix informs the computer that this file is a PostScript file. To open the document, you need to have Adobe distiller installed. Distiller converts the ".ps" file into a readable PDF file. If you do not have distiller installed, you can download it for free from the following URL: https://helpx.adobe.com/creative-suite/kb/cs2-product-downloads.html# Once you have successfully read a PostScript file, open the document using "NotePad" and analyze each line of code thoroughly to understand how PostScript works.  Basics of PostScript:   Concept of PostScript: PostScript breaks up a document into a 2-dimensional grid. To draw a line or write sentence, you need to define the coordinates into the script to tell the computer where to start drawing or writing. If you want to draw a series of connected lines, you need to define a path the computer needs to follow before actually drawing the line. Imagine you are using an imaginary pen, and this pen always starts in the bottom left corner of the page. To draw a dot in the middle of the page, you have to shift this pen a certain number of points in the right direction (x-axis), then in the top direction (y-axis) before writing. Everything inside of a document has to have defined coordinates, so PostScript can get complicated quickly. That being said, the fact that everything has absolute coordinates allows you to precisely control the location of every ink droplet on the paper.   Comments: Like any coding language, you are able to make comments throughout a script by using a “%”. All text that follows a percent sign will not be executed when the file is opened. This is useful for making notes for each line of code. There is one exception: "%!". This symbol defines the script as a PostScript file.   Points: PostScript uses “points” for units of distance. There are 72 points in an inch. So a standard 8.5” by 11” sheet of paper would correspond to 612 by 792 points.   Page Layout: PostScript works in a 2D environment. When printing an image, it begins every job at the bottom left of a page and assumes that point to be the origin (0,0). If you want to write text on a document, you will have to tell where the imaginary pen to move from the origin. Positive X-values correspond to areas towards the right, and positive Y-values correspond to areas towards the top. Imagine you are looking down on a sheet of paper and the left side is the y-axis and the bottom is the x-axis.   To begin drawing a line or letter, you have to tell the X and Y directions the imaginary pen  85 needs to move when creating an image. For instance, if you want to start drawing 3 inches from the left side and 7 inches from the bottom, you would need to tell the pen to move 216 points in the X direction, and 504 points in the Y direction. This code would look something like this:   216 504 moveto   “moveto” is a function in PostScript that specifies where to move a phantom pen across a file. The function takes the two preceding numbers and assumes the first of the two numbers to be the X-value and the second to be the Y-value. If there are three numbers, “moveto” only takes the two closest numbers. For example:   10 2 54 moveto   This would tell the imaginary pen to move 2 points in the X direction and 54 points in the Y direction.   There are many more functions in PostScript, many of which I have no idea what they do. If you would like to learn more, I provided helpful resources at the end of this document.   Starting a PostScript file: Every file has to start with the following line of code:   %!PS-Adobe-3.1   This line specifies that the document is a PostScript file and tells the computer which version of Adobe script you would like to use to read your code. Any version of Adobe works; I happen to be using Adobe 3.1. Today, Adobe no longer needs “PS-Adobe-3.1” in the document, so “%!” will suffice (but it is good practice to include it anyway). Also, if you have a more advanced version of Adobe, asking the computer to use an older version of Adobe should not be a problem either.   An optional line of code that is not necessary but highly recommended:   << /PageSize [612 792] >> setpagedevice   This line specifies the size of paper you will be using to print your image on. In this example, you are telling the computer you would like the page to be 612 points wide, and 792 points tall (this is also the size of a standard 8.5" by 11" page document). If this is not included in your script, Adobe will adjust the page accordingly. However, there is a limit to which it will adjust the size of the paper. Without this code, Adobe will stop adjusting the paper past 1.5m in either X or Y direction (Approx. 4320 points). But, by specifying the size at the start of the document, you can create any size of paper you would like!   Ending a PostScript file: If you plan to print your newly made document, you must end your script with the following line of code:   showpage    86 This tells the printer to print whatever is stated before this line of code. If you do not include this in your script, you will still be able to view your final image; but when you try and print your script, the printer will not function properly because it is looking for this missing command. Therefore, this should be at the end of every PostScript document.    Walk-Through Examples For each example, I have removed non-essential code to simplify learning. I have also included the line number to help navigate through the script. Please do not use the line numbers in your script. PostScript will not understand it. A copy-paste format is found in the appendix of this document.   Example #1: “A Box”   In this example you are defining a path in a shape of a rectangle, then drawing a line along the path to create the image. The path itself is not visible. Only until you tell the computer to create a stroke, does it become visible. Inside the box, you are telling the computer to write a string of text: "A Box".   1       %!PS-Adobe-3.1 2 3       << /PageSize [612 792] >> setpagedevice 4 5       /Courier 30 selectfont 6 7       newpath 8       153 594 moveto 9       306 0 rlineto 10     0 -396 rlineto 11     -306 0 rlineto 12     0 396 rlineto 13     5 setlinewidth 14     stroke 15 16     265 396 moveto 17     (A Box) show 18 19      showpage   Line: 1: Stating that this is a PostScript file (%!) and to use Adobe 3.1 version (PS-Adobe-3.1)   3: Specifying the page size. “/PageSize” is the function and “setpagedevice” sets it   5: Sets the font to be “Courier” style with a size of 30. “selectfont” is the function   7: "newpath" is a function that terminates the existing path it is currently on and starts a new one. Each time this code is executed, the phantom pen returns to the origin (0,0), or the bottom left of  87 the page.   8: "moveto" is a function that moves the phantom pen from the origin to the position stated by the two most preceding numbers. Therefore, the pen will move 153 points in the X direction and 594 points in the Y direction.   9: "rlineto" is a function that draws a line between the current position and the final position that is stated by the two most preceding numbers. In this example, it moves the pen 306 points towards the right (X axis) and 0 points in the top direction (Y axis). NOTE: "rlineto" is very similar to the function "lineto". "rlineto" moves the imaginary pen from the current position to a new position stated by the two numbers before, while "lineto" moves the imaginary pen from the origin (0,0) to a new position stated by the two numbers. The "r" in "rlineto" represents relative position.   10: Much like line #9, but the pen moves in the downward direction by 396 points. It moves the pen downwards because the Y-value that was stated before "rlineto" is negative.   11: Moves the imaginary pen towards the left by 306 points.   12: Move the imaginary pen towards the top by 396 points.   13: "setlinewidth" is a function that sets the size of the line you would like to use when you actually draw the line, or "stroke" the line.   14: "stroke" is a function that tells the computer to fill in the path with ink. The size and colour of ink used can be controlled using other functions.   16: Moving the pen from the origin (0,0) to the position defined by the two preceding numbers. In this example, you are telling the pen to move 265 points towards the right (X axis) and 396 points towards the top (Y axis). Note: "moveto" always moves the pen from the origin, while "rmoveto" moves the pen from the current location to a new location relative to the current location.   17: This is the line where you tell Adobe write a string of text. Anything between parentheses, or "(" and ")" is interpreted as a string of text. "show" is the function that writes the string of text onto the document.   19: "showpage" is a function that tells the printer to print the result of the code before this line. Without this line of code, you will not be able to physically print your document.    Example #2: “The Altshuler Lab”   In this example you writing "The Altshuler Lab" 5 times using a "for loop". This example allows you to generate repetitive images using a few lines of code.     1       %!PS-Adobe-3.1  88 2 3       << /PageSize [612 792] >> setpagedevice 4 5       /n 5 def 6 7       /Courier 30 selectfont 8 9       1 1 n { 10    newpath 11    72 mul 380 add 72 exch moveto 12    (The Altshuler Lab) show 13    } for 14 15    showpage     Line: 1: Stating that this is a PostScript file (%!) and to use Adobe 3.1 version (PS-Adobe-3.1)   3: Specifying the page size. “/PageSize” is the function and “setpagedevice” sets it   5: Defines “n” to be a variable, and gives it a value of 5. “def” is the function   7: Sets the font to be “Courier” style with a size of 30. “selectfont” is the function   9-13: This is known as a “for loop”. A "for loop" is a function that repeats a segment of code a defined number of times. The segment of code is always stated between the curly brackets, "{" and "}". In PostScript, a "for loop" ALWAYS starts with the "start number" as its first value. Every time the "for loop" loops, this value switches to the next number. The increment it switches to is stated at the start of the loop. Below is a more detailed answer:   9: States the parameters of the loop. The first number gives the number the loop will start at, which in this example is 1. The second number gives the increments that the loop moves from one number to the next. The third number/letter is the terminating number; once the loop reaches this value, the loop stops. When it’s all put together, this loop will start at 1, move in increments of 1, and will end when the loop value reaches a value of 5. Therefore, this loop will run 5 times.   10: "newpath" is a function that resets the starting position of the phantom pen. Each time this code is executed, the phantom pen returns to the origin (0,0), or the bottom left of the page.   11: This line of code ultimately tells the Adobe where to start writing. This is where stacking becomes evident. Please refer to the helpful resources for a more detailed explanation before proceeding (I found the YouTube video most helpful, as I am a visual learner). When learning this, read the line of code from left to right and always keep track of the placement of numbers. Now recall that a "for loop" always starts with a starting value. In our example, the "for loop" has started with a value of 1. So imagine that there is a 1, before the 72. The next number is 72, this is needed for the "mul" function. "mul" is a function that multiplies the two preceding numbers. In this case, the "mul" multiplies 1 and 72 together, to get 72. Carry this result into the next argument to the right,  89 which in this case is "add". "add" is a function that takes the two most preceding numbers and adds them together; so in this example, 72 (the result from the previous operation) would be added to 380, giving a result of 452. "exch" is a function that exchanges the position of the two most preceding numbers, so 452 and 72 would be switched to 72 and 452. "moveto" is a function that moves the phantom pen from the origin to the position stated by the two preceding numbers. Therefore, the pen will move 72 points in the X direction and 452 points in the Y direction.   12: This is the line where you tell Adobe to write a string of text. Anything between the parentheses, or "(" and ")", is interpreted as a string of text. "show" is the function that writes the string of text onto the document.   13: Ending the "for loop". Ensure the "for" follows the closing curly brackets, "}".   15: "showpage" is a function that tells the printer to print the result of the code before this line. Without this line of code, you will not be able to physically print your document.   Helpful Resources  Private webpage: http://paulbourke.net/dataformats/postscript/   YouTube: https://www.youtube.com/watch?v=S_NXz7I5dQc   Wikipedia: http://en.wikipedia.org/wiki/PostScript   Example 1: "A Box"   %!PS-Adobe-3.1 %%Creator: Tyee Fellows %%Title: A Box %%CreationDate: January 17 2015 %%DocumentSize: 8.5” by 11” << /PageSize [612 792] >> setpagedevice   /Courier 30 selectfont   newpath 153 594 moveto 306 0 rlineto 0 -396 rlineto -306 0 rlineto 0 396 rlineto 5 setlinewidth stroke    90 265 396 moveto (A Box) show   showpage   Example 2: "The Altshuler Lab"   %!PS-Adobe-3.1 %%Creator: Tyee Fellows %%Title: The Altshuler Lab %%CreationDate: January 17 2015 %%DocumentSize: 8.5” by 11” << /PageSize [612 792] >> setpagedevice   %% Printing “The Altshuler Lab” 5 times /n 5 def  %Number of black bars   /Courier 30 selectfont   1 1 n { newpath 72 mul 380 add 72 exch moveto (The Altshuler Lab) show } for   showpage   Tyee's Acuity File:   %!PS-Adobe-3.1 %%Creator: Tyee Fellows %%Title: 2.5point and 2 point stimuli %%CreationDate: November 27 2014 %%DocumentSize: 42” by 251” << /PageSize [3024 9108] >> setpagedevice   %% 0 Point Stimulus newpath 36 36 moveto 1440 0 rlineto 0 9000 rlineto -1440 0 rlineto closepath 1 setlinewidth 0.5 setgray fill stroke  91   %% 1 Point Stimulus /m 4500 def  %Number of black bars   1 1 m { newpath 2 mul 36 add 1548 exch moveto 1440 0 rlineto 1 setlinewidth 0 setgray stroke } for   showpage 12     92 Appendix D: Randomise Spatial Acuity Experiments in R #Script to generate a random order of treatments and positions for Temporal Acuity Experiments #January 25 2015 #Tyee Fellows  #Creating a vector of randomized positions LL<-c("left","low") LM<-c("left","medium") LH<-c("left","high") RL<-c("right","low") RM<-c("right","medium") RH<-c("right","high") treatments<-cbind(LL,LM,LH,RL,RM,RH) treatments<-treatments[,sample(ncol(treatments))] treatments<-t(treatments)    93 Appendix E: Statistical Analysis of Temporal Acuity Data in R  #******************************************************************* ### Tyee's temporal acuity data #******************************************************************* setwd("/Users/tyeefellows/Documents/R_Directory/temporal_data/CSV") colour<-c('darkred','forestgreen','blue','deeppink','blueviolet','orange') files<-list.files() dim<-rep(NA,length(files)) for(i in 1:length(files)){  read<-read.csv(files[i])[complete.cases(read.csv(files[i])[,1:11]),1:11]  dim[i]<-dim(read)[1] } dim sum(dim) cumsum(dim) # note Tyee's original csvs had some excess rows that get trimmed here. should have 70 rows per file data<-read.csv(files[1])[1:70,1:11] head(data) data$Colour<-as.character(data$Colour) data$Decision<-as.character(data$Decision) data$Side<-as.character(data$Side) data[71:(70*length(files)),]<-NA for(i in 2:length(files)){  read<-read.csv(files[i])[complete.cases(read.csv(files[i])[,1:11]),1:11]  read$Colour<-as.character(read$Colour)  read$Decision<-as.character(read$Decision)  read$Side<-as.character(read$Side)  data[(cumsum(dim)[i-1]+1):cumsum(dim)[i],]<-read } data<-subset(data,data$AC==1) head(data) tail(data) summary(data) # perfect  names(data)<-c('trial','date','bird','time','side','freq','decision','correct','bcorrect','color','ac')  # cleaning up some errors data$side[data$side==' ML']<-'ML' data$decision[data$decision==' MR']<-'MR' levels(factor(data$decision)) # still one "L" entry that is an error?  #data[data$decision=="L",]$decision<-'LL' # that error is now corrected. should have been LL  str(data) for(i in c(5,10)){ data[,i]<-as.factor(data[,i])}  94 for(i in c(2,4)){ data[,i]<-as.character(data[,i])} summary(data$ac) # should be all 1s, and it is. good.  data$birdtrial<-paste(data$bird,data$freq,data$color,sep='_') correct<-aggregate(data$bcorrect,by=list(data$birdtrial),FUN='sum') trials<-as.data.frame(table(data$birdtrial)) # 7 for each correct names(correct)<-c('trial','correct') correct$total<-7 correct$incorrect<-correct$total-correct$correct correct$bird<-factor(substr(correct$trial,1,3)) correct$freq<-as.numeric(sub("_","",substr(correct$trial,5,7))) correct$color<-(substr(correct$trial,(nchar(correct$trial)-1),nchar(correct$trial))) correct$color[correct$color=='ed']<-'red' correct$color[correct$color=='te']<-'white' correct$color<-as.factor(correct$color)   #----------------------------------------------------------------------------------------------------------------------------------------------- # Analysis of Data #----------------------------------------------------------------------------------------------------------------------------------------------- # Step 1: Test for a color with a binomial model head(correct) # let's model with with a binomial success/failure library(lme4) cmod<-glmer(cbind(correct,incorrect)~freq+color+(1|bird),data=correct,family='binomial') summary(cmod) # use a likelihood ratio test to compare models with and without color effect cmod1<-glmer(cbind(correct,incorrect)~freq+color+(1|bird),data=correct,family='binomial',method='ML') cmod2<-glmer(cbind(correct,incorrect)~freq+(1|bird),data=correct,family='binomial',method='ML') anova(cmod1,cmod2) # so light color does not have a statistically significant effect on the response curve. # BUT note that this model assumes that the response probability is bounded at 0 and 1. in reality, we think the lower limit should be 0.25  #----------------------------------------------------------------------------------------------------------------------------------------------- #Getting CIs on proportion successful for each frequency where we have a lot of data #----------------------------------------------------------------------------------------------------------------------------------------------- # note that we ignore color here # we also ignore the frequencies with limited data (5's)  # stratified bootstrap library(boot)  95 correct<-correct[with(correct,order(bird,color,freq)),] # sort the dataset correct$percent<-correct$correct/correct$total*100 # percent correct  freqs<-c(20,30,40,50,55,60,65,70,75,80,85,90,100) nreps<-10000 # number of bootstrap iterations  # initialize a dataframe to store the results bsmean<-data.frame(matrix(NA,nrow=nreps,ncol=length(freqs))) names(bsmean)<-paste('freq',freqs,sep='_')  # function to pass to boot() bootmean<-function(data,index){  d<-data[index,]  return(mean(d$percent)) }   for(k in 1:length(freqs)){  bssubset<-subset(correct,freq==freqs[k])    bsmean[,k]<-boot(data=bssubset,statistic=bootmean,R=nreps,strata=bssubset$bird)$t   print(k) } #ROZ1 Is this bootstrapping all birds together, or each bird 10 000...? head(bsmean) upr<-apply(bsmean,2,quantile,probs=0.975) # get the CIs lwr<-apply(bsmean,2,quantile,probs=0.025)  birdfreqmeans<-aggregate(c(correct$correct/correct$total),by=list(correct$bird,correct$freq),FUN='mean') freqmeans<-aggregate(birdfreqmeans$x,by=list(birdfreqmeans$Group.2),FUN='mean') freqmeans  # plot the overall means and the bootstrap CIs x<-seq(20,100,by=0.1) dev.new(width=6,height=6) plot(x~Group.1,freqmeans,pch=16,ylim=c(0,1),xlab=c('frequency (Hz)'),ylab=c('percent correct (%)'),bty='n');abline(h=0.25,lty=2); segments(freqs,lwr/100,freqs,upr/100,col='black')  #----------------------------------------------------------------------------------------------------------------------------------------------- #Fitting a sigmoidal nonlinear mixed model #----------------------------------------------------------------------------------------------------------------------------------------------- # rationale is that the curve should be bounded at approximately 0.25 and 1.00 (not 0 and 1, as a regular binomial model assumes)  library(nlme)   96 # first we define the sigmoidal function myform2 <- function(slope,center,freq) {85-60 / (1 + exp(-slope * (freq-center)))} # in this funciton we assume a starting success rate of 85% because that's how they did at 20Hz: freqmeans  birdfreqmeans$Group.1<-factor(birdfreqmeans$Group.1) birdfreqmeans$percent<-birdfreqmeans$x*100 # I assume a high-end asymptote of 85 because that's the success rate attained on average at the lowest freq  birdfreqmeans_192<-subset(birdfreqmeans,Group.1==192,data=birdfreqmeans)  # first, by trial and error, we find the approximate parameter values that fit the data. these will be starting points for the model fitting process. plot(birdfreqmeans$percent~jitter(birdfreqmeans$Group.2),ylim=c(0,110),pch=16);abline(h=c(25,100),lty=2) points(myform2(.15,60,seq(from=20,to=100,length.out=66))~seq(from=20,to=100,length.out=66),type='l',col='red') # this looks about right so we'll seed the model with starting values of slope=0.15 and center=55  # fitting the model using all of the data modsig <- nlme(percent ~ myform2(s,c,Group.2), data = birdfreqmeans, fixed = s+c ~ 1, random = s+c ~ 1|Group.1, start = c(s=0.15,c=55)) summary(modsig) # estimated parameters from the fitted model are slope = 0.13992 and center = 60.66105  slope<-modsig$coefficients$fixed[1] inflect<-modsig$coefficients$fixed[2]  # so far this analysis assumes no difference between the colors # we aren't totally about that, though # however, if the colors differ, we can assume they probably have the same slope but just shifted inflection points # so next, let's use the slope parameter of 0.14 found from the overall data, and determine the infleciton point for each color, and it's CI...  #----------------------------------------------------------------------------------------------------------------------------------------------- #Fitting bird's responses to different colour in a Logisistic model #----------------------------------------------------------------------------------------------------------------------------------------------- #Making the function myform3 <- function(center,freq) {85-60 / (1 + exp(-slope * (freq-center)))} # new function to fit the inflection with a set slope parameter of 0.14 #Red modsigred <- nlme(percent ~ myform3(c,freq), data = subset(correct,color=='red'), fixed = c ~ 1, random = c ~ 1|bird, start = c(c=inflect)) summary(modsigred)  #White  97 modsigwhite <- nlme(percent ~ myform3(c,freq), data = subset(correct,color=='white'), fixed = c ~ 1, random = c ~ 1|bird, start = c(c=inflect)) summary(modsigwhite) #UV modsigUV <- nlme(percent ~ myform3(c,freq), data = subset(correct,color=='UV'), fixed = c ~ 1, random = c ~ 1|bird, start = c(c=inflect)) summary(modsigUV) #All modsigall <- nlme(percent ~ myform3(c,freq), data = correct, fixed = c ~ 1, random = c ~ 1|bird, start = c(c=inflect)) summary(modsigall)  #Summary of each model modsigs<-list(summary(modsigred),summary(modsigwhite),summary(modsigUV),summary(modsigall)) inflections<-data.frame(matrix(nrow=4,ncol=3),model=c('red','white','UV','all')) for(i in 1:4){  mod<-modsigs[[i]]  est<-mod$tTable[,1]  lwri<-mod$tTable[,1]-1.96*mod$tTable[,2]  upri<-mod$tTable[,1]+1.96*mod$tTable[,2]  inflections[i,1:3]<-round(data.frame(est=est,lwri=lwri,upri=upri),1)  } inflections names(inflections) <- c('inflection', 'lower', 'upper', 'model') inflections   #Plotting the Results library(calibrate) plot(inflections$inflection,main=c('Influence of Light Colour on \n CFF\'s Inflection Points'),xaxt='n',xlab=c('LED Colour'),ylab=c('Inflection Value (Hz)'),ylim=c(0,100),xlim=c(0.5,4.5),pch=16,col=c('red','white','blue','black'));points(inflections$inflection,pch=1,col='black');segments(x0=1:4,y0=inflections$lower[1:4],y1=inflections$upper[1:4]) axis(1,at=c(1,2,3,4),labels=c('Red','White','UV','All')) textxy(c(1,2,3,4),inflections$inflection,inflections$inflection,cex=1) # so white may be lower than UV, but it's not statistically significantly different. # therefore I would say that it's reasonable to pool the colors and proceed as though there's no color effect (i.e., modsig)  #ROZ2 How did you find the CIs for the inflection points!  #----------------------------------------------------------------------------------------------------------------------------------------------- # plot the fitted model, with datapoints colored by bird ID. triangles = means #----------------------------------------------------------------------------------------------------------------------------------------------- dev.new(width=6,height=6)  98 plot(birdfreqmeans$percent~jitter(birdfreqmeans$Group.2,factor=0.5),ylim=c(0,110),pch=16,col=colour,xlab=c('frequency (Hz)'),ylab=c('percent correct (%)'),cex=0.75,bty='n');abline(h=c(25),lty=2,col='red',lwd=1.5) # points colored by bird legend(90,100,(birdfreqmeans$Group.1[1:6]),pch=16,title=c('bird ID'),pt.cex=0.75,cex=0.8,col=colour,bty='n') #points(myform2(slope,inflect,seq(from=20,to=100,length.out=66))~seq(from=20,to=100,length.out=66),type='l',col='black',lwd=1.5) points(x*100~Group.1,freqmeans,pch=17) segments(freqs,lwr,freqs,upr,col='black') #for(i in 1:6){ # points(myform2(coef(modsig)[i,1],coef(modsig)[i,2],seq(from=20,to=100,length.out=66))~seq(from=20,to=100,length.out=66),type='l',col=1+as.numeric(factor(rownames(ranef(modsig))))[i],lwd=0.75) #} # adds individual fit lines estimated each bird # so the highest frequency with CIs that exclude 25% is 70Hz # suggests that on average, the Anna's flicker fusion is ~70Hz (obviously some birds higher, some lower)  #----------------------------------------------------------------------------------------------------------------------------------------------- #Isolating the results for each LED color #----------------------------------------------------------------------------------------------------------------------------------------------- #Identifying the CFF for each bird for each color #Lowest flicker frequency that is below 50% correct is identified as CFF correct_red<-subset(correct,color=='red',data=correct) correct_white<-subset(correct,color=='white',data=correct) correct_UV<-subset(correct,color=='UV',data=correct) birds<-c(192,193,194,195,196,197) cff<-as.data.frame(matrix(0,length(birds),5)) cff[,1]<-birds names(cff)<-c('bird','red','white','UV','all')  for (i in 1:length(birds)){ temp_red<-subset(correct_red,bird==birds[i],data=correct_red) temp_white<-subset(correct_white,bird==birds[i],data=correct_white) temp_UV<-subset(correct_UV,bird==birds[i],data=correct_UV) temp_all<-subset(correct,bird==birds[i],data=correct)   for (k in 1:10){     if (cff[i,2]==0) {       if(temp_red$percent[11-k]<=50) {}        else {cff[i,2]<-temp_red$freq[12-k]}     }   }   for (k in 1:10){     if (cff[i,3]==0) {       if(temp_white$percent[11-k]<=50) {}   99       else {cff[i,3]<-temp_white$freq[12-k]}     }   }   for (k in 1:10){     if (cff[i,4]==0) {       if(temp_UV$percent[11-k]<=50) {}        else {cff[i,4]<-temp_UV$freq[12-k]}     }   }   for (k in 1:10){     if (cff[i,5]==0) {       if(temp_all$percent[11-k]<=50) {}        else {cff[i,5]<-temp_all$freq[12-k]}     }   } } cffmean<-matrix(NA,4,8) cffmean[,1]<-c(1,2,3,4) N<-10000 for (j in 2:dim(cff)[2]){ cffmean[j-1,2]<-mean(cff[,j])#mean cffmean[j-1,3]<-sd(cff[,j])#sd cffmean[j-1,4]<-cffmean[j-1,3]*sqrt((1/(dim(cff)[1]))*(1-(dim(cff)[1]/N))*(N/(N-1)))#sd with pop size of 10 000 cffmean[j-1,5]<-cffmean[j-1,3]/sqrt(dim(cff)[1])#se with sample size larger than 10 cffmean[j-1,6]<-cffmean[j-1,2]+cffmean[j-1,5]*1.96#upper CI cffmean[j-1,7]<-cffmean[j-1,2]-cffmean[j-1,5]*1.96#lower CI } cff_red<-cbind(cff$bird,cff$red,1) cff_white<-cbind(cff$bird,cff$white,2) cff_UV<-cbind(cff$bird,cff$UV,3) cff_all<-cbind(cff$bird,cff$all,4) cff<-rbind(cff_red,cff_white,cff_UV,cff_all)  title1=c('influence of color\n on hummingbird\'s CFF') title1=c() plot(jitter(subset(cff[,3],cff[,3]!=4,data=cff),factor=0.5),subset(cff[,2],cff[,3]!=4,data=cff),main=title1,xaxt='n',xlab=c('LED hue'),ylab=c('CFF (Hz)'),ylim=c(50,90),xlim=c(0.75,4),pch=16,col=colour,bty='n') points(subset(cffmean[,1],cffmean[,1]!=4,data=cffmean),subset(cffmean[,2],cffmean[,1]!=4,data=cffmean),pch=17) axis(1,at=c(1,2,3),labels=c('red','white','UV')) legend(3.25,90,(birdfreqmeans$Group.1[1:6]),title=c('bird ID'),pch=16,pt.cex=0.75,cex=0.8,col=colour,bty='n') segments(x0=1:3,y0=cffmean[1:3,7],y1=cffmean[1:3,6])  ##Finding the influence of colour on birds CFF: NO EFFECT! #Performing ANOVA on CFF data  100 cffmean<-as.data.frame(cffmean) cff<-subset(cff,cff[,3]!=4) cff<-as.data.frame(cff) cffmean[,8]<-c('red','white','UV','all') names(cffmean)<-c('color','mean','sd','sizeSE','autoSE','upr','lwr','color') names(cff)<-c('birdID','cff','color') for (i in 1:length(cff$color)){   if (cff$color[i] == 1) cff$color[i]<-c('red')   if (cff$color[i] == 2) cff$color[i]<-c('white')   if (cff$color[i] == 3) cff$color[i]<-c('UV') #  if (cff$color[i] == 4) cff$color[i]<-c('all') } cff$color<-as.factor(cff$color) cff$cff<-as.numeric(cff$cff) cff.anova<-aov(cff~color,data=cff) summary(cff.anova) cff.anova.HSD<-TukeyHSD(cff.anova,'color')   #Performing a factorial ANOVA test #March16 2015 correct$freq<-as.factor(correct$freq) anova.out<-aov(percent~freq+color+freq*color,data=correct) summary(anova.out) #Significant effect of freq on response, but no effect of colour #Also, there interaction effect between colour and frequency  #Tukey Honest Significant difference test anova.out.freq<-TukeyHSD(anova.out,"freq") #65Hz the highest frequency that is significantly different from that of the higher frequencies #Therefore, the CFF is approximately 70Hz anova.out.color<-TukeyHSD(anova.out,"color") anova.out.freqcolor<-TukeyHSD(anova.out,"freq:color") #There is no   #rm(list=ls())   capture.output(anova.out.freq,file="overallCFF.doc") write.csv(file="CFF.anova.csv", x = data.frame(cff.anova.HSD$color))     101 Appendix F: Processing Spatial Acuity Data in MATLAB %% Analysis of all CSV files %-------------------------------------------------------------------------- clear all close all clear clc  %-------------------------------------------------------------------------- %Parameters %-------------------------------------------------------------------------- % 2 = centers data around intial location (first 1 second) % 1 = centers data's average around 0 % 0 = unmodified data center = 1;  %IF 1 or 2 is used, please specify the ymin and ymax of figure ymin = -40; ymax = 40;  %-------------------------------------------------------------------------- %Establishing working directory from MATLAB directory on Tyee's computer %-------------------------------------------------------------------------- directory = cd; if sum(double(directory(1,:,1))) == 3300     disp('current directory is /Users/tyeefellows/Documents/MATLAB');     cd ('/Volumes/HDD/Users/tyeefellows/Spatial Data/master_avi/'); end directory = cd;  %Stores information pertaining to each xypts.csv into matlab for easy %access list = dir('*xypts.csv'); for i = 1:length(list)     csvread(list(i).name,1,0);     hold_all(i) = struct('date', {list(i).name(13:20)}, ...         'time', {list(i).name(22:27)}, ...         'bird_id', {list(i).name(36:38)}, ...         'pix_size', {list(i).name(29:30)}, ...         'stim_direction', {list(i).name(31)}, ...         'bird_distance', {list(i).name(33:34)}, ...         'cycles_degree', {NaN}, ...         'stim_avel', {NaN}, ...         'stim_tfreq', {NaN}, ...         'framerate_mon', {NaN}, ...         'pix_updatespeed', {NaN}, ...  102         'screenX_degree', {NaN}, ...         'smooth_data', {NaN}, ...         'true_response', {NaN}, ...         'light_level', {list(i).name(52)}, ...         'final_points', {NaN});     hold_all = hold_all; end;  for r=1:length(hold_all) %-------------------------------------------------------------------------- %Importing avi file and making a screenshot of first frame %-------------------------------------------------------------------------- %filename = strcat('DLTdv5_data_' hold_all(i).date '_' hold_all(i).time '_' hold_all(i).pix_size hold_all(i).stim_direction '_' bird_distance '_' bird_id 'xypts.csv'); filename = list(r).name;  %-------------------------------------------------------------------------- %Parameters for data analysis %-------------------------------------------------------------------------- timeOFinterest = 30; %Number of seconds the data will be analyzed for framerate_cam = 100; %Value in frames/sec; recording speed of the prosilicas screenY = 0.5; space_between_peaks = 10; %Number of frames that need to be between two measured peaks space_between_troughs = 10; %Number of frames that need to be between two measured troughs max_threshold = 0.00001;%Degree to which a given point needs to be greater than its surrounding points (PEAKS) min_threshold = 0.00001;%Degree to which a given point needs to be greater than its surrounding points (TROUGHS) avel_threshold = 0.00001; avel_height = 0.5; min_axis = 3;  xy_pts = csvread(filename, 1,0); %csvread command cannot open files with text, therefore I must specifiy the rows/columns to open (1,0: Second row first column is the starting point) cali_pts = csvread(['Acuity_cali_201502.csv'], 1.0);  %Correcting cam orientation to fit current script (June 13th 2014) xres_cam = 640; yres_cam = 480; if xy_pts(4,6) < 200     cam_orientation = 'upsideDown';     xy_pts(:,1) = xres_cam - xy_pts(:,1);     xy_pts(:,2) = yres_cam - xy_pts(:,2);     xy_pts(:,3) = xres_cam - xy_pts(:,3);     xy_pts(:,4) = yres_cam - xy_pts(:,4);     xy_pts(:,5) = xres_cam - xy_pts(:,5);     xy_pts(:,6) = yres_cam - xy_pts(:,6);  103     xy_pts(:,7) = xres_cam - xy_pts(:,7);     xy_pts(:,8) = yres_cam - xy_pts(:,8); else     cam_orientation = 'rightsideUp'; end; %-------------------------------------------------------------------------- %Characteristics of experiment %-------------------------------------------------------------------------- exp_date = str2double(filename(13:20)); exp_time = str2double(filename(22:27)); stim_dir = double(filename(31)); bird_id = str2double(filename(36:38)); bird_dist = str2double(filename(33:34))/100; %Value in m; distance the bird is away from the drum wall hold_all(r).light_level = double(filename(52));  %Correcting for the lack of information in the title of the save files. I have to change the files that are named with 12 to 125. if str2double(filename(29:30)) == 12  stim_width_pt = 125;  stim_width_m = ((stim_width_pt/100)/72)*0.0254; else  stim_width_m = ((str2double(filename(29:30))/10)/72)*0.0254; %Converting points into meters (0.0254 meters per inch) end  one_degree_m = bird_dist*2*tan(0.5*(pi/180)); %Value in m; length of distance between two points in 1-degree of visual field  apparent_bar = atan(stim_width_m/bird_dist)*(180/pi); %deg/bar cycles_degree = 1/((2*atan(stim_width_m/bird_dist))*(180/pi)); %Value in cycles/degree; number of periods per one-degree of visual field %*****DOUBLE CHECK hold_all(r).cycles_degree = cycles_degree;  %Determining the perceived stim velocity %Method 1 stim_ang_vel = str2double(filename(49:50)); %Method 2 stim_speed = stim_ang_vel*(one_degree_m); %Value in m/s stim_ang_vel6 = (stim_speed/bird_dist)*(180/pi); %The percieved angular velocity of the stimulus; degrees/second  vid_length = length(xy_pts)*(1/framerate_cam); hold_all(r).stim_avel = stim_ang_vel;  stim_tfreq = stim_ang_vel/(2*apparent_bar); %Value in cycles/sec hold_all(r).stim_tfreq = stim_tfreq; screenX_degree = 360; %Possible correct because the visual field isn't fully 360 hold_all(r).screenX_degree = screenX_degree;  104 screenY_degree = (2*atan((screenY/2)/bird_dist))*(180/pi); screenArea_degree = screenX_degree*screenY_degree;  %-------------------------------------------------------------------------- %Flipping Y points to match Ty's points to matlabs coofi([], 1, 16)rdinates %--------------------------------------------------------------------------  pt1X = xy_pts(:,1); pt1Y = xy_pts(:,2); pt1Y = yres_cam-pt1Y; pt2X = xy_pts(:,3); pt2Y = xy_pts(:,4); pt2Y = yres_cam-pt2Y; pt3X = xy_pts(:,5); pt3Y = xy_pts(:,6); pt3Y = yres_cam-pt3Y; pt4X = xy_pts(:,7); pt4Y = xy_pts(:,8); pt4Y = yres_cam-pt4Y;  %-------------------------------------------------------------------------- %Indexing pixel coordinates for ruler orientation in 'Acuity_cali' file %-------------------------------------------------------------------------- [cali_row,cali_column] = find(cali_pts == str2double(filename(22:27))); x1_ruler = cali_pts(cali_row,3); y1_ruler = cali_pts(cali_row,4); x2_ruler = cali_pts(cali_row,5); y2_ruler = cali_pts(cali_row,6); P1_ruler = cali_pts(cali_row,7:9); P2_ruler = cali_pts(cali_row,10:12); %hold_all(r).true_response = cali_pts(cali_row,13);  %% Finding angle changes after calibration %-------------------------------y------------------------------------------- %Correcting cam orientation to fit script (June 13th 2014) %-------------------------------------------------------------------------- if sum(double(cam_orientation)) == 1058     x1_ruler = xres_cam - x1_ruler;     y1_ruler = yres_cam - y1_ruler;          x2_ruler = xres_cam - x2_ruler;     y2_ruler = yres_cam - y2_ruler; elseif sum(double(cam_orientation)) == 1160 end;  %-------------------------------------------------------------------------- %Calibration for determing distance and angles %--------------------------------------------------------------------------  105 pix_per_m = (sqrt(((y1_ruler-y2_ruler).^2)+((x1_ruler-x2_ruler).^2)))*100; %Finding the number of pix for a known length. Everything converted to meters m_per_pix = 1/pix_per_m;  base_angle_rad = atan((x1_ruler-x2_ruler)/(y1_ruler-y2_ruler)); base_angle_deg = base_angle_rad*(180/pi);  %-------------------------------------------------------------------------- %Finding instantaneous angle of beak orientation between points 1-2,1-3,1-4 %-------------------------------------------------------------------------- %NOTE: Ty Hendricks program gives XY in the from the bottom left of the %image, while MATLAB treats the top left of the image as the origin. %Therefore, whenever you are dealing with the xy_pts variable, take into %account the values.  %Point1 vs Point2 angle pt1_2_rad = zeros(length(pt1X),1); pt1_2_deg = zeros(length(pt1X),1); for i=1:length(xy_pts)     pt1_2_rad(i,1) = atan((pt1X(i,1)-pt2X(i,1))/(pt1Y(i,1)-pt2Y(i,1)));     pt1_2_rad(i,1) = pt1_2_rad(i,1)+base_angle_rad;     pt1_2_deg(i,1) = pt1_2_rad(i,1)*(180/pi); end  pt1_3_rad = zeros(length(pt1X),1); pt1_3_deg = zeros(length(pt1X),1);  %Point1 vs Point3 angle for i=1:length(xy_pts)     pt1_3_rad(i,1) = atan((pt1X(i,1)-pt3X(i,1))/(pt1Y(i,1)-pt3Y(i,1)));     pt1_3_rad(i,1) = pt1_3_rad(i,1)+base_angle_rad;     pt1_3_deg = pt1_3_rad*(180/pi); end  pt1_4_rad = zeros(length(pt1X),1); pt1_4_deg = zeros(length(pt1X),1);  %Point1 vs Point4 angle for i=1:length(xy_pts)     pt1_4_rad(i,1) = atan((pt1X(i,1)-pt4X(i,1))/(pt1Y(i,1)-pt4Y(i,1)));     pt1_4_rad(i,1) = pt1_4_rad(i,1)+base_angle_rad;     pt1_4_deg = pt1_4_rad*(180/pi); end  pt1_34_rad = zeros(length(pt1X),1); pt1_34_deg = zeros(length(pt1X),1);  %Average angle between P1-P3 and P1-P4  106 for i=1:length(xy_pts)     pt1_34_rad(i,1) = (pt1_3_rad(i,1)+pt1_4_rad(i,1))/2;     pt1_34_deg = pt1_34_rad*(180/pi); end  %% Smoothing Data %%************************************************************************* %-------------------------------------------------------------------------- %Buttord filter %-------------------------------------------------------------------------- data_extension = 1; for i=data_extension     pt1_2_deg = ([pt1_2_deg(1,1);pt1_2_deg(1:end,1)]); end X_mags = abs(fft(pt1_2_deg(data_extension:end,1))); num_bins = length(X_mags);  Wp = 0.1; Ws = (1*10^-5); Rp = 0.5; Rs = 500; [N,Wn] = buttord(Wp,Ws,Rp,Rs); [b,a] = butter(N,Wn,'low');  H2 = freqz(b,a, floor(num_bins/2));  pt1_2 = filtfilt(b,a,pt1_2_deg(:,1)); pt1_2_buttord= pt1_2(:,1);  %Shifts smoothed data so it overlays raw data! pt1_2_buttord = pt1_2_buttord(data_extension:end,1);  %PLOTTING  %Frequency spectrum %{ figure(2); hold on plot(0:1/(num_bins/2 -1):1, abs(H2),'k'); %}  %Filtered data figure(3); plot(pt1_2_buttord,'k') hold on plot(pt1_2_deg(data_extension:end,1)); title(['Filtered Signal - Using ' num2str(N) ' th Order Butterworth']) xlabel('Samples'); ylabel('Amplitude');  107 axis([0 3500 -40 40]);  %Finding the mean beak angle and making an automated method to select %average to the nearest 0.25 degrees mean_pt1_2_deg = mean(pt1_2_deg); %round up up = ceil(mean_pt1_2_deg * 4) / 4; %round down down = floor(mean_pt1_2_deg * 4) / 4; if (up-mean_pt1_2_deg) > (mean_pt1_2_deg-down)     mean_pt1_2_deg = down; else     mean_pt1_2_deg = up; end %Finding axis limit for spline figure ymin4=min(pt1_2_deg(data_extension:end,1))-1; ymax4=max(pt1_2_deg(data_extension:end,1))+1; if ymax4-ymin4 < 4     ymax4 = mean_pt1_2_deg + min_axis;     ymin4 = mean_pt1_2_deg - min_axis; else end  %-------------------------------------------------------------------------- %Smoothing spline %-------------------------------------------------------------------------- %{ smoothing_parameter = 0.001; [smth_spline, smth.stat, smth.par] = fit((1:length(pt1_2_deg))',pt1_2_deg(:,1),'smoothingspline','SmoothingParam', smoothing_parameter); smth_spline_data=zeros(timeOFinterest*framerate_cam,1); for i = 1:timeOFinterest*framerate_cam     smth_spline_data(i,1)=smth_spline(i); end %} %-------------------------------------------------------------------------- %Deciding final smoothing data method %-------------------------------------------------------------------------- final_data = pt1_2_buttord(1:timeOFinterest*100,1); if center == 2;     smoothData_mean = mean(final_data(1:25,1));     smoothData1_2 = final_data-smoothData_mean;     figure(1)     plot(((1/framerate_cam):(1/framerate_cam):timeOFinterest),smoothData1_2);     axis([0 timeOFinterest ymin ymax]); elseif center == 1;     smoothData_mean = mean(final_data);  108     smoothData1_2 = final_data-smoothData_mean;     figure(1)     plot(((1/framerate_cam):(1/framerate_cam):timeOFinterest),smoothData1_2);     axis([0 timeOFinterest ymin ymax]); else     smoothData_mean = mean(final_data);     smoothData1_2 = final_data;     figure(1)     plot(((1/framerate_cam):(1/framerate_cam):timeOFinterest),smoothData1_2);     axis([0 timeOFinterest ymin4 ymax4]); end  %-------------------------------------------------------------------------- %Plotting smooth spline %-------------------------------------------------------------------------- hold_all(r).smooth_data = smoothData1_2; hold_all(r).smooth_data((length(xy_pts(:,1))+1):timeOFinterest*framerate_cam,1) = 0; start_smoothData1_2 = 1;  start_ang = mean(smoothData1_2(1:(framerate_cam*2),1)); stop_ang = mean(smoothData1_2(end-(framerate_cam*2):end,1)); delta_beak_ang = stop_ang - start_ang;   %Finding the mean beak angle and making an automated method to select %average to the nearest 0.25 degrees mean_smoothData1_2 = mean(smoothData1_2); %round up up = ceil(mean_smoothData1_2 * 4) / 4; %round down down = floor(mean_smoothData1_2 * 4) / 4; if (up-mean_smoothData1_2) > (mean_smoothData1_2-down)     mean_beak_ang = down; else     mean_beak_ang = up; end   end;   %% Plotting all data to single figure %  rng(195)%194,195 SANDRA, 196 197 Ricardo avel_ref = [5]; %Degree/second cc=hsv(length(hold_all)); random(1:length(hold_all),1)=[1:length(hold_all)]; random(1:length(hold_all),2)=rand([length(hold_all),1]);  109 random=sortrows(random,2); random=random(1:end,1); for r=1:length(random)     figure(2)     %temp=random(r); %Use if you want to randomise treatments for viewing     temp=r; %Use if you don't want to randomise treatments.     h=plot(((1/framerate_cam):(1/framerate_cam):timeOFinterest),hold_all(temp).smooth_data,'color',cc(r,:),'LineWidth', 1.5);     hold on end axis([0 timeOFinterest -20 20]); Title  = sprintf('Beak Angle of Bird %d', bird_id); hTitle  = title(Title); hXLabel = xlabel('Time (s)'); hYLabel = ylabel('Beak Angle (°)'); set(gca, 'FontName','Times'); set([hTitle,hXLabel,hYLabel],'FontName','Arial', 'FontSize', 30); set([hXLabel,hYLabel],'FontSize', 30); %line([5.75 5.75], [-20 20]); %line([5.75 5.75], [-30 30]); %line([11.5 11.5], [-30 30]); %line([17.25 17.25], [-30 30]); %line([17.25 17.25], [-30 30]);   legend_text = []; numbers(1:length(hold_all),1)=[1:length(hold_all)]; for j=1:length(hold_all)     %temp=random(j);     temp=j;      legend_text = [legend_text ...          '[''Bird ' num2str(numbers(j)) ...          ' ' hold_all(temp).bird_id ...           ', ' hold_all(temp).date ...          ', ' hold_all(temp).time ...          ', ' hold_all(temp).pix_size ...          hold_all(temp).stim_direction ...          ', ' num2str(hold_all(temp).stim_avel) ...          '°/sec, ' hold_all(temp).bird_distance ...           'cm, ' num2str(hold_all(temp).stim_tfreq) ...          'Hz, ' hold_all(temp).light_level ...          ', (' num2str(hold_all(temp).cycles_degree) 'c/deg)' '''],']; end legend_text  = [legend_text '''location'',''NorthWest''']; legend_fig2 = eval(['legend(' legend_text ')']); set(legend_fig2,'FontSize',10,'FontName','Arial'); legend HIDE;  110 legend BOXOFF;  timeorder = []; for r=1:length(hold_all)     temp=random(r);     timeorder(r,1)=str2num(hold_all(temp).time); end  set(gca, ...   'Box'         , 'off'     , ...   'TickDir'     , 'out'     , ...   'TickLength'  , [.01 .001] , ...   'XMinorTick'  , 'on'      , ...   'YMinorTick'  , 'on'      , ...   'XGrid'       , 'off'      , ...   'YGrid'       , 'off'      , ...   'XColor'      , [.3 .3 .3], ...   'YColor'      , [.3 .3 .3], ...   'LineWidth'   , 2);  %Plotting the slopes of different avels for reference start_time = zeros(length(avel_ref),1)+1;%seconds end_time = zeros(length(avel_ref),1)+5;%seconds start_angle = zeros(length(avel_ref),1)-30;%Degrees end_angle = zeros(length(avel_ref),1);%Degrees end_anglelimit = -20;   for i = 1:length(avel_ref(:,1))     end_angle(i,1) = avel_ref(i,1)*(end_time(i,1) - start_time(i,1))+start_angle(i,1);         if end_angle(i,1) > end_anglelimit             end_time(i,1) = (end_anglelimit - start_angle(i,1))/(avel_ref(i,1))+start_time(i,1);             cali_ref1 = plot([start_time(i,1) end_time(i,1)],[start_angle(i,1) end_anglelimit],'k', 'LineWidth', 1.5);             hold on             cali_ref2 = plot([start_time(i,1) end_time(i,1)],[start_angle(i,1) (end_anglelimit*2)],'k', 'LineWidth', 1.5);         else             cali_ref1 = plot([start_time(i,1) end_time(i,1)], [start_angle(i,1) (end_angle(i,1))],'k', 'LineWidth', 1.5);             cali_ref2 = plot([start_time(i,1) end_time(i,1)],[start_angle(i,1) (end_anglelimit*2)],'k', 'LineWidth', 1.5);             hold on         end      x = get(cali_ref1,'XData')'; % Get the plotted data     y = get(cali_ref1,'YData')';     iendX = x(end,1);  111     iendY = y(end,1);     text(iendX,iendY,[num2str(avel_ref(i,1)) '°/sec'],...  'VerticalAlignment','middle',...  'HorizontalAlignment','left',...  'FontSize',10)     x = get(cali_ref2,'XData')'; % Get the plotted data     y = get(cali_ref2,'YData')';     iendX = x(end,1);     iendY = y(end,1);     text(iendX,iendY,[num2str(avel_ref(i,1)) '°/sec'],...  'VerticalAlignment','middle',...  'HorizontalAlignment','left',...  'FontSize',10)  end     112 Appendix G: Statistical Analysis of Spatial Data in R #--------------------------------------------------------- # Spatial Acuity Data #--------------------------------------------------------- #Importing two files setwd('/Users/tyeefellows/Documents/R_Directory/spatial_data/') data<-read.csv('trace_analysis_192seed.csv',nrows=269) data2<-read.csv('trace_analysis_193seed.csv',nrows=269) data4<-read.csv('trace_analysis_194seed.csv',nrows=269) data5<-read.csv('trace_analysis_195seed.csv',nrows=269) data<-subset(data,data$trueDirection!='S')#I took videos of stationary motions, I'm exluding that from the data data2<-subset(data2,data2$trueDirection!='S')#I took videos of stationary motions, I'm exluding that from the data data4<-subset(data4,data4$trueDirection!='S')#I took videos of stationary motions, I'm exluding that from the data data5<-subset(data5,data5$trueDirection!='S')#I took videos of stationary motions, I'm exluding that from the data data<-subset(data,lightLevel=='H',data=data)#Allows me to control which lightlevel goes through the analysis data2<-subset(data2,lightLevel=='H',data=data2)#Allows me to control which lightlevel goes through the analysis data4<-subset(data4,lightLevel=='H',data4=data4)#Allows me to control which lightlevel goes through the analysis data5<-subset(data5,lightLevel=='H',data5=data5)#Allows me to control which lightlevel goes through the analysis #data3<-rbind(data,data2) data3<-rbind(data,data2,data4,data5)  #Creating variable with info on stim size #treatment in meters, cpd in cycles per degree treatments<-c(0.00,1.00,1.25,1.50,2.00,2.50,3.50)#Treatments in point size cpd<-matrix(NA,1,7) cpd<-treatments*0.000352777778#Treatments in meters for(i in 1:length(cpd)){   cpd[i]<-1/((atan(cpd[i]/0.5)*(360/pi)))   if (cpd[i]==Inf) cpd[i]<-c(0) } #Wrote a loop to convert all the points into meters cpd<-round(cpd,2)  #Finding average response to each stimulus averages3<-matrix(NA,7,4) averages3[,4]<-cpd for (i in 1:length(cpd)){   averages3[i,1]<-(mean(subset(data3$qualityControl1,data3$treatment==treatments[i])))*100 }#Taking the overal averages for each spatial acuity sheet for ALL birds  113  #Plotting the average response to each stimulus title<-c('spatial acuity of \n six anna\'s hummingbird') xlab<-c('spatial acuity (c/deg)') ylab<-c('presence of OKR (%)') plot(averages3[,4],averages3[,1],ylim=c(0,100),main=title,xlab=xlab,ylab=ylab,pch=20);abline(h=c(averages3[1,1]),col='red',lty=2,lwd=2)  #--------------------------------------------------------- #Analysis! #--------------------------------------------------------- #Making new data frame for the bootstrap data! #I have to preserve the decimal places to accurately read data frame, so I turned #the bar sizes into characters data3$treatment<-as.character(data3$treatment)  for (i in 1:(4*length(data$treatment))){     if(data3$treatment[i]=='0') data3$treatment[i]<-'0.00'     if(data3$treatment[i]=='2.5') data3$treatment[i]<-'2.50'     if(data3$treatment[i]=='1.5') data3$treatment[i]<-'1.50'     if(data3$treatment[i]=='2') data3$treatment[i]<-'2.00'     if(data3$treatment[i]=='1') data3$treatment[i]<-'1.00'     if(data3$treatment[i]=='3.5') data3$treatment[i]<-'3.50' } #Creating a "present" variable that carries all the info for relevant data data3$trail<-paste(data3$birdID,data3$treatment,data3$lightLevel,data3$trueDirection,sep='_') present3<-aggregate(data3$qualityControl1,by=list(data3$trail),FUN='sum') names(present3)<-c('trial','present') present3$total<-4 present3$absent<-present3$total-present3$present present3$percent<-(present3$present/present3$total)*100 present3$bird<-factor(substr(present3$trial,1,3)) present3$treatment<-factor(substr(present3$trial,5,8)) present3$light<-factor(substr(present3$trial,10,10)) present3$light<-as.factor(present3$light)  #Setting up the bootstrap library(boot)#Importing library nreps<-10000#Number of iterations of bootstrap  #Making data frame bsmean3<-data.frame(matrix(NA,nrow=nreps,ncol=length(cpd))) names(bsmean3)<-paste('size',cpd,sep='_')  #Function for bootstrap bootmean<-function(data,index){   d<-data[index,]   return(mean(d$percent))  114 }   #Performing bootstrap cpdCharacter<-c('0.00','1.00','1.25','1.50','2.00','2.50','3.50') for(k in 1:length(cpdCharacter)){   bssubset3<-subset(present3,treatment==cpdCharacter[k])       bsmean3[,k]<-boot(data=bssubset3,statistic=bootmean,R=nreps,strata=bssubset3$bird)$t    print(paste(k,'C')) }  #Finding 95% CI using bootstrapped data upr3<-apply(bsmean3,2,quantile,probs=0.975) # get the CIs lwr3<-apply(bsmean3,2,quantile,probs=0.025)  #Plotting data! text3<-expression(paste('high light\n(32.0 candels/',m^2,')')) text3<-c('no high \nlight levels') plot(averages3[,4],averages3[,1],ylim=c(0,100),main=title,xlab=xlab,ylab=ylab,pch=20,bty='n');abline(h=c(averages3[1,1]),col='red',lty=2,lwd=2) segments(averages3[,4],lwr3,averages3[,4],upr3,col='black') text(11,80,text3,adj = c(0.5, NA))      115 Appendix H: Dunnetts Contrast for Assessing Spatial Acuity in R # Tyee spatial analysis setwd('/Users/tyeefellows/Documents/R_Directory/spatial_data_RD/') list.files() s1 <- read.csv('trace_analysis_sandra1.csv') s2 <- read.csv('trace_analysis_sandra2.csv') t1 <- read.csv('trace_analysis_tyee1.csv') t2 <- read.csv('trace_analysis_tyee2.csv')  head(s1) head(s2) head(t1) head(t2)  datalong <- rbind(s1,s2,t1,t2) datalong$observer <- factor(c(rep('Sand', 2*dim(s1)[1]),rep('Tyee', 2*dim(t1)[1]))) summary(datalong)  # qualityControl1: This is the binary response which I use for the final response # trueDirection: Which defines the actual motion of the drum # lightLevel: which is the light level used during the experiment # treatment: which is bar sizes # 0 - control (50% grey, no bars) # 1,  # 1.2 (which is actually 1.25),  # 15 (which is 1.5),  # 2,  # 2.5,  # 3.5 # These are the bar sizes measured in points. There are 0.000352777778 meters per point, so you'll have to convert the numberes to get the actual bar size. The cycles per degree depends on the bird's distance from the walls of the drum, which is 0.5. If you don't want to both with these calculations, I can just convert them after you're done.  summary(factor(datalong$treatment)) # looks like the 1.25s and 1.5s are coded properly. no need to recode datalong$treatment <- factor(datalong$treatment) levels(datalong$treatment) # 0 is the control level # note also there is no need to convert the bar sizes to metres, because we are going to treat them as categorical, and use a dunnett's test to compare each level to the contorl level (0)  # we focus on low/medium light treatments, based on prelimnary examination of data. high light induced a response even in control conditions.  116  # qualityControl1 is when I rounded the unsure treatments DOWN. qualityControl2 is when I rounded them UP. we want to examine qualityControl1 as the response variable levels(factor(datalong$qualityControl1)) levels(factor(datalong$qualityControl2)) # both are binary  # also we want to exclude treatmetns with the stationary drum dim(subset(datalong,trueDirection!='S'))[1]/4 # 252 in total dim(subset(datalong,lightLevel!='H'&trueDirection!='S'))[1]/4 # 168 in medium/low light  # simplest solution: analyze binary response with binomial mixed model, accounting for the repeated measures # note that I account for 'observer' by including it as a fixed effect (it's that we're not actually interested in testing it)  library(lme4) library(multcomp)  with(subset(datalong,lightLevel!='H'&trueDirection!='S'),table(qualityControl1,treatment)) # because the treatment levels 1.5 and 2 have virtually 100% 0 responses, the model runs into convergence issues. this is because of complete separation. anyway, we can eliminate those categories and fit hte model without them as we're confident that there's no response. mod <- lmer(qualityControl1 ~ observer + treatment + (1|vName), data=subset(datalong,lightLevel!='H'&trueDirection!='S'&treatment!='1.5'&treatment!='2'), family=binomial) summary(mod) myDunnett <- glht(mod, linfct=mcp(treatment="Dunnett")) dunnett.output1<-summary(myDunnett) # the results confirm what is obvious from just looking at the data: there is no response until the bar size is greater than or equal to 2.5  # note we don't have the same problem (complete separation) with qualityControl2. although we get a warning, the resulting fit works and looks OK with(subset(datalong,lightLevel!='H'&trueDirection!='S'),table(qualityControl2,treatment)) mod2 <- lmer(qualityControl2 ~ observer + treatment + (1|vName), data=subset(datalong,lightLevel!='H'&trueDirection!='S'), family=binomial) summary(mod2) myDunnett2 <- glht(mod2, linfct=mcp(treatment="Dunnett")) summary(myDunnett2) dunnett.output2<-summary(myDunnett) # same results as above  capture.output(dunnett.output1,file="dunnet.doc") write.csv(file="dunnett.csv", x = data.frame(dunnett.output1$test))   # first inspect the data visually library(lattice)  117 datalong$lightLevel <- factor(datalong$lightLevel, levels=c('L','M','H')) xyplot(jitter(qualityControl1)~jitter(as.numeric(treatment))| lightLevel,subset(datalong,trueDirection!='S'),pch=16) # it's obvious from this that under high light, birds are responding even without any bars to fixate on  # tabulate the responses for each light level with(subset(datalong,lightLevel=='L'&trueDirection!='S'),table(qualityControl1,treatment)) with(subset(datalong,lightLevel=='M'&trueDirection!='S'),table(qualityControl1,treatment)) with(subset(datalong,lightLevel=='H'&trueDirection!='S'),table(qualityControl1,treatment)) 21/(21+27)  # even in the control treatment (no bars), a response was noted 56% of the time in high light condition.  #therefore conclude that birds must have been able to resolve other features that they fixated on in high light.  #as a result, we exclude high light from analysis, because the tested bar sizes were not indicative of what the birds  #were actually resolving under these conditions.    118 Appendix I: Pupil Diameter Analysis in R #--------------------------------------------------------- # Pupil Analysis Data #-------------------------------------------------------- log=0 library(calibrate)  setwd('/Users/tyeefellows/Documents/R_Directory/pupil_data/all/') data.192<-read.csv('pupil_diameters_192_mm.csv',header=FALSE) data.193<-read.csv('pupil_diameters_193_mm.csv',header=FALSE) data.194<-read.csv('pupil_diameters_194_mm.csv',header=FALSE) data.198<-read.csv('pupil_diameters_198_mm.csv',header=FALSE) data.199<-read.csv('pupil_diameters_199_mm.csv',header=FALSE) data.200<-read.csv('pupil_diameters_200_mm.csv',header=FALSE) data<-rbind(data.192,data.193,data.194,data.198,data.199,data.200) names(data)<-c('lightLevel','mm','birdID') lightLevels<-read.csv('lightLevels.csv',header=FALSE) names(lightLevels)<-c('lightLevel','value') #data<-subset(data,data$lightLevel!=3) #lightLevels<-subset(lightLevels,lightLevels!=3)    light<-seq(2,10,by=1)  lightAverages<-as.data.frame(matrix(NaN,length(light),4)) for (i in 1:length(light)){   lightAverages[i,1]<-(mean(subset(lightLevels$value,lightLevels$lightLevel==light[i])))   lightAverages[i,2]<-(sd(subset(lightLevels$value,lightLevels$lightLevel==light[i])))   lightAverages[i,3]<-lightAverages[i,1]+lightAverages[i,2]   lightAverages[i,4]<-lightAverages[i,1]-lightAverages[i,2] } lightAverages<-round(lightAverages) names(lightAverages)<-c('mean','sd','upr','lwr')  #Figure out why I can't plot everything at once, I think the problem is in pupilAverages pupil<-seq(2,10,by=1)  pupilAverages<-as.data.frame(matrix(NaN,length(light),4)) for (i in 1:length(pupil)){   pupilAverages[i,1]<-(mean(subset(data$mm,data$lightLevel==pupil[i])))   pupilAverages[i,2]<-(sd(subset(data$mm,data$lightLevel==pupil[i])))   pupilAverages[i,3]<-pupilAverages[i,1]+pupilAverages[i,2]   pupilAverages[i,4]<-pupilAverages[i,1]-pupilAverages[i,2] } #pupilAverages<-round(pupilAverages) names(pupilAverages)<-c('mean','sd','upr','lwr')   119 fstop<-as.data.frame(matrix(NaN,dim(pupilAverages)[1],8)) names(fstop)<-c('pupil_mm','one','one.five','two','two.five','three','three.five','two.two') fstop[,1]<-pupilAverages$mean fstop[,2]<-1/pupilAverages$mean fstop[,3]<-1.5/pupilAverages$mean fstop[,4]<-2/pupilAverages$mean fstop[,5]<-2.5/pupilAverages$mean fstop[,6]<-3/pupilAverages$mean fstop[,7]<-3.5/pupilAverages$mean fstop[,8]<-2.6/pupilAverages$mean fstop<-round(fstop,digits=2)  if (log == 1){ title<-c('logarithmic relationship between \n ambient light and pupil diameter') xlabel<-expression(paste('log light level (',10^x,'cad/',m^2,')')) ylabel<-c('pupil diameter (mm)') plot(log10(lightAverages$mean),pupilAverages$mean,main=title,xlab=xlabel,ylab=ylabel,bty='n',pch=20,xlim=c(1,5),ylim=c(0.5,3)) segments(log10(lightAverages$mean),pupilAverages$upr,log10(lightAverages$mean),pupilAverages$lwr,col='black') segments(log10(lightAverages$lwr),pupilAverages$mean,log10(lightAverages$upr),pupilAverages$mean,col='black') abline(v=c(35),col='red',lty=2,lwd=2)  textxy(log10(lightAverages$mean[1:9]),pupilAverages$mean[1:9],fstop$two.two[1:9],cex=1) text(4.5,2.5,'focal length = 2.6mm') text(4.5,2.2,'n = 6 birds') mod1<-lm(pupilAverages$mean~log10(lightAverages$mean)) #abline(mod1,col='red')  pupilMax<-2.5 pupilMin<-1.5 pupilMod<-function(slope,center,freq) {pupilMax-pupilMin / (1 + exp(-slope * (freq-center)))} points(pupilMod(2.3,3.3,seq(from=1,to=5,length.out=66))~seq(from=1,to=5,length.out=66),type='l',col='red')  } else {   title<-c('relationship between ambient \n light and pupil diameter')   xlabel<-expression(paste('light level (cad/',m^2,')'))   ylabel<-c('pupil diameter (mm)')   plot(lightAverages$mean,pupilAverages$mean,main=title,xlab=xlabel,ylab=ylabel,bty='n',pch=20,ylim=c(0.5,3),xlim=c(0,30000))   segments(lightAverages$mean,pupilAverages$upr,lightAverages$mean,pupilAverages$lwr,col='black')  120   segments(lightAverages$lwr,pupilAverages$mean,lightAverages$upr,pupilAverages$mean,col='black')   #abline(v=c(35),col='red',lty=2,lwd=2)      textxy(lightAverages$mean[1:9],pupilAverages$mean[1:9],fstop$two.two[1:9],cex=1)   text(25000,2.5,'focal length = 2.6mm')   text(25000,2.2,'n = 6 birds') } 

Cite

Citation Scheme:

        

Citations by CSL (citeproc-js)

Usage Statistics

Share

Embed

Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                        
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            src="{[{embed.src}]}"
                            data-item="{[{embed.item}]}"
                            data-collection="{[{embed.collection}]}"
                            data-metadata="{[{embed.showMetadata}]}"
                            data-width="{[{embed.width}]}"
                            async >
                            </script>
                            </div>
                        
                    
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:
http://iiif.library.ubc.ca/presentation/dsp.24.1-0166301/manifest

Comment

Related Items