Git Product home page Git Product logo

quail's Introduction

Quail

Docker Publishing Python CI

Quail

Quail is a collective name for several genera of mid-sized birds generally considered in the order Galliformes.

A Web Processing Service for Climate Data Analysis.

Documentation

Learn more about quail from its official documentation.

Submit bug reports, questions and feature requests with Github issues.

Contributing

You can find information about contributing in our Developer Guide.

Please use bumpversion to release a new version.

License

Free software: GNU General Public License v3

Credits

This package was created with Cookiecutter and the bird-house/cookiecutter-birdhouse project template.

quail's People

Contributors

cairosanders avatar eyvorchuk avatar nikola-rados avatar sum1lim avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

quail's Issues

Total Daily Precipitation

Description

This function takes a climdexInput object as input and computes the climdex index PRCPTOT: the annual sum of precipitation in wet days (days where precipitation is at least 1mm).

Function to wrap

climdex.prcptot

Maximum Consecutive Dry Days

Description

This function computes the climdex index CDD: the annual maximum length of dry spells, in days. Dry spells are considered to be sequences of days where daily preciptation is less than 1mm per day.

Function to wrap

climdex.cdd

TX90p

Description

This function takes a climdexInput object as input and computes the monthly or annual percent of values above the 90th percentile of baseline daily maximum temperature.

Function to wrap

`climdex.tx90p

TN10p

Description

This function takes a climdexInput object as input and computes the monthly or annual percent of values below the 10th percentile of baseline daily minimum temperature.

Function to wrap

climdex.tn10p

wps-tools compatibility

Description

Some recent updates to wps-tools are causing problems when using the up to date version.

Requested Action

We will have to rework some of the io elements in order to use the latest version.

User friendly Errors

Description

Right now most, if not all, process errors are shown in the server error log and are not visible to the user other than "process failed". We should provide descriptive error output to the user.

Requested Action

When a process fails, the error output for the user describes why it failed

Alternatives

None

Docker on dev03

  • Update docker-compose.yml for work on dev03
  • Add dev-component for config

Precipitation Exceeding 20mm Per Day

Description

This function takes a climdexInput object as input and computes the climdex index R20mm: the annual count of days where daily precipitation is more than 20mm per day.

Function to wrap

climdex.20mm

Resolve incompatible dependency

Description

When installing the bird using the Makefile and running make, the following incompatible dependency error occurs and should be fixed by pinning the nbclient version.

ERROR: pytest-notebook 0.7.0 has requirement nbclient~=0.5.10, but you'll have nbclient 0.6.3 which is incompatible.

Cold Spell Duration Index

Description

This function takes a climdexInput object as input and computes the climdex index CSDI (Cold Spell Duration Index).

Function to wrap

climdex.csdi

Makefile command updates

  • Update commands to use venv
  • Add testing command
  • Add black linting command
  • Add notebook testing commands

Precipitation Exceeding 10mm Per Day

Description

This function takes a climdexInput object as input and computes the climdex index R10mm: the annual count of days where daily precipitation is more than 10mm per day.

Function to wrap

climdex.r10mm

Summer Days

Description

This function takes a climdexInput object as input and computes the SU (summer days) climdex index: that is, the annual count of days where daily maximum temperature exceeds 25 degrees Celsius.

Function to wrap

climdex.su

Frost Days

Description

This function takes a climdexInput object as input and computes the FD (frost days) climdex index: that is, the annual count of days where daily minimum temperature drops below 0 degrees Celsius.

Function to wrap

climdex.fd

Address Warnings

Address warnings where possible. Current warnings in quail:

quail/processes/wps_climdex_get_available_indices.py:67
  /home/csanders/code/birds/quail/quail/processes/wps_climdex_get_available_indices.py:67: DeprecationWarning: invalid escape sequence \.
    indices = re.compile("climdex\.([a-zA-Z0-9]*)")

tests/test_wps_climdexInput_raw.py::test_wps_climdexInput_raw[file:////home/csanders/code/birds/quail/tests/data/ec.1018935.rda-file:////home/csanders/code/birds/quail/tests/data/ec.1018935.rda-file:////home/csanders/code/birds/quail/tests/data/ec.1018935.rda-ec.1018935.tmax-ec.1018935.tmin-ec.1018935.prec-MAX_TEMP-MIN_TEMP-ONE_DAY_PRECIPITATION-c(1971, 2000)-climdexInput]
tests/test_wps_climdexInput_raw.py::test_wps_climdexInput_raw[file:////home/csanders/code/birds/quail/tests/data/ec.1018935.rda-file:////home/csanders/code/birds/quail/tests/data/ec.1018935.rda-file:////home/csanders/code/birds/quail/tests/data/ec.1018935.rda-ec.1018935.tmax-ec.1018935.tmin-ec.1018935.prec-MAX_TEMP-MIN_TEMP-ONE_DAY_PRECIPITATION-c(1971, 2000)-climdexInput]
  /tmp/quail-venv/lib/python3.8/site-packages/pywps/inout/basic.py:889: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
    LOGGER.warn("Could not link file reference")

Apply Docker multi-stage build

Is your feature request related to a problem? Please describe.
The multi-stage build is a strategy to reduce image sizes and build time. Apply this strategy in the Dockerfile

Describe the solution you'd like
Separate a single stage into two stages, build and execution, by having multiple FROM statements.

Describe alternatives you've considered
None

TN90p

Description

This function takes a climdexInput object as input and computes the monthly or annual percent of values above the 90th percentile of baseline daily minimum temperature.

Function to wrap

climdex.tn90p

Warm Spell Duration Index

Description

This function takes a climdexInput object as input and computes the climdex index WSDI (Warm Spell Duration Index).

Function to wrap

climdex.wsdi

Maximum Consecutive Wet Days

Description

This function takes a climdexInput object as input and computes the climdex index CWD: the annual maximum length of wet spells, in days. Wet spells are considered to be sequences of days where daily precipitation is at least 1mm per day.

Function to wrap

climdex.cwd

All workflows are failing

Description

Each of the github action workflows are failing.

To Reproduce

Steps to reproduce the behavior:

  1. Run workflow
  2. See errors

Expected Behaviour

No errors.

TX10p

Description

This function takes a climdexInput object as input and computes the monthly or annual percent of values below the 10th percentile of baseline daily maximum temperature.

Function to wrap

climdex.tx10p

wps-tools 1.0.0 Update

Description

Update the quail processes using features from wps-tools 1.0.0

Requested Action

Use the r functions, new module format, and output handling functions from wps-tools 1.0.0

Alternatives

None

Multiple inputs

Description

The processes could take multiple file inputs and process several ClimdexInputs at once

Requested Action

Allow for multiple inputs (max_occurs) for input files and add handling for them.

Alternatives

User's could iterate through the files themselves and pass each to the process.

Growing Season Length

Description

This function takes a climdexInput object as input and computes the growing season length based on this data.

Function to wrap

climdex.gsl

Take RDS input

Description

Right now the processes only accept rda file input. It is also possible to access R objects with an RDS file.

Requested Action

Allow for an option of either rds or rda file input

Alternatives

Just take rda only or rds only

LiteralInput for CSV

Description

Using a csv file outside of the thunderbird directory on the docker container causes an encoding error. For now we can just input the contents of the csv in wps_climdexInput_csv.py until we find the right formatting for a ComplexInput csv file.

To Reproduce

Steps to reproduce the behavior:

  1. Runmake test-notebooks-prod or make test-notebooks-custom
  2. See the error on the server logs on dev03

Expected Behaviour

The file should be saved to the docker container as a text/plain file and not cause an encoding error

Icing Days

Description

This function takes a climdexInput object as input and computes the ID (icing days) climdex index: that is, the annual count of days where daily maximum temperature is below 0 degrees Celsius.

Function to wrap

climdex.id

Get available indices by name

Description

This function takes a climdexInput object as input and returns the names of all the indices which may be computed or, if \code{get.function.names} is TRUE (the default), the names of the functions corresponding to the indices.

Function to wrap

climdex.get.available.indices

Tropical Nights

Description

This function takes a climdexInput object as input and computes the TR (tropical nights) climdex index: that is, the annual count of days where daily minimum temperature stays above 20 degrees Celsius.

Function to wrap

climdex.tr

Simple Precpitation Intensity Index

Description

Computes the climdex index SDII, or Simple Precipitation Intensity Index. This is defined as the sum of precipitation in wet days (days with preciptitation over 1mm) during the year divided by the number of wet days in the year.

Function to wrap

climdex.sdii

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.