Giter Site home page Giter Site logo

githubactionstutorial-rse23's Introduction

GitHub Actions for Scientific Data Workflows

In this tutorial we will introduce Github Actions as a tool for lightweight automation of scientific data workflows. GitHub Actions have become a key tool of the software development lifecycle, however, many scientific programmers who are not involved in software deployment may not be familiar with their functionalities and/or do not know how they can be applied within their data pipeline. Through a sequence of examples, we will demonstrate some of GitHub Actions' applications to automating data processing tasks, such as scheduled deployment of algorithms to streaming data, updating visualizations based on new data, model versioning and performance benchmarking. For the demonstration we will access a public hydrophone stream and compute and visualize statistics of sound patterns. The goal is that participants will leave with their own ideas on how to integrate Github Actions in their own work.

Prerequisites: GitHub account, basic familiarity with git, Github, and version control, programming in a scripting language such as Python/R

Audience: scientific programmers interested in automating components of their workflows through existing tools for software continuous integration/deployment.

Key Learning Objectives:

  • Learners distinguish between Github Actions and Workflows and understand their role within the software development cycle
  • Learners are capable of triggering GitHub Action Workflows in several different ways and can determine which method could be useful in typical data science applications
  • Learners can export (data) outputs of Github Action Workflows, e.g. tables, plots.

For introduction to GitHub Actions see here.

Orcasound Spectrogram Visualization Workflow

Orcasound GitHub Actions workflow (located at .github/workflows/orcasound_processing.yml) has manual trigger dispatch_workflow. It downloads the full timestamp "directory" from Orcasound AWS bucket (see more here) and processes each file individually. For now you will have to manually change timestamp in the workflow file. If you want to change processing from creating spectrograms to something else look for the loop for input_wav in sorted(glob.glob("wav/*.wav")): at the end of the source file (orcasound_processing.py).

Spectrogram

After the workflow is executed a spec.png file is update in the repo and is visualized below. alt text

githubactionstutorial-rse23's People

Contributors

molkree avatar valentina-s avatar pre-commit-ci[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.