Investigating Interoperability of the LSST Data Management Software Stack with Astropy

Total Page:16

File Type:pdf, Size:1020Kb

Investigating Interoperability of the LSST Data Management Software Stack with Astropy Investigating interoperability of the LSST Data Management software stack with Astropy Tim Jennessa, James Boschb, Russell Owenc, John Parejkoc, Jonathan Sicka, John Swinbankb, Miguel de Val-Borrob, Gregory Dubois-Felsmannd, K-T Lime, Robert H. Luptonb, Pim Schellartb, K. Simon Krughoffc, and Erik J. Tollerudf aLSST Project Management Office, Tucson, AZ, U.S.A. bPrinceton University, Princeton, NJ, U.S.A. cUniversity of Washington, Seattle, WA, U.S.A dInfrared Processing and Analysis Center, California Institute of Technology, Pasadena, CA, U.S.A. eSLAC National Laboratory, Menlo Park, CA, U.S.A. fSpace Telescope Science Institute, 3700 San Martin Dr, Baltimore, MD, 21218, USA ABSTRACT The Large Synoptic Survey Telescope (LSST) will be an 8.4 m optical survey telescope sited in Chile and capable of imaging the entire sky twice a week. The data rate of approximately 15 TB per night and the requirements to both issue alerts on transient sources within 60 seconds of observing and create annual data releases means that automated data management systems and data processing pipelines are a key deliverable of the LSST construction project. The LSST data management software has been in development since 2004 and is based on a C++ core with a Python control layer. The software consists of nearly a quarter of a million lines of code covering the system from fundamental WCS and table libraries to pipeline environments and distributed process execution. The Astropy project began in 2011 as an attempt to bring together disparate open source Python projects and build a core standard infrastructure that can be used and built upon by the astronomy community. This project has been phenomenally successful in the years since it has begun and has grown to be the de facto standard for Python software in astronomy. Astropy brings with it considerable expectations from the community on how astronomy Python software should be developed and it is clear that by the time LSST is fully operational in the 2020s many of the prospective users of the LSST software stack will expect it to be fully interoperable with Astropy. In this paper we describe the overlap between the LSST science pipeline software and Astropy software and investigate areas where the LSST software provides new functionality. We also discuss the possibilities of re-engineering the LSST science pipeline software to build upon Astropy, including the option of contributing affiliated packages. Keywords: LSST, Astropy, Astronomy Software, Python, Code Reuse 1. INTRODUCTION One major component of the Data Management system1 for the Large Synoptic Survey Telescope (LSST)2{4 is a pair of software pipelines capable of reducing LSST images to catalogs, one to produce alerts while observing and the other to produce data releases at regular intervals. The alert pipeline must be able to process data from the 3.2 gigapixel camera∗ and issue alerts on transient sources within 60 seconds of observing.5 The data release pipeline must be able to efficiently process the 11 data releases that will be made during the ten year survey. Further author information: (Send correspondence to T.J.) T.J.: E-mail: [email protected] ∗This equates to approximately 15 TB per night. See http://lsst.org/scientists/keynumbers for additional num- bers. Command-line Driver Scripts Cluster execution middleware Tasks (ISR, Detection, Co-adding, …) Camera abstraction Measurement Image Processing layer (obs_* Algorithms (meas_*) (ip_*) packages) Application Framework (comp. Middleware (I/O, intensive C++, SWIG) configuration, …) External C/C++ libraries (Boost, External Python Modules FFTW, Eigen, CUDA, ndarray, …) (numpy, pyfits, matplotlib, …) Figure 1. Structure of the LSST data management software. At the bottom there are external packages (black), on the lower left (red) are the computationally intensive packages that are mainly written in C++ with SWIG wrappers making the code available in Python, and the remainder (blue) are mostly Python. In addition to efficiency, the LSST pipelines must also provide unprecedented levels of control over systematic errors across a broad range of scientific domains. Most consumers of LSST data will likely do no image processing of their own, and even those that do will rely heavily on catalogs generated by the LSST pipeline. Furthermore, much of LSST data analysis is expected to happen in LSST's \Level 3 Environment," a combination of hardware and software that will allow scientists to run their own code and customized versions of LSST pipeline algorithms on LSST's middleware and hardware. While algorithmically advanced pipelines and public catalog releases have become the norm for large surveys over the past 20 years, LSST's will be the first for which the software must be accessible to and usable by scientists outside the pipeline team. The difficulty of sharing code between telescopes has long been a topic of discussion in the astronomy software community.6{9 Historically there have been some successes in fundamental libraries, such as SOFA,10 CFITSIO11 and wcslib,12 and in environments, such as IRAF,13 AIPS14 and Starlink.15 Despite these, there is still a tendency for a new project to embark on the creation of a new environment or software infrastructure if there are slight requirements mismatches and no external political will to adopt a specific software suite. The growth in the Open Source software movement16 and recent explosion in support tools, such as git and GitHub for code sharing,17 makes the process of software reuse far easier than it has been in the past. The LSST data processing pipeline software has been in development as an open source project since 200418{20 and during these 12 years of development much has changed in the Python, C++ and astronomy software world. 2. THE LSST SCIENCE PIPELINE SOFTWARE As with other software developed in the early 2000s, such as CASA,21 the LSST science pipeline software is based on a C++ core with a Python control layer, where for LSST the Python/C++ interface layer is handled via SWIG22 bindings. The general layout of the code is shown in Fig.1. At the time of writing the LSST science pipelines codebase is split between C++ and Python with of order 105,000 lines of Python and 125,000 lines of C++y. The software is spread among many different LSST root packages: afw Provides core LSST utility classes including geometric shapes, images, source detection, convolution and high-level exposure objects. daf The data access framework, also known as the Data Butler, provides an abstraction layer hiding data formats, data transport and locations from the user and providing them with standardized Python objects yThis total does not include comment or blank lines, nor does it include the 80,000 lines of Python and 1.6 million lines of C++ generated for the SWIG wrappers. representing the data. It provides facilities for handling simple versioning and time-based data access with validity ranges. ip Low-level image processing algorithms such as instrument signature removal and image differencing. meas Algorithms focused on processing individual sources in an image, including PSF modeling, WCS fitting, and source detection, deblending, and measurement. obs Observatory plugins to teach the system how to handle files from different instruments. pipe base Pipeline processing infrastructure. This allows discrete units of computation to be linked together to form pipelines. pipe tasks High-level algorithms, including initial exposure-level processing and calibration, image coaddition (with sophisticated artifact rejection and coaddition of PSF models), and consistent multi-passband pro- cessing of coadds to measure colors. The Task framework provides a way of packaging science algorithms so that they can be executed in a data-parallel fashion, with further extensions to allow MPI-based tightly- synchronized execution. The framework includes a Python-based configuration language that has default values, overrides from code as well as the end user, and hooks for validation of configured values. The LSST codebase currently contains components that are not of short-term interest for Astropy integration but might become so in the longer run given related work by Astropy contributors in some of these areas.23{25 These include the Data Butler and the Task framework. In terms of overlap with Astropy and affiliated packages the afw and meas packages are most relevant for immediate investigation as they provide some functionality that is of broader interest to the Astropy community but also have functionality that is also present within Astropy. The algorithms in the LSST codebase are not yet at the level of scientific quality ultimately needed for LSST, but they are already being used to process data from the Hyper Suprime-Cam Survey on the Subaru telescope,26, 27 one of the major precursors surveys for LSST, and generally represent the current state-of-the- art. 3. ASTROPY Python has become the dominant programming language for astronomy28{32 and is now the default choice for new projects and for teaching. The Astropy33 project grew out of a support mailing list in 2011 to become a very successful hub for the development of Python packages for astronomy. At the time of writing Astropy consists of approximately 105,000 lines of Python code. Astropy has two key approaches to drive adoption. The first is to place generic astronomy code into the core package that is brought in via import astropy to provide a solid, well-tested base for astronomy software development; the second is to support and encourage the concept of affiliated packages, which use the astropy package and follow the same philosophy on distribution and openness. Together these aim to provide a consistent environment of highly-usable, well-documented, easy-to-install code for astronomers using Python in their research. 4. SYNERGIES The LSST project is constrained by the requirements of the funding agencies to deliver a data management system on schedule and on budget.
Recommended publications
  • Getting Started with Astropy
    Astropy Documentation Release 0.2.5 The Astropy Developers October 28, 2013 CONTENTS i ii Astropy Documentation, Release 0.2.5 Astropy is a community-driven package intended to contain much of the core functionality and some common tools needed for performing astronomy and astrophysics with Python. CONTENTS 1 Astropy Documentation, Release 0.2.5 2 CONTENTS Part I User Documentation 3 Astropy Documentation, Release 0.2.5 Astropy at a glance 5 Astropy Documentation, Release 0.2.5 6 CHAPTER ONE OVERVIEW Here we describe a broad overview of the Astropy project and its parts. 1.1 Astropy Project Concept The “Astropy Project” is distinct from the astropy package. The Astropy Project is a process intended to facilitate communication and interoperability of python packages/codes in astronomy and astrophysics. The project thus en- compasses the astropy core package (which provides a common framework), all “affiliated packages” (described below in Affiliated Packages), and a general community aimed at bringing resources together and not duplicating efforts. 1.2 astropy Core Package The astropy package (alternatively known as the “core” package) contains various classes, utilities, and a packaging framework intended to provide commonly-used astronomy tools. It is divided into a variety of sub-packages, which are documented in the remainder of this documentation (see User Documentation for documentation of these components). The core also provides this documentation, and a variety of utilities that simplify starting other python astron- omy/astrophysics packages. As described in the following section, these simplify the process of creating affiliated packages. 1.3 Affiliated Packages The Astropy project includes the concept of “affiliated packages.” An affiliated package is an astronomy-related python package that is not part of the astropy core source code, but has requested to be included in the Astropy project.
    [Show full text]
  • The Astropy Project: Building an Open-Science Project and Status of the V2.0 Core Package*
    The Astronomical Journal, 156:123 (19pp), 2018 September https://doi.org/10.3847/1538-3881/aabc4f © 2018. The American Astronomical Society. The Astropy Project: Building an Open-science Project and Status of the v2.0 Core Package* The Astropy Collaboration, A. M. Price-Whelan1 , B. M. Sipőcz44, H. M. Günther2,P.L.Lim3, S. M. Crawford4 , S. Conseil5, D. L. Shupe6, M. W. Craig7, N. Dencheva3, A. Ginsburg8 , J. T. VanderPlas9 , L. D. Bradley3 , D. Pérez-Suárez10, M. de Val-Borro11 (Primary Paper Contributors), T. L. Aldcroft12, K. L. Cruz13,14,15,16 , T. P. Robitaille17 , E. J. Tollerud3 (Astropy Coordination Committee), and C. Ardelean18, T. Babej19, Y. P. Bach20, M. Bachetti21 , A. V. Bakanov98, S. P. Bamford22, G. Barentsen23, P. Barmby18 , A. Baumbach24, K. L. Berry98, F. Biscani25, M. Boquien26, K. A. Bostroem27, L. G. Bouma1, G. B. Brammer3 , E. M. Bray98, H. Breytenbach4,28, H. Buddelmeijer29, D. J. Burke12, G. Calderone30, J. L. Cano Rodríguez98, M. Cara3, J. V. M. Cardoso23,31,32, S. Cheedella33, Y. Copin34,35, L. Corrales36,99, D. Crichton37,D.D’Avella3, C. Deil38, É. Depagne4, J. P. Dietrich39,40, A. Donath38, M. Droettboom3, N. Earl3, T. Erben41, S. Fabbro42, L. A. Ferreira43, T. Finethy98, R. T. Fox98, L. H. Garrison12 , S. L. J. Gibbons44, D. A. Goldstein45,46, R. Gommers47, J. P. Greco1, P. Greenfield3, A. M. Groener48, F. Grollier98, A. Hagen49,50, P. Hirst51, D. Homeier52 , A. J. Horton53, G. Hosseinzadeh54,55 ,L.Hu56, J. S. Hunkeler3, Ž. Ivezić57, A. Jain58, T. Jenness59 , G. Kanarek3, S. Kendrew60 , N. S. Kern45 , W. E.
    [Show full text]
  • Data Analysis Tools for the HST Community
    EXPANDING THE FRONTIERS OF SPACE ASTRONOMY Data Analysis Tools for the HST Community STUC 2019 Erik Tollerud Data Analysis Tools Branch Project Scientist What Are Data Analysis Tools? The Things After the Pipeline • DATs: Post-Pipeline Tools Spectral visualization tools Specutils Image visualization tools io models training & documentation modeling fitting - Analysis Tools astropy-helpers gwcs: generalized wcs wcs asdf: advanced data format JWST Tools tutorials ‣ Astropy software distribution astroquery MAST JWST data structures nddata ‣ Photutils models & fitting Astronomy Python Tool coordination photutils + others Development at STScI ‣ Specutils STAK: Jupyter notebooks - Visualization Tools IRAF Add to existing python lib cosmology External replacement Build replacement pkg ‣ Python Imexam (+ds9) constants astropy dev IRAF switchers guide affiliated packages no replacement ‣ Ginga ‣ SpecViz ‣ (MOSViz) ‣ (CubeViz) Data Analysis Software at STScI is for the Community Software that is meant to be used by the astronomy community to do their science. This talk is about some newer developments of interest to the HST user community. 2. 3. 1. IRAF • IRAF was amazing for its time, and the DAT for generations of astronomers What is the long-term replacement strategy? Python’s Scientific Ecosystem Has what Astro Needs Python is now the single most- used programming language in astronomy. Momcheva & Tollerud 2015 And 3rd-most in industry… Largely because of the vibrant scientific and numerical ecosystem (=Data Science): (Which HST’s pipelines helped start!) IRAF<->Python is not 1-to-1. Hence STAK Lead: Sara Ogaz Supporting both STScI’s internal scientists and the astronomy community at large (viewers like you) requires that the community be able to transition from IRAF to the Python-world.
    [Show full text]
  • Python for Astronomers an Introduction to Scientific Computing
    Python for Astronomers An Introduction to Scientific Computing Imad Pasha Christopher Agostino Copyright c 2014 Imad Pasha & Christopher Agostino DEPARTMENT OF ASTRONOMY,UNIVERSITY OF CALIFORNIA,BERKELEY Aknowledgements: We would like to aknowledge Pauline Arriage and Baylee Bordwell for their work in assembling much of the base topics covered in this class, and for creating many of the resources which influenced the production of this textbook. First Edition, January, 2015 Contents 1 Essential Unix Skills ..............................................7 1.1 What is UNIX, and why is it Important?7 1.2 The Interface7 1.3 Using a Terminal8 1.4 SSH 8 1.5 UNIX Commands9 1.5.1 Changing Directories.............................................. 10 1.5.2 Viewing Files and Directories........................................ 11 1.5.3 Making Directories................................................ 11 1.5.4 Deleting Files and Directories....................................... 11 1.5.5 Moving/Copying Files and Directories................................. 12 1.5.6 The Wildcard.................................................... 12 2 Basic Python .................................................. 15 2.1 Data-types 15 2.2 Basic Math 16 2.3 Variables 17 2.4 String Concatenation 18 2.5 Array, String, and List Indexing 19 2.5.1 Two Dimensional Slicing............................................ 20 2.6 Modifying Lists and Arrays 21 3 Libraries and Basic Script Writing ............................... 23 3.1 Importing Libraries 23 3.2 Writing Basic Programs 24 3.2.1 Writing Functions................................................. 25 3.3 Working with Arrays 26 3.3.1 Creating a Numpy Array........................................... 26 3.3.2 Basic Array Manipulation........................................... 26 4 Conditionals and Loops ........................................ 29 4.1 Conditional Statements 29 4.1.1 Combining Conditionals........................................... 30 4.2 Loops 31 4.2.1 While-Loops....................................................
    [Show full text]
  • Research and Technical Resource Guide
    Research and Technical Resources Princeton Astrophysics This guide is meant to provide an overview of essential tools used in astronomy and astrophysics research. They are primarily aimed at the undergraduates beginning to learn the ins and outs of research. 1 General Information about the Department Here are some general things to be aware of as students in Peyton Hall. • The undergraduate portion of the website: www.princeton.edu/astro/undergraduate. This is the best place to look for requirements. • Peyton Hall documentation wiki: www.astro.princeton.edu/docs/Main Page. Lots of information on technical matters, ranging from ssh-ing into workstations to setting up printers on your computer. • See www.astro.princeton.edu/docs/Requesting assistance for the email to contact for any IT assistance you need. • Spring colloquium series: During the Spring semester, we host a speaker every Tuesday afternoon (at 4:30), followed by a reception. Speakers are invited at least partially based on their ability to give good talks. The schedule can be found at www.princeton.edu/astro/news-events/public-events. • Wunch (Wednesday Lunch): www.astro.princeton.edu/∼wunch. Slightly less formal talks are given throughout the academic year, Wednesdays, 12:30. The speakers are often postdocs or grad students. Feel free to bring (or order|see the website) lunch. • Institute for Advanced Study colloquium: www.sns.ias.edu/∼seminar/colloquia.shtml. Though not often frequented by undergrads, you are welcome to attend the Tuesday morning (11:00) talks they host. These are often given by well-known and established astrophysicists, so if one comes up on a topic you are interested in, you should check it out.
    [Show full text]
  • Python Data Analysis and Reduction Tools for Large-Scale Spectroscopy
    Community Python Data Analysis and Reduction Tools for Large-Scale Spectroscopy Erik Tollerud @eteq Astropy Coordination Data Analysis Tools Branch Committee Member Project Scientist (Also: lover of large-scale spectroscopy of local galaxies… talk to me about an Astro2020 White Paper w/ K. Gilbert about M31 & the outer LG!) Python is now the dominant Language in Astro Research Momcheva & Tollerud 2015 Python (esp. in Science) Embraces an Open Ecosystem Openness leads to sharing the load Although: Open Source ≠ Open Development (More on this later) Astropy Mirrors this “Community ecosystem” (Professional) Astronomers help write it with This means both by engineers’ guidance and for the community, It should be useful pooling our for them as part of resources their day-to-day work Specutils https://specutils.readthedocs.io An Astropy-coordinated package with data structures and standard analysis functions for spectroscopy. • Pythonic data structures for spectra ^ • MOS support specifically built-in! • Analysis functions -> • Flux, Centroids, FWHM • Continuum fitting/subtraction • Spectral arithmetic, respecting units • Line modeling Specreduce https://github.com/astropy/specreduce An in-planning (read: mostly not yet implemented) package for reducing OIR spectra (think IRAF twodspec/ onedspec’s calib parts, or IDL spec2d) Needs more contributors! Too many instruments have decided to “roll their own.” (sometimes for good reasons, sometimes not…) This could be a great place for the MSE community to start… JWST DATs are Leveraging the above Spectral
    [Show full text]
  • The Astropy Project: Building an Inclusive, Open-Science Project and Status of the V2.0 Core Package
    This is a repository copy of The Astropy Project: Building an inclusive, open-science project and status of the v2.0 core package. White Rose Research Online URL for this paper: http://eprints.whiterose.ac.uk/130174/ Version: Published Version Article: Collaboration, T.A., Price-Whelan, A.M., Sipőcz, B.M. et al. (134 more authors) (2018) The Astropy Project: Building an inclusive, open-science project and status of the v2.0 core package. The Astronomical Journal , 156 (3). 123. ISSN 0004-6256 https://doi.org/10.3847/1538-3881/aabc4f Reuse This article is distributed under the terms of the Creative Commons Attribution (CC BY) licence. This licence allows you to distribute, remix, tweak, and build upon the work, even commercially, as long as you credit the authors for the original work. More information and the full terms of the licence here: https://creativecommons.org/licenses/ Takedown If you consider content in White Rose Research Online to be in breach of UK law, please notify us by emailing [email protected] including the URL of the record and the reason for the withdrawal request. [email protected] https://eprints.whiterose.ac.uk/ The Astronomical Journal, 156:123 (19pp), 2018 September https://doi.org/10.3847/1538-3881/aabc4f © 2018. The American Astronomical Society. The Astropy Project: Building an Open-science Project and Status of the v2.0 Core Package* The Astropy Collaboration, A. M. Price-Whelan1 , B. M. Sipőcz44, H. M. Günther2,P.L.Lim3, S. M. Crawford4 , S. Conseil5, D. L. Shupe6, M. W. Craig7, N.
    [Show full text]
  • Matt's Astro Python Toolbox Documentation
    Matt’s astro python toolbox Documentation Release 0.1 Matt Craig February 24, 2017 Contents 1 Contents 1 1.1 Overview.................................................1 1.2 Installation................................................2 1.3 Automated header processing......................................4 1.4 Manual header processing........................................ 15 1.5 Image Management........................................... 16 1.6 Header processing............................................ 20 1.7 Index................................................... 34 Python Module Index 35 i ii CHAPTER 1 Contents Overview This package provides two types of functionality; only the first is likely to be of general interest. Classes for managing a collection of FITS files The class ImageFileCollection provides a table summarizing the values of FITS keywords in the files in a directory and provides easy ways to iterate over the HDUs, headers or data in those files. As a quick example: >>> from msumastro import ImageFileCollection >>> ic= ImageFileCollection('.', keywords=['imagetyp','filter']) >>> for hdu in ic.hdus(imagetype='LIGHT', filter='I'): ... print hdu.header, hdu.data.mean() does what you would expect: it loops over all of the images in the collection whose image type is ‘LIGHT’ and filter is ‘I’. For more details see Image Management. The TableTree constructs, from the summary table of an ImageFileCollection, a tree organized by values in the FITS headers of the collection. See Image Management for more details and examples. Header processing of images from the Feder Observatory Semi-automatic image processing Command line scripts for automated updating of FITS header keywords. The intent with these is that they will rarely need to be used manually once a data preparation pipeline is set up. The simplest option here is to use run_standard_header_process which will chain together all of the steps in data preparation for you.
    [Show full text]
  • Fink , a New Generation of Broker for the LSST Community Anais Möller, Julien Peloton, Emille E
    Fink , a new generation of broker for the LSST community Anais Möller, Julien Peloton, Emille E. O. Ishida, Chris Arnault, Etienne Bachelet, Tristan Blaineau, Dominique Boutigny, Abhishek Chauhan, Emmanuel Gangler, Fabio Hernandez, et al. To cite this version: Anais Möller, Julien Peloton, Emille E. O. Ishida, Chris Arnault, Etienne Bachelet, et al.. Fink , a new generation of broker for the LSST community. Monthly Notices of the Royal Astronomical Society, Oxford University Press (OUP): Policy P - Oxford Open Option A, 2021, 501 (3), pp.3272-3288. 10.1093/mnras/staa3602. hal-03045627 HAL Id: hal-03045627 https://hal-cnrs.archives-ouvertes.fr/hal-03045627 Submitted on 8 Dec 2020 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Version 24 November 2020 Fink, a new generation of broker for the LSST community Anais Möller1¢, Julien Peloton2y, Emille E. O. Ishida1z, Chris Arnault2, Etienne Bachelet 3, Tristan Blaineau2, Dominique Boutigny4, Abhishek Chauhan5, Emmanuel Gangler1, Fabio Hernandez6, Julius Hrivnac2, Marco Leoni2,7, Nicolas Leroy2, Marc Moniez2, Sacha Pateyron2, Adrien Ramparison2, Damien Turpin8, Réza Ansari2, Tarek Allam Jr.9,10, Armelle Bajat 11, Biswajit Biswas1,12, Alexandre Boucaud13, Johan Bregeon14, Jean-Eric Campagne2, Johann Cohen-Tanugi15,1, Alexis Coleiro13, Damien Dornic17, Dominique Fouchez16, Olivier Godet18, Philippe Gris1, Sergey Karpov 11, Ada Nebot Gomez-Moran 18, Jérémy Neveu2, Stephane Plaszczynski2, Volodymyr Savchenko19, Natalie Webb17 1LPC, Université Clermont Auvergne, CNRS/IN2P3, F-63000 Clermont-Ferrand, France.
    [Show full text]
  • Astroquery Documentation Release 0.3.7
    astroquery Documentation Release 0.3.7 Adam Ginsburg Mar 29, 2018 Contents I Introduction3 II Installation7 III Requirements 17 IV Using astroquery 21 V Available Services 25 VI Catalog, Archive, and Other 393 i ii astroquery Documentation, Release 0.3.7 This is the documentation for the Astroquery affiliated package of astropy. Code and issue tracker are on GitHub. Contents 1 astroquery Documentation, Release 0.3.7 2 Contents Part I Introduction 3 astroquery Documentation, Release 0.3.7 Astroquery is a set of tools for querying astronomical web forms and databases. There are two other packages with complimentary functionality as Astroquery: astropy.vo is in the Astropy core and pyvo is an Astropy affiliated package. They are more oriented to general virtual observatory discovery and queries, whereas Astroquery has web service specific interfaces. Check out the A Gallery of Queries for some nice examples. 5 astroquery Documentation, Release 0.3.7 6 Part II Installation 7 astroquery Documentation, Release 0.3.7 The latest version of astroquery can be conda installed while the latest and development versions can be pip installed or be downloaded directly from GitHub. 9 astroquery Documentation, Release 0.3.7 10 CHAPTER 1 Using pip $ pip install astroquery and the ‘bleeding edge’ master version: $ pip install https://github.com/astropy/astroquery/archive/master.zip 11 astroquery Documentation, Release 0.3.7 12 Chapter 1. Using pip CHAPTER 2 Using conda It is also possible to install the latest astroquery with anaconda from the astropy channel: $ conda install -c astropy astroquery 13 astroquery Documentation, Release 0.3.7 14 Chapter 2.
    [Show full text]
  • Automated Workflow to Measure Arabidopsis Thaliana Root Tip Angle Dynamic
    bioRxiv preprint doi: https://doi.org/10.1101/2021.07.15.452462; this version posted July 15, 2021. The copyright holder for this preprint (which was not certified by peer review) is the author/funder, who has granted bioRxiv a license to display the preprint in perpetuity. It is made available under aCC-BY-NC 4.0 International license. Title ACORBA: Automated workflow to measure Arabidopsis thaliana root tip angle dynamic Authors Nelson BC Serre and Matyas Fendrych Affiliation Cell Growth Laboratory, Department of Experimental Plant Biology, Faculty of Sciences, Charles University, Prague, Czech Republic. Corresponding author [email protected] Key Words Root gravitropism - Image segmentation - Deep Machine Learning - Python - UNET Summary Plants respond to the surrounding environment in countless ways. One of these responses is their ability to sense and orient their root growth toward the gravity vector. Root gravitropism is studied in many laboratories as a hallmark of auxin-related phenotypes. However, manual analysis of images and microscopy data is known to be subjected to human bias. This is particularly the case for manual measurements of root bending as the selection lines to calculate the angle are set subjectively. Therefore, it is essential to develop and use automated or semi-automated image analysis to produce reproducible and unbiased data. Moreover, the increasing usage of vertical-stage microscopy in plant root biology yields gravitropic experiments with an unprecedented spatiotemporal resolution. To this day, there is no available solution to measure root bending angle over time for vertical-stage microscopy. To address these problems, we developed ACORBA (Automatic Calculation Of Root Bending Angles), a fully automated software to measure root bending angle over time from vertical- stage microscope and flatbed scanner images.
    [Show full text]
  • Astronomical Imaging in Python 2D Arrays
    Week 5 Astronomical Imaging in Python 2D arrays • The astronomical images we deal with, at a basic level, are 2D arrays with each pixel representing a “photon bin.” • Once you have extracted this 2D array from a FITS file, you can work with it in the way we talked about last week. Indexing a 2D array • When indexing a 2D array, we have a broader set of options for what we may want to index • For example, we may want to pull an individual value, a whole row or column, a group of rows and columns, or select a small area of image. Syntax • The syntax for pulling a single element is the double bracket: pull = image_name[456][345] #In row then column format • To pull a range of elements, we use comma notation: pull = image_name[456:500,323:350] • We specify the row range with a colon, then the column range (separated by a comma). The above would pull a sub-array (2D) that was a rectangle on the original image Syntax • We can use our colon shortcuts to index whole rows/columns: pull_col = image_name[ : , 350] #pulls the 350th column pull_row = image_name[40 , : ] #pulls 40th row • We can do the same to specify a range of columns or rows • Exercise: create a 10x10 array using arange.reshape (length 100), and then pull the second, third, and forth columns. Then pull the 5th, 6th, and 7th row. Image Transformations • Sometimes we need to flip our images vertically, horizontally, or both. • To flip an image vertically we can use either: image = image[: : -1] #or image = image[: : -1, :] • The reasoning here is that you are setting the image equal to itself indexed in reversed order along the axis specified (the first version is just a short hand version of the second) Image Transformations • Similarly, if we want to reverse an image horizontally (left/right): image = image[ : , : : -1] • To do both, we can simply apply these transformations in one ([::-1,::-1]).
    [Show full text]