From 2e5d5d9d36cdc55a050405699610e22eee89374d Mon Sep 17 00:00:00 2001 From: Pingu Carsti Date: Fri, 18 Oct 2019 16:20:19 +0200 Subject: [PATCH] added notebook examples --- notebooks/README.md | 14 ++ notebooks/birdy-example.ipynb | 111 ++++++++++++++ notebooks/environment.yml | 7 + notebooks/http-requests.ipynb | 263 ++++++++++++++++++++++++++++++++++ 4 files changed, 395 insertions(+) create mode 100644 notebooks/README.md create mode 100644 notebooks/birdy-example.ipynb create mode 100644 notebooks/environment.yml create mode 100644 notebooks/http-requests.ipynb diff --git a/notebooks/README.md b/notebooks/README.md new file mode 100644 index 0000000..431436a --- /dev/null +++ b/notebooks/README.md @@ -0,0 +1,14 @@ +# C4CDS WPS Examples + +JupterLab notebooks with examples for C4CDS WPS usage. + +## Installation + +Update your conda environment: + + $ conda env update -f environment.yml + $ source activate c4cds + +## Start JupyterLab + + $ jupyter lab diff --git a/notebooks/birdy-example.ipynb b/notebooks/birdy-example.ipynb new file mode 100644 index 0000000..133dd5f --- /dev/null +++ b/notebooks/birdy-example.ipynb @@ -0,0 +1,111 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from birdy import WPSClient" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "wps = WPSClient('http://compute.mips.copernicus-climate.eu/wps')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Execute cmip5 regridder" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = wps.cmip5_regridder(model='IPSL-CM5A-MR', experiment='historical', variable='tas')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response.isSucceded()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response.get()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Execute cordex subsetter" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = wps.cordex_subsetter(country='UK', variable='tas', year='1990')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response.isSucceded()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response.get()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/environment.yml b/notebooks/environment.yml new file mode 100644 index 0000000..91974a1 --- /dev/null +++ b/notebooks/environment.yml @@ -0,0 +1,7 @@ +# conda env update -f environment.yml +channels: + - conda-forge +dependencies: + - pip + - jupyterlab + - birdy diff --git a/notebooks/http-requests.ipynb b/notebooks/http-requests.ipynb new file mode 100644 index 0000000..5ba61d7 --- /dev/null +++ b/notebooks/http-requests.ipynb @@ -0,0 +1,263 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## HTTP WPS Request Examples" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "See WPS documentation: http://geoprocessing.info/wpsdoc/\n", + "\n", + "Check server logs:\n", + "```\n", + "/var/log/supervisor/c4cds.log\n", + "/var/log/pywps/c4cds.log\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "base_url = 'http://compute.mips.copernicus-climate.eu/wps'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Get Capabilites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = base_url + '?service=WPS&request=GetCapabilities'\n", + "url" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.get(url)\n", + "response.ok" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response.text" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Process Descriptions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = base_url + '?service=WPS&version=1.0.0&request=DescribeProcess&identifier=all'\n", + "url" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.get(url)\n", + "response.ok" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response.text" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Execute cmip5 regridder" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = '{}?service=WPS&version=1.0.0&request=Execute&identifier=cmip5_regridder&DataInputs=model={};experiment={};variable={}'.format(\n", + " base_url,\n", + " 'IPSL-CM5A-MR',\n", + " 'historical',\n", + " 'tas')\n", + "url" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.get(url)\n", + "response.ok" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response.text" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Execute cmip5 regridder (async)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = '{}?service=WPS&version=1.0.0&request=Execute&identifier=cmip5_regridder&DataInputs=model={};experiment={};variable={}&storeExecuteResponse=true&status=true'.format(\n", + " base_url,\n", + " 'IPSL-CM5A-MR',\n", + " 'historical',\n", + " 'tas')\n", + "url" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.get(url)\n", + "response.ok" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response.text" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Poll the `statusLocation` URL, example:\n", + "http://cp4cds-cn1.dkrz.de:80/outputs/c4cds/bbfeb106-f1af-11e9-a8b9-f2e4655a10b7.xml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Execute cordex subsetter" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = '{}?service=WPS&version=1.0.0&request=Execute&identifier=cordex_subsetter&DataInputs=country={};variable={};year={}'.format(\n", + " base_url,\n", + " 'UK',\n", + " 'tas',\n", + " '1990')\n", + "url" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.get(url)\n", + "response.ok" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response.text" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}