Building your own Weather App using NOAA Open Data and Jupyter Notebooks

Filipe Fernandes

Jul 13, 2018

whoami

Filipe Fernandes

  • Physical Oceanographer
  • Data Plumber
  • Code Janitor
  • CI babysitter
  • Amazon-Dash-Button for conda-forge

Previous talks: standards

https://www.youtube.com/watch?v=BV30Sk1CrM0

Previous talks: ocean models

https://www.youtube.com/watch?v=WHjU_rg81BI

IOOS

IOOS numbers

Standards

  • avoid customer-specific solutions
  • the standardizations happen at the data providers

IOOS Web Services

Data Type Web Service Response
In-situ data
(buoys, stations, etc)
OGC SOS XML/CSV
Gridded data (models, satellite) OPeNDAP Binary
Raster Images OGC WMS GeoTIFF/PNG

There is also ERDDAP emerging as a community standard.

Sensor Observation Service

(OGC SOS)

  • GetCapabilities: metadata
  • DescribeSensor: detail info on the instruments
  • GetObservation: the data

SOS example

If we add Python to it

OPeNDAP/Climate and Forecast

(CF)

CF - Metadata

Web Mapping Service

(OGC WMS)

  • Simple HTTP interface for requesting geo-registered map images
  • A WMS request defines the geographic layer(s) and area of interest to be processed
  • The response to the request is one or more geo-registered map images (returned as JPEG, PNG, etc)

ERDDAP

The data server that the community is demanding

  • Flexible outputs: .html table, ESRI .asc and .csv, Google Earth .kml, OPeNDAP binary, .mat, .nc, ODV .txt, .csv, .tsv, .json, and .xhtml
  • Free RESTful API to access the data
  • Standardize dates and time in the results
  • Server-side searching and slicing

There are many moving parts

Catalog Service for the Web

(CSW)

  • A single source to find endpoints
  • Nice python interface:
    owslib.csw.CatalogueServiceWeb
  • Advanced filtering:
    owslib.fes

Harvesting

Finding the web services

Putting it all together: NHC

Meteorological stations in a National Hurricane Center path prediction.

Putting it all together: Model skill

Modeled Significant Wave Height skill

Putting it all together: ERDDAP App

Finally the title notebook!

SECOORA Portal

Summary

  • Standards, web services and catalogs allow us to serve data in a unified way
  • Python powered Jupyter gives us a powerful scientific, analysis and visualization environment to fetch
  • Widgets allow for fancy data exploration

Questions?

(ocefpaf)

… g-mail, google+, etc.

https://ocefpaf.github.io/2018-SciPy-talk

Binder