Skip to content

Commit

Permalink
First workflow example added
Browse files Browse the repository at this point in the history
  • Loading branch information
Julia Wagemann committed May 3, 2017
1 parent 26b6fca commit 3a0e3ca
Show file tree
Hide file tree
Showing 12 changed files with 264 additions and 24 deletions.
196 changes: 196 additions & 0 deletions 01_geospatial_data_access.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"./img/logos_combined.png\" align=\"right\" width=\"50%\"></img>\n",
"<br><br><br>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Geospatial data workflow\n",
"\n",
"## Example I: Create a climate graph of London"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A climate graph is commonly used to describe the average weather of one specific location. It contains:\n",
"* the <b>long-term average, minimum and maximum air temperature</b> for each month\n",
"* the <b>long-term average precipitation</b> for each month\n",
"\n",
"<br>\n",
"\n",
"<img src=\"./img/climate_graph_london.png\" align=\"centre\" width=\"80%\"></img>\n",
"\n",
"<br><br>\n",
"\n",
"\n",
"### Data required\n",
"\n",
"\n",
"ERA-Interim reanalysis - 2m air temperature and total precipitation from 1 January 1979 to 31 December 2014\n",
"* Format: GRIB\n",
"* Spatial resolution: Lat/Lon grid, 0.5 x 0.5 degrees, 720 x 361 gridpoints\n",
"* Temporal resolution: 6-hourly\n",
"* Data volume: 27 GB per parameter\n",
"\n",
"<br>\n",
"\n",
"### Workflow\n",
"\n",
"(1) Retrieve monthly mean, min and max 2m air temperature from Jan 1979 to Dec 2014\n",
"\n",
"(2) Retrieve monthly sums of total precipitation from Jan 1979 to Dec 2014\n",
"\n",
"(3) Calculate averages for every month for every parameter\n",
"\n",
"(4) Plot the climate graph\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"./img/access_button.png\" align=\"left\" width=\"10%\"></img>\n",
"\n",
"## Part I: Geospatial Data Access"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Example with netCDF4 library\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Example with OGC web services\n",
"\n",
"#### What are OGC web services?\n",
"\n",
"\n",
"#### OWSlib library - Using WCS from Python\n",
"\n",
"The OWSLib library is a python library that makes accessing data and metadata through OGC services possible. The library abstracts all of the traditional HTTP API calls into programmatic function calls. An example of the use of the WebCoverageService class is given.\n",
"\n",
"The library is available from GitHub @ https://github.com/earthserver-eu/OWSLib\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"<img src=\"./img/processing_button.png\" align=\"left\" width=\"10%\"></img>\n",
"\n",
"## Part II: Geospatial Data Processing"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"./img/visualisation_button.png\" align=\"left\" width=\"10%\"></img>\n",
"\n",
"## Part III: Geospatial Data Visualisation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Example with matplotlib"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Example with bokeh / Jupyter Widgets"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.8"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
92 changes: 68 additions & 24 deletions Jupyter Notebooks for geospatial data analysis - Tutorial.ipynb
Original file line number Diff line number Diff line change
@@ -1,36 +1,38 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Jupyter Notebooks for Geospatial Data Analysis"
"<img src=\"./img/logos_combined.png\" align=\"right\" width=\"50%\"></img>\n",
"<br><br><br>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Tutorial created for [PyData London 2017](https://pydata.org/london2017/schedule/presentation/8/) <br>\n",
"Friday, 05 May 2017, 12:15 - 13:50 | Dining Room, Bloomberg, London"
"# Jupyter Notebooks for Geospatial Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"Tutorial created for [PyData London 2017](https://pydata.org/london2017/schedule/presentation/8/) <br>\n",
"Friday, 05 May 2017, 12:15 - 13:50 | Dining Room, Bloomberg, London\n",
"<img src=\"./img/pydata.png\" align=\"right\" width=\"30%\"></img>\n",
"### Speakers\n",
"[Julia Wagemann](https://pydata.org/london2017/speaker/profile/75/) - European Centre for Medium-Range Weather Forecasts <br>\n",
"[Dr. Stephan Siemen](https://pydata.org/london2017/speaker/profile/229/) - European Centre for Medium-Range Weather Forecasts <br>"
"[Dr. Stephan Siemen](https://pydata.org/london2017/speaker/profile/229/) - European Centre for Medium-Range Weather Forecasts <br>\n",
"\n",
"### Access to tutorial material \n",
"\n",
"The tutorial material can be accessed via https://jupyter.eofrom.space. <br>\n",
"You will need to log in with your GitHub credentials."
]
},
{
Expand All @@ -52,7 +54,7 @@
"|12:15 -12:20 | <b>Intro to tutorial and tutorial overview</b> |\n",
"| <i>Optional</i> | <i><b>Short Intro to Jupyter</b></i> |\n",
"|12:20 - 12:35 | [<b>Intro to ECMWF data and the geospatial workflow in general</b>](#intro-ecmwf) |\n",
"|12:35 - 12:50 | <b>Part I: Geospatial data access</b> |\n",
"|12:35 - 12:50 | [<b>Part I: Geospatial data access</b>](./01_geospatial_data_access.ipynb) |\n",
"|12:50 - 13:05 | <b>Part II: Geospatial data manipulation and analysis in Python</b> |\n",
"|13:05 - 13:15 | <b>Part III: Interactive data visualisation in Python</b> |\n",
"|13:15 - 13:45 | <b>Guided challenge</b>: <br> Create your own geospatial data analysis workflow with Jupyter |"
Expand All @@ -66,30 +68,72 @@
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"cell_type": "markdown",
"metadata": {},
"source": [
"# Link to tutorial material\n",
"\n"
"# <a id=\"intro-ecmwf\"></a>Intro to ECMWF (open) data and the geospatial workflow in general"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# <a id=\"intro-ecmwf\"></a>Intro to ECMWF (open) data and the geospatial workflow in general"
"* [About ECMWF](#ecmwf)\n",
"* [ECMWF (open) data](#ecmwf_data)\n",
"* [Geospatial data workflow](#geospatial_data_workflow)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### <a id=\"ecmwf\"></a>About ECMWF\n",
"<br>\n",
"![about_ecmwf](img/ecmwf.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### <a id=\"ecmwf_data\"></a>ECMWF (open) data\n",
"<br>\n",
"\n",
"![ecmwf_data](img/ecmwf_data.png)\n",
"<br>\n",
"\n",
"\n",
"#### ECMWF data are: \n",
"\n",
"\n",
"* numeric\n",
"* structured\n",
"* multi-dimensional (up to 5-dimensions)\n",
"* mostly large in volume (~ 27 GB per ERA-interim parameter)\n",
"* <b>Format:</b> netCDF or GRIB (binary format)<br>\n",
"<br>\n",
"\n",
"<img src=\"./img/ecmwf_data_dimensions.png\" align=\"centre\" width=\"80%\"></img><br>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### <a id=\"geospatial_data_workflow\"></a> Geospatial data workflow\n",
"\n",
"Large volumes of geospatial data require extensive processing to retrieve valuable information. A workflow to process / analyse geospatial data consists of the three main steps:\n",
"* Data access\n",
"* Data processing / analysis\n",
"* Data visualisation\n",
"<br> <br>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* ECMWF (open) data \n",
"* General geospatial data workflow"
"<img src=\"./img/data_workflow.png\" align=\"centre\" width=\"80%\"></img><br>\n"
]
},
{
Expand Down
Binary file added img/access_button.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/climate_graph_london.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/data_workflow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/ecmwf.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/ecmwf_data.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/ecmwf_data_dimensions.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/logos_combined.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/processing_button.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/pydata.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/visualisation_button.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 3a0e3ca

Please sign in to comment.