$30 off During Our Annual Pro Sale. View Details »

Bloomcast - Python Facilitating Operational Oceanography (Doug Latornell)

PyCon Canada
August 10, 2013

Bloomcast - Python Facilitating Operational Oceanography (Doug Latornell)

Bloomcast is a daily prediction of the beginning of the aquatic growing season in the Strait of Georgia. Python makes it possible by collecting meteorological and river flow data, running a Fortran code, analyzing its results, and publishing the prediction to the web - all while I sleep.

PyCon Canada

August 10, 2013
Tweet

More Decks by PyCon Canada

Other Decks in Science

Transcript

  1. Bloomcast:
    Python Facilitating
    Operational Oceanography
    Doug Latornell
    @djlatornell
    Dept of Earth, Ocean & Atmospheric Sciences
    University of British Columbia

    View Slide

  2. Operational Oceanography ???

    View Slide

  3. Operational Meteorology
    Weather Forecasts

    View Slide

  4. ● Run Daily-ish
    ● Driven by Most Current
    Available Real-World Data
    Operational Model:

    View Slide

  5. Bloomcast:
    Python Facilitating
    Operational Oceanography

    View Slide

  6. Bloomcast ???

    View Slide

  7. ● Run SOG Model Daily
    ● Forced by Weather and River
    Flows
    ● Predict Date of 1st Spring
    Phytoplankton Bloom in the
    Strait of Georgia
    Bloomcast:

    View Slide

  8. View Slide

  9. http://www.fields.utoronto.ca/video-archive/static/2013/06/166-1777/mergedvideo.ogv

    View Slide

  10. View Slide

  11. Bloomcast:
    Python Facilitating
    Operational Oceanography

    View Slide

  12. Python !!!

    View Slide

  13. FORTRAN codes are the idiot
    savants of the modern software
    world
    SOG is in FORTRAN

    View Slide

  14. SOG
    YAML
    Requests
    ElementTree BeatifulSoup
    Logging
    (SMTP Handler)
    Colander
    Subprocess NumPy
    Matplotlib Mako
    cron rsync

    View Slide

  15. SOG
    YAML
    Requests
    ElementTree BeatifulSoup
    Logging
    (SMTP Handler)
    Colander
    Subprocess NumPy
    Matplotlib Mako
    cron rsync

    View Slide

  16. Requests

    View Slide

  17. SOG
    YAML
    Requests
    ElementTree BeatifulSoup
    Logging
    (SMTP Handler)
    Colander
    Subprocess NumPy
    Matplotlib Mako
    cron rsync

    View Slide

  18. SOG
    YAML
    Requests
    ElementTree BeatifulSoup
    Logging
    (SMTP Handler)
    Colander
    Subprocess NumPy
    Matplotlib Mako
    cron rsync

    View Slide

  19. http://www.eos.ubc.ca/~sallen/SoG-bloomcast/results.html

    View Slide

  20. 2013 was bloomcast’s 2nd year in
    production
    2012:
    ● Cloud fraction interpolation problem
    ● Bloom date agreed with satellite and cruise
    chlorophyll data
    2013:
    ● New Cloud fraction interpolation algorithm (thanks
    to Requests and NumPy)
    ● Bloom date agreed with satellite and chlorophyll
    data from an instrumented ferry

    View Slide

  21. Future:
    ● Operational deployment of SOG to do
    daily calculation of productivity in Strait
    of Georgia year-round
    ● SOG in the Gulf of St. Lawrence
    ○ GSL-bloomcast, GSL-productivity ??
    ● Bloomcast 2014 and onward

    View Slide

  22. Allen, S.E. and M.A. Wolfe.
    Hindcast of the timing of the spring phytoplankton bloom in the Strait of Georgia,
    1968-2010.
    Progress in Oceanography. Volume 115, Pages 6-13, 2013.
    http://dx.doi.org/10.1016/j.pocean.2013.05.026
    Collins, A.K., S.E. Allen, and R. Pawlowicz.
    The role of wind in determining the timing of the spring bloom in the Strait of
    Georgia.
    Canadian Journal of Fisheries and Aquatic Sciences, Volume 66, Pages 1597-1616,
    2009.
    http://www.nrcresearchpress.com/doi/abs/10.1139/f09-071
    J.R. Irvine, J.R., W.R. Crawford.
    State of physical, biological, and selected fishery resources of Pacific Canadian
    marine ecosystems in 2012.
    Fisheries and Ocean Canada Research Document - 2013/032.
    http://www.dfo-mpo.gc.ca/csas-sccs/Publications/ResDocs-
    DocRech/2013/2013_032-eng.html

    View Slide

  23. SOG
    YAML
    Requests
    ElementTree BeatifulSoup
    Logging
    (SMTP Handler)
    Colander
    Subprocess NumPy
    Matplotlib Mako
    cron rsync

    View Slide