diff --git a/01_history_philosophy_scientific_computing.ipynb b/01_history_philosophy_scientific_computing.ipynb index 247c6ac..b6fb7d3 100644 --- a/01_history_philosophy_scientific_computing.ipynb +++ b/01_history_philosophy_scientific_computing.ipynb @@ -2,10 +2,11 @@ "cells": [ { "cell_type": "markdown", - "id": "swedish-granny", + "id": "coordinated-sunglasses", "metadata": {}, "source": [ "# Section 1: The History and Philosophy of Scientific Computing\n", + "![Pangeo Logo](images/pangeo_logo_small.png)\n", "\n", "What is a Pangeo? Is it :\n", "* a computing platform\n", @@ -17,12 +18,14 @@ "\n", "It is, in a sense, the last one, though *Pangeo as a Lifestyle* (PaaL) is still in the early stages of development. Some users may interact with Pangeo through a particular implementation and get the sense it is a platform or software package, if one were to pick just one of those, it would be a community that has come together to develop tools and recipes for tackling challenges around big data in scientific computing. The mindset is also important, because there is no one set of tools to address this, and the tools keep evolving. Instead it is about approaching those challenges in a certain way.\n", "\n", - "In this series of lectures, we will be considering not just what a Pangeo platform is and how to create it, but also the context in which the need for such a platform arose and why existing platforms and paradigms were (and are) not addressing the needs of scientific computing then and now. Section 1 will be focused on what user of scientific compouting systems really need and what systems they have been provided with so far that at best only partially adress their needs, and in a worst case distort the nature of the scientific enquiry so that fits inside thecnology available, rather than technology we create being driven by the needs of scientific enquiry. We will start by looking at a few typical use cases of scientific computing systems. We will then describe existing solutions and examine their shortcomings." + "In this series of lectures, we will be considering not just what a Pangeo platform is and how to create it, but also the context in which the need for such a platform arose and why existing platforms and paradigms were (and are) not addressing the needs of scientific computing then and now. Section 1 will be focused on what user of scientific compouting systems really need and what systems they have been provided with so far that at best only partially adress their needs, and in a worst case distort the nature of the scientific enquiry so that fits inside thecnology available, rather than technology we create being driven by the needs of scientific enquiry. We will start by looking at a few typical use cases of scientific computing systems. We will then describe existing solutions and examine their shortcomings.\n", + "\n", + "Pangeo community website: https://pangeo.io/" ] }, { "cell_type": "markdown", - "id": "clean-antique", + "id": "obvious-developer", "metadata": {}, "source": [ "## Key concepts and components of scientific system\n", @@ -32,7 +35,7 @@ }, { "cell_type": "markdown", - "id": "classified-terror", + "id": "vital-civilian", "metadata": {}, "source": [ "First lets define the necessary components of a scientific computing system.\n", @@ -46,7 +49,7 @@ }, { "cell_type": "markdown", - "id": "waiting-comparison", + "id": "expired-estimate", "metadata": {}, "source": [ "Some key concepts associated with this description:\n", @@ -57,7 +60,7 @@ }, { "cell_type": "markdown", - "id": "oriental-request", + "id": "headed-public", "metadata": {}, "source": [ "## Use cases of Scientific Computing" @@ -65,7 +68,7 @@ }, { "cell_type": "markdown", - "id": "capital-joining", + "id": "arbitrary-template", "metadata": {}, "source": [ "Talking in the abstract about a platform is difficult and note very helpful when what we want from our platform is to enable and optimise the experiences for specific usesd. So lets think about some typical users of a scientific compute platform.\n", @@ -76,7 +79,7 @@ }, { "cell_type": "markdown", - "id": "atlantic-object", + "id": "settled-rates", "metadata": {}, "source": [ "### Use case 1 - Scientific Analyst\n", @@ -92,7 +95,7 @@ }, { "cell_type": "markdown", - "id": "turkish-steps", + "id": "specialized-regulation", "metadata": {}, "source": [ "### Use case 2 - Data Engineer\n", @@ -106,7 +109,7 @@ }, { "cell_type": "markdown", - "id": "acquired-offer", + "id": "frank-handling", "metadata": {}, "source": [ "### Use case 3 - Software Engineer\n", @@ -121,7 +124,7 @@ }, { "cell_type": "markdown", - "id": "stopped-jerusalem", + "id": "reasonable-clarity", "metadata": {}, "source": [ "### Use Case 4 - Application Developer\n", @@ -134,7 +137,7 @@ }, { "cell_type": "markdown", - "id": "understood-ferry", + "id": "lined-puppy", "metadata": {}, "source": [ "### Uses not covered\n", @@ -144,7 +147,7 @@ }, { "cell_type": "markdown", - "id": "indie-gateway", + "id": "awful-apollo", "metadata": {}, "source": [ "## Previous models of computing\n", @@ -154,7 +157,7 @@ }, { "cell_type": "markdown", - "id": "promotional-participation", + "id": "fresh-employer", "metadata": {}, "source": [ "## The desktop model of computing\n", @@ -187,7 +190,7 @@ }, { "cell_type": "markdown", - "id": "vulnerable-accessory", + "id": "aerial-ancient", "metadata": {}, "source": [ "![Desktop model of computing ](images/DesktopModel_diagram.png)" @@ -196,14 +199,14 @@ { "cell_type": "code", "execution_count": null, - "id": "interior-package", + "id": "motivated-welsh", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", - "id": "lined-command", + "id": "living-fortune", "metadata": {}, "source": [ "## Scheduled Linux clusters\n", @@ -233,7 +236,7 @@ }, { "cell_type": "markdown", - "id": "exceptional-birmingham", + "id": "occasional-filling", "metadata": {}, "source": [ "![A Diagram of a scientific computing ecosystem built around a scheduled Linux Cluster ](images/LinuxScheduledClusterModel_diagram.png)" @@ -241,7 +244,7 @@ }, { "cell_type": "markdown", - "id": "amino-intensity", + "id": "million-india", "metadata": {}, "source": [ "### Models & Use Cases\n", @@ -270,7 +273,7 @@ }, { "cell_type": "markdown", - "id": "quiet-commerce", + "id": "southwest-hospital", "metadata": {}, "source": [ "## Existing model: the verdict\n", @@ -291,7 +294,7 @@ { "cell_type": "code", "execution_count": null, - "id": "usual-hebrew", + "id": "immune-bracelet", "metadata": {}, "outputs": [], "source": [] @@ -299,9 +302,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "pangeo_lectures", "language": "python", - "name": "python3" + "name": "pangeo_lectures" }, "language_info": { "codemirror_mode": { @@ -313,7 +316,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.9" + "version": "3.7.10" } }, "nbformat": 4, diff --git a/02_building_blocks_of_scientific_computing-Copy1.ipynb b/02_building_blocks_of_scientific_computing-Copy1.ipynb index de0e10c..4127b58 100644 --- a/02_building_blocks_of_scientific_computing-Copy1.ipynb +++ b/02_building_blocks_of_scientific_computing-Copy1.ipynb @@ -2,20 +2,22 @@ "cells": [ { "cell_type": "markdown", - "id": "exterior-eugene", + "id": "reflected-arthur", "metadata": {}, "source": [ "# Section 2: The building blocks of a Scientific Computing Platform\n", "\n", "![Pangeo Logo](images/pangeo_logo_small.png)\n", "\n", + "[Pangeo Website](https://pangeo.io/)\n", + "\n", "In the first section we introduced some typical users of a scientific compute platfo\n", "rm and typical tasks that such users may wish to perform on such a platform. We then looked at 2 models for delivering the compute capability that users require, the desktop model and the cluster model. Each of these has its advantages and disadvantages. The next step is to consider how we could design and build a platform that combines the advantages of different systems and removes (as much as possible) the disadvtages. In this notebook we will discuss those principles by looking at the key goals of what we'll call the *Pangeo model of Scientific Computing*." ] }, { "cell_type": "markdown", - "id": "cellular-terror", + "id": "continental-thong", "metadata": {}, "source": [ "![Pangeo model of scientific computing](images/PangeoModel_diagram.png)" @@ -23,7 +25,7 @@ }, { "cell_type": "markdown", - "id": "intellectual-announcement", + "id": "located-chess", "metadata": {}, "source": [ "## Goal 1 - An interactive platform that scales\n", @@ -33,7 +35,7 @@ }, { "cell_type": "markdown", - "id": "nasty-lawsuit", + "id": "infectious-american", "metadata": {}, "source": [ "### Affordable data storage\n", @@ -50,7 +52,7 @@ }, { "cell_type": "markdown", - "id": "emerging-imagination", + "id": "social-acrobat", "metadata": {}, "source": [ "### Distributed compute\n", @@ -62,7 +64,7 @@ }, { "cell_type": "markdown", - "id": "auburn-manor", + "id": "scenic-warner", "metadata": {}, "source": [ "There are multiple levels of distribution:\n", @@ -74,7 +76,7 @@ }, { "cell_type": "markdown", - "id": "specialized-manitoba", + "id": "cathedral-crawford", "metadata": {}, "source": [ "This distributed nature of compute is another factor in creating **cloud-optimised** datasets, so our data facilitates our exploitation of this massively distributed computed resource rather than hinders it." @@ -82,7 +84,7 @@ }, { "cell_type": "markdown", - "id": "progressive-storage", + "id": "placed-consortium", "metadata": {}, "source": [ "### Scalable compute\n", @@ -93,7 +95,7 @@ }, { "cell_type": "markdown", - "id": "wound-result", + "id": "internal-maine", "metadata": {}, "source": [ "### Elastic compute\n", @@ -107,7 +109,7 @@ }, { "cell_type": "markdown", - "id": "introductory-edwards", + "id": "criminal-reporter", "metadata": {}, "source": [ "### Interactive workflow\n", @@ -122,7 +124,7 @@ }, { "cell_type": "markdown", - "id": "metric-infection", + "id": "partial-stereo", "metadata": {}, "source": [ "## Goal 2 - Reproducible Research" @@ -130,7 +132,7 @@ }, { "cell_type": "markdown", - "id": "informational-copying", + "id": "ultimate-turner", "metadata": {}, "source": [ "Computing underlies in some way many of the scientific results published in peer-reviewed jounral, through statistical analysis, visulaisation of data, simulations etc. The source code that produces the published results is thus a key output of the scientific process. In order to trust the scientific result derived from the source code and the undelying libraries, we need to trust that the code is doing what it set out to do (verification) and that what the software aims to do is scientitfically correct (validation) \n", @@ -144,7 +146,7 @@ }, { "cell_type": "markdown", - "id": "impossible-avenue", + "id": "geographic-geometry", "metadata": {}, "source": [ "## Goal 3 - Shareable research" @@ -152,7 +154,7 @@ }, { "cell_type": "markdown", - "id": "crude-carrier", + "id": "realistic-watershed", "metadata": {}, "source": [ "The goal of shareable research is closely aligned with the reproducible research and is made possible by many of the same components. Historically sharing of research has been done just through what is published in the peer-reviewed journal. The element underpinning those results have not been shared by default. Today we recognise that the elements that underpin the published results, including source code and environments used to generate the results, are also very important to other researchers and if we want to share our results, we want interested parties to see all elements of that research. We need to be able to share our code and data. Other researchers can pick apart our research pipeline and interrogate each part themselves. This is partly to review research results, but also so elements that are useful can be pulled and reused in other research that shares common elements. A common, easily accessible platform for computing makes it much easier to share research pipelines with others" @@ -160,7 +162,7 @@ }, { "cell_type": "markdown", - "id": "sunset-commissioner", + "id": "union-sport", "metadata": {}, "source": [ "## Goal 4 - Cost effective compute" @@ -168,7 +170,7 @@ }, { "cell_type": "markdown", - "id": "centered-trust", + "id": "corporate-starter", "metadata": {}, "source": [ "In many ways the barriers to a scalable, interactiver platform suitable for today's scientific computing come down to one concept: cost. We could, to a certain extent, create such a platform by spending enough money to give each scientist a large enough desktop, though in many domains the size of data to be processed makes even this impractical. Cost limits are usually hit first. Our Pangeo platform needs to provide the interactive compute which scales elastically to meet demand at a cost that is affordadble for your average researcher/research institution. Cloud computing service have made this possible. One pays only for the resources that are actually used while running your job. When the job is finished, the resource is relinquished and no further cost is incurred (for compute, any data stored needs to continue to be stored usually, which incurs an ongoing cost, but this is relatively small)." @@ -176,7 +178,7 @@ }, { "cell_type": "markdown", - "id": "romantic-settle", + "id": "covered-universe", "metadata": {}, "source": [ "## Goal 5 - Separation of concerns\n", @@ -187,7 +189,7 @@ }, { "cell_type": "markdown", - "id": "emotional-springfield", + "id": "brilliant-beaver", "metadata": {}, "source": [ "## Building a real system\n", @@ -197,15 +199,17 @@ }, { "cell_type": "markdown", - "id": "sublime-china", + "id": "right-andorra", "metadata": {}, "source": [ + "Pangeo Architecture: https://pangeo.io/architecture.html\n", + "\n", "As you might expect, we not are the first people to ever think about this. Why, then, do we think we might have a better chance of doing a better job? What has changed? There has been a significant development in the past 20 years in terms of availability of compute and how we access and pay for it that makes a different model of scientific compute, which it is worth discussing briefly before describing the goals of our Pangeo platform." ] }, { "cell_type": "markdown", - "id": "thirty-armstrong", + "id": "tropical-pencil", "metadata": {}, "source": [ "### Cloud computing\n", @@ -224,7 +228,7 @@ }, { "cell_type": "markdown", - "id": "prostate-poetry", + "id": "angry-delaware", "metadata": {}, "source": [ "### A stack of standard tools\n", @@ -234,9 +238,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "pangeo_lectures", "language": "python", - "name": "python3" + "name": "pangeo_lectures" }, "language_info": { "codemirror_mode": { @@ -248,7 +252,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.9" + "version": "3.7.10" } }, "nbformat": 4, diff --git a/03_scalable_interactive_compute_pangeo_implementation.ipynb b/03_scalable_interactive_compute_pangeo_implementation.ipynb index a87eabe..bab0b21 100644 --- a/03_scalable_interactive_compute_pangeo_implementation.ipynb +++ b/03_scalable_interactive_compute_pangeo_implementation.ipynb @@ -2,130 +2,1550 @@ "cells": [ { "cell_type": "markdown", - "id": "indoor-retail", + "id": "prime-graph", "metadata": {}, "source": [ - "# Section 3: The Pangeo Approach - An Implementation Guide" + "# Section 3: The Pangeo Approach - An Implementation Guide\n", + "![Pangeo Logo](images/pangeo_logo_small.png)\n", + "\n", + "[Pangeo Website](https://pangeo.io/)" + ] + }, + { + "cell_type": "markdown", + "id": "solid-invitation", + "metadata": {}, + "source": [ + "![A stack of technoogies](images/pangeoStackElements_buildYourOwn.png)" + ] + }, + { + "cell_type": "markdown", + "id": "unexpected-oxygen", + "metadata": {}, + "source": [ + "In this section we will look at specific tools that allow you to build your Pangeo Implementation. As the diagram shows, a specific implementation of the Pangeo does not contain a specific stack of tools, or even one of a selection of specific monolithic stacks. Rather there are certain categories for which a specific tool must be choose, but each of the tools should be able to be swapped in and out depending on the requirements of the specific implementation. The categories of tools include:\n", + "* *Compute platform* - Where will the actual computation take place. Options - HPC, public cloud provider (AWS, Azure, Alibaba, Digital Ocean), private cloud (e.g. European Weather Cloud, JASMIN), Cluster, Local Machine\n", + " * Compute mode - how will compute be triggered. Options - Interactiver notebooks, batch scheduler, serverless architecture (e.g. AWS lambda)\n", + " * How will my compute be scaled elastically? Options - kubernetes, AWS ECS, Dask Cloud Provider\n", + "* *Data storage* - Where will the data be stored? Options - Distributed cloud storage, Relational Database, Data warehouse\n", + " * Data format - What format will the data be stored in? Options - NetCDF, CSV, RDS, Zarr, TileDB\n", + " * Data model - What will handle interpreting data and metadata as a cohesive data model?\n", + " * Data arrays - What will handle the raw processing of arrays of numbers? Options: dask, numpy\n", + "* *Interaction* - How will I interact with the compute and data? Options - Jupyter notebook, dashboard website\n", + "* *Environment management* - What will create the software environment for my research? Options: conda, pip, docker containers\n" + ] + }, + { + "cell_type": "markdown", + "id": "mobile-stockholm", + "metadata": {}, + "source": [ + "## Cloud computing\n", + "\n", + "The advent of cloud computing services allows us to provision the compute services we need for scientific in a completely different way, and one that is more suitable for the sort of workflows and expertise that we can expect an average researcher to have. We can use the different core services of the cloud providers for the different elements of Pangeo system in different ways. Although you can generally swap different elements in and out of the stack of a particular Pangeo implementation, you generally need to choose one platform provider e.g. AWS, Azure etc. as it is either necesarry or optimal for these to work together. We will now take a look at what cloud services we might use in our stack. \n" + ] + }, + { + "cell_type": "markdown", + "id": "freelance-civilization", + "metadata": {}, + "source": [ + "### Low level services\n", + "\n", + "When setting up a compute platform we start by thinking in terms of low-level components of CPUs and storage space. All major *cloud service providers* (CSPs) have similar comparable offerings in this space. The ability to easily provision computing resources like is often called **infrastructure as a service**.\n", + "\n", + "https://en.wikipedia.org/wiki/Infrastructure_as_a_service\n", + "\n", + "The table below shows the names of the comparable services on different platforms.\n", + " \n", + " \n", + "Service / Provider | AWS | Azure | GCP \n", + "--- |--- |--- |--- \n", + "Compute (VM) | EC2 | Azure VM | Compute Engine\n", + "Object Storage | S3 | Blob Storage | Cloud Storage\n", + "\n", + "Comparison of offerings: http://comparecloud.in\n", + "\n", + "Our Pangeo implementation will use the APIs provided by CSPs to quickly obtain the resources needed to spin up our platform and configure them for appropriate access, interoperability and security." + ] + }, + { + "cell_type": "markdown", + "id": "composed-scholar", + "metadata": {}, + "source": [ + "### High-level service - Platform as a Service etc.\n", + "\n", + "As the offerings from CSP have developed, new more specialised services have been created. Using low-level services, users have to set up all aspects of the environment for their particular application, choosing appropriate configurations for sharing, security, reliability etc. Usually this means specialised software engineers or infrastructure engineers to make this happen. For a large organisation, there are sufficient people and skills to maintain the goal of separation of concerns, but this is not true for smaller groups and organisations. Instead, one can use higher level services where the technical details are taken care of. Increasingly higher-level service components, sch as data warehousing and machine learning platforms where low-level configuration is taken care of, are being part of the software stack for Pangeo implementations. \n", + "\n", + "https://en.wikipedia.org/wiki/Platform_as_a_service\n", + "\n", + "Service / Provider | AWS | Azure | GCP \n", + "--- |--- |--- |--- \n", + "Machine Learning | Sagemaker | AzureML | DataLab / Cloud AutoML\n", + "Database | RDS | Azure SQQL DB | Cloud SQL\n", + "Data Warehouse | \n", + "Query aaS | Athena | Data Lake Analytics | BigQuery" + ] + }, + { + "cell_type": "markdown", + "id": "offensive-romance", + "metadata": {}, + "source": [ + "We also have 3rd party providers of these higher level services, building value-added layers on the low-level infrastrucutre of major CSPs to deliver specialised services, for example database solutions ([TileDB](https://tiledb.com/) or [MongoDB](https://www.mongodb.com/cloud)) or machine learning platforms ([Determined AI](https://determined.ai/enterprise/)\n", + "\n", + "CSPs liken the development of cloud computing to the development of an integrated grid for electricity distribution. In the early days of electricity each factory had their own generators and required expertise in electrical engineering. With a electricity grid, central suppliers provide the electricity and the associated expertise to run it. This is the direction that computing is going in. The trade-off is that while higher level services are easier to get started with and use, they often are less portable resulting in vendor lock-in. So we balance the convenience of higher-level services in our Pangeo implementation with the goals of reproducible, shareable research which favour open-source tools deployed on low-level services." + ] + }, + { + "cell_type": "markdown", + "id": "opponent-harvey", + "metadata": {}, + "source": [ + "### More information on cloud providers\n", + "\n", + "* AWS\n", + "* Azure\n", + "* Digital Ocean\n", + "\n", + "Comparison of cloud providers: https://www.varonis.com/blog/aws-vs-azure-vs-google/" + ] + }, + { + "cell_type": "markdown", + "id": "curious-influence", + "metadata": {}, + "source": [ + "## Creating and sharing the tool stack\n", + "\n", + "One of the challenges of computing platforms is setting up the right environment of tools and libraries to support the scientific research being done, while avoiding this task consuming all the researcher's time. There have been substantial developments in this space which make this task easier and support the goals of reproducible and shareable research and aid in separation of concerns.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "undefined-fellowship", + "metadata": {}, + "source": [ + "### Environment managers - pip and conda\n", + "\n", + "Particularly in the python ecosystem, tools such as *pip* and *conda* allow one to specify the tools to deploy on a particular compute instance as a file, allowing an **infrastructure as code** (IaC) approach to tools. As with cloud resource provision, complete specification of the configuration as a file allows others to reproduce the environment and thus reproduce the scientific research. This is not always yet as easy and trouble free as we would hope, but these tools have gone a long way towards this goal and are often used as part of a Pangeo implemntation to configure the research environment.\n", + "\n", + "Additional info\n", + "* pip https://pip.pypa.io/en/stable/\n", + "* conda https://docs.conda.io/en/latest/\n" + ] + }, + { + "cell_type": "markdown", + "id": "worldwide-departure", + "metadata": {}, + "source": [ + "## Containers\n", + "\n", + "Another similar tool is *containers*. These are essentially lightweight virtual machines intended for running a single task efficiently and at scale. As with environemnt managers, you completely configure an *image* through a cofiguration which specifies what should be installed and configured inside the container. You then build a particular *instance* of your container from the image. One can build hundred of instances to run in parallel. Compute jobs can then be distirbuted among these containers at a task or distribution level, to make use of the massively parallel, distributed nature of the compute and data storage infrastructure. Over time, repositories of ready made containers have built up, so a researcher should not need to do much configuration to get started.\n", + "\n", + "\n", + "\n", + "Additional information\n", + "* docker: library for creating and running containers - https://docker.com \n", + "* Docker Hub: library of ready to use containers - https://hub.docker.com/" + ] + }, + { + "cell_type": "markdown", + "id": "lyric-begin", + "metadata": {}, + "source": [ + "## Orchestration\n", + "\n", + "The challenge in distributed computing is always getting the many individual workers to coordinate the work they are doing. Before they start doing any actual work, the cluster of workers must be set up appropriately from the cloud resourced we have requested to enable this inter-task communication. This is the job of orchestration software. Once again, we use an Infrastructure as code apporach to specify how many workers we want and how they should be configured and the orchestration software then acquires and sets up the resources, such as cloud VMs running containers.\n", + "\n", + "Additional info:\n", + "* Kubernetes - https://kubernetes.io/\n", + "* AWS Elastic Container Service - https://aws.amazon.com/ecs/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc\n", + "* Azure Container services - https://azure.microsoft.com/en-gb/product-categories/containers/" + ] + }, + { + "cell_type": "markdown", + "id": "military-devices", + "metadata": {}, + "source": [ + "## Task Distribution\n", + "\n", + "With our compute cluster set up and running, we then need a way to execute our tasks in a distributed fashion. We need a way to handling splitting our large dataset into sub-domains where a particular operation can be performed separately on each sub-domain or a separate compute worker. One library that does this is dask." + ] + }, + { + "cell_type": "markdown", + "id": "significant-advancement", + "metadata": {}, + "source": [ + "Dask is a task scheduling library which support **lazy execution**. This means that it doesn't actually do any calculations until it needs to. So when you string together a series of operations, for example \n", + "\n", + "* load data\n", + "* extract subset for a country or region\n", + "* calculate mean for each year for country\n", + "* plot annual means\n", + "\n", + "The calculation will only be triggered when you try to plot the data, as it then needs the actual number. Before that point it creates a [*task graph*](https://docs.dask.org/en/latest/graphs.html), describing all the tasks that need to computed and which tasks are dependant on other tasks. When it decides it needs the results, all of the elements in the graph are calcualted in the order required by the dependencies. " + ] + }, + { + "cell_type": "markdown", + "id": "crucial-commitment", + "metadata": {}, + "source": [ + "How does it do this is a massively parallel way to speed up execution? There are three parts to the dask compute resources\n", + "\n", + "* a client - usually the computer we are interacting on \n", + "* a scheduler - the instance the divides up the task and communicates with the workers\n", + "* workers - compute instances doing the actual work sent to them by the scheduler.\n", + "\n", + "When computation is triggered, the scheduler figures out how to assign jobs to workers in the correct order according to the task graph, and then gets the results back from the workers. The task graph will split up operation into parallel operations (*task distribution*) as well as splliting large array by chunk (*data distribution*). Each task is a separate node in the graph and will be sent to a separate worker. This allows for massive, elastic, scaling of compute organised interactively." + ] + }, + { + "cell_type": "markdown", + "id": "persistent-justice", + "metadata": {}, + "source": [ + "Additional Information:\n", + "* dask -https://dask.org/\n", + "* dask distributed - https://distributed.dask.org/en/latest/\n", + "* dask cloud provider https://cloudprovider.dask.org/en/latest/" + ] + }, + { + "cell_type": "markdown", + "id": "defensive-syntax", + "metadata": {}, + "source": [ + "## Distributed computing with dask - A Demonstration\n", + "\n", + "At last we come to a demonstration of actually computing with actual source code. This will show how we can do a fairly simple mean calculationm on a large array. This seem quite simple, but is similar to many of the questions we want to ask, which are string together a series of simple operation, often something subset by time and location, calculate mean,min and max. The challenge is doing so an an ensemble of global climate predictions for 100 years! So what does this look like on dask.\n", + "\n", + "We start by creating a client object, which also creates connected scheduler and worker objects. We're creating this locally, but this could be connected to a cluster on any sort of infrastructure:\n", + "* local machine\n", + "* cloud cluster\n", + "* on-premises cluster\n", + "* HPC\n", + "\n", + "The cluster absracts away the details of the implemtations." ] }, { "cell_type": "code", - "execution_count": null, - "id": "appreciated-crest", + "execution_count": 15, + "id": "caring-writer", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import dask.distributed" + ] }, { "cell_type": "markdown", - "id": "supposed-billy", + "id": "political-moore", "metadata": {}, "source": [ - "## Cloud computing" + "Our client shows some details and provides us with a dashboard we can look at, which for a local cluster is at `localhost:8787/status`" ] }, { "cell_type": "code", - "execution_count": null, - "id": "taken-freeze", + "execution_count": 16, + "id": "consolidated-rebel", "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "

Client

\n", + "\n", + "
\n", + "

Cluster

\n", + "
    \n", + "
  • Workers: 4
  • \n", + "
  • Cores: 8
  • \n", + "
  • Memory: 33.73 GB
  • \n", + "
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client = dask.distributed.Client()\n", + "client" + ] }, { "cell_type": "markdown", - "id": "quick-regulation", + "id": "composite-beijing", "metadata": {}, "source": [ - "## Containers" + "Now we can set up our computation. In this case we want to find the mean of an array. To use dask for our computation, we use a dask array data structure rtather than a standard numpy array. Dask aims to present the same interface for major data type, for example\n", + "* numpy array - dask array\n", + "* pandas dataframe - dask dataframe\n", + "\n", + "You can also manually create a graph through creating *delayed* functions through the dask API, where normal python functions are added to a task graph to be executed later. Here we are using the dask data types, and this will construct our task graph for us." ] }, { "cell_type": "code", - "execution_count": null, - "id": "nasty-portrait", + "execution_count": 17, + "id": "controlling-alert", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import dask.array" + ] }, { - "cell_type": "markdown", - "id": "narrative-stephen", + "cell_type": "code", + "execution_count": 19, + "id": "worldwide-interest", "metadata": {}, + "outputs": [], "source": [ - "## orchestration - kubernetes" + "my_array = dask.array.random.random((1000, 1000), chunks=(100, 100))" ] }, { "cell_type": "code", - "execution_count": null, - "id": "collect-undergraduate", + "execution_count": 20, + "id": "statutory-secondary", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Array Chunk
Bytes 8 B 8 B
Shape () ()
Count 239 Tasks 1 Chunks
Type float64 numpy.ndarray
\n", + "
\n", + "\n", + "
" + ], + "text/plain": [ + "dask.array" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_array.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "adult-coordination", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "my_array.mean().compute()" + ] }, { "cell_type": "markdown", - "id": "floating-philadelphia", + "id": "polar-potato", "metadata": {}, "source": [ - "## distribution - Dask" + "![Dask Task Graph](images/dask_taskGraph.png)\n", + "This is what the graph looks like for our small operation. Each chunk is a node in the graph, and then the scheduler gathers together the result to present in our notebook.\n", + "\n", + "Task graphs can also be visualised using the Graphviz library: \n", + " * https://docs.dask.org/en/latest/graphviz.html\n", + " \n", + "With those technologies, our scientific compute platform is able to scale effectively to deal with an arbitrarily big dataset by adding additional distributed workers and increasing the data distribution by splitting processing into more tasks in the task graph, which can be executed in parallel by our distributed workers. This is similar in some ways to a scheduled cluster system, with the difference being that the way it is triggered can be transparent to the user, who simply writes code in a natural way to perform operations on arrays, and dask distributes the works transparently.\n", + "\n", + "Video demonstration of scaling with a dask cluster:\n", + "* https://www.youtube.com/watch?v=R2xntfsDxtA" + ] + }, + { + "cell_type": "markdown", + "id": "functional-saying", + "metadata": {}, + "source": [ + "## Interactivity & portability\n", + "\n", + "What about interacting with our system. A core goal of our system was a high level of rich interaction that provided an intuitive experience for the scientific researcher, augmenting rather than interrupting their train of thought as they consider their current research question. The desktop naturally provides an interactive workflow, but doesn't scale easily. We need a solution that is hosted close to the scaleable compute. A browser-based solution mean that we can have a graphically-rich, interactive experience in the cloud, using our desktop/laptop/tablet as a *thin-client*. The most common tool of this sort is the **Jupyter notebook**, which is how this material is being presented.\n", + "\n", + "Jupyter notebooks are an example of [*literate programming*](https://en.wikipedia.org/wiki/Literate_programming) paradigm described by Computer Scientist Donald Knuth, where the presentation of the computer code is accompanied by an examplanation of what it does, and the order and structure of presentation is focused on the human audience for the code, rather than the computer which will execute it.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "surprised-cheat", + "metadata": {}, + "source": [ + "### Components and structure\n", + "Jupyter notebooks are composed of cells, which can be code or markdown. Through this they contain 3 elements\n", + "* *code*: in a code cell - you run a cell to execute all code in the cell. \n", + " * code executes in a specified *kernel*. \n", + "* *results*: below a code cell - when a code cell is run, it may produce result, as text an image such as a plot or rich content specified as html, which might be interactive.\n", + "* *markdown fragments including text, images etc.*: a markdown cell - Explantation of the code and results is found in markdown cells which should interspersed with the code and results." + ] + }, + { + "cell_type": "markdown", + "id": "smooth-elephant", + "metadata": {}, + "source": [ + "For examples of how notebooks can be used as part of an interactive computing experience, there are many galleries with real world demonstrations including:\n", + "* Pangeo gallery http://gallery.pangeo.io/\n", + "* Iris examples https://scitools-iris.readthedocs.io/en/latest/generated/gallery/index.html" + ] + }, + { + "cell_type": "markdown", + "id": "focused-spirituality", + "metadata": {}, + "source": [ + "## Visualisation and Dashboarding\n", + "\n", + "A key component of interactivity is to visualise the data we are using and the results we produce. A Pangeo implemtation will include tools in the software stack for visulisation. Common visualisation tools used with Pangeo include:\n", + "* [Matplotlib]() Widely-used Python library for plotting, primarily creates static output.\n", + "* [Bokeh](https://docs.bokeh.org/en/latest/index.html) A python library to create javascript web pages for interactive visualisations.\n", + "* [Plotly](https://plotly.com/python/) A eco-sytem for creating data science focused apps and visualisations\n", + "\n", + "Combined with the scaling provided by dask, we can easily load and analyse large datasets and viosualisae the results. More than this we can use interactive tools with this capcity to generate results on demand. " + ] + }, + { + "cell_type": "markdown", + "id": "catholic-principle", + "metadata": {}, + "source": [ + "Lets look at an example of analysing climate data from the Coupled Model Intercomparison Project 6th phase (CMIP6) on the fly using the stack we have built up.\n", + "\n", + "http://gallery.pangeo.io/repos/pangeo-gallery/cmip6/intake_ESM_example.html\n", + "\n", + "We are loading our data through an *intake catalog*, which will investigate further in section 4, which is focused on data." ] }, { "cell_type": "code", - "execution_count": null, - "id": "cleared-copyright", + "execution_count": 1, + "id": "figured-syndrome", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import intake" + ] }, { "cell_type": "code", - "execution_count": null, - "id": "overhead-species", + "execution_count": 2, + "id": "pharmaceutical-lender", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import numpy\n", + "import iris\n", + "import matplotlib.pyplot\n", + "import iris.quickplot" + ] }, { "cell_type": "code", - "execution_count": null, - "id": "civic-winner", + "execution_count": 3, + "id": "reported-karaoke", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

pangeo-cmip6 catalog with 6851 dataset(s) from 442624 asset(s):

\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
unique
activity_id17
institution_id35
source_id85
experiment_id160
member_id550
table_id37
variable_id709
grid_label10
zstore442624
dcpp_init_year60
version619
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cat_url = \"https://storage.googleapis.com/cmip6/pangeo-cmip6.json\"\n", + "col = intake.open_esm_datastore(cat_url)\n", + "col" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "analyzed-athens", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

pangeo-cmip6 catalog with 6851 dataset(s) from 442624 asset(s):

\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
unique
activity_id17
institution_id35
source_id85
experiment_id160
member_id550
table_id37
variable_id709
grid_label10
zstore442624
dcpp_init_year60
version619
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "col" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "liquid-equipment", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "--> The keys in the returned dictionary of datasets are constructed as follows:\n", + "\t'activity_id.institution_id.source_id.experiment_id.table_id.grid_label'\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "
\n", + " \n", + " \n", + " 100.00% [2/2 00:00<00:00]\n", + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tasmax_dwd_ssp585 = col.search(\n", + " experiment_id=[\"ssp585\"],\n", + " variable_id=\"tasmax\",\n", + " grid_label=\"gn\",\n", + " institution_id='DWD',\n", + ").to_dataset_dict()['ScenarioMIP.DWD.MPI-ESM1-2-HR.ssp585.Amon.gn'].tasmax.to_iris()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "amateur-palestine", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "
Air Temperature (K)--timelatitudelongitude
Shape11032192384
Dimension coordinates
\ttime-x--
\tlatitude--x-
\tlongitude---x
Auxiliary coordinates
\tmember_idx---
Scalar coordinates
\theight2.0 m
Attributes
\tcell_measuresarea: areacella
\tcommentmaximum near-surface (usually, 2 meter) air temperature (add cell_method...
Cell methods
\tmean: area
\tmaximum within days: time
\tmean over days: time
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tasmax_dwd_ssp585" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "hindu-movement", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import iris.analysis" + ] }, { - "cell_type": "markdown", - "id": "quick-transaction", + "cell_type": "code", + "execution_count": 9, + "id": "continuing-hampshire", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "
Air Temperature (K)--time
Shape11032
Dimension coordinates
\ttime-x
Auxiliary coordinates
\tmember_idx-
Scalar coordinates
\theight2.0 m
\tlatitude51 degrees_north
\tlongitude-3 degrees_east
Attributes
\tcell_measuresarea: areacella
\tcommentmaximum near-surface (usually, 2 meter) air temperature (add cell_method...
Cell methods
\tmean: area
\tmaximum within days: time
\tmean over days: time
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_points = [('latitude', 51), ('longitude', -3)]\n", + "tasmax_dwd_ssp585_timeseries = tasmax_dwd_ssp585.interpolate(sample_points, iris.analysis.Linear())\n", + "tasmax_dwd_ssp585_timeseries" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "solar-canvas", "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ - "## Interactivity & portability - Jupyter Labs" + "fig1 = matplotlib.pyplot.figure('cmip6_ts', figsize=(26,10))\n", + "ax1 = fig1.add_subplot(1,1,1)\n", + "ax1.plot([str(i1) for i1 in tasmax_dwd_ssp585_timeseries.coord('time').cells()][:20], tasmax_dwd_ssp585_timeseries[0,:].data[:20])" ] }, { "cell_type": "code", - "execution_count": null, - "id": "marine-continent", + "execution_count": 12, + "id": "nasty-requirement", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import bokeh\n", + "import bokeh.plotting\n", + "import bokeh.io" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "brave-bowling", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + " \n", + " Loading BokehJS ...\n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + "(function(root) {\n", + " function now() {\n", + " return new Date();\n", + " }\n", + "\n", + " var force = true;\n", + "\n", + " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", + " root._bokeh_onload_callbacks = [];\n", + " root._bokeh_is_loading = undefined;\n", + " }\n", + "\n", + " var JS_MIME_TYPE = 'application/javascript';\n", + " var HTML_MIME_TYPE = 'text/html';\n", + " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", + " var CLASS_NAME = 'output_bokeh rendered_html';\n", + "\n", + " /**\n", + " * Render data to the DOM node\n", + " */\n", + " function render(props, node) {\n", + " var script = document.createElement(\"script\");\n", + " node.appendChild(script);\n", + " }\n", + "\n", + " /**\n", + " * Handle when an output is cleared or removed\n", + " */\n", + " function handleClearOutput(event, handle) {\n", + " var cell = handle.cell;\n", + "\n", + " var id = cell.output_area._bokeh_element_id;\n", + " var server_id = cell.output_area._bokeh_server_id;\n", + " // Clean up Bokeh references\n", + " if (id != null && id in Bokeh.index) {\n", + " Bokeh.index[id].model.document.clear();\n", + " delete Bokeh.index[id];\n", + " }\n", + "\n", + " if (server_id !== undefined) {\n", + " // Clean up Bokeh references\n", + " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", + " cell.notebook.kernel.execute(cmd, {\n", + " iopub: {\n", + " output: function(msg) {\n", + " var id = msg.content.text.trim();\n", + " if (id in Bokeh.index) {\n", + " Bokeh.index[id].model.document.clear();\n", + " delete Bokeh.index[id];\n", + " }\n", + " }\n", + " }\n", + " });\n", + " // Destroy server and session\n", + " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", + " cell.notebook.kernel.execute(cmd);\n", + " }\n", + " }\n", + "\n", + " /**\n", + " * Handle when a new output is added\n", + " */\n", + " function handleAddOutput(event, handle) {\n", + " var output_area = handle.output_area;\n", + " var output = handle.output;\n", + "\n", + " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", + " if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n", + " return\n", + " }\n", + "\n", + " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", + "\n", + " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", + " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", + " // store reference to embed id on output_area\n", + " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", + " }\n", + " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", + " var bk_div = document.createElement(\"div\");\n", + " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", + " var script_attrs = bk_div.children[0].attributes;\n", + " for (var i = 0; i < script_attrs.length; i++) {\n", + " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", + " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", + " }\n", + " // store reference to server id on output_area\n", + " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", + " }\n", + " }\n", + "\n", + " function register_renderer(events, OutputArea) {\n", + "\n", + " function append_mime(data, metadata, element) {\n", + " // create a DOM node to render to\n", + " var toinsert = this.create_output_subarea(\n", + " metadata,\n", + " CLASS_NAME,\n", + " EXEC_MIME_TYPE\n", + " );\n", + " this.keyboard_manager.register_events(toinsert);\n", + " // Render to node\n", + " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", + " render(props, toinsert[toinsert.length - 1]);\n", + " element.append(toinsert);\n", + " return toinsert\n", + " }\n", + "\n", + " /* Handle when an output is cleared or removed */\n", + " events.on('clear_output.CodeCell', handleClearOutput);\n", + " events.on('delete.Cell', handleClearOutput);\n", + "\n", + " /* Handle when a new output is added */\n", + " events.on('output_added.OutputArea', handleAddOutput);\n", + "\n", + " /**\n", + " * Register the mime type and append_mime function with output_area\n", + " */\n", + " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", + " /* Is output safe? */\n", + " safe: true,\n", + " /* Index of renderer in `output_area.display_order` */\n", + " index: 0\n", + " });\n", + " }\n", + "\n", + " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", + " if (root.Jupyter !== undefined) {\n", + " var events = require('base/js/events');\n", + " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", + "\n", + " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", + " register_renderer(events, OutputArea);\n", + " }\n", + " }\n", + "\n", + " \n", + " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", + " root._bokeh_timeout = Date.now() + 5000;\n", + " root._bokeh_failed_load = false;\n", + " }\n", + "\n", + " var NB_LOAD_WARNING = {'data': {'text/html':\n", + " \"
\\n\"+\n", + " \"

\\n\"+\n", + " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", + " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", + " \"

\\n\"+\n", + " \"
    \\n\"+\n", + " \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n", + " \"
  • use INLINE resources instead, as so:
  • \\n\"+\n", + " \"
\\n\"+\n", + " \"\\n\"+\n", + " \"from bokeh.resources import INLINE\\n\"+\n", + " \"output_notebook(resources=INLINE)\\n\"+\n", + " \"\\n\"+\n", + " \"
\"}};\n", + "\n", + " function display_loaded() {\n", + " var el = document.getElementById(\"1002\");\n", + " if (el != null) {\n", + " el.textContent = \"BokehJS is loading...\";\n", + " }\n", + " if (root.Bokeh !== undefined) {\n", + " if (el != null) {\n", + " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", + " }\n", + " } else if (Date.now() < root._bokeh_timeout) {\n", + " setTimeout(display_loaded, 100)\n", + " }\n", + " }\n", + "\n", + "\n", + " function run_callbacks() {\n", + " try {\n", + " root._bokeh_onload_callbacks.forEach(function(callback) {\n", + " if (callback != null)\n", + " callback();\n", + " });\n", + " } finally {\n", + " delete root._bokeh_onload_callbacks\n", + " }\n", + " console.debug(\"Bokeh: all callbacks have finished\");\n", + " }\n", + "\n", + " function load_libs(css_urls, js_urls, callback) {\n", + " if (css_urls == null) css_urls = [];\n", + " if (js_urls == null) js_urls = [];\n", + "\n", + " root._bokeh_onload_callbacks.push(callback);\n", + " if (root._bokeh_is_loading > 0) {\n", + " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", + " return null;\n", + " }\n", + " if (js_urls == null || js_urls.length === 0) {\n", + " run_callbacks();\n", + " return null;\n", + " }\n", + " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", + " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", + "\n", + " function on_load() {\n", + " root._bokeh_is_loading--;\n", + " if (root._bokeh_is_loading === 0) {\n", + " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", + " run_callbacks()\n", + " }\n", + " }\n", + "\n", + " function on_error(url) {\n", + " console.error(\"failed to load \" + url);\n", + " }\n", + "\n", + " for (let i = 0; i < css_urls.length; i++) {\n", + " const url = css_urls[i];\n", + " const element = document.createElement(\"link\");\n", + " element.onload = on_load;\n", + " element.onerror = on_error.bind(null, url);\n", + " element.rel = \"stylesheet\";\n", + " element.type = \"text/css\";\n", + " element.href = url;\n", + " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", + " document.body.appendChild(element);\n", + " }\n", + "\n", + " const hashes = {\"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.0.min.js\": \"HjagQp6T0/7bxYTAXbLotF1MLAGWmhkY5siA1Gc/pcEgvgRPtMsRn0gQtMwGKiw1\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.0.min.js\": \"ZEPPTjL+mdyqgIq+/pl9KTwzji8Kow2NnI3zWY8+sFinWP/SYJ80BnfeJsa45iYj\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.0.min.js\": \"exLqv2ACDRIaV7ZK1iL8aGzGYQvKVuT3U2CT7FsQREBxRah6JrkVCoFy0koY1YqV\"};\n", + "\n", + " for (let i = 0; i < js_urls.length; i++) {\n", + " const url = js_urls[i];\n", + " const element = document.createElement('script');\n", + " element.onload = on_load;\n", + " element.onerror = on_error.bind(null, url);\n", + " element.async = false;\n", + " element.src = url;\n", + " if (url in hashes) {\n", + " element.crossOrigin = \"anonymous\";\n", + " element.integrity = \"sha384-\" + hashes[url];\n", + " }\n", + " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", + " document.head.appendChild(element);\n", + " }\n", + " };\n", + "\n", + " function inject_raw_css(css) {\n", + " const element = document.createElement(\"style\");\n", + " element.appendChild(document.createTextNode(css));\n", + " document.body.appendChild(element);\n", + " }\n", + "\n", + " \n", + " var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.0.min.js\"];\n", + " var css_urls = [];\n", + " \n", + "\n", + " var inline_js = [\n", + " function(Bokeh) {\n", + " Bokeh.set_log_level(\"info\");\n", + " },\n", + " function(Bokeh) {\n", + " \n", + " \n", + " }\n", + " ];\n", + "\n", + " function run_inline_js() {\n", + " \n", + " if (root.Bokeh !== undefined || force === true) {\n", + " \n", + " for (var i = 0; i < inline_js.length; i++) {\n", + " inline_js[i].call(root, root.Bokeh);\n", + " }\n", + " if (force === true) {\n", + " display_loaded();\n", + " }} else if (Date.now() < root._bokeh_timeout) {\n", + " setTimeout(run_inline_js, 100);\n", + " } else if (!root._bokeh_failed_load) {\n", + " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", + " root._bokeh_failed_load = true;\n", + " } else if (force !== true) {\n", + " var cell = $(document.getElementById(\"1002\")).parents('.cell').data().cell;\n", + " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", + " }\n", + "\n", + " }\n", + "\n", + " if (root._bokeh_is_loading === 0) {\n", + " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", + " run_inline_js();\n", + " } else {\n", + " load_libs(css_urls, js_urls, function() {\n", + " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", + " run_inline_js();\n", + " });\n", + " }\n", + "}(window));" + ], + "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n var NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"
    \\n\"+\n \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n \"
  • use INLINE resources instead, as so:
  • \\n\"+\n \"
\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n var el = document.getElementById(\"1002\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n const hashes = {\"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.0.min.js\": \"HjagQp6T0/7bxYTAXbLotF1MLAGWmhkY5siA1Gc/pcEgvgRPtMsRn0gQtMwGKiw1\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.0.min.js\": \"ZEPPTjL+mdyqgIq+/pl9KTwzji8Kow2NnI3zWY8+sFinWP/SYJ80BnfeJsa45iYj\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.0.min.js\": \"exLqv2ACDRIaV7ZK1iL8aGzGYQvKVuT3U2CT7FsQREBxRah6JrkVCoFy0koY1YqV\"};\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n if (url in hashes) {\n element.crossOrigin = \"anonymous\";\n element.integrity = \"sha384-\" + hashes[url];\n }\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n \n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.0.min.js\"];\n var css_urls = [];\n \n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n function(Bokeh) {\n \n \n }\n ];\n\n function run_inline_js() {\n \n if (root.Bokeh !== undefined || force === true) {\n \n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell = $(document.getElementById(\"1002\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "bokeh.io.output_notebook()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "revolutionary-replacement", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "(function(root) {\n", + " function embed_document(root) {\n", + " \n", + " var docs_json = {\"cf918a2f-e7fb-4598-adde-0b4882c85a73\":{\"defs\":[{\"extends\":null,\"module\":null,\"name\":\"DataModel\",\"overrides\":[],\"properties\":[]}],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1012\"}],\"center\":[{\"id\":\"1015\"},{\"id\":\"1019\"}],\"height\":400,\"left\":[{\"id\":\"1016\"}],\"renderers\":[{\"id\":\"1037\"}],\"title\":{\"id\":\"1040\"},\"toolbar\":{\"id\":\"1027\"},\"width\":1000,\"x_range\":{\"id\":\"1004\"},\"x_scale\":{\"id\":\"1008\"},\"y_range\":{\"id\":\"1006\"},\"y_scale\":{\"id\":\"1010\"}},\"id\":\"1003\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1008\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1045\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1026\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"overlay\":{\"id\":\"1026\"}},\"id\":\"1022\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1044\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1020\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1021\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1035\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1004\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1041\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1040\",\"type\":\"Title\"},{\"attributes\":{\"data\":{\"x\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031],\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[1032]}},\"selected\":{\"id\":\"1048\"},\"selection_policy\":{\"id\":\"1049\"}},\"id\":\"1034\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1006\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1042\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1036\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1017\",\"type\":\"BasicTicker\"},{\"attributes\":{\"formatter\":{\"id\":\"1045\"},\"major_label_policy\":{\"id\":\"1044\"},\"ticker\":{\"id\":\"1013\"}},\"id\":\"1012\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1024\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1010\",\"type\":\"LinearScale\"},{\"attributes\":{\"active_multi\":null,\"tools\":[{\"id\":\"1020\"},{\"id\":\"1021\"},{\"id\":\"1022\"},{\"id\":\"1023\"},{\"id\":\"1024\"},{\"id\":\"1025\"}]},\"id\":\"1027\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1013\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1012\"},\"ticker\":null},\"id\":\"1015\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1048\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1034\"}},\"id\":\"1038\",\"type\":\"CDSView\"},{\"attributes\":{\"axis\":{\"id\":\"1016\"},\"dimension\":1,\"ticker\":null},\"id\":\"1019\",\"type\":\"Grid\"},{\"attributes\":{\"formatter\":{\"id\":\"1042\"},\"major_label_policy\":{\"id\":\"1041\"},\"ticker\":{\"id\":\"1017\"}},\"id\":\"1016\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1023\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1049\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"1034\"},\"glyph\":{\"id\":\"1035\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1036\"},\"view\":{\"id\":\"1038\"}},\"id\":\"1037\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1025\",\"type\":\"HelpTool\"}],\"root_ids\":[\"1003\"]},\"title\":\"Bokeh Application\",\"version\":\"2.3.0\"}};\n", + " var render_items = [{\"docid\":\"cf918a2f-e7fb-4598-adde-0b4882c85a73\",\"root_ids\":[\"1003\"],\"roots\":{\"1003\":\"391cfc12-6f93-4b9e-8f6c-9bcb8d53aa17\"}}];\n", + " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", + "\n", + " }\n", + " if (root.Bokeh !== undefined) {\n", + " embed_document(root);\n", + " } else {\n", + " var attempts = 0;\n", + " var timer = setInterval(function(root) {\n", + " if (root.Bokeh !== undefined) {\n", + " clearInterval(timer);\n", + " embed_document(root);\n", + " } else {\n", + " attempts++;\n", + " if (attempts > 100) {\n", + " clearInterval(timer);\n", + " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", + " }\n", + " }\n", + " }, 10, root)\n", + " }\n", + "})(window);" + ], + "application/vnd.bokehjs_exec.v0+json": "" + }, + "metadata": { + "application/vnd.bokehjs_exec.v0+json": { + "id": "1003" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "p = bokeh.plotting.figure(plot_width=1000, plot_height=400)\n", + "\n", + "# add a line renderer\n", + "# p.line([str(i1) for i1 in tasmax_dwd_ssp585_timeseries.coord('time').cells()][:20], tasmax_dwd_ssp585_timeseries[0,:].data[:20])\n", + "p.line(range( tasmax_dwd_ssp585_timeseries[0,:].data.shape[0]), tasmax_dwd_ssp585_timeseries[0,:].data)\n", + "\n", + "# p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], line_width=2)\n", + "bokeh.plotting.show(p)" + ] + }, + { + "cell_type": "markdown", + "id": "approximate-mercy", + "metadata": {}, + "source": [ + "## Existing example installations \n", + "\n", + "Pangeo has been installed in many different places around the world. Here are some example installations\n", + "* Informatics Lab research deployment - AWS, Azure\n", + "* Cheyenne HPC\n", + "* JASMIN academic computing service\n", + "\n", + "Other services are available that contain many of the elements of a Pangeo implementation:\n", + "* AWS sagemaker, Azure ML\n", + "* Jupyter lab running on a local computer\n" + ] }, { "cell_type": "markdown", - "id": "olive-board", + "id": "bizarre-siemens", "metadata": {}, "source": [ - "## Dashboarding" + "## Getting started\n", + "\n", + "If you want to set up your own Pangeo instance, the Pangeo community has lots of different recipes and examples for doing, available through the Pangeo Community Website, and community help available through Discourse:\n", + "\n", + "* Deployment guide: https://pangeo.io/setup_guides/index.html\n", + "* Pangeo Discourse https://discourse.pangeo.io/" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "pangeo_lectures", "language": "python", - "name": "python3" + "name": "pangeo_lectures" }, "language_info": { "codemirror_mode": { @@ -137,7 +1557,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.9" + "version": "3.7.10" } }, "nbformat": 4, diff --git a/04_data_a_modern_approach.ipynb b/04_data_a_modern_approach.ipynb index 87944c4..cdbd0bc 100644 --- a/04_data_a_modern_approach.ipynb +++ b/04_data_a_modern_approach.ipynb @@ -2,170 +2,5961 @@ "cells": [ { "cell_type": "markdown", - "id": "simplified-wings", + "id": "developed-electric", "metadata": {}, "source": [ - "# Section 4: Data - A modern approach " + "# Section 4: Data - A modern approach \n", + "![Pangeo Logo ](images/pangeo_logo_small.png)\n", + "\n", + "[Pangeo Website](https://pangeo.io/)" + ] + }, + { + "cell_type": "markdown", + "id": "upper-marketing", + "metadata": {}, + "source": [ + "It's all very well having a distributed, massively parallel scientific compute platform available. If we don't use it properly, our tasks won't make best use of the infrastructure. There are two primary blockers to making best use of the platform: poorly written source code and poorly strcutured datasets. Hopefully with the tools and libraries that are now available for scientific computing, such as dask, users of the platform in general, and specifically our first use case of Scientific Analyst or Researcher it willl be easy to set up and use for interactive computing at scale. We can write code that clearly communicates our intentions to some one reading the code, while underlying libraries ensure that it is efficiently executed by the compute platform (meeting the goal of separation of concerns). The next challenge is the data we work with. One might think the data is what it is, and it's up to the code to deal with approiately, but that is not the case. Those who create the dataset, primarily the second use case of Data Engineer, can do a lot to make it easier to use later. The challenge of presenting data so it is easy to consume and understand is an old one." + ] + }, + { + "cell_type": "markdown", + "id": "british-bennett", + "metadata": {}, + "source": [ + "## An Historical Digression - Reading ancient texts\n", + "\n", + "![Codex Sinaticus](https://www.bl.uk/britishlibrary/~/media/bl/global/dst%20discovering%20sacred%20texts/collection%20items/codexsinaiticus-add_ms_43725_f244v.jpg?w=608&h=342&hash=11BF1F0A1DE8CAC524DE050F912D7AD7)\n", + "\n", + "When we look at text, we see a lot of element that we may not think much about that add a lot to our understanding of what the text contains. For example, there are punctuation marks to divide the text into sentences and phrases. In addition, there are gaps left to indicate paragraphs, quotes, lists etc. Using whitespace for meaning was by no means invented by Python! As you can see from the accompanying pictures, text in ancient manuscripts often had none of these helpful elements. In some languages the vowels were not even explictly specified All all the text was nominally there, but actually reading it, particuarly reading it out loud, required a lot of skill to interpret what was recorded on the page. There was a proffession of *lektors* who were proffessional readers, because the skills required for reading any substantial text required a lot of training and practice. Much oif the burden of reading was placed on the consumer of the manuscript rather than the the producer.\n", + "\n", + "Over time our way of writing has evolved to provide as much help for the reader as possible, so that the person reading can focus on the actual content of the document they are readfing, rather than the skill of reading itself. We expect a lot more of the writer, but they are the one who best knows the context and the meaning and so are best placed to help other interpret the text through whitespace, puntuation etc." + ] + }, + { + "cell_type": "markdown", + "id": "antique-heaven", + "metadata": {}, + "source": [ + "## The Goal - Data for reproducible, shareable research\n", + "That \"fun\" historical digression does have a point relevant to this course, that is that we want to make it as ewasy as possible for our data to be used by researchers and for data producers to provide as much help as possible in accesing, loading and analysing the data. It is not enough that that the raw data is present, it needs to be described by sufficient metadata and strcutured for effcient access. Data consumers should require skills in the domain the data describes to understasnd the contents, but require as little as possible in terms of skills in the areas of data and software engineering. \n" + ] + }, + { + "cell_type": "markdown", + "id": "choice-centre", + "metadata": {}, + "source": [ + "![Data Description Levels](images/data_description_levels.png)" + ] + }, + { + "cell_type": "markdown", + "id": "synthetic-corporation", + "metadata": {}, + "source": [ + "We might think of different levels of descriptiveness and ease of access for datasets.\n", + "\n", + "* *Raw Data* - A series of text or binary files with the data values but no description of what they mean e.g. units. Finding the data you need and pulling it together into a coherent dataset requires knwloedge from elsewhere.\n", + "* *Described data files* - Data is provided as a series of files which contain a description of the data contained within (metadata). Accesing a whole dataset requires figuring out paths to many different files, which may not have consistent metadata across files. \n", + "* *Described dataset* - All data in a dataset is accessed through a single descriptor and contains all descriptions necessary for some one skilled in the domain the data describes to interpret the data. The \" behind the scenes\" structures may still be as a series of files and directories, but the user consumes the datasets as a unified whole.\n" + ] + }, + { + "cell_type": "markdown", + "id": "assumed-adjustment", + "metadata": {}, + "source": [ + "https://pangeo.io/data.html" + ] + }, + { + "cell_type": "markdown", + "id": "successful-packing", + "metadata": {}, + "source": [ + "In creating a dataset we should ensure our data follows the FAIR principle, that it is *Findable*, *Accesible*, *Interoperable* and *Reusable*, and is *Analysis-Ready* and *Cloud Optimised*. Lets dig a bit deeper into what those terms really mean and what we can do to ensure we are following those principles." + ] + }, + { + "cell_type": "markdown", + "id": "working-junction", + "metadata": {}, + "source": [ + "## FAIR data\n", + "\n", + "The FAIR principles are intended to ensure that it is easy for other to use the data that we produce so that research can build on the work of others as erfficiently as possible rather than endlessly reinventing the wheel. The principles state that data should be:\n", + "\n", + "* **Findable** - A researcher should easily be able to find the data that exists related to the problem that they are working on. This relies on sufficiently detailed description of datasets being contained in the metadata and being accessible without reading the whole dataset.An emerging technology is *data search engines*, which aim to make finding data as easy as finding a web page is through web search engines.\n", + "* **Accessible** - Once a researcher has found a dataset that they have determined will be a useful input to their pipeline in addressing a research question, they should easily be able to access that data.\n", + "* **Interoperable** - The user should be able to load the data into the tool of their choice and integrate with the rest of their research pipeline.\n", + "* **Reusable** - Data can easily be used by others who have not played a part in creating it, and ideally should be usable by those who not specialists in the particular domain of the data.\n" + ] + }, + { + "cell_type": "markdown", + "id": "intermediate-hometown", + "metadata": {}, + "source": [ + "More Info:\n", + "* https://www.go-fair.org/fair-principles/\n", + "* https://www.nature.com/articles/sdata201618" + ] + }, + { + "cell_type": "markdown", + "id": "dimensional-convention", + "metadata": {}, + "source": [ + "## Analysis Ready Data\n", + "\n", + "The concept of analysis ready data is closely aligned with the FAIR principles but takes in particular the reusable and interoperable principles further. When asking if data is *analysis-ready*, we are really asking if once I have loaded the dataset in my favourite, is it ready to use in my analysis or for training a statistical or machine-learning model, or do I have do a lot of prepreprocessing to get it in to a state where it is ready to use in one of these ways. Data that is analysis ready should have the following attributes (thanks to Aaron Hopkinson for the following descriptions):" + ] + }, + { + "cell_type": "markdown", + "id": "copyrighted-attendance", + "metadata": {}, + "source": [ + "* *Metadata rich*. Users should be provided an object with metadata which can be used\n", + "to define operations over (e.g: mean over ensemble realization).\n", + "* *Hidden infrastructure* - Analysis can be readily achieved without knowledge of the underlying storage of the\n", + "data (e.g: file paths, chunking etc – note efficiency considerations)\n", + " * Users should not have to manually interact with the storage system, this should be\n", + "handled automatically as necessary. Ideally the storage should be abstracted away\n", + "from the user.\n", + "* *Simple analysis with simple code* - Basic analysis of a subset of the data (e.g: descriptive statistics, subsetting) should be possible with a minimum number of additional lines of code, and on the basis of metadata. \n", + " * e.g: `mean(dataset, axis=’time’)`\n", + "* *Supports modular analsysis* - Custom analytics should be possible by creating functions which take in an analysis ready dataset and return another.\n" + ] + }, + { + "cell_type": "markdown", + "id": "saved-helmet", + "metadata": {}, + "source": [ + "This is still a new concept and as such all the implications and meanings are still being worked out. Partly this is because deciding whether something is analysis ready requires knowing something about what analsysis is to be performed. For many use cases there are common requirements from a dataset to make it usable without further processing. We want this to be true of analysis ready data for as many use cases as possible." + ] + }, + { + "cell_type": "markdown", + "id": "incomplete-cement", + "metadata": {}, + "source": [ + "## Cloud optimised Data\n", + "\n", + "As we've seen, the cloud infrastructure underpinning a Pangeo is different to the structure of the desktop or cluster models. We need to make sure that the way we strcuture our datasets enables efficient access for distributed access patterns. We call data that is presented in this is way *cloud optimised*. Some of the characteristics of cloud optmised data include (thanks to Aaron Hopkinson for the following descriptions):" + ] + }, + { + "cell_type": "markdown", + "id": "protected-message", + "metadata": {}, + "source": [ + "* *Fast metadata acesss* Metadata knowledge should be known with low latency, and without pulling from a large number of individual objects (low cost operation). It should be consolidated in\n", + "some way.\n", + "* *Lazy access* For performance, processing on ARCO data should ideally be possible to construct lazily, so that no processing is carried out until explicitly requested by the user. Any computation should also be processed close to the data, in order to avoid unnecessary network traffic.\n", + "* *Data appropriate chunking* - Subsets (or chunks) of data should be retrievable either using a whole object fetch, or easily computable byte-range requests, in order to leverage large scale parallelism and avoid unnecessary network transfers.\n", + "* *Consistency* - Considerations of concept of “eventual consistency” – if an object in cloud storage is updated from one node and another node later reads the same object, the state change may not have propagated.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "acting-fiber", + "metadata": {}, + "source": [ + "\n", + "The more one optimises for a specific, the less optimised it is likely to be for other cases. This is especially true for chunking. So one wants to make data access efficient for as broad a spectrum of possible uses as one can, but also focusing on optimising for the most common use cases. " + ] + }, + { + "cell_type": "markdown", + "id": "changed-porter", + "metadata": {}, + "source": [ + "### Challenges\n", + "\n", + "These principles are a good starting point for thinking about how we present data. These do not present easy answers for exactly what should be done. There are often choices to be made and different requirements to balance. For example optimal chunking is specific to the way the data is accessed, so there is some judgement that is required in term of what is best for a particular dataset. Other challenges include:\n", + "* *Different platforms* Cloud requirements may be different from HPC requirements. What may work well on one platform may not work well on another.\n", + "* *Language agnostic* - How do we ensure that our data can be accessed from tols written in different programming languages.\n", + "* *Flexible, interoperable standards* Unlikely to be one complete solution/concrete implementation – instead need to agree principles such as use of open standards and interoperability.\n" + ] + }, + { + "cell_type": "markdown", + "id": "alert-hypothetical", + "metadata": {}, + "source": [ + "## Data types and tools\n", + "\n", + "Lets look at some practical examples of data. In weather and climate science, we distinguish between two sorts of data which are stored and accessed a bit differently, so we'll look at the specific of each separately. The two data types are\n", + "* *tabular data* - Data stored in rows and columns (a bit like a spreadsheet or database architecture).\n", + "* *Gridded data* - Data is stored as a multiple dimensional array, where the dimensions of the array can include latitude, longitude, height, data time, generation time, ensemble member number etc." + ] + }, + { + "cell_type": "markdown", + "id": "renewable-missouri", + "metadata": {}, + "source": [ + "### Tabular Data - XBT Project\n", + "\n", + "Tabular data is the sort of data often stored in a traditional relational database system or a spreadsheet. Important charactereristics of tabular data:\n", + "* Each column is a variable/field/feature\n", + "* Each row is a measurement/observation/record/data point\n", + "* Metadata often contained as column headers, but can also be stored as columns in the table\n", + "* not a conveneient way to store metadata for the whole table.\n", + "* each table is often stored as a separate file\n", + "* common file formats: CSV, parquet, SQL database\n", + "\n", + "In this example we will look at an ocean temperature dataset gathered by the World Ocean Database. It contains temperature profiles through a depth of the ocean at a particular location for each measurement, taken using eXpendable BathyThermogrpahs (XBTs). This has been the subject of a machine learning project at the Met Office to fill in missing data using ML techniques.\n", + "\n", + "More information:\n", + "* XBT project repository - https://github.com/MetOffice/XBTs_classification\n", + "* World Ocean Database - https://www.ncei.noaa.gov/products/world-ocean-database" ] }, { "cell_type": "code", - "execution_count": null, - "id": "secondary-specification", + "execution_count": 1, + "id": "horizontal-cinema", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import pandas" + ] }, { - "cell_type": "markdown", - "id": "nervous-trinity", + "cell_type": "code", + "execution_count": 2, + "id": "cosmetic-trinity", "metadata": {}, + "outputs": [], "source": [ - "## Analysis Ready Data" + "data_paths = [f's3://xbt-data/csv_with_imeta/xbt_{year}' for year in range(1966,2015)]" ] }, { "cell_type": "code", - "execution_count": null, - "id": "vocal-guatemala", + "execution_count": 3, + "id": "peripheral-brain", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "xbt_1966 = pandas.read_csv(data_paths[0])" + ] }, { - "cell_type": "markdown", - "id": "individual-gospel", + "cell_type": "code", + "execution_count": 4, + "id": "equivalent-difference", "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0Unnamed: 0.1countrylatlondateyearmonthdayinstitute...instrumentmodelmanufacturertemperature_profiletemperature_quality_flagdepth_profilemax_depthdepth_quality_flagimeta_appliedid
000UNITED STATES32.966667-117.633331196604121966412US NAVY SHIPS OF OPPORTUNITY...XBT: T4 (SIPPICAN)T4SIPPICAN[16.153478622436523, 15.893913269042969, 15.69...[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...[-1.1172676086425781, 6.054140567779541, 7.078...466.892670[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...12052528
111UNITED STATES33.016666-118.116669196604131966413US NAVY SHIPS OF OPPORTUNITY...XBT: T4 (SIPPICAN)T4SIPPICAN[16.353145599365234, 16.32319450378418, 15.873...[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...[-1.1095428466796875, 0.9393265247344971, 4.01...466.852051[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...12052529
222UNITED STATES33.066666-118.466667196604141966414US NAVY SHIPS OF OPPORTUNITY...XBT: T4 (SIPPICAN)T4SIPPICAN[15.165132522583008, 15.165132522583008, 14.81...[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][-1.1249465942382812, 6.047884464263916, 12.19...70.602089[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]12052530
333UNITED STATES32.700001-118.666664196604141966414US NAVY SHIPS OF OPPORTUNITY...XBT: T4 (SIPPICAN)T4SIPPICAN[15.115216255187988, 15.115216255187988, 14.96...[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...[-1.1200714111328125, 12.199983596801758, 13.2...466.907410[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...12052531
444UNITED STATES32.933334-117.916664196604141966414US NAVY SHIPS OF OPPORTUNITY...XBT: T4 (SIPPICAN)T4SIPPICAN[15.923863410949707, 15.923863410949707, 15.67...[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...[-1.1018257141113281, 14.260088920593262, 17.3...466.811493[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...12052532
..................................................................
174517451745UNITED STATES28.716667-145.6666721966123119661231US DOC NOAA NMFS (MONTEREY; CA)...XBT: T4 (SIPPICAN)T4SIPPICAN[20.515398025512695, 20.415565490722656, 20.11...[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][-1.3544235229492188, 51.20085525512695, 128.4...474.280792[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]02054254
174617461746UNITED STATES18.650000106.98333019661231196612310...XBT: T4 (SIPPICAN)T4SIPPICAN[23.70085334777832, 23.501188278198242, 23.501...[0 0 0 0 0][-1.4307975769042969, 8.897333145141602, 19.22...50.191364[0 0 0 0 0]13411243
174717471747UNITED STATES29.700001-143.6166691966123119661231US DOC NOAA NMFS (MONTEREY; CA)...XBT: T4 (SIPPICAN)T4SIPPICAN[20.016233444213867, 19.816566467285156, 18.21...[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][-1.3290176391601562, 94.42085266113281, 95.45...459.816345[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]02054256
174817481748UNITED STATES30.299999-142.3666691966123119661231US DOC NOAA NMFS (MONTEREY; CA)...XBT: T4 (SIPPICAN)T4SIPPICAN[19.616901397705078, 19.51706886291504, 18.219...[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][-1.317779541015625, 106.7505874633789, 107.77...471.017609[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]02054257
174917491749UNITED STATES18.583334106.90000219661231196612310...XBT: T4 (SIPPICAN)T4SIPPICAN[23.201688766479492, 23.30152130126953, 23.301...[0 0 0 0 0 0 0][-1.4271049499511719, 8.900050163269043, 19.22...101.760010[0 0 0 0 0 0 0]13411246
\n", + "

1750 rows × 22 columns

\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 Unnamed: 0.1 country lat lon \\\n", + "0 0 0 UNITED STATES 32.966667 -117.633331 \n", + "1 1 1 UNITED STATES 33.016666 -118.116669 \n", + "2 2 2 UNITED STATES 33.066666 -118.466667 \n", + "3 3 3 UNITED STATES 32.700001 -118.666664 \n", + "4 4 4 UNITED STATES 32.933334 -117.916664 \n", + "... ... ... ... ... ... \n", + "1745 1745 1745 UNITED STATES 28.716667 -145.666672 \n", + "1746 1746 1746 UNITED STATES 18.650000 106.983330 \n", + "1747 1747 1747 UNITED STATES 29.700001 -143.616669 \n", + "1748 1748 1748 UNITED STATES 30.299999 -142.366669 \n", + "1749 1749 1749 UNITED STATES 18.583334 106.900002 \n", + "\n", + " date year month day institute ... \\\n", + "0 19660412 1966 4 12 US NAVY SHIPS OF OPPORTUNITY ... \n", + "1 19660413 1966 4 13 US NAVY SHIPS OF OPPORTUNITY ... \n", + "2 19660414 1966 4 14 US NAVY SHIPS OF OPPORTUNITY ... \n", + "3 19660414 1966 4 14 US NAVY SHIPS OF OPPORTUNITY ... \n", + "4 19660414 1966 4 14 US NAVY SHIPS OF OPPORTUNITY ... \n", + "... ... ... ... ... ... ... \n", + "1745 19661231 1966 12 31 US DOC NOAA NMFS (MONTEREY; CA) ... \n", + "1746 19661231 1966 12 31 0 ... \n", + "1747 19661231 1966 12 31 US DOC NOAA NMFS (MONTEREY; CA) ... \n", + "1748 19661231 1966 12 31 US DOC NOAA NMFS (MONTEREY; CA) ... \n", + "1749 19661231 1966 12 31 0 ... \n", + "\n", + " instrument model manufacturer \\\n", + "0 XBT: T4 (SIPPICAN) T4 SIPPICAN \n", + "1 XBT: T4 (SIPPICAN) T4 SIPPICAN \n", + "2 XBT: T4 (SIPPICAN) T4 SIPPICAN \n", + "3 XBT: T4 (SIPPICAN) T4 SIPPICAN \n", + "4 XBT: T4 (SIPPICAN) T4 SIPPICAN \n", + "... ... ... ... \n", + "1745 XBT: T4 (SIPPICAN) T4 SIPPICAN \n", + "1746 XBT: T4 (SIPPICAN) T4 SIPPICAN \n", + "1747 XBT: T4 (SIPPICAN) T4 SIPPICAN \n", + "1748 XBT: T4 (SIPPICAN) T4 SIPPICAN \n", + "1749 XBT: T4 (SIPPICAN) T4 SIPPICAN \n", + "\n", + " temperature_profile \\\n", + "0 [16.153478622436523, 15.893913269042969, 15.69... \n", + "1 [16.353145599365234, 16.32319450378418, 15.873... \n", + "2 [15.165132522583008, 15.165132522583008, 14.81... \n", + "3 [15.115216255187988, 15.115216255187988, 14.96... \n", + "4 [15.923863410949707, 15.923863410949707, 15.67... \n", + "... ... \n", + "1745 [20.515398025512695, 20.415565490722656, 20.11... \n", + "1746 [23.70085334777832, 23.501188278198242, 23.501... \n", + "1747 [20.016233444213867, 19.816566467285156, 18.21... \n", + "1748 [19.616901397705078, 19.51706886291504, 18.219... \n", + "1749 [23.201688766479492, 23.30152130126953, 23.301... \n", + "\n", + " temperature_quality_flag \\\n", + "0 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0... \n", + "1 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0... \n", + "2 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] \n", + "3 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0... \n", + "4 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0... \n", + "... ... \n", + "1745 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] \n", + "1746 [0 0 0 0 0] \n", + "1747 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] \n", + "1748 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] \n", + "1749 [0 0 0 0 0 0 0] \n", + "\n", + " depth_profile max_depth \\\n", + "0 [-1.1172676086425781, 6.054140567779541, 7.078... 466.892670 \n", + "1 [-1.1095428466796875, 0.9393265247344971, 4.01... 466.852051 \n", + "2 [-1.1249465942382812, 6.047884464263916, 12.19... 70.602089 \n", + "3 [-1.1200714111328125, 12.199983596801758, 13.2... 466.907410 \n", + "4 [-1.1018257141113281, 14.260088920593262, 17.3... 466.811493 \n", + "... ... ... \n", + "1745 [-1.3544235229492188, 51.20085525512695, 128.4... 474.280792 \n", + "1746 [-1.4307975769042969, 8.897333145141602, 19.22... 50.191364 \n", + "1747 [-1.3290176391601562, 94.42085266113281, 95.45... 459.816345 \n", + "1748 [-1.317779541015625, 106.7505874633789, 107.77... 471.017609 \n", + "1749 [-1.4271049499511719, 8.900050163269043, 19.22... 101.760010 \n", + "\n", + " depth_quality_flag imeta_applied \\\n", + "0 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0... 1 \n", + "1 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0... 1 \n", + "2 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 1 \n", + "3 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0... 1 \n", + "4 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0... 1 \n", + "... ... ... \n", + "1745 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 0 \n", + "1746 [0 0 0 0 0] 1 \n", + "1747 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 0 \n", + "1748 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 0 \n", + "1749 [0 0 0 0 0 0 0] 1 \n", + "\n", + " id \n", + "0 2052528 \n", + "1 2052529 \n", + "2 2052530 \n", + "3 2052531 \n", + "4 2052532 \n", + "... ... \n", + "1745 2054254 \n", + "1746 3411243 \n", + "1747 2054256 \n", + "1748 2054257 \n", + "1749 3411246 \n", + "\n", + "[1750 rows x 22 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "### Metadata" + "xbt_1966" ] }, { "cell_type": "code", - "execution_count": null, - "id": "future-freeze", + "execution_count": 5, + "id": "pretty-seventh", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import matplotlib\n", + "import matplotlib.pyplot" + ] }, { - "cell_type": "markdown", - "id": "rotary-scanning", + "cell_type": "code", + "execution_count": 6, + "id": "generic-census", "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ - "## Cloud optimised Data" + "fig1 = matplotlib.pyplot.figure('xbt_profile', figsize=(16,10))\n", + "ax1 = fig1.add_subplot(1,1,1, title='Depth vs temperature')\n", + "_ = ax1.plot(eval(xbt_1966.loc[0,'depth_profile']),eval(xbt_1966.loc[0,'temperature_profile']))" ] }, { "cell_type": "code", - "execution_count": null, - "id": "black-billy", + "execution_count": 7, + "id": "amber-freeze", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import dask.dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "horizontal-november", + "metadata": {}, + "outputs": [], + "source": [ + "#dask.dataframe.read_csv(data_paths)" + ] }, { "cell_type": "markdown", - "id": "orange-killing", + "id": "forced-fantasy", "metadata": {}, "source": [ - "### Lazy Loading" + "Things to note about the data engineering of this dataset\n", + "* data split by year for parallel access\n", + "* data currently accessed through mutliple files, would be better to present as a coherent dataset that abstracts away file access particulars\n", + "* minimal metadata in columns headers, columns such as country, institution etc. are metadata where depth and temperature profiles are the data." + ] + }, + { + "cell_type": "markdown", + "id": "crude-mandate", + "metadata": {}, + "source": [ + "## Gridded data\n", + "\n", + "Gridded data has data stored as a multi-dimensional array. This usually covers a geographic area for a period of time, so will include at latitude, longitude and time as dimensions of the array. Some important characteristics of gridded data include:\n", + "* Separate physical phenomena e.g. temperature, wind speed, precipitation, are separate arrays \n", + "* In addition to latutitude, longitude and time, array dimensions might include ensemble member number, height (for representing the 3D atmosphere at multiple levels), forecast time (when the data was created) and others depending on context.\n", + "* Metadata is stored in a separate data structure for each array\n", + "\n" ] }, { "cell_type": "code", - "execution_count": null, - "id": "acting-respect", + "execution_count": 9, + "id": "reverse-newspaper", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import boto3\n", + "import botocore\n", + "import datetime\n", + "import matplotlib.pyplot as plt\n", + "import os.path\n", + "import s3fs" + ] }, { - "cell_type": "markdown", - "id": "greek-voluntary", + "cell_type": "code", + "execution_count": 10, + "id": "military-black", "metadata": {}, + "outputs": [], "source": [ - "## Data types and tools" + "import xarray as xr\n", + "import matplotlib.pyplot\n", + "import iris\n", + "import iris.quickplot\n", + "import cartopy.crs" ] }, { "cell_type": "code", - "execution_count": null, - "id": "dressed-instruction", + "execution_count": 11, + "id": "applied-culture", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "era5_bucket = 'era5-pds'\n", + "\n", + "# AWS access / secret keys required\n", + "s3 = boto3.resource('s3')\n", + "bucket = s3.Bucket(era5_bucket)\n", + "\n", + "# No AWS keys required\n", + "client = boto3.client('s3', config=botocore.client.Config(signature_version=botocore.UNSIGNED))" + ] }, { - "cell_type": "markdown", - "id": "geological-consistency", + "cell_type": "code", + "execution_count": 12, + "id": "dangerous-straight", + "metadata": {}, + "outputs": [], + "source": [ + "year_list = []\n", + "paginator = client.get_paginator('list_objects')\n", + "result = paginator.paginate(Bucket=era5_bucket, Delimiter='/')\n", + "for prefix in result.search('CommonPrefixes'):\n", + " year_list += [prefix.get('Prefix')]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "direct-chess", "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "There are 19 objects available for January, 2019\n", + "--\n", + "2019/01/data/air_pressure_at_mean_sea_level.nc\n", + "2019/01/data/air_temperature_at_2_metres.nc\n", + "2019/01/data/air_temperature_at_2_metres_1hour_Maximum.nc\n", + "2019/01/data/air_temperature_at_2_metres_1hour_Minimum.nc\n", + "2019/01/data/dew_point_temperature_at_2_metres.nc\n", + "2019/01/data/eastward_wind_at_100_metres.nc\n", + "2019/01/data/eastward_wind_at_10_metres.nc\n", + "2019/01/data/integral_wrt_time_of_surface_direct_downwelling_shortwave_flux_in_air_1hour_Accumulation.nc\n", + "2019/01/data/lwe_thickness_of_surface_snow_amount.nc\n", + "2019/01/data/northward_wind_at_100_metres.nc\n", + "2019/01/data/northward_wind_at_10_metres.nc\n", + "2019/01/data/precipitation_amount_1hour_Accumulation.nc\n", + "2019/01/data/sea_surface_temperature.nc\n", + "2019/01/data/sea_surface_wave_from_direction.nc\n", + "2019/01/data/sea_surface_wave_mean_period.nc\n", + "2019/01/data/significant_height_of_wind_and_swell_waves.nc\n", + "2019/01/data/snow_density.nc\n", + "2019/01/data/surface_air_pressure.nc\n", + "2019/01/main.nc\n" + ] + } + ], "source": [ - "### Tabular Data - Pandas" + "keys = []\n", + "date = datetime.date(2019,1,1) # update to desired date\n", + "prefix = date.strftime('%Y/%m/')\n", + "\n", + "response = client.list_objects_v2(Bucket=era5_bucket, Prefix=prefix)\n", + "response_meta = response.get('ResponseMetadata')\n", + "\n", + "if response_meta.get('HTTPStatusCode') == 200:\n", + " contents = response.get('Contents')\n", + " if contents == None:\n", + " print(\"No objects are available for %s\" % date.strftime('%B, %Y'))\n", + " else:\n", + " for obj in contents:\n", + " keys.append(obj.get('Key'))\n", + " print(\"There are %s objects available for %s\\n--\" % (len(keys), date.strftime('%B, %Y')))\n", + " for k in keys:\n", + " print(k)\n", + "else:\n", + " print(\"There was an error with your request.\")" ] }, { "cell_type": "code", - "execution_count": null, - "id": "fifteen-allowance", + "execution_count": 14, + "id": "identical-essay", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "fs1 = s3fs.S3FileSystem()" + ] }, { - "cell_type": "markdown", - "id": "lyric-turner", + "cell_type": "code", + "execution_count": 15, + "id": "dimensional-throat", "metadata": {}, + "outputs": [], "source": [ - "## Gridded data -iris and xarray" + "path1 = f's3://{era5_bucket}/2019/01/data/air_temperature_at_2_metres.nc'" ] }, { "cell_type": "code", - "execution_count": null, - "id": "approximate-interference", + "execution_count": 16, + "id": "buried-classification", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "fileObj1 = fs1.open(path1)" + ] }, { - "cell_type": "markdown", - "id": "packed-heading", + "cell_type": "code", + "execution_count": 17, + "id": "accessory-roller", "metadata": {}, + "outputs": [], "source": [ - "## Sharing data - FAIR principles" + "temp_201901 = xr.open_dataset(fileObj1, engine='h5netcdf')\n" ] }, { "cell_type": "code", - "execution_count": null, - "id": "solved-rental", + "execution_count": 18, + "id": "going-report", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset>\n",
+       "Dimensions:                      (lat: 721, lon: 1440, time0: 744)\n",
+       "Coordinates:\n",
+       "  * lon                          (lon) float32 0.0 0.25 0.5 ... 359.5 359.8\n",
+       "  * lat                          (lat) float32 90.0 89.75 89.5 ... -89.75 -90.0\n",
+       "  * time0                        (time0) datetime64[ns] 2019-01-01 ... 2019-0...\n",
+       "Data variables:\n",
+       "    air_temperature_at_2_metres  (time0, lat, lon) float32 ...\n",
+       "Attributes:\n",
+       "    source:       Reanalysis\n",
+       "    institution:  ECMWF\n",
+       "    title:        ERA5 forecasts
" + ], + "text/plain": [ + "\n", + "Dimensions: (lat: 721, lon: 1440, time0: 744)\n", + "Coordinates:\n", + " * lon (lon) float32 0.0 0.25 0.5 ... 359.5 359.8\n", + " * lat (lat) float32 90.0 89.75 89.5 ... -89.75 -90.0\n", + " * time0 (time0) datetime64[ns] 2019-01-01 ... 2019-0...\n", + "Data variables:\n", + " air_temperature_at_2_metres (time0, lat, lon) float32 ...\n", + "Attributes:\n", + " source: Reanalysis\n", + " institution: ECMWF\n", + " title: ERA5 forecasts" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "temp_201901" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "disturbed-maldives", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "temp_201901_array = temp_201901.air_temperature_at_2_metres" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "opponent-ballot", + "metadata": {}, + "outputs": [], + "source": [ + "europe_temp = temp_201901.loc[{'time0':slice('2019-01-05','2019-01-07'), 'lat':slice(60,40),'lon':slice(0,15)}].air_temperature_at_2_metres" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "black-think", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.DataArray 'air_temperature_at_2_metres' (time0: 72, lat: 81, lon: 61)>\n",
+       "[355752 values with dtype=float32]\n",
+       "Coordinates:\n",
+       "  * lon      (lon) float32 0.0 0.25 0.5 0.75 1.0 ... 14.0 14.25 14.5 14.75 15.0\n",
+       "  * lat      (lat) float32 60.0 59.75 59.5 59.25 59.0 ... 40.75 40.5 40.25 40.0\n",
+       "  * time0    (time0) datetime64[ns] 2019-01-05 ... 2019-01-07T23:00:00\n",
+       "Attributes:\n",
+       "    least_significant_digit:  [1]\n",
+       "    standard_name:            air_temperature\n",
+       "    units:                    K\n",
+       "    long_name:                2 metre temperature\n",
+       "    nameECMWF:                2 metre temperature\n",
+       "    shortNameECMWF:           2t\n",
+       "    nameCDM:                  2_metre_temperature_surface\n",
+       "    product_type:             analysis
" + ], + "text/plain": [ + "\n", + "[355752 values with dtype=float32]\n", + "Coordinates:\n", + " * lon (lon) float32 0.0 0.25 0.5 0.75 1.0 ... 14.0 14.25 14.5 14.75 15.0\n", + " * lat (lat) float32 60.0 59.75 59.5 59.25 59.0 ... 40.75 40.5 40.25 40.0\n", + " * time0 (time0) datetime64[ns] 2019-01-05 ... 2019-01-07T23:00:00\n", + "Attributes:\n", + " least_significant_digit: [1]\n", + " standard_name: air_temperature\n", + " units: K\n", + " long_name: 2 metre temperature\n", + " nameECMWF: 2 metre temperature\n", + " shortNameECMWF: 2t\n", + " nameCDM: 2_metre_temperature_surface\n", + " product_type: analysis" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "europe_temp" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "european-theater", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "
Air Temperature (K)timelatitudelongitude
Shape728161
Dimension coordinates
\ttimex--
\tlatitude-x-
\tlongitude--x
Attributes
\tleast_significant_digit[1]
\tnameCDM2_metre_temperature_surface
\tnameECMWF2 metre temperature
\tproduct_typeanalysis
\tshortNameECMWF2t
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "europe_temp_cube = europe_temp.to_iris()\n", + "europe_temp_cube" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "individual-geneva", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "masked_array(data=[276.5, 276.6875, 276.875, 276.75, 276.6875, 276.6875,\n", + " 276.6875, 276.6875, 276.5625, 276.625, 277.1875, 277.5,\n", + " 277.8125, 277.9375, 278.0, 277.875, 277.25, 276.9375,\n", + " 276.875, 276.875, 277.0, 277.0, 277.0625, 277.3125,\n", + " 277.5, 277.5, 277.5625, 277.625, 277.6875, 278.0,\n", + " 278.3125, 278.1875, 278.3125, 278.3125, 278.8125,\n", + " 279.4375, 280.0625, 280.375, 280.75, 280.8125,\n", + " 280.9375, 280.75, 280.5625, 280.3125, 280.1875, 280.0,\n", + " 281.1875, 281.25, 281.4375, 281.3125, 281.125,\n", + " 280.8125, 280.6875, 280.5, 280.5625, 280.4375,\n", + " 280.4375, 280.6875, 281.1875, 281.75, 282.375,\n", + " 282.5625, 282.5625, 282.625, 282.75, 283.0, 283.0625,\n", + " 282.9375, 282.8125, 282.5625, 282.6875, 282.8125],\n", + " mask=[False, False, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False],\n", + " fill_value=1e+20,\n", + " dtype=float32)" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "europe_temp_cube.interpolate([('latitude', 51.0),('longitude', 1)],iris.analysis.Linear()).data" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "hazardous-cassette", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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J0sp2Zc+it8TYbm38gz53flD5Mx5zPEtqN4x1Vh/voMGO8Bq76rpPhSOZ3t57vM1ur+3i+e96WVceP1lp3+3q7+bJZqH5ZHWCX+abSnZebSbkN9DQ8DH/mQfC+dGCblHblE/0XeCtnA7y6KlFKPHdh3k8eNJrnnxbaxpUBOvlKFsaZN3trEqtJJ2X1tV9/1nPj2p1wspJz8wLYR4ZNI7URRFUZTZo1dKef1EX1yV4KsoiqIoSvmmvJ6voiiKoihDqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi1JgKvoqiKIpSYyr4KoqiKEqNqeCrKIqiKDWmgq+iKIqi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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig1 = matplotlib.pyplot.figure(figsize=(8,16))\n", + "ax1 = fig1.add_subplot(1,1,1,projection=cartopy.crs.PlateCarree())\n", + "iris.quickplot.contourf(europe_temp_cube[0,:,:],axes=ax1)\n", + "ax1.coastlines()" + ] }, { "cell_type": "markdown", - "id": "genuine-sandwich", + "id": "random-deadline", "metadata": {}, "source": [ - "### Data Catalogues" + "### Data Catalogues\n", + "\n", + "We have looked at some datasets which we have accessed primarily as individual files. This is the second level in the levels of data abstraction presented earlier. The user still needs to know a lot about reading files and then joining the data read in from files into a coherent object in memory. We want to move to presenting data not just as a series of dozens or even millions of files that user has to join together. We want to absract away the storage details and present the user with a **dataset**. We would ideally like to group similar datasets together to make them accessible through **data catalogues**. One tolols for doing this is the *Intake catalog* library. \n", + "\n", + "This is a framework for creating catalogues of datasets and accessing them in such a way that user gets back from the catalogue an object in memory that is ready for analysis. This is usually a *lazy object*, where the metadata is loaded so there is sufficient information to schedule computation through somewthing like a dask task grpah, but the actual data wikll be loaded when the computation of the task graph is triggered. At that time the data that is actually needed for the computation will downloaded, which each distributed worker downloading only the data needed for their part in the task graph. Catalogues also support searching and subsetting, so you can find the data in the catalogue easily and then access only the data that you need.\n", + "\n", + "Intake has 2 main parts\n", + "* *Catalog yaml files* - A yaml file describing the data in the catalog.\n", + " * These can be nested, so a catalog can be composed of the contents of several other catalogues.\n", + "* *Driver python modules* - The accessing of data is handled through driver\n", + " * Intake supplies drivers in the standard install for the most common data types e.g. CSV\n", + " * Many different formats of data can be supported through this framework through implementation\n", + " * Driver can include custom functionality needed to support different modes of accessing particular sorts of data.\n", + "\n", + "Catalogs can be installed as one does a normal python package through conda or pip or similar. This will add components to intake\n", + " \n", + "More information:\n", + "* Intake https://intake.readthedocs.io/en/latest/\n", + "* Intake ESM - A package for accessing earth system data\n", + "* Met Office Weather Forecast Model Intake Catalog - https://github.com/informatics-lab/intake_informaticslab" ] }, { "cell_type": "code", - "execution_count": null, - "id": "organized-specific", + "execution_count": 25, + "id": "known-arkansas", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import intake" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "choice-spirituality", + "metadata": {}, + "outputs": [], + "source": [ + "def print_cat_items(cat, indent=0):\n", + " if(isinstance(cat, intake.catalog.Catalog)):\n", + " for cat_item in list(cat):\n", + " print(\" \"*indent + cat_item)\n", + " print_cat_items(cat[cat_item], indent+2)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "pressing-switch", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "met_office\n", + " air_quality\n", + " air_quality_hourly\n", + " air_quality_daily\n", + " weather_forecasts\n", + " mogreps_uk\n", + " single_level\n", + " height_level\n", + " pressure_level\n", + " depth_level\n", + " mogreps_g\n", + " single_level\n", + " height_level\n", + " pressure_level\n", + " depth_level\n", + " weather_continuous_timeseries\n", + " ukv_daily_timeseries\n", + " ukv_hourly_timeseries\n" + ] + } + ], + "source": [ + "print_cat_items(intake.cat)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "excellent-serum", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset>\n",
+       "Dimensions:                                                  (forecast_period: 127, forecast_reference_time: 408, latitude: 960, longitude: 1280, realization: 18)\n",
+       "Coordinates:\n",
+       "  * forecast_period                                          (forecast_period) timedelta64[ns] ...\n",
+       "  * forecast_reference_time                                  (forecast_reference_time) datetime64[ns] ...\n",
+       "  * latitude                                                 (latitude) float64 ...\n",
+       "  * longitude                                                (longitude) float64 ...\n",
+       "  * realization                                              (realization) int64 ...\n",
+       "Data variables: (12/24)\n",
+       "    cloud_amount_of_low_cloud                                (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array<chunksize=(1, 1, 18, 960, 1280), meta=np.ndarray>\n",
+       "    cloud_amount_of_medium_cloud                             (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array<chunksize=(1, 1, 18, 960, 1280), meta=np.ndarray>\n",
+       "    cloud_amount_of_total_cloud                              (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array<chunksize=(1, 1, 18, 960, 1280), meta=np.ndarray>\n",
+       "    fog_fraction_at_screen_level                             (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array<chunksize=(1, 1, 18, 960, 1280), meta=np.ndarray>\n",
+       "    hail_fall_accumulation-PT01H                             (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array<chunksize=(1, 1, 18, 960, 1280), meta=np.ndarray>\n",
+       "    height_ASL_at_freezing_level                             (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array<chunksize=(1, 1, 18, 960, 1280), meta=np.ndarray>\n",
+       "    ...                                                       ...\n",
+       "    temperature_at_screen_level_min-PT01H                    (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array<chunksize=(1, 1, 18, 960, 1280), meta=np.ndarray>\n",
+       "    temperature_at_surface                                   (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array<chunksize=(1, 1, 18, 960, 1280), meta=np.ndarray>\n",
+       "    visibility_at_screen_level                               (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array<chunksize=(1, 1, 18, 960, 1280), meta=np.ndarray>\n",
+       "    wind_direction_at_10m                                    (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array<chunksize=(1, 1, 18, 960, 1280), meta=np.ndarray>\n",
+       "    wind_speed_at_10m                                        (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array<chunksize=(1, 1, 18, 960, 1280), meta=np.ndarray>\n",
+       "    wind_speed_at_10m_max-PT01H                              (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array<chunksize=(1, 1, 18, 960, 1280), meta=np.ndarray>
" + ], + "text/plain": [ + "\n", + "Dimensions: (forecast_period: 127, forecast_reference_time: 408, latitude: 960, longitude: 1280, realization: 18)\n", + "Coordinates:\n", + " * forecast_period (forecast_period) timedelta64[ns] ...\n", + " * forecast_reference_time (forecast_reference_time) datetime64[ns] ...\n", + " * latitude (latitude) float64 ...\n", + " * longitude (longitude) float64 ...\n", + " * realization (realization) int64 ...\n", + "Data variables: (12/24)\n", + " cloud_amount_of_low_cloud (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array\n", + " cloud_amount_of_medium_cloud (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array\n", + " cloud_amount_of_total_cloud (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array\n", + " fog_fraction_at_screen_level (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array\n", + " hail_fall_accumulation-PT01H (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array\n", + " height_ASL_at_freezing_level (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array\n", + " ... ...\n", + " temperature_at_screen_level_min-PT01H (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array\n", + " temperature_at_surface (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array\n", + " visibility_at_screen_level (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array\n", + " wind_direction_at_10m (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array\n", + " wind_speed_at_10m (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array\n", + " wind_speed_at_10m_max-PT01H (forecast_reference_time, forecast_period, realization, latitude, longitude) float32 dask.array" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mogreps_g_ds = intake.cat.met_office.weather_forecasts.mogreps_g.single_level(license_accepted=True).to_dask()\n", + "mogreps_g_ds" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "upper-spine", + "metadata": {}, + "outputs": [], + "source": [ + "subset_uk = mogreps_g_ds.loc[{'forecast_reference_time': '2021-03-01T00:00:00', 'realization': 0, 'latitude': slice(50, 60), 'longitude': slice(-5,5)}]" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "substantial-check", + "metadata": {}, + "outputs": [], + "source": [ + "import iris.quickplot" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "dominican-powell", + "metadata": {}, + "outputs": [], + "source": [ + "time_series_exeter = subset_uk.temperature_at_surface.interp(latitude=51, longitude=-3)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "competent-nature", + "metadata": {}, + "outputs": [], + "source": [ + "time_series_exeter_cube = time_series_exeter.to_iris()" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "empirical-marketplace", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "iris.quickplot.plot(time_series_exeter_cube)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "accredited-electronics", + "metadata": {}, + "outputs": [], + "source": [ + "temp_cube = subset_uk.temperature_at_surface[0,:,:].to_iris()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "aquatic-civilization", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig1 = matplotlib.pyplot.figure(figsize=(8,16))\n", + "ax1 = fig1.add_subplot(1,1,1,projection=cartopy.crs.PlateCarree())\n", + "iris.quickplot.contourf(temp_cube,axes=ax1)\n", + "ax1.coastlines()" + ] + }, + { + "cell_type": "markdown", + "id": "electoral-challenge", + "metadata": {}, + "source": [ + "In this example, we see that there is intuitive access to the dataset as a whole and to the parts of the dataset. We can perform simple operation with minimal code, and interact using physically meaningful value e.g. latitude and longtidue, rather than arbitrary numerical indices. We can see here that a catalogue priovides a more intuitive way for a researcher to access the data without having to understand the technical details of how it is being stored. \n", + "\n", + "Feaures of this catalog include:\n", + "* Quick access to to emtadata to see what is contained\n", + "* Lazy loading so can quickly set up operations.\n", + "* inuittive interface to data through meaningful values e.g. latitude, longitude.\n", + "* task graph created based on lazy data object\n", + "* when computation is triggered it is distributed to workers in a cluster\n", + "* results can be quickly computed and gathered to be interacted with in the notebook." + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "pangeo_lectures", "language": "python", - "name": "python3" + "name": "pangeo_lectures" }, "language_info": { "codemirror_mode": { @@ -177,7 +5968,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.9" + "version": "3.7.10" } }, "nbformat": 4, diff --git a/05_practical_next_steps.ipynb b/05_practical_next_steps.ipynb new file mode 100644 index 0000000..c1a52e0 --- /dev/null +++ b/05_practical_next_steps.ipynb @@ -0,0 +1,106 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "standing-reception", + "metadata": {}, + "source": [ + "# Welcome to the Pangeo Lifestyle! \n", + "\n", + "![Pangeo Logo ](images/pangeo_logo_small.png)\n", + "\n", + "[Pangeo Website](https://pangeo.io/)\n", + "\n", + "Hopefully you have been convinced while making your way through these notebooks of the importancer of scientific compute platform that is fit for purpose, combine a rich, interactive user experience with capapcity to operate at the scales required by the size of the datasets used in today's cutting edge research. The philosophy of how to approach the challenges of big data is as important as the stack of software that forms a particular implementation of the Pangeo model of a computing platform. This is an evolving fields and as tools mature and new technologies become more widely available e.g. FPGA and ASICs in the short-term future, genetic and quantam computing in the long-term, the way that this model is implemented will continue to evolve, but the principles behind wat a good system looks like will remain.\n", + "\n", + "The next step is to try some of this out for yourself, ideally on an actual research problem you are considering, to see how this approach to data and computing can help your research. Below are some links to help you get started with a Pangeo model of computing." + ] + }, + { + "cell_type": "markdown", + "id": "increased-vegetable", + "metadata": {}, + "source": [ + "### Getting Started - A Platform\n", + "\n", + "* Jupyter lab on a local machine or VM - https://jupyter.org/\n", + "* Notebooks on JASMIN - https://help.jasmin.ac.uk/article/4851-jasmin-notebook-service\n", + "* Commerical Cloud\n", + " * Azure ML - https://azure.microsoft.com/en-gb/services/machine-learning/\n", + " * AWS Sagemaker - https://aws.amazon.com/sagemaker/\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "committed-double", + "metadata": {}, + "source": [ + "### Getting Started - Example Notebooks\n", + "\n", + "* Pangeo Gallery - http://gallery.pangeo.io/\n", + "* Iris gallery - https://scitools-iris.readthedocs.io/en/latest/generated/gallery/index.html\n", + "* Kaggle competitions - https://www.kaggle.com/\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "collectible-cancellation", + "metadata": {}, + "source": [ + "### Getting Started - Example Data\n", + "\n", + "* STAC - https://stacspec.org/\n", + "* Pangeo Data - https://mldata.pangeo.io/\n", + "* AWS Earth - https://aws.amazon.com/earth/\n", + "* AI for Earth - https://www.microsoft.com/en-us/ai/ai-for-earth-tech-resources\n" + ] + }, + { + "cell_type": "markdown", + "id": "express-spoke", + "metadata": {}, + "source": [ + "### More Talks\n", + "\n", + "* Pangeo on Youtube - https://www.youtube.com/playlist?list=PLuQQBBQFfpgpF3eGnlgXNqWmXhND3Vzg_\n" + ] + }, + { + "cell_type": "markdown", + "id": "unique-facing", + "metadata": {}, + "source": [ + "### Get Involved - How to contribute\n", + "\n", + "Pangeo is primarily a community of people trying to solve common problems around scientific computing and big data. A good way to learn is to get involved in community efforts.\n", + "\n", + "* Community Homepage - https://pangeo.io/\n", + "* Discourse for Discussion - https://discourse.pangeo.io/\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "conda_amazonei_mxnet_p27", + "language": "python", + "name": "conda_amazonei_mxnet_p27" + }, + "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.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/images/dask_taskGraph.png b/images/dask_taskGraph.png new file mode 100644 index 0000000..1f6b33d Binary files /dev/null and b/images/dask_taskGraph.png differ diff --git a/images/data_description_levels.png b/images/data_description_levels.png new file mode 100644 index 0000000..4a7e524 Binary files /dev/null and b/images/data_description_levels.png differ diff --git a/images/pangeoStackElements_buildYourOwn.png b/images/pangeoStackElements_buildYourOwn.png new file mode 100644 index 0000000..e791c23 Binary files /dev/null and b/images/pangeoStackElements_buildYourOwn.png differ diff --git a/requirements.yml b/requirements.yml index f6ddfa0..e26aa1f 100644 --- a/requirements.yml +++ b/requirements.yml @@ -2,6 +2,7 @@ name: pangeo-lectures-env channels: - defaults - conda-forge + - informaticslab dependencies: - python=3.7 - jupyter @@ -13,4 +14,11 @@ dependencies: - cartopy - bokeh - scikit-learn - - jupyterlab \ No newline at end of file + - jupyterlab + - intake + - intake-esm + - s3fs + - adlfs + - gcsfs + - boto3 + - intake_informaticslab diff --git a/sagemaker_setup.sh b/sagemaker_setup.sh new file mode 100644 index 0000000..d38b65c --- /dev/null +++ b/sagemaker_setup.sh @@ -0,0 +1,7 @@ +conda env create --file SageMaker/PangeoLectures/requirements.yml + +conda activate pangeo-lecture-env + +python -m ipykernel install --user --name pangeo-lectures + +conda deactivate \ No newline at end of file