├── .gitignore ├── Makefile ├── README.md ├── cookbook ├── Degrees of Change Maps.ipynb ├── annual_averages_basic_plots.ipynb ├── annual_averages_heatmap.ipynb ├── annual_averages_maps_degrees_of_change.ipynb ├── annual_averages_summary_stats.ipynb ├── annual_averages_temperature_and_precipitation.ipynb ├── daily_data_degree_days.ipynb ├── daily_data_extreme_heat.ipynb ├── daily_data_summaries.ipynb ├── data │ ├── cb_2016_us_county_500k.dbf │ ├── cb_2016_us_county_500k.prj │ ├── cb_2016_us_county_500k.shp │ └── cb_2016_us_county_500k.shx ├── exploring_long_drought_scenarios.ipynb ├── get_data_for_location.ipynb ├── get_polygon_geometry_from_api.ipynb ├── image │ └── border.png ├── pandas_overview.ipynb ├── precip_extreme_value_analysis-POT.ipynb ├── precip_extreme_value_analysis.ipynb ├── sea_level_rise.ipynb ├── searching_for_resources.ipynb └── wildfire_experimental_charts.ipynb ├── docs ├── build │ ├── .nojekyll │ └── html │ │ ├── .buildinfo │ │ ├── .nojekyll │ │ ├── _images │ │ └── restapi_model.png │ │ ├── _sources │ │ ├── cookbook.rst.txt │ │ ├── data-catalog.rst.txt │ │ ├── getting-started.rst.txt │ │ ├── index.rst.txt │ │ ├── indicator.rst.txt │ │ ├── raster-store.rst.txt │ │ └── series.rst.txt │ │ ├── _static │ │ ├── ajax-loader.gif │ │ ├── basic.css │ │ ├── comment-bright.png │ │ ├── comment-close.png │ │ ├── comment.png │ │ ├── css │ │ │ ├── badge_only.css │ │ │ └── theme.css │ │ ├── doctools.js │ │ ├── documentation_options.js │ │ ├── down-pressed.png │ │ ├── down.png │ │ ├── file.png │ │ ├── fonts │ │ │ ├── Inconsolata-Bold.ttf │ │ │ ├── Inconsolata-Regular.ttf │ │ │ ├── Inconsolata.ttf │ │ │ ├── Lato-Bold.ttf │ │ │ ├── Lato-Regular.ttf │ │ │ ├── Lato │ │ │ │ ├── lato-bold.eot │ │ │ │ ├── lato-bold.ttf │ │ │ │ ├── lato-bold.woff │ │ │ │ ├── lato-bold.woff2 │ │ │ │ ├── lato-bolditalic.eot │ │ │ │ ├── lato-bolditalic.ttf │ │ │ │ ├── lato-bolditalic.woff │ │ │ │ ├── lato-bolditalic.woff2 │ │ │ │ ├── lato-italic.eot │ │ │ │ ├── lato-italic.ttf │ │ │ │ ├── lato-italic.woff │ │ │ │ ├── lato-italic.woff2 │ │ │ │ ├── lato-regular.eot │ │ │ │ ├── lato-regular.ttf │ │ │ │ ├── lato-regular.woff │ │ │ │ └── lato-regular.woff2 │ │ │ ├── RobotoSlab-Bold.ttf │ │ │ ├── RobotoSlab-Regular.ttf │ │ │ ├── RobotoSlab │ │ │ │ ├── roboto-slab-v7-bold.eot │ │ │ │ ├── roboto-slab-v7-bold.ttf │ │ │ │ ├── roboto-slab-v7-bold.woff │ │ │ │ ├── roboto-slab-v7-bold.woff2 │ │ │ │ ├── roboto-slab-v7-regular.eot │ │ │ │ ├── roboto-slab-v7-regular.ttf │ │ │ │ ├── roboto-slab-v7-regular.woff │ │ │ │ └── roboto-slab-v7-regular.woff2 │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ ├── jquery-3.1.0.js │ │ ├── jquery-3.2.1.js │ │ ├── jquery.js │ │ ├── js │ │ │ ├── modernizr.min.js │ │ │ └── theme.js │ │ ├── language_data.js │ │ ├── minus.png │ │ ├── plus.png │ │ ├── pygments.css │ │ ├── searchtools.js │ │ ├── underscore-1.3.1.js │ │ ├── underscore.js │ │ ├── up-pressed.png │ │ ├── up.png │ │ └── websupport.js │ │ ├── cookbook.html │ │ ├── data-catalog.html │ │ ├── genindex.html │ │ ├── getting-started.html │ │ ├── http-routingtable.html │ │ ├── index.html │ │ ├── indicator.html │ │ ├── objects.inv │ │ ├── raster-store.html │ │ ├── search.html │ │ ├── searchindex.js │ │ ├── series.html │ │ └── vector-data.html └── source │ ├── conf.py │ ├── cookbook.rst │ ├── data-catalog.rst │ ├── getting-started.rst │ ├── index.rst │ ├── indicator.rst │ ├── raster-store.rst │ ├── restapi_model.png │ └── series.rst └── requirements.txt /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.swp 3 | *.bak 4 | *~ 5 | env 6 | docs/build/.doctrees 7 | docs/build/doctrees 8 | 9 | # iPython checkpoints # 10 | .ipynb_checkpoints 11 | __pycache__ 12 | 13 | # OS generated files # 14 | .DS_Store 15 | .DS_Store? 16 | ._* 17 | .Spotlight-V100 18 | .Trashes 19 | ehthumbs.db 20 | Thumbs.db 21 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SPHINXPROJ = caladaptdocsi 8 | SOURCEDIR = docs/source 9 | BUILDDIR = docs/build 10 | 11 | .PHONY: help Makefile 12 | 13 | # Put it first so that "make" without argument is like "make help". 14 | help: 15 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 16 | 17 | clean: 18 | -rm -rf $(BUILDDIR)/* 19 | 20 | gh-pages: 21 | git subtree push --prefix $(BUILDDIR)/html/ origin gh-pages 22 | 23 | 24 | # Catch-all target: route all unknown targets to Sphinx using the new 25 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 26 | %: Makefile 27 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Cal-Adapt API Documentation and Cookbook 2 | ======================================== 3 | This repository contains documentation, tutorials and code samples for working with the Cal-Adapt API. Documentation created by Sphinx. 4 | 5 | 6 | Links 7 | ----- 8 | - [Cal-Adapt API Documentation and Tutorials](https://berkeley-gif.github.io/caladapt-docs/) 9 | http://api.cal-adapt.org/docs/ 10 | - [Cal-Adapt website](https://cal-adapt.org/) 11 | 12 | 13 | Setup 14 | ----- 15 | - Clone the repo 16 | 17 | git clone https://github.com/berkeley-gif/caladapt-docs.git 18 | 19 | - Change directory 20 | 21 | cd caladapt-docs 22 | 23 | - Create a python3 virtualenv 24 | 25 | python3 -m venv env 26 | 27 | - Install libraries 28 | 29 | pip install -r requirements.txt 30 | 31 | 32 | Editing 33 | ------- 34 | - Make your edits in `docs/source` 35 | - To rebuild the docs, run the following in `caladapt-docs` directory 36 | 37 | make html 38 | 39 | - Commit all changes and push to master. The `docs/build/html/` is also checked into the master branch. 40 | - Update website by deploying `docs/build/html/` to Github Pages branch. 41 | 42 | make gh-pages 43 | -------------------------------------------------------------------------------- /cookbook/data/cb_2016_us_county_500k.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/cookbook/data/cb_2016_us_county_500k.dbf -------------------------------------------------------------------------------- /cookbook/data/cb_2016_us_county_500k.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /cookbook/data/cb_2016_us_county_500k.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/cookbook/data/cb_2016_us_county_500k.shp -------------------------------------------------------------------------------- /cookbook/data/cb_2016_us_county_500k.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/cookbook/data/cb_2016_us_county_500k.shx -------------------------------------------------------------------------------- /cookbook/image/border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/cookbook/image/border.png -------------------------------------------------------------------------------- /cookbook/sea_level_rise.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Working with Sea Level Rise data in Cal-Adapt API" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 1, 13 | "metadata": { 14 | "collapsed": false 15 | }, 16 | "outputs": [], 17 | "source": [ 18 | "import requests \n", 19 | "import json\n", 20 | "headers = {'ContentType': 'json'}\n", 21 | "\n", 22 | "api = 'http://api.cal-adapt.org/api'\n", 23 | "resource = 'rstores'" 24 | ] 25 | }, 26 | { 27 | "cell_type": "markdown", 28 | "metadata": {}, 29 | "source": [ 30 | "### Get a list of sea level rise datasets from Cal-Adapt API" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": 2, 36 | "metadata": { 37 | "collapsed": false 38 | }, 39 | "outputs": [ 40 | { 41 | "data": { 42 | "text/plain": [ 43 | "'http://api.cal-adapt.org/api/rstores/?name=Sea+Level+Rise&pagesize=20'" 44 | ] 45 | }, 46 | "execution_count": 2, 47 | "metadata": {}, 48 | "output_type": "execute_result" 49 | } 50 | ], 51 | "source": [ 52 | "search_str = 'Sea+Level+Rise'\n", 53 | "params = {'name': search_str, 'pagesize': 20}\n", 54 | "url = '%s/%s/' % (api, resource)" 55 | ] 56 | }, 57 | { 58 | "cell_type": "code", 59 | "execution_count": 3, 60 | "metadata": { 61 | "collapsed": false 62 | }, 63 | "outputs": [ 64 | { 65 | "name": "stdout", 66 | "output_type": "stream", 67 | "text": [ 68 | "http://api.cal-adapt.org/api/rstores/slr_coast_0_0m_jdr/ Coast Mosaic Sea Level Rise 0.0m\n", 69 | "http://api.cal-adapt.org/api/rstores/slr_coast_0_5m_jdr/ Coast Mosaic Sea Level Rise 0.5m\n", 70 | "http://api.cal-adapt.org/api/rstores/slr_coast_1_0m_jdr/ Coast Mosaic Sea Level Rise 1.0m\n", 71 | "http://api.cal-adapt.org/api/rstores/slr_coast_1_41m_jdr/ Coast Mosaic Sea Level Rise 1.41m\n", 72 | "http://api.cal-adapt.org/api/rstores/slr_delta_0_0m_jdr/ Delta Sea Level Rise 0.0m\n", 73 | "http://api.cal-adapt.org/api/rstores/slr_delta_0_5m_jdr/ Delta Sea Level Rise 0.5m\n", 74 | "http://api.cal-adapt.org/api/rstores/slr_delta_1_0m_jdr/ Delta Sea Level Rise 1.0m\n", 75 | "http://api.cal-adapt.org/api/rstores/slr_delta_1_41m_jdr/ Delta Sea Level Rise 1.41m\n", 76 | "http://api.cal-adapt.org/api/rstores/slr_sfbay_0_0m_jdr/ San Francisco Bay Sea Level Rise 0.0m\n", 77 | "http://api.cal-adapt.org/api/rstores/slr_sfbay_0_5m_jdr/ San Francisco Bay Sea Level Rise 0.5m\n", 78 | "http://api.cal-adapt.org/api/rstores/slr_sfbay_1_0m_jdr/ San Francisco Bay Sea Level Rise 1.0m\n", 79 | "http://api.cal-adapt.org/api/rstores/slr_sfbay_1_41m_jdr/ San Francisco Bay Sea Level Rise 1.41m\n" 80 | ] 81 | } 82 | ], 83 | "source": [ 84 | "response = requests.get(url, params, headers=headers)\n", 85 | "data = response.json()\n", 86 | "results = data['results']\n", 87 | "for item in results:\n", 88 | " print(item['url'], item['name'])" 89 | ] 90 | }, 91 | { 92 | "cell_type": "markdown", 93 | "metadata": {}, 94 | "source": [ 95 | "### Generate parameter for your location" 96 | ] 97 | }, 98 | { 99 | "cell_type": "code", 100 | "execution_count": 4, 101 | "metadata": { 102 | "collapsed": false 103 | }, 104 | "outputs": [], 105 | "source": [ 106 | "coord = (-121.4687, 38.5938)\n", 107 | "point = '{\"type\":\"Point\",\"coordinates\":[%s,%s]}' % coord #geojson format\n", 108 | "point = 'POINT(%s %s)' % coord #WKT format" 109 | ] 110 | }, 111 | { 112 | "cell_type": "markdown", 113 | "metadata": {}, 114 | "source": [ 115 | "### Query SLR datasets for your location" 116 | ] 117 | }, 118 | { 119 | "cell_type": "code", 120 | "execution_count": 5, 121 | "metadata": { 122 | "collapsed": false 123 | }, 124 | "outputs": [ 125 | { 126 | "name": "stdout", 127 | "output_type": "stream", 128 | "text": [ 129 | "Depth of flooding depth (meters) for point location: 38.106914 -121.456679\n", 130 | "\n", 131 | "Coast Mosaic Sea Level Rise 0.0m - No Data\n", 132 | "Coast Mosaic Sea Level Rise 0.5m - No Data\n", 133 | "Coast Mosaic Sea Level Rise 1.0m - No Data\n", 134 | "Coast Mosaic Sea Level Rise 1.41m - No Data\n", 135 | "Delta Sea Level Rise 0.0m - 0.8650000095367432\n", 136 | "Delta Sea Level Rise 0.5m - 0.949999988079071\n", 137 | "Delta Sea Level Rise 1.0m - 6.008999824523926\n", 138 | "Delta Sea Level Rise 1.41m - 7.077000141143799\n", 139 | "San Francisco Bay Sea Level Rise 0.0m - Outside extent\n", 140 | "San Francisco Bay Sea Level Rise 0.5m - Outside extent\n", 141 | "San Francisco Bay Sea Level Rise 1.0m - Outside extent\n", 142 | "San Francisco Bay Sea Level Rise 1.41m - Outside extent\n" 143 | ] 144 | } 145 | ], 146 | "source": [ 147 | "params = {'g': point}\n", 148 | "print('Depth of flooding depth (meters) for point location:', coord)\n", 149 | "print()\n", 150 | "for item in results:\n", 151 | " response = requests.get(url, params, headers=headers)\n", 152 | " # Request will return a server error if point is outside spatial extent of SLR dataset\n", 153 | " if response.ok:\n", 154 | " data = response.json()\n", 155 | " if float(data['image']) == float(data['nodata']):\n", 156 | " print(item['name'], 'No Data', sep=' - ')\n", 157 | " else:\n", 158 | " print(item['name'], data['image'], sep=' - ')\n", 159 | " else:\n", 160 | " print(item['name'], 'Outside extent', sep=' - ')" 161 | ] 162 | }, 163 | { 164 | "cell_type": "markdown", 165 | "metadata": {}, 166 | "source": [ 167 | "### Notes:\n", 168 | "* The `image` field contains the value for Sea Level Rise. If the location does not have any Sea Level Rise, the `image` field will have the same value as the `nodata` field\n", 169 | "* Cal-Adapt provides inundation depth mosaics derived from the original source layers for 3 areas:\n", 170 | " * San Francisco Bay Area (3 meter resolution)\n", 171 | " * Sacramento-SanJoaquin Delta (3 meter resolution)\n", 172 | " * California coast (50 meter resolution)\n", 173 | "* For 4 different SLR scenarios\n", 174 | " * 0 meters\n", 175 | " * 0.5 meters\n", 176 | " * 1 meter\n", 177 | " * 1.41 meters\n", 178 | "* There are overlaps between spatial extents of the 3 areas. So querying all the SLR datasets for a point location may return results for multiple areas. If a point is not contained within spatial extent of a SLR dataset, you will get a server (500) error." 179 | ] 180 | }, 181 | { 182 | "cell_type": "code", 183 | "execution_count": null, 184 | "metadata": { 185 | "collapsed": true 186 | }, 187 | "outputs": [], 188 | "source": [] 189 | } 190 | ], 191 | "metadata": { 192 | "kernelspec": { 193 | "display_name": "Python 2", 194 | "language": "python", 195 | "name": "python2" 196 | }, 197 | "language_info": { 198 | "codemirror_mode": { 199 | "name": "ipython", 200 | "version": 2 201 | }, 202 | "file_extension": ".py", 203 | "mimetype": "text/x-python", 204 | "name": "python", 205 | "nbconvert_exporter": "python", 206 | "pygments_lexer": "ipython2", 207 | "version": "2.7.15rc1" 208 | } 209 | }, 210 | "nbformat": 4, 211 | "nbformat_minor": 2 212 | } 213 | -------------------------------------------------------------------------------- /docs/build/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/.nojekyll -------------------------------------------------------------------------------- /docs/build/html/.buildinfo: -------------------------------------------------------------------------------- 1 | # Sphinx build info version 1 2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. 3 | config: 871767c6cfe0b5450be19b53215d4143 4 | tags: 645f666f9bcd5a90fca523b33c5a78b7 5 | -------------------------------------------------------------------------------- /docs/build/html/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/.nojekyll -------------------------------------------------------------------------------- /docs/build/html/_images/restapi_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_images/restapi_model.png -------------------------------------------------------------------------------- /docs/build/html/_sources/cookbook.rst.txt: -------------------------------------------------------------------------------- 1 | .. _cookbook: 2 | 3 | 4 | *************** 5 | Cookbook 6 | *************** 7 | 8 | This is a list of tutorials and code samples we have developed for working with the Cal-Adapt API. If you would like to contribute to this list or see some other examples contact us at `support@cal-adapt.org `_. 9 | 10 | 11 | .. _jupyter-notebooks: 12 | 13 | Jupyter Notebooks 14 | ================== 15 | 16 | * General 17 | 18 | * `Searching for resources `_ 19 | * `Get data for a Location `_ 20 | * `Get polygon geometry from boundaries `_ 21 | * `A quick overview of working with Pandas `_ 22 | 23 | * Working with Annual Averages 24 | 25 | * `Some basic plots with MatplotLib `_ 26 | * `Making an animated heatmap `_ 27 | * `Calculate summary stats for Sacramento County `_ 28 | * `Retrieve data for temperature and precipitation `_ 29 | 30 | * Working with Daily Data 31 | 32 | * `Calculate Extreme Heat Days `_ 33 | * `Calculating monthly and annual averages from daily data `_ 34 | * `Calculating Cooling & Heating Degree Days from daily maximum and minmum temperatures `_ 35 | 36 | 37 | * Working with other climate variables 38 | 39 | * `Sea Level Rise `_ 40 | * `Experimental charts using wildfire data `_ 41 | * `Working with Long Drought Scenarios `_ 42 | -------------------------------------------------------------------------------- /docs/build/html/_sources/data-catalog.rst.txt: -------------------------------------------------------------------------------- 1 | Data Catalog 2 | ============ 3 | We refer to the datasets in the Cal-Adapt API as resources. Each resource is represented by a unique endpoint (URL). The following is a list of climate datasets in the Cal-Adapt API. We are actively adding new resources to the API so this list may not reflect the most up to date information. 4 | 5 | 6 | Climate Variables 7 | ----------------- 8 | * LOCA downscaled climate projections from Scripps Institution of Oceanography, UC San Diego (`Pierce et al, 2014 `_). 9 | 10 | * Maximum Temperature ``tasmax``, Minimum Temperature ``tasmin``, Precipitation ``precip`` 11 | * Daily and annual averages 12 | * 10 GCMs, 3 scenarios, Envelope 13 | 14 | * Climate variables produced by the Variable Infiltration Capacity (VIC) model using downscaled LOCA data. 15 | 16 | * Snow Water Equivalence ``swe`` 17 | * Monthly averages 18 | * 10 GCMs, 3 scenarios 19 | 20 | * Gridded historical observed climate data from UW Hydro | Computational Hydrology (`Livneh et al, 2015 `_) 21 | 22 | * Maximum Temperature ``tasmax``, Minimum Temperature ``tasmin``, Precipitation ``precip`` 23 | * Daily and annual averages 24 | 25 | * Climate variables produced by the Variable Infiltration Capacity (VIC) model using gridded historical observed Livneh data. 26 | 27 | * Snow Water Equivalence ``swe`` 28 | * Monthly averages 29 | 30 | * Sea Level Rise (CalFloD-3D) for San Francisco Bay, Sacramento-San Joaquin Delta and California Coast from UC Berkeley (`Radke et al, 2016 `_). 31 | 32 | * ``slr_sfbay`` ``slr_delta`` ``slr_coast`` 33 | * SLR scenarios 34 | 35 | * Wildfire from UC Merced (LeRoy Westerling) 36 | 37 | * ``fire`` 38 | * Annual averages 39 | 40 | * Bias-corrected Streamflows for 11 locations (Scripps Institution of Oceanography) 41 | 42 | * ``streamflow`` 43 | * Monthly averages 44 | 45 | * Extended drought (Scripps Institution of Oceanography) 46 | 47 | * ``drought`` 48 | * Daily data for two scenarios that portray 20 year drought conditions. 49 | 50 | 51 | .. _gcm: 52 | 53 | Global Climate Models (GCM) 54 | --------------------------- 55 | The following GCMs have been selected by California state agencies as priority models for Fourth Assessment Research. Data for these models is available through the cal-Adapt API. Downscaled data for 22 other GCMs is available as NetCDF files from the `Cal-Adapt Data Server `_. 56 | 57 | * ``ACCESS1-0`` - Commonwealth Scientific and Industrial Research Organization (CSIRO) and Bureau of Meteorology (BOM) Australia 58 | * ``CanESM2`` - Canadian Centre for Climate Modelling and Analysis 59 | * ``CCSM4`` - University of Miami - RSMAS 60 | * ``CESM1-BGC`` - Community Earth System Model Contributors 61 | * ``CMCC-CMS`` - Centro Euro-Mediterraneo per I Cambiamenti Climatici 62 | * ``CNRM-CM5`` - Centre National de Recherches Météorologiques/ Centre Européen de Recherche et Formation Avancée en Calcul Scientifique 63 | * ``GFDL-CM3`` - NOAA Geophysical Fluid Dynamics Laboratory 64 | * ``HadGEM2-CC`` - Met Office Hadley Centre 65 | * ``HadGEM2-ES`` - Met Office Hadley Centre and Instituto Nacional de Pesquisas Espaciais 66 | * ``MIROC5`` - Atmosphere and Ocean Research Institute (The University of Tokyo), National Institute for Environmental Studies, and Japan Agency for Marine-Earth Science and Technology 67 | 68 | 69 | Scenarios 70 | --------- 71 | Representative Concentration Pathways (RCP). RCP references - `The Beginner's Guide to Representative Concentration Pathways `_ , `IPCC `_ 72 | 73 | * ``rcp45`` - RCP 4.5 (Emissions peak around 2040, then decline) 74 | * ``rcp85`` - RCP 8.5 (Emissions continue to rise strongly through 2050 and plateau) 75 | * ``historical`` - Historical 76 | 77 | 78 | Period 79 | ------ 80 | Different temporal aggregations are available for climate variables through the API. See :ref:`raster-series` to find out what's available in the API. 81 | 82 | * ``year`` - Annual averages 83 | * ``month`` - Monthly averages 84 | * ``day`` - Daily values 85 | 86 | 87 | Vector Data 88 | ----------- 89 | In addition to climate data, the Cal-Adapt API also has endpoints for vector datasets representing administrative boundaries, hydrological boundaries and the LOCA model grid. 90 | 91 | * ``locagrid`` - Model Grid (1/16° - Approximately 6 km) 92 | * ``counties`` - California counties 93 | * ``hydrounits`` - Watersheds (HUC10) 94 | * ``censustracts`` - Census Tracts with CalEnviroScreen 2.0 scores 95 | * ``cdistricts`` - 114th congressional districts 96 | * ``place`` - Incorporated & census designated places, 2015 97 | * ``irwm`` - Integrated Regional Water Management (IRWM) Regions 98 | * ``wecc-load-area`` - SWITCH Load Zones 99 | * ``climregions`` - Climate Zones 100 | * ``electricutilities`` - Investor and public owned electrical utilities 101 | -------------------------------------------------------------------------------- /docs/build/html/_sources/getting-started.rst.txt: -------------------------------------------------------------------------------- 1 | Getting Started 2 | =============== 3 | 4 | 5 | Authentication 6 | -------------- 7 | Currently the Cal-Adapt API does not require authentication. You do not need to sign up for a key to start working with the API. We plan to maintain the current level of open access to support a wide range of users. However, authentication may be implemented in the future to support throttled access for selected applications. 8 | 9 | 10 | Entry Point 11 | ----------- 12 | The entry point or API root is a starting point that provides an overview of all available data in the API. The entry point for the Cal-Adapt API is at https://api.cal-adapt.org/api/. :: 13 | 14 | curl https://api.cal-adapt.org/api/ 15 | 16 | 17 | Browsable API View 18 | ------------------ 19 | When you visit the above entry point in a browser, you will see an easy to read, browsable view of the Cal-Adapt API. The browsable API view provides a quick overview of available data resources in the API and the URLs to access these data resources. This makes it easier and convenient to test requests and their returns in a web browser. 20 | 21 | 22 | Representations 23 | --------------- 24 | The Cal-Adapt API supports the following representations or data formats listed 25 | with their content type followed by format identifier: 26 | 27 | * Raster and vector data 28 | 29 | * Browsable API view ``text/html`` ``api`` 30 | * JavaScript Object Notation ``application/json`` ``json`` 31 | 32 | * Raster data only 33 | 34 | * Comma Separated Values ``text/csv`` ``csv`` 35 | * Zipped GeoTIFF ``application/zip`` ``tif.zip`` 36 | 37 | * Vector data only 38 | 39 | * GeoJSON ``application/vnd.geo+json`` ``geojson`` 40 | * Keyhole Markup Language ``application/vnd.google-earth.kml+xml`` ``kml`` 41 | * Zipped KML files ``application/vnd.google-earth.kmz`` ``kmz`` 42 | 43 | The HTTP Accept header is used in performing content negotiation. The server 44 | will return JSON when a client does not specify. The following command confirms 45 | the `Contenty-Type: application/json` header in the response. :: 46 | 47 | curl -IH 'Accept: application/json' https://api.cal-adapt.org/api/ 48 | 49 | .. code-block:: http 50 | 51 | HTTP/1.1 200 OK 52 | Vary: Accept 53 | Content-Type: application/json 54 | 55 | Or, HTML which returns the browsable API page. :: 56 | 57 | curl -IH 'Accept: text/html' https://api.cal-adapt.org/api/ 58 | 59 | .. code-block:: http 60 | 61 | HTTP/1.1 200 OK 62 | Vary: Accept 63 | Content-Type: text/html; charset=utf-8 64 | 65 | If necessary, content negotiation can be overridden by adding the ``format`` 66 | query parameter to the URL like https://api.cal-adapt.org/api/?format=json. 67 | 68 | 69 | Pagination 70 | ---------- 71 | The API returns a paginated response for large datasets. Pagination links are provided as part of the content of the response so consumers can fetch additional pages as needed with the `next` property which links to https://api.cal-adapt.org/api/series/?page=2. The default number of records returned per page is 10. The number of records returned in each page can be controlled by using ``pagesize`` query parameter. 72 | 73 | **Example Request** 74 | 75 | .. code-block:: http 76 | 77 | GET /api/series/ HTTP/1.1 78 | Host: api.cal-adapt.org 79 | Accept: application/json 80 | 81 | **Response** 82 | 83 | .. code-block:: json 84 | 85 | { 86 | "count": 259, 87 | "next": "https://api.cal-adapt.org/api/series/?page=2", 88 | "previous": null, 89 | "results": [ 90 | { 91 | "name": "U.C. Merced Wildfire high population scenario CNRM-CM5 rcp45", 92 | "slug": "fire_CNRM-CM5_rcp45_H_mu", 93 | "url": "https://api.cal-adapt.org/api/series/fire_CNRM-CM5_rcp45_H_mu/", 94 | "begin": "1954-01-01T00:00:00Z", 95 | "end": "2100-12-31T00:00:00Z", 96 | "rasters": [ 97 | "https://api.cal-adapt.org/api/rstores/fire_CNRM-CM5_rcp45_H_mu_1954/", 98 | "https://api.cal-adapt.org/api/rstores/fire_CNRM-CM5_rcp45_H_mu_1955/", 99 | "https://api.cal-adapt.org/api/rstores/fire_CNRM-CM5_rcp45_H_mu_1956/" 100 | , 101 | ], 102 | "tags": [ 103 | "fire" 104 | ] 105 | }, 106 | { 107 | "name": "U.C. Merced Wildfire low population scenario CNRM-CM5 rcp45", 108 | "slug": "fire_CNRM-CM5_rcp45_L_mu", 109 | "url": "https://api.cal-adapt.org/api/series/fire_CNRM-CM5_rcp45_L_mu/", 110 | "begin": "1954-01-01T00:00:00Z", 111 | "end": "2100-12-31T00:00:00Z", 112 | "rasters": [ 113 | "https://api.cal-adapt.org/api/rstores/fire_CNRM-CM5_rcp45_L_mu_1954/", 114 | "https://api.cal-adapt.org/api/rstores/fire_CNRM-CM5_rcp45_L_mu_1955/", 115 | "https://api.cal-adapt.org/api/rstores/fire_CNRM-CM5_rcp45_L_mu_1956/" 116 | , 117 | ], 118 | "tags": [ 119 | "fire" 120 | ] 121 | } 122 | , 123 | ] 124 | } 125 | -------------------------------------------------------------------------------- /docs/build/html/_sources/index.rst.txt: -------------------------------------------------------------------------------- 1 | .. _index: 2 | 3 | About Cal-Adapt 4 | =============== 5 | Cal-Adapt has been designed to provide access to the wealth of data and information that has been, and continues to be, produced by State of California's scientific and research community. The data available on this site offer 6 | a view of how climate change might affect California at the local level. Here you can work with visualization tools, access data, and participate in community sharing to contribute your own knowledge. Cal-Adapt's development was a key recommendation of the 2009 California Climate Adaptation Strategy. 7 | 8 | Cal-Adapt is developed by the `Geospatial Innovation Facility (GIF), UC Berkeley `_ with funding and advisory oversight by the `California Energy Commission `_. 9 | 10 | We are working on a new generation of climate tools for California using the Cal-Adapt API. You can preview these on our `beta site `_. 11 | 12 | .. note:: We are working on documenting the Cal-Adapt API and adding more examples and tutorials. Check back for updates. 13 | 14 | 15 | Cal-Adapt API 16 | ------------- 17 | Cal-Adapt API (Application Programming Interface) provides programmatic access to climate data hosted on Cal-Adapt. In general, an API is like a cog that allows two systems to interact with each other, e.g. a web browser on your computer and the Cal-Adapt server. 18 | 19 | The Cal-Adapt API is built using `Django `_, `Django REST framework `_, and `Django-Spillway `_, an open source library developed at the GIF. The API follows an architectural style called REST (REpresentational State Transfer) which uses uses HTTP as the transport protocol for the message requests and responses. 20 | 21 | 22 | What is a REST API? 23 | ------------------- 24 | .. figure:: restapi_model.png 25 | :width: 500px 26 | :align: center 27 | :alt: model of a REST API 28 | 29 | A general model of a REST API (`source `_) 30 | 31 | The client (web browser, desktop GIS software, Python script, etc.) sends a request to the API server for data and the server sends a response back. The client and server can be based in any language, but HTTP is the protocol used to transport the message. This request-and-response pattern is fundamentally how REST APIs work. So, when you open a browser and type a website URL (such as https://twitter.com/Cal_Adapt/status/849368048062664704), you’re actually making a GET request for a resource on Twitter's server. The server responds with the content and the browser makes the content visible. 32 | 33 | 34 | Why did we build a public API for Cal-Adapt? 35 | -------------------------------------------- 36 | The Cal-Adapt API provides developers, researchers, and climate specialists with a new tool for working with the wealth of data and information that has been, and continues to be, produced by State of California's scientific and research community. The API allows users to access only the data they actually need, without having to download the entire dataset. 37 | 38 | It is impossible for a single organization to build tools that might satisfy every potential use of the information. With an API, other organizations will be able to easily access the data and build domain specific visualization and planning tools on top of it. 39 | 40 | 41 | Get in Touch 42 | ------------ 43 | Let us know how you are using the API, we would love to feature your work on our blog. If you have questions or if you would like to provide feedback please contact us at `support@cal-adapt.org `_. Thank you! 44 | 45 | 46 | Table of Contents 47 | ----------------- 48 | .. toctree:: 49 | :maxdepth: 2 50 | 51 | getting-started.rst 52 | data-catalog.rst 53 | series.rst 54 | raster-store.rst 55 | indicator.rst 56 | cookbook.rst 57 | -------------------------------------------------------------------------------- /docs/build/html/_sources/indicator.rst.txt: -------------------------------------------------------------------------------- 1 | Climate Indicators 2 | ================== 3 | 4 | 5 | Cooling Degree Days and Heating Degree Days 6 | ------------------------------------------- 7 | Cooling Degree Days (CDD) and Heating Degree Days (HDD) are a measure of energy demand for cooling and heating of buildings. They are defined as the number of degrees above or below a reference temperature. See the `degree days tool `_ for more information and charting of the available data. 8 | 9 | .. http:get:: /api/series/{slug}/hdd/ 10 | 11 | Return heating degree days for any location. 12 | 13 | .. http:get:: /api/series/{slug}/cdd/ 14 | 15 | Return cooling degree days for any location. 16 | 17 | **Example request**: 18 | 19 | .. code-block:: http 20 | 21 | GET /api/series/tasmax_day_HadGEM2-ES_rcp85/cdd/?g=POINT(-121.46+38.59)&freq=A HTTP/1.1 22 | Host: api.cal-adapt.org 23 | Accept: application/json 24 | 25 | **Example response**: 26 | 27 | .. code-block:: http 28 | 29 | HTTP/1.1 200 OK 30 | Allow: GET, POST, OPTIONS 31 | Content-Type: application/json 32 | Vary: Accept 33 | 34 | { 35 | "data": [ 36 | 1272.4594726562, 37 | 2066.6245117188, 38 | 1458.0538330078, 39 | 1674.4998779297 40 | , 41 | ], 42 | "index": [ 43 | "2006-12-31T00:00:00Z", 44 | "2007-12-31T00:00:00Z", 45 | "2008-12-31T00:00:00Z", 46 | "2009-12-31T00:00:00Z", 47 | , 48 | ]} 49 | 50 | :arg slug: series slug identifier, only valid for daily tasmax or tasmin slugs 51 | :query g: a geometry (point, line, polygon) as GeoJSON, WKT, GML or KML 52 | :query freq: resampling frequency string such as ``M``, ``A``, ``10A``, or any `Pandas offset `_ 53 | :query float thresh: the reference temperature in F, defaults to ``65`` 54 | 55 | 56 | Extreme Heat, Heat Waves, and Warm Nights 57 | ----------------------------------------- 58 | An extreme heat day or warm night is defined as a day when the maximum/minimum temperature exceeds the 98th percentile of observed historical data from 1961–1990 between April and October. See the `extreme heat tool `_ for more information and charting of the available data. 59 | 60 | .. http:get:: /api/series/{slug}/exheat/ 61 | 62 | Return extreme heat, heat waves, or warm night counts for any location. 63 | 64 | **Example request**: 65 | 66 | .. code-block:: http 67 | 68 | GET /api/series/tasmax_day_HadGEM2-ES_rcp85/exheat/?g=POINT(-121.46+38.59) HTTP/1.1 69 | Host: api.cal-adapt.org 70 | Accept: application/json 71 | 72 | **Example response**: 73 | 74 | .. code-block:: http 75 | 76 | HTTP/1.1 200 OK 77 | Allow: GET, POST, OPTIONS 78 | Content-Type: application/json 79 | Vary: Accept 80 | 81 | { 82 | "98p": 103.90999603271484, 83 | "counts": { 84 | "2006-12-31T00:00:00+00:00": 1, 85 | "2007-12-31T00:00:00+00:00": 19, 86 | "2008-12-31T00:00:00+00:00": 3 87 | , 88 | }} 89 | 90 | :arg slug: series slug identifier, only valid for daily tasmax (extreme heat) or tasmin (warm night) slugs 91 | :query g: a geometry (point, line, polygon) as GeoJSON, WKT, GML or KML 92 | :query stat: one of ``max``, ``mean``, ``median``, ``min``, ``sum`` for spatial aggregation by polygon/line provided by the ``g`` param, defaults to ``mean`` 93 | :query freq: resampling frequency string such as ``M``, ``A``, ``10A``, or any `Pandas offset `_, defaults to ``A`` 94 | :query float pct: percentile to use for extreme heat or warm night threshold, defaults to ``.98`` (98th percentile) of observed data from 1961-1990 between April-October 95 | :query integer duration: (duration of extreme event in days) 96 | 97 | 98 | Extreme Precipitation 99 | --------------------- 100 | Extreme precipitation events can be characterized using Extreme Value Analysis (EVA) by return levels, including confidence intervals, using the peak over threshold methodology. See the `extreme precipitation tool `_ for more information and charting of the available data. 101 | 102 | .. http:get:: /api/series/{slug}/pot/ 103 | 104 | Response fields include ``returnlevels``, ``threshold``, and ``units`` (unit of measurement). The return levels are summarized over historic, mid, and end of century time frames. Each return interval is a 3-item array of the lower, estimated return level, and upper confidence interval. 105 | 106 | **Example request**: 107 | 108 | .. code-block:: http 109 | 110 | GET /api/series/pr_day_ACCESS1-0_rcp45/pot/?g=POINT(-121.4687+38.5938)&duration=2 HTTP/1.1 111 | Host: api.cal-adapt.org 112 | Accept: application/json 113 | 114 | **Example response**: 115 | 116 | .. code-block:: http 117 | 118 | HTTP/1.1 200 OK 119 | Allow: GET, POST, OPTIONS 120 | Content-Type: application/json 121 | Vary: Accept 122 | 123 | { 124 | "returnlevels": { 125 | "1961-10-01:1990-09-30": { 126 | "10": [ 3.3738083898103706, 3.9522201904266527, 5.228567088406137 ], 127 | "100": [ 4.792120480767816, 6.491227596207121, 11.655569842787486 ], 128 | "2": [ 2.317027627106765, 2.5667466512434016, 2.941214643156155 ], 129 | "20": [ 3.781685742237907, 4.640839376130399, 6.677332244692823 ], 130 | "5": [ 2.9107509896073562, 3.321044449279986, 4.080450921786112 ], 131 | "50": [ 4.368586837537248, 5.648252163486491, 9.185085270172545 ], 132 | "n": 159 133 | }, 134 | "2035-10-01:2064-09-30": { 135 | "10": [ 3.7262371212589867, 4.236568397086659, 5.240493845112521 ], 136 | "100": [ 4.906061402196474, 6.0225286812315595, 9.111781051084918 ], 137 | "2": [ 2.688362812028139, 2.9617466455337116, 3.315414408012187 ], 138 | "20": [ 4.134337164339881, 4.778850804514478, 6.252823005631932 ], 139 | "5": [ 3.312975478107658, 3.690233369085343, 4.342160397675551 ], 140 | "50": [ 4.571528643603971, 5.4895406091554895, 7.7864184564943955 ], 141 | "n": 175 142 | }, 143 | "2070-10-01:2099-09-30": { 144 | "10": [ 4.241220088665857, 5.0994935705499715, 6.9916568467598665 ], 145 | "100": [ 6.244111144979032, 8.769602618538272, 16.754704790152964 ], 146 | "2": [ 2.820991602527356, 3.1581853987832025, 3.650831557730822 ], 147 | "20": [ 4.851689971070942, 6.081585627582591, 9.144602394922993 ], 148 | "5": [ 3.631161165606033, 4.209052130230058, 5.315306960831256 ], 149 | "50": [ 5.653315714995296, 7.536659927706938, 12.944282870291804 ], 150 | "n": 165 151 | }, 152 | "threshold": 1.0, 153 | }, 154 | "units": "inches" 155 | } 156 | 157 | :arg slug: series slug identifier 158 | :query g: a geometry (point, line, polygon) as GeoJSON, WKT, GML or KML 159 | :query stat: one of ``max``, ``mean``, ``median``, ``min``, ``sum`` for spatial aggregation by polygon/line provided by the ``g`` param, defaults to ``mean`` 160 | :query integer duration: duration of extreme event in days 161 | :query intervals: comma separated list of return intervals, returns levels for 2, 5, 10, 20, 50, and 100 year events by default 162 | :query float pct: percentile to use for exceedance threshold, when not specified the min value from the annual maxima series (AMS) is used 163 | -------------------------------------------------------------------------------- /docs/build/html/_sources/raster-store.rst.txt: -------------------------------------------------------------------------------- 1 | .. _raster-store: 2 | 3 | Raster Store 4 | ============ 5 | A Raster Store is an individual raster file and associated information like 6 | spatial resolution, coordinate system reference, and bounding box. 7 | 8 | 9 | List Raster Stores 10 | ------------------ 11 | .. http:get:: /api/rstores/ 12 | 13 | List all raster stores. 14 | 15 | :query name: search raster names containing the provided value 16 | :query integer page: page number 17 | :query integer pagesize: number of records, default is 10 18 | 19 | 20 | Raster Store Detail 21 | ------------------- 22 | .. http:get:: /api/rstores/{slug}/ 23 | 24 | Request an individual raster with a provided slug. A slug is a URL friendly 25 | name of a resource in the API. Each climate dataset or resource has its own 26 | unique slug. A resource slug is generally composed of ``{variable}_{period}_{model}_{scenario}_{timestep}``. 27 | 28 | Response fields include ``image`` (raster file link), ``event`` (date), and ``units`` (unit of measurement for pixel values). Image statistics for ``min`` and ``max`` with regard to the ``nodata`` value, and dimensions ``xpixsize`` ``ypixsize``. Map tiles can be requested with the url template at ``tileurl``. 29 | 30 | **Example request**: 31 | 32 | .. code-block:: http 33 | 34 | GET /api/rstores/tasmax_year_CNRM-CM5_rcp45_2030/ HTTP/1.1 35 | Host: api.cal-adapt.org 36 | Accept: application/json 37 | 38 | **Example response**: 39 | 40 | .. code-block:: http 41 | 42 | HTTP/1.1 200 OK 43 | Allow: GET, POST, OPTIONS 44 | Content-Type: application/json 45 | Vary: Accept 46 | 47 | { 48 | "event": "2030-01-01", 49 | "geom": { 50 | "coordinates": [ 51 | [ 52 | [ 53 | -124.5625, 54 | 31.5625 55 | ], 56 | [ 57 | -113.375, 58 | 31.5625 59 | ], 60 | [ 61 | -113.375, 62 | 43.75 63 | ], 64 | [ 65 | -124.5625, 66 | 43.75 67 | ], 68 | [ 69 | -124.5625, 70 | 31.5625 71 | ] 72 | ] 73 | ], 74 | "type": "Polygon" 75 | }, 76 | "height": 195, 77 | "id": 10545, 78 | "image": "http://api.cal-adapt.org/media/img/tasmax_year_CNRM-CM5_rcp45_r1i1p1_2030.LOCA_2016-04-02.16th.CA_NV.tif", 79 | "maxval": 307.184326171875, 80 | "minval": 278.8943786621094, 81 | "name": "yearly average maximum temperature CNRM-CM5 RCP 4.5", 82 | "nodata": 1.0000000150474662e+30, 83 | "slug": "tasmax_year_CNRM-CM5_rcp45_2030", 84 | "srs": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433],AUTHORITY[\"EPSG\",\"4326\"]]", 85 | "tileurl": "http://api.cal-adapt.org/tiles/tasmax_year_CNRM-CM5_rcp45_2030/{z}/{x}/{y}.png", 86 | "units": "K", 87 | "url": "http://api.cal-adapt.org/api/rstores/tasmax_year_CNRM-CM5_rcp45_2030/", 88 | "width": 179, 89 | "xpixsize": 0.0625, 90 | "ypixsize": -0.0625 91 | } 92 | 93 | :arg slug: raster slug identifier 94 | -------------------------------------------------------------------------------- /docs/build/html/_sources/series.rst.txt: -------------------------------------------------------------------------------- 1 | .. _raster-series: 2 | 3 | Raster Series 4 | ============= 5 | A raster series is a collection of individual rasters comprising an entire time series. 6 | 7 | 8 | List Raster Series 9 | ------------------ 10 | .. http:get:: /api/series/ 11 | 12 | List all available raster time series. 13 | 14 | :query slug: search series slugs containing the provided value 15 | :query name: search series names containing the provided value 16 | :query tags: filter on tags 17 | :query integer page: page number 18 | :query integer pagesize: number of records, default is 10 19 | 20 | 21 | Raster Series Detail 22 | -------------------- 23 | .. http:get:: /api/series/{slug}/ 24 | 25 | Request an individual series with a provided slug. A slug is a URL friendly name of a resource in the API. Each climate dataset or resource has it's own unique slug. A resource slug is generally composed of ``{variable}_{period}_{model}_{scenario}``. 26 | 27 | **Example request**: 28 | 29 | .. code-block:: http 30 | 31 | GET /api/series/tasmax_year_CNRM-CM5_rcp45/ HTTP/1.1 32 | Host: api.cal-adapt.org 33 | Accept: application/json 34 | 35 | **Response**: 36 | 37 | .. code-block:: http 38 | 39 | HTTP/1.1 200 OK 40 | Vary: Accept 41 | Content-Type: application/json 42 | 43 | { 44 | "begin": "2006-01-01T00:00:00Z", 45 | "end": "2100-12-31T00:00:00Z", 46 | "name": "yearly average maximum temperature CNRM-CM5 RCP 4.5", 47 | "rasters": [ 48 | "http://api.cal-adapt.org/api/rstores/tasmax_year_CNRM-CM5_rcp45_2006/", 49 | "http://api.cal-adapt.org/api/rstores/tasmax_year_CNRM-CM5_rcp45_2007/", 50 | "http://api.cal-adapt.org/api/rstores/tasmax_year_CNRM-CM5_rcp45_2008/" 51 | , 52 | ] 53 | "slug": "tasmax_year_CNRM-CM5_rcp45", 54 | "tags": [ 55 | "climate", 56 | "tasmax", 57 | "temperature" 58 | ], 59 | "url": "http://api.cal-adapt.org/api/series/tasmax_year_CNRM-CM5_rcp45/" 60 | } 61 | 62 | :arg slug: series slug identifier 63 | 64 | 65 | Time Series 66 | ----------- 67 | .. http:get:: /api/series/{slug}/events/ 68 | 69 | Return the entire time series for any location, with optional temporal and/or rolling aggregations applied. The response consists of ``columns``, ``data``, and ``index``. 70 | 71 | The structure of the return is context dependent where a single point returns summary fields (min, mean, max, std, count) when a frequency is provided for temporal aggregation. 72 | 73 | Sending a single polygon returns values for all intersecting grid cells, whereas a temporal aggregation is returned when `stat=` and `freq=` are provided controlling spatial aggregation and time series resampling respectively. 74 | 75 | **Example request**: 76 | 77 | .. code-block:: http 78 | 79 | GET /api/series/tasmax_day_HadGEM2-ES_rcp85/events/?g=POINT(-121.46+38.58) HTTP/1.1 80 | Host: api.cal-adapt.org 81 | Accept: application/json 82 | 83 | **Response**: 84 | 85 | .. code-block:: http 86 | 87 | HTTP/1.1 200 OK 88 | Vary: Accept 89 | Content-Type: application/json 90 | 91 | { 92 | "data": [ 93 | 284.2241516113, 94 | 283.9797973633, 95 | 283.4098815918 96 | , 97 | ], 98 | "index": [ 99 | "2006-01-01T00:00:00Z", 100 | "2006-01-02T00:00:00Z", 101 | "2006-01-03T00:00:00Z" 102 | , 103 | ], 104 | "name": "tasmax_day_HadGEM2-ES_rcp85" 105 | } 106 | 107 | :arg slug: series slug identifier 108 | :query g: a geometry (point, line, polygon) as GeoJSON, WKT, GML or KML 109 | :query stat: one of ``max``, ``mean``, ``median``, ``min``, ``sum`` for spatial aggregation by polygon/line provided by the ``g`` param, defaults to ``mean`` 110 | :query freq: resampling frequency string such as ``M``, ``A``, ``10A``, or any `Pandas offset `_ 111 | :query rolling: rolling statistic, one of ``max``, ``mean``, ``median``, ``min``, ``sum`` 112 | :query integer window: rolling window size 113 | :query float thresh: only return values above a given threshold 114 | :query boolean imperial: use imperial units, defaults to false 115 | :query format: ``json`` or ``csv`` 116 | :reqheader Accept: the response content type depends on 117 | :mailheader:`Accept` header 118 | :resheader Content-Type: this depends on :mailheader:`Accept` 119 | header of request 120 | :statuscode 200: no error 121 | :statuscode 400: something is askew with the request, check the error message 122 | :statuscode 404: the slug may be incorrect 123 | :statuscode 500: something's wrong on our end 124 | 125 | .. http:post:: /api/series/{slug}/events/ 126 | 127 | Use POST when providing a feature set to return data for multiple locations. 128 | The same parameters as with GET are available. 129 | 130 | :query features: file upload to provide multiple geometries as part of a feature set, any `OGR supported `_ format or zip file 131 | 132 | Return monthly data aggregated from daily values for a point location using 133 | `freq`: 134 | 135 | .. code-block:: http 136 | 137 | GET /api/series/tasmax_day_HadGEM2-ES_rcp85/events/?g=POINT(-121.46+38.58)&freq=M HTTP/1.1 138 | Host: api.cal-adapt.org 139 | Accept: application/json 140 | 141 | **Response**: 142 | 143 | .. code-block:: http 144 | 145 | HTTP/1.1 200 OK 146 | Vary: Accept 147 | Content-Type: application/json 148 | 149 | { 150 | "columns": [ 151 | "min", 152 | "mean", 153 | "max", 154 | "std", 155 | "count" 156 | ], 157 | "data": [ 158 | [ 159 | 275.4864807129, 160 | 283.8988342285, 161 | 288.8237304688, 162 | 3.3650608063, 163 | 31 164 | ], 165 | [ 166 | 283.4172058105, 167 | 290.7746276855, 168 | 298.8256835938, 169 | 3.4072315693, 170 | 28 171 | ], 172 | [ 173 | 286.8976745605, 174 | 293.8493652344, 175 | 300.5709533691, 176 | 4.2584190369, 177 | 31 178 | ] 179 | , 180 | ], 181 | "index": [ 182 | "2006-01-31T00:00:00Z", 183 | "2006-02-28T00:00:00Z", 184 | "2006-03-31T00:00:00Z" 185 | , 186 | ]} 187 | 188 | 189 | List Series Rasters 190 | ------------------- 191 | .. http:get:: /api/series/{slug}/rasters/ 192 | 193 | List all rasters in the series. See the :ref:`raster-store` description. 194 | 195 | **Example request**: 196 | 197 | .. code-block:: http 198 | 199 | GET /api/series/tasmax_year_CNRM-CM5_rcp45/rasters/ HTTP/1.1 200 | Host: api.cal-adapt.org 201 | Accept: application/json 202 | 203 | **Example response**: 204 | 205 | .. code-block:: http 206 | 207 | HTTP/1.1 200 OK 208 | Allow: GET, POST, OPTIONS 209 | Content-Type: application/json 210 | Vary: Accept 211 | 212 | { 213 | "count": 95, 214 | "next": "https://api.cal-adapt.org/api/series/tasmax_year_CNRM-CM5_rcp45/rasters/?page=2", 215 | "previous": null, 216 | "results": [{ 217 | "id": 10521, 218 | "tileurl": "https://api.cal-adapt.org/tiles/tasmax_year_CNRM-CM5_rcp45_2006/{z}/{x}/{y}.png", 219 | "url": "https://api.cal-adapt.org/api/rstores/tasmax_year_CNRM-CM5_rcp45_2006/", 220 | "image": "https://api.cal-adapt.org/media/img/tasmax_year_CNRM-CM5_rcp45_r1i1p1_2006.LOCA_2016-04-02.16th.CA_NV.tif", 221 | "width": 179, 222 | "height": 195, 223 | "geom": "POLYGON ((-124.5625 31.5625, -113.375 31.5625, -113.375 43.75, -124.5625 43.75, -124.5625 31.5625))", 224 | "event": "2006-01-01", 225 | "srs": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433],AUTHORITY[\"EPSG\",\"4326\"]]", 226 | "minval": 279.1251220703125, 227 | "maxval": 307.180908203125, 228 | "nodata": 1.0000000150474662e+30, 229 | "xpixsize": 0.0625, 230 | "ypixsize": -0.0625, 231 | "name": "yearly average maximum temperature CNRM-CM5 RCP 4.5", 232 | "slug": "tasmax_year_CNRM-CM5_rcp45_2006", 233 | "units": "K" 234 | }, { 235 | "id": 10522, 236 | "tileurl": "https://api.cal-adapt.org/tiles/tasmax_year_CNRM-CM5_rcp45_2007/{z}/{x}/{y}.png", 237 | "url": "https://api.cal-adapt.org/api/rstores/tasmax_year_CNRM-CM5_rcp45_2007/", 238 | "image": "https://api.cal-adapt.org/media/img/tasmax_year_CNRM-CM5_rcp45_r1i1p1_2007.LOCA_2016-04-02.16th.CA_NV.tif", 239 | "width": 179, 240 | "height": 195, 241 | "geom": "POLYGON ((-124.5625 31.5625, -113.375 31.5625, -113.375 43.75, -124.5625 43.75, -124.5625 31.5625))", 242 | "event": "2007-01-01", 243 | "srs": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433],AUTHORITY[\"EPSG\",\"4326\"]]", 244 | "minval": 278.38330078125, 245 | "maxval": 307.52490234375, 246 | "nodata": 1.0000000150474662e+30, 247 | "xpixsize": 0.0625, 248 | "ypixsize": -0.0625, 249 | "name": "yearly average maximum temperature CNRM-CM5 RCP 4.5", 250 | "slug": "tasmax_year_CNRM-CM5_rcp45_2007", 251 | "units": "K" 252 | } 253 | , 254 | ] 255 | } 256 | 257 | :arg slug: series slug identifier 258 | :query g: a geometry (point, line, polygon) as GeoJSON, WKT, GML or KML 259 | :query bbox: a bounding box in the form of x1,y1,x2,y2 260 | :query pagesize: number of records, default is 10 261 | :query format: ``json`` or ``tif.zip`` 262 | :query stat: one of ``mean``, ``max``, ``min``, ``count``, ``median``, ``std``, ``var`` for spatial aggregation by polygon/line geometry provided by the ``g`` param. 263 | :reqheader Accept: the response content type depends on 264 | :mailheader:`Accept` header 265 | :resheader Content-Type: this depends on :mailheader:`Accept` 266 | header of request 267 | :statuscode 200: no error 268 | :statuscode 400: something is askew with the request, check the error message 269 | :statuscode 404: the slug may be incorrect 270 | :statuscode 500: something's wrong on our end 271 | 272 | .. http:get:: /api/series/{slug}/{begin}/{end}/ 273 | 274 | Filter series rasters from start to end date 275 | 276 | :arg slug: series slug identifier 277 | :arg date begin: starting date 278 | :arg date end: ending date 279 | 280 | A time slice or subset can be retrieved by adding start and end dates to the URL. :: 281 | 282 | curl https://api.cal-adapt.org/api/series/tasmax_year_CNRM-CM5_rcp45/2030-01-01/2040-01-01/ 283 | -------------------------------------------------------------------------------- /docs/build/html/_static/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/ajax-loader.gif -------------------------------------------------------------------------------- /docs/build/html/_static/basic.css: -------------------------------------------------------------------------------- 1 | /* 2 | * basic.css 3 | * ~~~~~~~~~ 4 | * 5 | * Sphinx stylesheet -- basic theme. 6 | * 7 | * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. 8 | * :license: BSD, see LICENSE for details. 9 | * 10 | */ 11 | 12 | /* -- main layout ----------------------------------------------------------- */ 13 | 14 | div.clearer { 15 | clear: both; 16 | } 17 | 18 | /* -- relbar ---------------------------------------------------------------- */ 19 | 20 | div.related { 21 | width: 100%; 22 | font-size: 90%; 23 | } 24 | 25 | div.related h3 { 26 | display: none; 27 | } 28 | 29 | div.related ul { 30 | margin: 0; 31 | padding: 0 0 0 10px; 32 | list-style: none; 33 | } 34 | 35 | div.related li { 36 | display: inline; 37 | } 38 | 39 | div.related li.right { 40 | float: right; 41 | margin-right: 5px; 42 | } 43 | 44 | /* -- sidebar --------------------------------------------------------------- */ 45 | 46 | div.sphinxsidebarwrapper { 47 | padding: 10px 5px 0 10px; 48 | } 49 | 50 | div.sphinxsidebar { 51 | float: left; 52 | width: 230px; 53 | margin-left: -100%; 54 | font-size: 90%; 55 | word-wrap: break-word; 56 | overflow-wrap : break-word; 57 | } 58 | 59 | div.sphinxsidebar ul { 60 | list-style: none; 61 | } 62 | 63 | div.sphinxsidebar ul ul, 64 | div.sphinxsidebar ul.want-points { 65 | margin-left: 20px; 66 | list-style: square; 67 | } 68 | 69 | div.sphinxsidebar ul ul { 70 | margin-top: 0; 71 | margin-bottom: 0; 72 | } 73 | 74 | div.sphinxsidebar form { 75 | margin-top: 10px; 76 | } 77 | 78 | div.sphinxsidebar input { 79 | border: 1px solid #98dbcc; 80 | font-family: sans-serif; 81 | font-size: 1em; 82 | } 83 | 84 | div.sphinxsidebar #searchbox form.search { 85 | overflow: hidden; 86 | } 87 | 88 | div.sphinxsidebar #searchbox input[type="text"] { 89 | float: left; 90 | width: 80%; 91 | padding: 0.25em; 92 | box-sizing: border-box; 93 | } 94 | 95 | div.sphinxsidebar #searchbox input[type="submit"] { 96 | float: left; 97 | width: 20%; 98 | border-left: none; 99 | padding: 0.25em; 100 | box-sizing: border-box; 101 | } 102 | 103 | 104 | img { 105 | border: 0; 106 | max-width: 100%; 107 | } 108 | 109 | /* -- search page ----------------------------------------------------------- */ 110 | 111 | ul.search { 112 | margin: 10px 0 0 20px; 113 | padding: 0; 114 | } 115 | 116 | ul.search li { 117 | padding: 5px 0 5px 20px; 118 | background-image: url(file.png); 119 | background-repeat: no-repeat; 120 | background-position: 0 7px; 121 | } 122 | 123 | ul.search li a { 124 | font-weight: bold; 125 | } 126 | 127 | ul.search li div.context { 128 | color: #888; 129 | margin: 2px 0 0 30px; 130 | text-align: left; 131 | } 132 | 133 | ul.keywordmatches li.goodmatch a { 134 | font-weight: bold; 135 | } 136 | 137 | /* -- index page ------------------------------------------------------------ */ 138 | 139 | table.contentstable { 140 | width: 90%; 141 | margin-left: auto; 142 | margin-right: auto; 143 | } 144 | 145 | table.contentstable p.biglink { 146 | line-height: 150%; 147 | } 148 | 149 | a.biglink { 150 | font-size: 1.3em; 151 | } 152 | 153 | span.linkdescr { 154 | font-style: italic; 155 | padding-top: 5px; 156 | font-size: 90%; 157 | } 158 | 159 | /* -- general index --------------------------------------------------------- */ 160 | 161 | table.indextable { 162 | width: 100%; 163 | } 164 | 165 | table.indextable td { 166 | text-align: left; 167 | vertical-align: top; 168 | } 169 | 170 | table.indextable ul { 171 | margin-top: 0; 172 | margin-bottom: 0; 173 | list-style-type: none; 174 | } 175 | 176 | table.indextable > tbody > tr > td > ul { 177 | padding-left: 0em; 178 | } 179 | 180 | table.indextable tr.pcap { 181 | height: 10px; 182 | } 183 | 184 | table.indextable tr.cap { 185 | margin-top: 10px; 186 | background-color: #f2f2f2; 187 | } 188 | 189 | img.toggler { 190 | margin-right: 3px; 191 | margin-top: 3px; 192 | cursor: pointer; 193 | } 194 | 195 | div.modindex-jumpbox { 196 | border-top: 1px solid #ddd; 197 | border-bottom: 1px solid #ddd; 198 | margin: 1em 0 1em 0; 199 | padding: 0.4em; 200 | } 201 | 202 | div.genindex-jumpbox { 203 | border-top: 1px solid #ddd; 204 | border-bottom: 1px solid #ddd; 205 | margin: 1em 0 1em 0; 206 | padding: 0.4em; 207 | } 208 | 209 | /* -- domain module index --------------------------------------------------- */ 210 | 211 | table.modindextable td { 212 | padding: 2px; 213 | border-collapse: collapse; 214 | } 215 | 216 | /* -- general body styles --------------------------------------------------- */ 217 | 218 | div.body { 219 | min-width: 450px; 220 | max-width: 800px; 221 | } 222 | 223 | div.body p, div.body dd, div.body li, div.body blockquote { 224 | -moz-hyphens: auto; 225 | -ms-hyphens: auto; 226 | -webkit-hyphens: auto; 227 | hyphens: auto; 228 | } 229 | 230 | a.headerlink { 231 | visibility: hidden; 232 | } 233 | 234 | h1:hover > a.headerlink, 235 | h2:hover > a.headerlink, 236 | h3:hover > a.headerlink, 237 | h4:hover > a.headerlink, 238 | h5:hover > a.headerlink, 239 | h6:hover > a.headerlink, 240 | dt:hover > a.headerlink, 241 | caption:hover > a.headerlink, 242 | p.caption:hover > a.headerlink, 243 | div.code-block-caption:hover > a.headerlink { 244 | visibility: visible; 245 | } 246 | 247 | div.body p.caption { 248 | text-align: inherit; 249 | } 250 | 251 | div.body td { 252 | text-align: left; 253 | } 254 | 255 | .first { 256 | margin-top: 0 !important; 257 | } 258 | 259 | p.rubric { 260 | margin-top: 30px; 261 | font-weight: bold; 262 | } 263 | 264 | img.align-left, .figure.align-left, object.align-left { 265 | clear: left; 266 | float: left; 267 | margin-right: 1em; 268 | } 269 | 270 | img.align-right, .figure.align-right, object.align-right { 271 | clear: right; 272 | float: right; 273 | margin-left: 1em; 274 | } 275 | 276 | img.align-center, .figure.align-center, object.align-center { 277 | display: block; 278 | margin-left: auto; 279 | margin-right: auto; 280 | } 281 | 282 | .align-left { 283 | text-align: left; 284 | } 285 | 286 | .align-center { 287 | text-align: center; 288 | } 289 | 290 | .align-right { 291 | text-align: right; 292 | } 293 | 294 | /* -- sidebars -------------------------------------------------------------- */ 295 | 296 | div.sidebar { 297 | margin: 0 0 0.5em 1em; 298 | border: 1px solid #ddb; 299 | padding: 7px 7px 0 7px; 300 | background-color: #ffe; 301 | width: 40%; 302 | float: right; 303 | } 304 | 305 | p.sidebar-title { 306 | font-weight: bold; 307 | } 308 | 309 | /* -- topics ---------------------------------------------------------------- */ 310 | 311 | div.topic { 312 | border: 1px solid #ccc; 313 | padding: 7px 7px 0 7px; 314 | margin: 10px 0 10px 0; 315 | } 316 | 317 | p.topic-title { 318 | font-size: 1.1em; 319 | font-weight: bold; 320 | margin-top: 10px; 321 | } 322 | 323 | /* -- admonitions ----------------------------------------------------------- */ 324 | 325 | div.admonition { 326 | margin-top: 10px; 327 | margin-bottom: 10px; 328 | padding: 7px; 329 | } 330 | 331 | div.admonition dt { 332 | font-weight: bold; 333 | } 334 | 335 | div.admonition dl { 336 | margin-bottom: 0; 337 | } 338 | 339 | p.admonition-title { 340 | margin: 0px 10px 5px 0px; 341 | font-weight: bold; 342 | } 343 | 344 | div.body p.centered { 345 | text-align: center; 346 | margin-top: 25px; 347 | } 348 | 349 | /* -- tables ---------------------------------------------------------------- */ 350 | 351 | table.docutils { 352 | border: 0; 353 | border-collapse: collapse; 354 | } 355 | 356 | table.align-center { 357 | margin-left: auto; 358 | margin-right: auto; 359 | } 360 | 361 | table caption span.caption-number { 362 | font-style: italic; 363 | } 364 | 365 | table caption span.caption-text { 366 | } 367 | 368 | table.docutils td, table.docutils th { 369 | padding: 1px 8px 1px 5px; 370 | border-top: 0; 371 | border-left: 0; 372 | border-right: 0; 373 | border-bottom: 1px solid #aaa; 374 | } 375 | 376 | table.footnote td, table.footnote th { 377 | border: 0 !important; 378 | } 379 | 380 | th { 381 | text-align: left; 382 | padding-right: 5px; 383 | } 384 | 385 | table.citation { 386 | border-left: solid 1px gray; 387 | margin-left: 1px; 388 | } 389 | 390 | table.citation td { 391 | border-bottom: none; 392 | } 393 | 394 | /* -- figures --------------------------------------------------------------- */ 395 | 396 | div.figure { 397 | margin: 0.5em; 398 | padding: 0.5em; 399 | } 400 | 401 | div.figure p.caption { 402 | padding: 0.3em; 403 | } 404 | 405 | div.figure p.caption span.caption-number { 406 | font-style: italic; 407 | } 408 | 409 | div.figure p.caption span.caption-text { 410 | } 411 | 412 | /* -- field list styles ----------------------------------------------------- */ 413 | 414 | table.field-list td, table.field-list th { 415 | border: 0 !important; 416 | } 417 | 418 | .field-list ul { 419 | margin: 0; 420 | padding-left: 1em; 421 | } 422 | 423 | .field-list p { 424 | margin: 0; 425 | } 426 | 427 | .field-name { 428 | -moz-hyphens: manual; 429 | -ms-hyphens: manual; 430 | -webkit-hyphens: manual; 431 | hyphens: manual; 432 | } 433 | 434 | /* -- hlist styles ---------------------------------------------------------- */ 435 | 436 | table.hlist td { 437 | vertical-align: top; 438 | } 439 | 440 | 441 | /* -- other body styles ----------------------------------------------------- */ 442 | 443 | ol.arabic { 444 | list-style: decimal; 445 | } 446 | 447 | ol.loweralpha { 448 | list-style: lower-alpha; 449 | } 450 | 451 | ol.upperalpha { 452 | list-style: upper-alpha; 453 | } 454 | 455 | ol.lowerroman { 456 | list-style: lower-roman; 457 | } 458 | 459 | ol.upperroman { 460 | list-style: upper-roman; 461 | } 462 | 463 | dl { 464 | margin-bottom: 15px; 465 | } 466 | 467 | dd p { 468 | margin-top: 0px; 469 | } 470 | 471 | dd ul, dd table { 472 | margin-bottom: 10px; 473 | } 474 | 475 | dd { 476 | margin-top: 3px; 477 | margin-bottom: 10px; 478 | margin-left: 30px; 479 | } 480 | 481 | dt:target, span.highlighted { 482 | background-color: #fbe54e; 483 | } 484 | 485 | rect.highlighted { 486 | fill: #fbe54e; 487 | } 488 | 489 | dl.glossary dt { 490 | font-weight: bold; 491 | font-size: 1.1em; 492 | } 493 | 494 | .optional { 495 | font-size: 1.3em; 496 | } 497 | 498 | .sig-paren { 499 | font-size: larger; 500 | } 501 | 502 | .versionmodified { 503 | font-style: italic; 504 | } 505 | 506 | .system-message { 507 | background-color: #fda; 508 | padding: 5px; 509 | border: 3px solid red; 510 | } 511 | 512 | .footnote:target { 513 | background-color: #ffa; 514 | } 515 | 516 | .line-block { 517 | display: block; 518 | margin-top: 1em; 519 | margin-bottom: 1em; 520 | } 521 | 522 | .line-block .line-block { 523 | margin-top: 0; 524 | margin-bottom: 0; 525 | margin-left: 1.5em; 526 | } 527 | 528 | .guilabel, .menuselection { 529 | font-family: sans-serif; 530 | } 531 | 532 | .accelerator { 533 | text-decoration: underline; 534 | } 535 | 536 | .classifier { 537 | font-style: oblique; 538 | } 539 | 540 | abbr, acronym { 541 | border-bottom: dotted 1px; 542 | cursor: help; 543 | } 544 | 545 | /* -- code displays --------------------------------------------------------- */ 546 | 547 | pre { 548 | overflow: auto; 549 | overflow-y: hidden; /* fixes display issues on Chrome browsers */ 550 | } 551 | 552 | span.pre { 553 | -moz-hyphens: none; 554 | -ms-hyphens: none; 555 | -webkit-hyphens: none; 556 | hyphens: none; 557 | } 558 | 559 | td.linenos pre { 560 | padding: 5px 0px; 561 | border: 0; 562 | background-color: transparent; 563 | color: #aaa; 564 | } 565 | 566 | table.highlighttable { 567 | margin-left: 0.5em; 568 | } 569 | 570 | table.highlighttable td { 571 | padding: 0 0.5em 0 0.5em; 572 | } 573 | 574 | div.code-block-caption { 575 | padding: 2px 5px; 576 | font-size: small; 577 | } 578 | 579 | div.code-block-caption code { 580 | background-color: transparent; 581 | } 582 | 583 | div.code-block-caption + div > div.highlight > pre { 584 | margin-top: 0; 585 | } 586 | 587 | div.code-block-caption span.caption-number { 588 | padding: 0.1em 0.3em; 589 | font-style: italic; 590 | } 591 | 592 | div.code-block-caption span.caption-text { 593 | } 594 | 595 | div.literal-block-wrapper { 596 | padding: 1em 1em 0; 597 | } 598 | 599 | div.literal-block-wrapper div.highlight { 600 | margin: 0; 601 | } 602 | 603 | code.descname { 604 | background-color: transparent; 605 | font-weight: bold; 606 | font-size: 1.2em; 607 | } 608 | 609 | code.descclassname { 610 | background-color: transparent; 611 | } 612 | 613 | code.xref, a code { 614 | background-color: transparent; 615 | font-weight: bold; 616 | } 617 | 618 | h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { 619 | background-color: transparent; 620 | } 621 | 622 | .viewcode-link { 623 | float: right; 624 | } 625 | 626 | .viewcode-back { 627 | float: right; 628 | font-family: sans-serif; 629 | } 630 | 631 | div.viewcode-block:target { 632 | margin: -1px -10px; 633 | padding: 0 10px; 634 | } 635 | 636 | /* -- math display ---------------------------------------------------------- */ 637 | 638 | img.math { 639 | vertical-align: middle; 640 | } 641 | 642 | div.body div.math p { 643 | text-align: center; 644 | } 645 | 646 | span.eqno { 647 | float: right; 648 | } 649 | 650 | span.eqno a.headerlink { 651 | position: relative; 652 | left: 0px; 653 | z-index: 1; 654 | } 655 | 656 | div.math:hover a.headerlink { 657 | visibility: visible; 658 | } 659 | 660 | /* -- printout stylesheet --------------------------------------------------- */ 661 | 662 | @media print { 663 | div.document, 664 | div.documentwrapper, 665 | div.bodywrapper { 666 | margin: 0 !important; 667 | width: 100%; 668 | } 669 | 670 | div.sphinxsidebar, 671 | div.related, 672 | div.footer, 673 | #top-link { 674 | display: none; 675 | } 676 | } -------------------------------------------------------------------------------- /docs/build/html/_static/comment-bright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/comment-bright.png -------------------------------------------------------------------------------- /docs/build/html/_static/comment-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/comment-close.png -------------------------------------------------------------------------------- /docs/build/html/_static/comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/comment.png -------------------------------------------------------------------------------- /docs/build/html/_static/css/badge_only.css: -------------------------------------------------------------------------------- 1 | .fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../fonts/fontawesome-webfont.eot");src:url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff") format("woff"),url("../fonts/fontawesome-webfont.ttf") format("truetype"),url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} 2 | -------------------------------------------------------------------------------- /docs/build/html/_static/doctools.js: -------------------------------------------------------------------------------- 1 | /* 2 | * doctools.js 3 | * ~~~~~~~~~~~ 4 | * 5 | * Sphinx JavaScript utilities for all documentation. 6 | * 7 | * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. 8 | * :license: BSD, see LICENSE for details. 9 | * 10 | */ 11 | 12 | /** 13 | * select a different prefix for underscore 14 | */ 15 | $u = _.noConflict(); 16 | 17 | /** 18 | * make the code below compatible with browsers without 19 | * an installed firebug like debugger 20 | if (!window.console || !console.firebug) { 21 | var names = ["log", "debug", "info", "warn", "error", "assert", "dir", 22 | "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", 23 | "profile", "profileEnd"]; 24 | window.console = {}; 25 | for (var i = 0; i < names.length; ++i) 26 | window.console[names[i]] = function() {}; 27 | } 28 | */ 29 | 30 | /** 31 | * small helper function to urldecode strings 32 | */ 33 | jQuery.urldecode = function(x) { 34 | return decodeURIComponent(x).replace(/\+/g, ' '); 35 | }; 36 | 37 | /** 38 | * small helper function to urlencode strings 39 | */ 40 | jQuery.urlencode = encodeURIComponent; 41 | 42 | /** 43 | * This function returns the parsed url parameters of the 44 | * current request. Multiple values per key are supported, 45 | * it will always return arrays of strings for the value parts. 46 | */ 47 | jQuery.getQueryParameters = function(s) { 48 | if (typeof s === 'undefined') 49 | s = document.location.search; 50 | var parts = s.substr(s.indexOf('?') + 1).split('&'); 51 | var result = {}; 52 | for (var i = 0; i < parts.length; i++) { 53 | var tmp = parts[i].split('=', 2); 54 | var key = jQuery.urldecode(tmp[0]); 55 | var value = jQuery.urldecode(tmp[1]); 56 | if (key in result) 57 | result[key].push(value); 58 | else 59 | result[key] = [value]; 60 | } 61 | return result; 62 | }; 63 | 64 | /** 65 | * highlight a given string on a jquery object by wrapping it in 66 | * span elements with the given class name. 67 | */ 68 | jQuery.fn.highlightText = function(text, className) { 69 | function highlight(node, addItems) { 70 | if (node.nodeType === 3) { 71 | var val = node.nodeValue; 72 | var pos = val.toLowerCase().indexOf(text); 73 | if (pos >= 0 && 74 | !jQuery(node.parentNode).hasClass(className) && 75 | !jQuery(node.parentNode).hasClass("nohighlight")) { 76 | var span; 77 | var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); 78 | if (isInSVG) { 79 | span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); 80 | } else { 81 | span = document.createElement("span"); 82 | span.className = className; 83 | } 84 | span.appendChild(document.createTextNode(val.substr(pos, text.length))); 85 | node.parentNode.insertBefore(span, node.parentNode.insertBefore( 86 | document.createTextNode(val.substr(pos + text.length)), 87 | node.nextSibling)); 88 | node.nodeValue = val.substr(0, pos); 89 | if (isInSVG) { 90 | var bbox = span.getBBox(); 91 | var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); 92 | rect.x.baseVal.value = bbox.x; 93 | rect.y.baseVal.value = bbox.y; 94 | rect.width.baseVal.value = bbox.width; 95 | rect.height.baseVal.value = bbox.height; 96 | rect.setAttribute('class', className); 97 | var parentOfText = node.parentNode.parentNode; 98 | addItems.push({ 99 | "parent": node.parentNode, 100 | "target": rect}); 101 | } 102 | } 103 | } 104 | else if (!jQuery(node).is("button, select, textarea")) { 105 | jQuery.each(node.childNodes, function() { 106 | highlight(this, addItems); 107 | }); 108 | } 109 | } 110 | var addItems = []; 111 | var result = this.each(function() { 112 | highlight(this, addItems); 113 | }); 114 | for (var i = 0; i < addItems.length; ++i) { 115 | jQuery(addItems[i].parent).before(addItems[i].target); 116 | } 117 | return result; 118 | }; 119 | 120 | /* 121 | * backward compatibility for jQuery.browser 122 | * This will be supported until firefox bug is fixed. 123 | */ 124 | if (!jQuery.browser) { 125 | jQuery.uaMatch = function(ua) { 126 | ua = ua.toLowerCase(); 127 | 128 | var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || 129 | /(webkit)[ \/]([\w.]+)/.exec(ua) || 130 | /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || 131 | /(msie) ([\w.]+)/.exec(ua) || 132 | ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || 133 | []; 134 | 135 | return { 136 | browser: match[ 1 ] || "", 137 | version: match[ 2 ] || "0" 138 | }; 139 | }; 140 | jQuery.browser = {}; 141 | jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; 142 | } 143 | 144 | /** 145 | * Small JavaScript module for the documentation. 146 | */ 147 | var Documentation = { 148 | 149 | init : function() { 150 | this.fixFirefoxAnchorBug(); 151 | this.highlightSearchWords(); 152 | this.initIndexTable(); 153 | if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { 154 | this.initOnKeyListeners(); 155 | } 156 | }, 157 | 158 | /** 159 | * i18n support 160 | */ 161 | TRANSLATIONS : {}, 162 | PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, 163 | LOCALE : 'unknown', 164 | 165 | // gettext and ngettext don't access this so that the functions 166 | // can safely bound to a different name (_ = Documentation.gettext) 167 | gettext : function(string) { 168 | var translated = Documentation.TRANSLATIONS[string]; 169 | if (typeof translated === 'undefined') 170 | return string; 171 | return (typeof translated === 'string') ? translated : translated[0]; 172 | }, 173 | 174 | ngettext : function(singular, plural, n) { 175 | var translated = Documentation.TRANSLATIONS[singular]; 176 | if (typeof translated === 'undefined') 177 | return (n == 1) ? singular : plural; 178 | return translated[Documentation.PLURALEXPR(n)]; 179 | }, 180 | 181 | addTranslations : function(catalog) { 182 | for (var key in catalog.messages) 183 | this.TRANSLATIONS[key] = catalog.messages[key]; 184 | this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); 185 | this.LOCALE = catalog.locale; 186 | }, 187 | 188 | /** 189 | * add context elements like header anchor links 190 | */ 191 | addContextElements : function() { 192 | $('div[id] > :header:first').each(function() { 193 | $('\u00B6'). 194 | attr('href', '#' + this.id). 195 | attr('title', _('Permalink to this headline')). 196 | appendTo(this); 197 | }); 198 | $('dt[id]').each(function() { 199 | $('\u00B6'). 200 | attr('href', '#' + this.id). 201 | attr('title', _('Permalink to this definition')). 202 | appendTo(this); 203 | }); 204 | }, 205 | 206 | /** 207 | * workaround a firefox stupidity 208 | * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 209 | */ 210 | fixFirefoxAnchorBug : function() { 211 | if (document.location.hash && $.browser.mozilla) 212 | window.setTimeout(function() { 213 | document.location.href += ''; 214 | }, 10); 215 | }, 216 | 217 | /** 218 | * highlight the search words provided in the url in the text 219 | */ 220 | highlightSearchWords : function() { 221 | var params = $.getQueryParameters(); 222 | var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; 223 | if (terms.length) { 224 | var body = $('div.body'); 225 | if (!body.length) { 226 | body = $('body'); 227 | } 228 | window.setTimeout(function() { 229 | $.each(terms, function() { 230 | body.highlightText(this.toLowerCase(), 'highlighted'); 231 | }); 232 | }, 10); 233 | $('') 235 | .appendTo($('#searchbox')); 236 | } 237 | }, 238 | 239 | /** 240 | * init the domain index toggle buttons 241 | */ 242 | initIndexTable : function() { 243 | var togglers = $('img.toggler').click(function() { 244 | var src = $(this).attr('src'); 245 | var idnum = $(this).attr('id').substr(7); 246 | $('tr.cg-' + idnum).toggle(); 247 | if (src.substr(-9) === 'minus.png') 248 | $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); 249 | else 250 | $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); 251 | }).css('display', ''); 252 | if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { 253 | togglers.click(); 254 | } 255 | }, 256 | 257 | /** 258 | * helper function to hide the search marks again 259 | */ 260 | hideSearchWords : function() { 261 | $('#searchbox .highlight-link').fadeOut(300); 262 | $('span.highlighted').removeClass('highlighted'); 263 | }, 264 | 265 | /** 266 | * make the url absolute 267 | */ 268 | makeURL : function(relativeURL) { 269 | return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; 270 | }, 271 | 272 | /** 273 | * get the current relative url 274 | */ 275 | getCurrentURL : function() { 276 | var path = document.location.pathname; 277 | var parts = path.split(/\//); 278 | $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { 279 | if (this === '..') 280 | parts.pop(); 281 | }); 282 | var url = parts.join('/'); 283 | return path.substring(url.lastIndexOf('/') + 1, path.length - 1); 284 | }, 285 | 286 | initOnKeyListeners: function() { 287 | $(document).keyup(function(event) { 288 | var activeElementType = document.activeElement.tagName; 289 | // don't navigate when in search box or textarea 290 | if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { 291 | switch (event.keyCode) { 292 | case 37: // left 293 | var prevHref = $('link[rel="prev"]').prop('href'); 294 | if (prevHref) { 295 | window.location.href = prevHref; 296 | return false; 297 | } 298 | case 39: // right 299 | var nextHref = $('link[rel="next"]').prop('href'); 300 | if (nextHref) { 301 | window.location.href = nextHref; 302 | return false; 303 | } 304 | } 305 | } 306 | }); 307 | } 308 | }; 309 | 310 | // quick alias for translations 311 | _ = Documentation.gettext; 312 | 313 | $(document).ready(function() { 314 | Documentation.init(); 315 | }); 316 | -------------------------------------------------------------------------------- /docs/build/html/_static/documentation_options.js: -------------------------------------------------------------------------------- 1 | var DOCUMENTATION_OPTIONS = { 2 | URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), 3 | VERSION: '1.0', 4 | LANGUAGE: 'None', 5 | COLLAPSE_INDEX: false, 6 | FILE_SUFFIX: '.html', 7 | HAS_SOURCE: true, 8 | SOURCELINK_SUFFIX: '.txt', 9 | NAVIGATION_WITH_KEYS: false, 10 | }; -------------------------------------------------------------------------------- /docs/build/html/_static/down-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/down-pressed.png -------------------------------------------------------------------------------- /docs/build/html/_static/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/down.png -------------------------------------------------------------------------------- /docs/build/html/_static/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/file.png -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Inconsolata-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Inconsolata-Bold.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Inconsolata-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Inconsolata-Regular.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Inconsolata.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Inconsolata.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato-Bold.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato-Regular.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-bold.eot -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-bold.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-bold.woff -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-bold.woff2 -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-bolditalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-bolditalic.eot -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-bolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-bolditalic.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-bolditalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-bolditalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff2 -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-italic.eot -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-italic.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-italic.woff -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-italic.woff2 -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-regular.eot -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-regular.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-regular.woff -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/Lato/lato-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/Lato/lato-regular.woff2 -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/RobotoSlab-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/RobotoSlab-Bold.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/RobotoSlab-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/RobotoSlab-Regular.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /docs/build/html/_static/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /docs/build/html/_static/js/theme.js: -------------------------------------------------------------------------------- 1 | /* sphinx_rtd_theme version 0.4.3 | MIT license */ 2 | /* Built 20190212 16:02 */ 3 | require=function r(s,a,l){function c(e,n){if(!a[e]){if(!s[e]){var i="function"==typeof require&&require;if(!n&&i)return i(e,!0);if(u)return u(e,!0);var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}var o=a[e]={exports:{}};s[e][0].call(o.exports,function(n){return c(s[e][1][n]||n)},o,o.exports,r,s,a,l)}return a[e].exports}for(var u="function"==typeof require&&require,n=0;n"),i("table.docutils.footnote").wrap("
"),i("table.docutils.citation").wrap("
"),i(".wy-menu-vertical ul").not(".simple").siblings("a").each(function(){var e=i(this);expand=i(''),expand.on("click",function(n){return t.toggleCurrent(e),n.stopPropagation(),!1}),e.prepend(expand)})},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),i=e.find('[href="'+n+'"]');if(0===i.length){var t=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(i=e.find('[href="#'+t.attr("id")+'"]')).length&&(i=e.find('[href="#"]'))}0this.docHeight||(this.navBar.scrollTop(i),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",function(){this.linkScroll=!1})},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:e.exports.ThemeNav,StickyNav:e.exports.ThemeNav}),function(){for(var r=0,n=["ms","moz","webkit","o"],e=0;e0 62 | var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 63 | var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 64 | var s_v = "^(" + C + ")?" + v; // vowel in stem 65 | 66 | this.stemWord = function (w) { 67 | var stem; 68 | var suffix; 69 | var firstch; 70 | var origword = w; 71 | 72 | if (w.length < 3) 73 | return w; 74 | 75 | var re; 76 | var re2; 77 | var re3; 78 | var re4; 79 | 80 | firstch = w.substr(0,1); 81 | if (firstch == "y") 82 | w = firstch.toUpperCase() + w.substr(1); 83 | 84 | // Step 1a 85 | re = /^(.+?)(ss|i)es$/; 86 | re2 = /^(.+?)([^s])s$/; 87 | 88 | if (re.test(w)) 89 | w = w.replace(re,"$1$2"); 90 | else if (re2.test(w)) 91 | w = w.replace(re2,"$1$2"); 92 | 93 | // Step 1b 94 | re = /^(.+?)eed$/; 95 | re2 = /^(.+?)(ed|ing)$/; 96 | if (re.test(w)) { 97 | var fp = re.exec(w); 98 | re = new RegExp(mgr0); 99 | if (re.test(fp[1])) { 100 | re = /.$/; 101 | w = w.replace(re,""); 102 | } 103 | } 104 | else if (re2.test(w)) { 105 | var fp = re2.exec(w); 106 | stem = fp[1]; 107 | re2 = new RegExp(s_v); 108 | if (re2.test(stem)) { 109 | w = stem; 110 | re2 = /(at|bl|iz)$/; 111 | re3 = new RegExp("([^aeiouylsz])\\1$"); 112 | re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); 113 | if (re2.test(w)) 114 | w = w + "e"; 115 | else if (re3.test(w)) { 116 | re = /.$/; 117 | w = w.replace(re,""); 118 | } 119 | else if (re4.test(w)) 120 | w = w + "e"; 121 | } 122 | } 123 | 124 | // Step 1c 125 | re = /^(.+?)y$/; 126 | if (re.test(w)) { 127 | var fp = re.exec(w); 128 | stem = fp[1]; 129 | re = new RegExp(s_v); 130 | if (re.test(stem)) 131 | w = stem + "i"; 132 | } 133 | 134 | // Step 2 135 | re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; 136 | if (re.test(w)) { 137 | var fp = re.exec(w); 138 | stem = fp[1]; 139 | suffix = fp[2]; 140 | re = new RegExp(mgr0); 141 | if (re.test(stem)) 142 | w = stem + step2list[suffix]; 143 | } 144 | 145 | // Step 3 146 | re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; 147 | if (re.test(w)) { 148 | var fp = re.exec(w); 149 | stem = fp[1]; 150 | suffix = fp[2]; 151 | re = new RegExp(mgr0); 152 | if (re.test(stem)) 153 | w = stem + step3list[suffix]; 154 | } 155 | 156 | // Step 4 157 | re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; 158 | re2 = /^(.+?)(s|t)(ion)$/; 159 | if (re.test(w)) { 160 | var fp = re.exec(w); 161 | stem = fp[1]; 162 | re = new RegExp(mgr1); 163 | if (re.test(stem)) 164 | w = stem; 165 | } 166 | else if (re2.test(w)) { 167 | var fp = re2.exec(w); 168 | stem = fp[1] + fp[2]; 169 | re2 = new RegExp(mgr1); 170 | if (re2.test(stem)) 171 | w = stem; 172 | } 173 | 174 | // Step 5 175 | re = /^(.+?)e$/; 176 | if (re.test(w)) { 177 | var fp = re.exec(w); 178 | stem = fp[1]; 179 | re = new RegExp(mgr1); 180 | re2 = new RegExp(meq1); 181 | re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); 182 | if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) 183 | w = stem; 184 | } 185 | re = /ll$/; 186 | re2 = new RegExp(mgr1); 187 | if (re.test(w) && re2.test(w)) { 188 | re = /.$/; 189 | w = w.replace(re,""); 190 | } 191 | 192 | // and turn initial Y back to y 193 | if (firstch == "y") 194 | w = firstch.toLowerCase() + w.substr(1); 195 | return w; 196 | } 197 | } 198 | 199 | 200 | 201 | 202 | 203 | var splitChars = (function() { 204 | var result = {}; 205 | var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, 206 | 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702, 207 | 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971, 208 | 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345, 209 | 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761, 210 | 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, 211 | 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125, 212 | 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695, 213 | 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587, 214 | 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141]; 215 | var i, j, start, end; 216 | for (i = 0; i < singles.length; i++) { 217 | result[singles[i]] = true; 218 | } 219 | var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709], 220 | [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161], 221 | [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568], 222 | [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807], 223 | [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047], 224 | [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383], 225 | [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450], 226 | [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547], 227 | [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673], 228 | [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820], 229 | [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946], 230 | [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023], 231 | [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173], 232 | [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332], 233 | [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481], 234 | [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718], 235 | [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791], 236 | [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095], 237 | [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205], 238 | [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687], 239 | [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968], 240 | [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869], 241 | [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102], 242 | [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271], 243 | [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592], 244 | [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822], 245 | [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167], 246 | [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959], 247 | [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143], 248 | [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318], 249 | [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483], 250 | [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101], 251 | [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567], 252 | [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292], 253 | [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444], 254 | [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783], 255 | [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311], 256 | [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511], 257 | [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774], 258 | [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071], 259 | [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263], 260 | [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519], 261 | [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647], 262 | [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967], 263 | [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295], 264 | [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274], 265 | [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007], 266 | [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381], 267 | [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]]; 268 | for (i = 0; i < ranges.length; i++) { 269 | start = ranges[i][0]; 270 | end = ranges[i][1]; 271 | for (j = start; j <= end; j++) { 272 | result[j] = true; 273 | } 274 | } 275 | return result; 276 | })(); 277 | 278 | function splitQuery(query) { 279 | var result = []; 280 | var start = -1; 281 | for (var i = 0; i < query.length; i++) { 282 | if (splitChars[query.charCodeAt(i)]) { 283 | if (start !== -1) { 284 | result.push(query.slice(start, i)); 285 | start = -1; 286 | } 287 | } else if (start === -1) { 288 | start = i; 289 | } 290 | } 291 | if (start !== -1) { 292 | result.push(query.slice(start)); 293 | } 294 | return result; 295 | } 296 | 297 | 298 | -------------------------------------------------------------------------------- /docs/build/html/_static/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/minus.png -------------------------------------------------------------------------------- /docs/build/html/_static/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/plus.png -------------------------------------------------------------------------------- /docs/build/html/_static/pygments.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #f8f8f8; } 3 | .highlight .c { color: #408080; font-style: italic } /* Comment */ 4 | .highlight .err { border: 1px solid #FF0000 } /* Error */ 5 | .highlight .k { color: #008000; font-weight: bold } /* Keyword */ 6 | .highlight .o { color: #666666 } /* Operator */ 7 | .highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */ 8 | .highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */ 9 | .highlight .cp { color: #BC7A00 } /* Comment.Preproc */ 10 | .highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ 11 | .highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */ 12 | .highlight .cs { color: #408080; font-style: italic } /* Comment.Special */ 13 | .highlight .gd { color: #A00000 } /* Generic.Deleted */ 14 | .highlight .ge { font-style: italic } /* Generic.Emph */ 15 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 16 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 17 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 18 | .highlight .go { color: #888888 } /* Generic.Output */ 19 | .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ 20 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 21 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 22 | .highlight .gt { color: #0044DD } /* Generic.Traceback */ 23 | .highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ 24 | .highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ 25 | .highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ 26 | .highlight .kp { color: #008000 } /* Keyword.Pseudo */ 27 | .highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ 28 | .highlight .kt { color: #B00040 } /* Keyword.Type */ 29 | .highlight .m { color: #666666 } /* Literal.Number */ 30 | .highlight .s { color: #BA2121 } /* Literal.String */ 31 | .highlight .na { color: #7D9029 } /* Name.Attribute */ 32 | .highlight .nb { color: #008000 } /* Name.Builtin */ 33 | .highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ 34 | .highlight .no { color: #880000 } /* Name.Constant */ 35 | .highlight .nd { color: #AA22FF } /* Name.Decorator */ 36 | .highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ 37 | .highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ 38 | .highlight .nf { color: #0000FF } /* Name.Function */ 39 | .highlight .nl { color: #A0A000 } /* Name.Label */ 40 | .highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ 41 | .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ 42 | .highlight .nv { color: #19177C } /* Name.Variable */ 43 | .highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ 44 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 45 | .highlight .mb { color: #666666 } /* Literal.Number.Bin */ 46 | .highlight .mf { color: #666666 } /* Literal.Number.Float */ 47 | .highlight .mh { color: #666666 } /* Literal.Number.Hex */ 48 | .highlight .mi { color: #666666 } /* Literal.Number.Integer */ 49 | .highlight .mo { color: #666666 } /* Literal.Number.Oct */ 50 | .highlight .sa { color: #BA2121 } /* Literal.String.Affix */ 51 | .highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ 52 | .highlight .sc { color: #BA2121 } /* Literal.String.Char */ 53 | .highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ 54 | .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ 55 | .highlight .s2 { color: #BA2121 } /* Literal.String.Double */ 56 | .highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ 57 | .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ 58 | .highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ 59 | .highlight .sx { color: #008000 } /* Literal.String.Other */ 60 | .highlight .sr { color: #BB6688 } /* Literal.String.Regex */ 61 | .highlight .s1 { color: #BA2121 } /* Literal.String.Single */ 62 | .highlight .ss { color: #19177C } /* Literal.String.Symbol */ 63 | .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ 64 | .highlight .fm { color: #0000FF } /* Name.Function.Magic */ 65 | .highlight .vc { color: #19177C } /* Name.Variable.Class */ 66 | .highlight .vg { color: #19177C } /* Name.Variable.Global */ 67 | .highlight .vi { color: #19177C } /* Name.Variable.Instance */ 68 | .highlight .vm { color: #19177C } /* Name.Variable.Magic */ 69 | .highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ -------------------------------------------------------------------------------- /docs/build/html/_static/underscore.js: -------------------------------------------------------------------------------- 1 | // Underscore.js 1.3.1 2 | // (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. 3 | // Underscore is freely distributable under the MIT license. 4 | // Portions of Underscore are inspired or borrowed from Prototype, 5 | // Oliver Steele's Functional, and John Resig's Micro-Templating. 6 | // For all details and documentation: 7 | // http://documentcloud.github.com/underscore 8 | (function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source== 9 | c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c, 10 | h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var j=b.each= 11 | b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e2;a== 12 | null&&(a=[]);if(y&&a.reduce===y)return e&&(c=b.bind(c,e)),f?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){f?d=c.call(e,d,a,b,i):(d=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(z&&a.reduceRight===z)return e&&(c=b.bind(c,e)),f?a.reduceRight(c,d):a.reduceRight(c);var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect= 13 | function(a,c,b){var e;E(a,function(a,g,h){if(c.call(b,a,g,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(A&&a.filter===A)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(B&&a.every===B)return a.every(c,b);j(a,function(a,g,h){if(!(e= 14 | e&&c.call(b,a,g,h)))return n});return e};var E=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(C&&a.some===C)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return n});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return p&&a.indexOf===p?a.indexOf(c)!=-1:b=E(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck= 15 | function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;bd?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a, 17 | c,d){d||(d=b.identity);for(var e=0,f=a.length;e>1;d(a[g])=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1));return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e=0;d--)b=[a[d].apply(this,b)];return b[0]}}; 24 | b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=J||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.defaults=function(a){j(i.call(arguments, 25 | 1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return q(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=o||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)}; 26 | b.isArguments=function(a){return l.call(a)=="[object Arguments]"};if(!b.isArguments(arguments))b.isArguments=function(a){return!(!a||!b.has(a,"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"}; 27 | b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,b){return I.call(a,b)};b.noConflict=function(){r._=G;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")};b.mixin=function(a){j(b.functions(a), 28 | function(c){K(c,b[c]=a[c])})};var L=0;b.uniqueId=function(a){var b=L++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var t=/.^/,u=function(a){return a.replace(/\\\\/g,"\\").replace(/\\'/g,"'")};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape||t,function(a,b){return"',_.escape("+ 29 | u(b)+"),'"}).replace(d.interpolate||t,function(a,b){return"',"+u(b)+",'"}).replace(d.evaluate||t,function(a,b){return"');"+u(b).replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var v=function(a,c){return c?b(a).chain():a},K=function(a,c){m.prototype[a]= 30 | function(){var a=i.call(arguments);H.call(a,this._wrapped);return v(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return v(d,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return v(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain= 31 | true;return this};m.prototype.value=function(){return this._wrapped}}).call(this); 32 | -------------------------------------------------------------------------------- /docs/build/html/_static/up-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/up-pressed.png -------------------------------------------------------------------------------- /docs/build/html/_static/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/_static/up.png -------------------------------------------------------------------------------- /docs/build/html/cookbook.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Cookbook — Cal-Adapt API Docs 1.0 documentation 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 | 103 | 104 |
105 | 106 | 107 | 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 |
  • Docs »
  • 140 | 141 |
  • Cookbook
  • 142 | 143 | 144 |
  • 145 | 146 | 147 | View page source 148 | 149 | 150 |
  • 151 | 152 |
153 | 154 | 155 |
156 |
157 |
158 |
159 | 160 |
161 |

Cookbook

162 |

This is a list of tutorials and code samples we have developed for working with the Cal-Adapt API. If you would like to contribute to this list or see some other examples contact us at support@cal-adapt.org.

163 | 196 |
197 | 198 | 199 |
200 | 201 |
202 |
203 | 204 | 210 | 211 | 212 |
213 | 214 |
215 |

216 | © Copyright 2017, Geospatial Innovation Facility, UC Berkeley 217 | 218 |

219 |
220 | Built with Sphinx using a theme provided by Read the Docs. 221 | 222 |
223 | 224 |
225 |
226 | 227 |
228 | 229 |
230 | 231 | 232 | 233 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | -------------------------------------------------------------------------------- /docs/build/html/genindex.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Index — Cal-Adapt API Docs 1.0 documentation 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 | 100 | 101 |
102 | 103 | 104 | 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 |
  • Docs »
  • 137 | 138 |
  • Index
  • 139 | 140 | 141 |
  • 142 | 143 | 144 | 145 |
  • 146 | 147 |
148 | 149 | 150 |
151 |
152 |
153 |
154 | 155 | 156 |

Index

157 | 158 |
159 | 160 |
161 | 162 | 163 |
164 | 165 |
166 |
167 | 168 | 169 |
170 | 171 |
172 |

173 | © Copyright 2017, Geospatial Innovation Facility, UC Berkeley 174 | 175 |

176 |
177 | Built with Sphinx using a theme provided by Read the Docs. 178 | 179 |
180 | 181 |
182 |
183 | 184 |
185 | 186 |
187 | 188 | 189 | 190 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | -------------------------------------------------------------------------------- /docs/build/html/http-routingtable.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | HTTP Routing Table — Cal-Adapt API Docs 1.0 documentation 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 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
51 | 52 | 106 | 107 |
108 | 109 | 110 | 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 |
  • Docs »
  • 143 | 144 |
  • HTTP Routing Table
  • 145 | 146 | 147 |
  • 148 | 149 |
  • 150 | 151 |
152 | 153 | 154 |
155 |
156 |
157 |
158 | 159 | 160 |

HTTP Routing Table

161 | 162 |
163 | /api 164 |
165 | 166 | 167 | 168 | 170 | 171 | 172 | 175 | 176 | 177 | 180 | 181 | 182 | 185 | 186 | 187 | 190 | 191 | 192 | 195 | 196 | 197 | 200 | 201 | 202 | 205 | 206 | 207 | 210 | 211 | 212 | 215 | 216 | 217 | 220 | 221 | 222 | 225 | 226 | 227 | 230 |
 
169 | /api
173 | GET /api/rstores/ 174 |
178 | GET /api/rstores/{slug}/ 179 |
183 | GET /api/series/ 184 |
188 | GET /api/series/{slug}/ 189 |
193 | GET /api/series/{slug}/cdd/ 194 |
198 | GET /api/series/{slug}/events/ 199 |
203 | GET /api/series/{slug}/exheat/ 204 |
208 | GET /api/series/{slug}/hdd/ 209 |
213 | GET /api/series/{slug}/pot/ 214 |
218 | GET /api/series/{slug}/rasters/ 219 |
223 | GET /api/series/{slug}/{begin}/{end}/ 224 |
228 | POST /api/series/{slug}/events/ 229 |
231 | 232 | 233 |
234 | 235 |
236 |
237 | 238 | 239 |
240 | 241 |
242 |

243 | © Copyright 2017, Geospatial Innovation Facility, UC Berkeley 244 | 245 |

246 |
247 | Built with Sphinx using a theme provided by Read the Docs. 248 | 249 |
250 | 251 |
252 |
253 | 254 |
255 | 256 |
257 | 258 | 259 | 260 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | -------------------------------------------------------------------------------- /docs/build/html/objects.inv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/build/html/objects.inv -------------------------------------------------------------------------------- /docs/build/html/search.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Search — Cal-Adapt API Docs 1.0 documentation 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 | 100 | 101 |
102 | 103 | 104 | 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 |
  • Docs »
  • 137 | 138 |
  • Search
  • 139 | 140 | 141 |
  • 142 | 143 | 144 | 145 |
  • 146 | 147 |
148 | 149 | 150 |
151 |
152 |
153 |
154 | 155 | 163 | 164 | 165 |
166 | 167 |
168 | 169 |
170 | 171 |
172 |
173 | 174 | 175 |
176 | 177 |
178 |

179 | © Copyright 2017, Geospatial Innovation Facility, UC Berkeley 180 | 181 |

182 |
183 | Built with Sphinx using a theme provided by Read the Docs. 184 | 185 |
186 | 187 |
188 |
189 | 190 |
191 | 192 |
193 | 194 | 195 | 196 | 201 | 202 | 203 | 204 | 205 | 206 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | -------------------------------------------------------------------------------- /docs/build/html/searchindex.js: -------------------------------------------------------------------------------- 1 | Search.setIndex({docnames:["cookbook","data-catalog","getting-started","index","indicator","raster-store","series"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":1,sphinx:54},filenames:["cookbook.rst","data-catalog.rst","getting-started.rst","index.rst","indicator.rst","raster-store.rst","series.rst"],objects:{"":{"/api/rstores/":[5,0,1,"get--api-rstores-"],"/api/rstores/{slug}/":[5,0,1,"get--api-rstores-slug-"],"/api/series/":[6,0,1,"get--api-series-"],"/api/series/{slug}/":[6,0,1,"get--api-series-slug-"],"/api/series/{slug}/cdd/":[4,0,1,"get--api-series-slug-cdd-"],"/api/series/{slug}/events/":[6,1,1,"post--api-series-slug-events-"],"/api/series/{slug}/exheat/":[4,0,1,"get--api-series-slug-exheat-"],"/api/series/{slug}/hdd/":[4,0,1,"get--api-series-slug-hdd-"],"/api/series/{slug}/pot/":[4,0,1,"get--api-series-slug-pot-"],"/api/series/{slug}/rasters/":[6,0,1,"get--api-series-slug-rasters-"],"/api/series/{slug}/{begin}/{end}/":[6,0,1,"get--api-series-slug-begin-end-"]}},objnames:{"0":["http","get","HTTP get"],"1":["http","post","HTTP post"]},objtypes:{"0":"http:get","1":"http:post"},terms:{"0000000150474662e":[5,6],"00z":[2,4,6],"01t00":[2,6],"02t00":6,"03t00":6,"0_rcp45":4,"10a":[4,6],"114th":1,"16th":[5,6],"28t00":6,"31t00":[2,4,6],"98p":4,"98th":4,"avanc\u00e9":1,"boolean":6,"default":[2,4,5,6],"europ\u00e9en":1,"float":[4,6],"long":0,"m\u00e9t\u00e9orologiqu":1,"new":[1,3],"null":[2,6],"public":1,"return":[2,4,6],"switch":1,"var":6,AMS:4,CMS:1,GIS:3,Not:6,The:[1,2,3,4,6],Use:6,WGS:[5,6],With:3,abl:3,abov:[2,4,6],accept:[2,4,5,6],access1:1,access:[2,3],activ:1,actual:3,adapt:[0,1,2,4,5,6],adding:[1,2,3,6],addit:[1,2],administr:1,advisori:3,affect:3,agenc:1,aggreg:[1,4,6],all:[2,5,6],allow:[3,4,5,6],also:1,analysi:[1,4],ani:[3,4,6],anim:0,annual:[0,1,4],api:[0,1,4,5,6],appli:6,applic:[2,3,4,5,6],approxim:1,april:4,architectur:3,area:1,around:1,arrai:4,askew:6,assess:1,associ:5,atmospher:1,australia:1,authent:3,author:[5,6],avail:[1,2,3,4,6],averag:[0,1,5,6],back:3,bad:6,bai:1,base:3,basic:0,bbox:6,been:[1,3],begin:[2,6],beginn:1,below:4,berkelei:[1,3],beta:3,between:4,bgc:1,bia:1,blog:3,bom:1,bound:[5,6],boundari:[0,1],box:[5,6],browsabl:3,browser:[2,3],build:4,built:3,bureau:1,ca_nv:[5,6],cal:[0,1,2,4,5,6],cal_adapt:3,calcul:[0,1],calenviroscreen:1,calflod:1,california:[1,3],call:3,cambiamenti:1,can:[2,3,4,5,6],canadian:1,canesm2:1,capac:1,catalog:3,ccsm4:1,cdd:4,cdistrict:1,cell:6,censu:1,censustract:1,centr:1,centro:1,centuri:4,cesm1:1,chang:3,character:4,charset:2,chart:[0,4],check:[3,6],client:[2,3],climat:[0,3,5,6],climatici:1,climregion:1,cm3:1,cm5:[1,2,5,6],cm5_rcp45:6,cm5_rcp45_2006:6,cm5_rcp45_2007:6,cm5_rcp45_2008:6,cm5_rcp45_2030:5,cm5_rcp45_h_mu:2,cm5_rcp45_h_mu_1954:2,cm5_rcp45_h_mu_1955:2,cm5_rcp45_h_mu_1956:2,cm5_rcp45_l_mu:2,cm5_rcp45_l_mu_1954:2,cm5_rcp45_l_mu_1955:2,cm5_rcp45_l_mu_1956:2,cm5_rcp45_r1i1p1_2006:6,cm5_rcp45_r1i1p1_2007:6,cm5_rcp45_r1i1p1_2030:5,cmcc:1,cnrm:[1,2,5,6],coast:1,code:[0,6],cog:3,collect:6,column:6,com:3,comma:[2,4],command:2,commiss:3,commonwealth:1,commun:[1,3],compos:[5,6],compris:6,comput:[1,3],concentr:1,condit:1,confid:4,confirm:2,congression:1,consist:6,consum:2,contact:[0,3],contain:[5,6],content:[2,4,5,6],contenti:2,context:6,continu:[1,3],contribut:[0,3],contributor:1,control:[2,6],conveni:2,cookbook:3,cool:[0,3],coordin:5,correct:1,count:[2,4,6],counti:[0,1],csiro:1,csv:[2,6],curl:[2,6],current:2,dai:[0,1,3],daili:[0,1,4,6],data:[0,2,3,4,6],dataset:[1,2,3,5,6],date:[1,5,6],datum:[5,6],declin:1,defin:4,degre:[0,3,5,6],delta:1,demand:4,depend:6,descript:6,design:[1,3],desktop:3,detail:3,develop:[0,3],diego:1,differ:1,dimens:5,district:1,django:3,document:3,doe:2,domain:3,download:3,downscal:1,drought:[0,1],durat:4,dynam:1,each:[1,2,3,4,5,6],earth:[1,2],easi:2,easier:2,easili:3,electr:1,electricutil:1,emiss:1,end:[2,4,6],endpoint:1,energi:[3,4],entir:[3,6],entri:3,envelop:1,environment:1,epsg:[5,6],equival:1,error:6,es_rcp85:[4,6],espaciai:1,estim:4,etc:3,euro:1,eva:4,event:[4,5,6],everi:3,exampl:[0,2,3,4,5,6],exce:4,exceed:4,exheat:4,experiment:0,extend:1,extrem:[0,3],facil:3,fals:6,featur:[3,6],feedback:3,fetch:2,field:[4,5,6],file:[1,2,5,6],filter:6,find:1,fire:[1,2],fire_cnrm:2,fluid:1,follow:[1,2,3],form:6,format:[1,2,6],found:6,fourth:1,frame:4,framework:3,francisco:1,freq:[4,6],frequenc:[4,6],friendli:[5,6],from:[0,1,4,6],fund:3,fundament:3,futur:2,gcm:3,gener:[0,3,5,6],geo:2,geogc:[5,6],geojson:[2,4,6],geom:[5,6],geometri:[0,4,6],geophys:1,geospati:3,geotiff:2,get:[0,4,5,6],gfdl:1,gif:3,given:6,global:3,gml:[4,6],googl:2,greenwich:[5,6],grid:[1,6],guid:1,hadgem2:1,hadlei:1,has:[1,3,5,6],have:[0,1,3],hdd:4,header:[2,6],heat:[0,3],heatmap:0,height:[5,6],here:3,high:2,histor:[1,4],host:[2,3,4,5,6],how:3,howev:2,html:2,http:[2,3,4,5,6],huc10:1,hydro:1,hydrolog:1,hydrounit:1,identifi:[2,4,5,6],imag:[5,6],img:[5,6],imperi:6,implement:2,imposs:3,inch:4,includ:[4,5],incorpor:1,incorrect:6,index:[4,6],indic:3,individu:[5,6],industri:1,infiltr:1,inform:[1,3,4,5],innov:3,institut:1,instituto:1,integ:[4,5,6],integr:1,interact:3,interfac:3,intern:6,intersect:6,interv:4,investor:1,ipcc:1,irwm:1,item:4,its:5,japan:1,javascript:2,joaquin:1,json:[2,4,5,6],jupyt:3,kei:[2,3],keyhol:2,kml:[2,4,6],kmz:2,know:3,knowledg:3,laboratori:1,languag:[2,3],larg:2,leroi:1,let:3,level:[0,1,2,3,4],librari:3,like:[0,2,3,5],line:[4,6],link:[2,5],list:[0,1,2,3,4],livneh:1,load:1,loca:1,loca_2016:[5,6],locagrid:1,local:3,locat:[0,1,4,6],love:3,low:2,lower:4,mai:[1,2,6],maintain:2,make:[0,2,3],manag:1,map:5,marin:1,markup:2,matplotlib:0,max:[4,5,6],maxima:4,maximum:[0,1,4,5,6],maxval:[5,6],mean:[4,6],measur:[4,5],media:[5,6],median:[4,6],mediterraneo:1,merc:[1,2],messag:[3,6],met:1,meteorolog:1,methodolog:4,miami:1,mid:4,might:3,min:[4,5,6],minimum:[1,4],minmum:0,minval:[5,6],miroc5:1,model:[3,5,6],month:1,monthli:[0,1,6],more:[3,4],most:1,multipl:6,nacion:1,name:[2,5,6],nation:1,necessari:2,need:[2,3],negoti:2,netcdf:1,next:[2,6],night:3,noaa:1,nodata:[5,6],notat:2,notebook:3,number:[2,4,5,6],object:2,observ:[1,4],ocean:1,oceanographi:1,octob:4,offer:3,offic:1,offset:[4,6],ogr:6,one:[4,6],onli:[2,3,4,6],open:[2,3],option:[4,5,6],org:[0,2,3,4,5,6],organ:[1,3],other:[0,1,3],our:[3,6],out:1,over:4,overridden:2,oversight:3,overview:[0,2],own:[1,3,5,6],page:[2,5,6],pages:[2,5,6],pagin:3,panda:[0,4,6],param:[4,6],paramet:[2,4,5,6],part:[2,6],particip:3,pathwai:1,pattern:3,pct:4,peak:[1,4],per:[1,2],percentil:4,perform:2,period:[3,5,6],pesquisa:1,pierc:1,pixel:5,place:1,plan:[2,3],plateau:1,pleas:3,plot:0,png:[5,6],point:[3,4,6],polygon:[0,4,5,6],popul:2,portrai:1,post:[4,5,6],pot:4,potenti:3,pr_day_access1:4,precip:1,precipit:[0,1,3],preview:3,previou:[2,6],primem:[5,6],prioriti:1,produc:[1,3],program:3,programmat:3,project:1,properti:2,protocol:3,provid:[2,3,4,5,6],python:3,queri:[2,4,5,6],question:3,quick:[0,2],radk:1,rang:2,raster:[1,2,3],rcp45:[1,2],rcp85:1,rcp:[1,5,6],read:2,recherch:1,recommend:3,record:[2,5,6],refer:[1,4,5],reflect:1,regard:5,region:1,repres:1,represent:3,request:[2,3,4,5,6],requir:2,resampl:[4,6],research:[1,3],resolut:5,resourc:[0,1,2,3,5,6],respect:6,respond:3,respons:[2,3,4,5,6],result:[2,6],retriev:[0,6],returnlevel:4,rise:[0,1],roll:6,root:2,rsma:1,rstore:[2,5,6],sacramento:[0,1],same:6,sampl:0,san:1,satisfi:3,scenario:[0,2,3,5,6],scienc:1,scientif:[1,3],scientifiqu:1,score:1,scripp:1,script:3,sea:[0,1],search:[0,5,6],see:[0,1,2,4,6],select:[1,2],send:[3,6],separ:[2,4],seri:[1,2,3,4],server:[1,2,3,6],set:6,share:3,sign:2,singl:[3,6],site:3,size:6,slice:6,slr:1,slr_coast:1,slr_delta:1,slr_sfbai:1,slug:[2,4,5,6],snow:1,softwar:3,some:0,someth:6,sourc:3,spatial:[4,5,6],specialist:3,specif:3,specifi:[2,4],spheroid:[5,6],spillwai:3,srs:[5,6],start:[3,6],stat:[0,4,6],state:[1,3],statist:[5,6],statu:[3,6],std:6,store:[3,6],strategi:3,streamflow:1,string:[4,6],strongli:1,structur:6,studi:1,style:3,subset:6,sum:[4,6],summar:4,summari:[0,6],support:[0,2,3,6],swe:1,system:[1,3,5],tag:[2,6],tasmax:[1,4,6],tasmax_day_hadgem2:[4,6],tasmax_year_cnrm:[5,6],tasmin:[1,4],technolog:1,temperatur:[0,1,4,5,6],templat:5,tempor:[1,6],test:2,text:2,thank:3,thei:[3,4],thi:[0,1,2,3,6],thresh:[4,6],threshold:[4,6],throttl:2,through:1,tif:[2,5,6],tile:[5,6],tileurl:[5,6],time:[3,4],timestep:5,tokyo:1,tool:[3,4],top:3,tract:1,transfer:3,transport:3,tutori:[0,3],twitter:3,two:[1,3],type:[2,3,4,5,6],uniqu:[1,5,6],unit:[4,5,6],univers:1,updat:3,upload:6,upper:4,url:[1,2,3,5,6],use:[3,4,6],used:[2,3,4],user:[2,3],uses:3,using:[0,1,2,3,4,6],utf:2,util:1,valid:4,valu:[1,2,4,5,6],vari:[2,4,5,6],variabl:[0,3,5,6],vector:[2,3],vic:1,view:3,visibl:3,visit:2,visual:3,vnd:2,warm:3,water:1,watersh:1,wave:3,wealth:3,web:[2,3],websit:3,wecc:1,westerl:1,wgs_1984:[5,6],what:1,when:[2,3,4,6],where:6,wherea:6,which:[2,3],wide:2,width:[5,6],wildfir:[0,1,2],window:6,without:3,wkt:[4,6],work:[0,2,3],would:[0,3],wrong:6,xml:2,xpixsiz:[5,6],year:[1,4],yearli:[5,6],you:[0,2,3],your:3,ypixsiz:[5,6],zip:[2,6],zone:1},titles:["Cookbook","Data Catalog","Getting Started","About Cal-Adapt","Climate Indicators","Raster Store","Raster Series"],titleterms:{"public":3,about:3,adapt:3,api:[2,3],authent:2,browsabl:2,build:3,cal:3,catalog:1,climat:[1,4],content:3,cookbook:0,cool:4,dai:4,data:1,degre:4,detail:[5,6],did:3,entri:2,extrem:4,gcm:1,get:[2,3],global:1,heat:4,indic:4,jupyt:0,list:[5,6],model:1,night:4,notebook:0,pagin:2,period:1,point:2,precipit:4,raster:[5,6],represent:2,rest:3,scenario:1,seri:6,start:2,store:5,tabl:3,time:6,touch:3,variabl:1,vector:1,view:2,warm:4,wave:4,what:3,why:3}}) -------------------------------------------------------------------------------- /docs/build/html/vector-data.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Working with Series — Cal-Adapt API Docs 1.0 documentation 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
49 | 50 | 51 | 103 | 104 |
105 | 106 | 107 | 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 |
  • Docs »
  • 139 | 140 |
  • Working with Series
  • 141 | 142 | 143 |
  • 144 | 145 | 146 | View page source 147 | 148 | 149 |
  • 150 | 151 |
152 | 153 | 154 |
155 |
156 |
157 |
158 | 159 | 160 | 193 |
194 |

Working with Series

195 |

A timeseries is a collection of rasters and is represented by the endpoint:

196 |
197 |

198 | 
199 |
200 |

http://api.cal-adapt.org/api/series

201 |
202 | 285 |
286 | 287 | 288 |
289 |
290 | 291 |
292 |
293 |
294 | 295 | 296 |
297 | 298 |
299 |

300 | © Copyright 2017, Geospatial Innovation Facility, UC Berkeley. 301 | 302 |

303 |
304 | Built with Sphinx using a theme provided by Read the Docs. 305 | 306 |
307 | 308 |
309 |
310 | 311 |
312 | 313 |
314 | 315 | 316 | 317 | 318 | 319 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 348 | 349 | 350 | 351 | -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # caladapt-docs documentation build configuration file, created by 5 | # sphinx-quickstart on Tue May 2 14:08:15 2017. 6 | # 7 | # This file is execfile()d with the current directory set to its 8 | # containing dir. 9 | # 10 | # Note that not all possible configuration values are present in this 11 | # autogenerated file. 12 | # 13 | # All configuration values have a default; values that are commented out 14 | # serve to show the default. 15 | 16 | # If extensions (or modules to document with autodoc) are in another directory, 17 | # add these directories to sys.path here. If the directory is relative to the 18 | # documentation root, use os.path.abspath to make it absolute, like shown here. 19 | # 20 | # import os 21 | # import sys 22 | # sys.path.insert(0, os.path.abspath('.')) 23 | 24 | import sphinx_rtd_theme 25 | 26 | # -- General configuration ------------------------------------------------ 27 | 28 | # If your documentation needs a minimal Sphinx version, state it here. 29 | # 30 | # needs_sphinx = '1.0' 31 | 32 | # Add any Sphinx extension module names here, as strings. They can be 33 | # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom 34 | # ones. 35 | extensions = [ 36 | 'sphinx.ext.autodoc', 37 | 'sphinx.ext.intersphinx', 38 | 'sphinx.ext.todo', 39 | 'sphinx.ext.mathjax', 40 | #'sphinx.ext.githubpages', 41 | 'sphinxcontrib.httpdomain', 42 | ] 43 | 44 | # Add any paths that contain templates here, relative to this directory. 45 | templates_path = ['_templates'] 46 | 47 | # The suffix(es) of source filenames. 48 | # You can specify multiple suffix as a list of string: 49 | # 50 | # source_suffix = ['.rst', '.md'] 51 | source_suffix = '.rst' 52 | 53 | # The master toctree document. 54 | master_doc = 'index' 55 | 56 | # General information about the project. 57 | project = 'Cal-Adapt API Docs' 58 | copyright = '2017, Geospatial Innovation Facility, UC Berkeley' 59 | author = 'Geospatial Innovation Facility, UC Berkeley' 60 | 61 | # The version info for the project you're documenting, acts as replacement for 62 | # |version| and |release|, also used in various other places throughout the 63 | # built documents. 64 | # 65 | # The short X.Y version. 66 | version = '1.0' 67 | # The full version, including alpha/beta/rc tags. 68 | release = '1.0' 69 | 70 | # The language for content autogenerated by Sphinx. Refer to documentation 71 | # for a list of supported languages. 72 | # 73 | # This is also used if you do content translation via gettext catalogs. 74 | # Usually you set "language" from the command line for these cases. 75 | language = None 76 | 77 | # List of patterns, relative to source directory, that match files and 78 | # directories to ignore when looking for source files. 79 | # This patterns also effect to html_static_path and html_extra_path 80 | exclude_patterns = ['Thumbs.db', '.DS_Store'] 81 | 82 | # The name of the Pygments (syntax highlighting) style to use. 83 | # pygments_style = 'tango' 84 | 85 | # If true, `todo` and `todoList` produce output, else they produce nothing. 86 | todo_include_todos = True 87 | 88 | 89 | # -- Options for HTML output ---------------------------------------------- 90 | 91 | # The theme to use for HTML and HTML Help pages. See the documentation for 92 | # a list of builtin themes. 93 | # 94 | html_theme = 'sphinx_rtd_theme' 95 | 96 | # Theme options are theme-specific and customize the look and feel of a theme 97 | # further. For a list of options available for each theme, see the 98 | # documentation. 99 | # 100 | # html_theme_options = {} 101 | html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] 102 | 103 | # Add any paths that contain custom static files (such as style sheets) here, 104 | # relative to this directory. They are copied after the builtin static files, 105 | # so a file named "default.css" will overwrite the builtin "default.css". 106 | html_static_path = ['_static'] 107 | 108 | 109 | # -- Options for HTMLHelp output ------------------------------------------ 110 | 111 | # Output file base name for HTML help builder. 112 | htmlhelp_basename = 'caladaptdocs' 113 | 114 | 115 | # -- Options for LaTeX output --------------------------------------------- 116 | 117 | latex_elements = { 118 | # The paper size ('letterpaper' or 'a4paper'). 119 | # 120 | # 'papersize': 'letterpaper', 121 | 122 | # The font size ('10pt', '11pt' or '12pt'). 123 | # 124 | # 'pointsize': '10pt', 125 | 126 | # Additional stuff for the LaTeX preamble. 127 | # 128 | # 'preamble': '', 129 | 130 | # Latex figure (float) alignment 131 | # 132 | # 'figure_align': 'htbp', 133 | } 134 | 135 | # Grouping the document tree into LaTeX files. List of tuples 136 | # (source start file, target name, title, 137 | # author, documentclass [howto, manual, or own class]). 138 | latex_documents = [ 139 | (master_doc, 'caladapt-docs.tex', 'Cal-Adapt API Documentation', 140 | 'Geospatial Innovation Facility, UC Berkeley', 'manual'), 141 | ] 142 | 143 | 144 | # -- Options for manual page output --------------------------------------- 145 | 146 | # One entry per manual page. List of tuples 147 | # (source start file, name, description, authors, manual section). 148 | man_pages = [ 149 | (master_doc, 'caladapt-docs', 'Cal-Adapt API Documentation', [author], 1) 150 | ] 151 | 152 | 153 | # -- Options for Texinfo output ------------------------------------------- 154 | 155 | # Grouping the document tree into Texinfo files. List of tuples 156 | # (source start file, target name, title, author, 157 | # dir menu entry, description, category) 158 | texinfo_documents = [ 159 | (master_doc, 'caladapt-docs', 'Cal-Adapt API Documentation', 160 | author, 'caladapt-docs', 'One line description of project.', 161 | 'Miscellaneous'), 162 | ] 163 | 164 | 165 | # Example configuration for intersphinx: refer to the Python standard library. 166 | intersphinx_mapping = {'https://docs.python.org/': None} 167 | -------------------------------------------------------------------------------- /docs/source/cookbook.rst: -------------------------------------------------------------------------------- 1 | .. _cookbook: 2 | 3 | 4 | *************** 5 | Cookbook 6 | *************** 7 | 8 | This is a list of tutorials and code samples we have developed for working with the Cal-Adapt API. If you would like to contribute to this list or see some other examples contact us at `support@cal-adapt.org `_. 9 | 10 | 11 | .. _jupyter-notebooks: 12 | 13 | Jupyter Notebooks 14 | ================== 15 | 16 | * General 17 | 18 | * `Searching for resources `_ 19 | * `Get data for a Location `_ 20 | * `Get polygon geometry from boundaries `_ 21 | * `A quick overview of working with Pandas `_ 22 | 23 | * Working with Annual Averages 24 | 25 | * `Some basic plots with MatplotLib `_ 26 | * `Making an animated heatmap `_ 27 | * `Calculate summary stats for Sacramento County `_ 28 | * `Retrieve data for temperature and precipitation `_ 29 | 30 | * Working with Daily Data 31 | 32 | * `Calculate Extreme Heat Days `_ 33 | * `Calculating monthly and annual averages from daily data `_ 34 | * `Calculating Cooling & Heating Degree Days from daily maximum and minmum temperatures `_ 35 | 36 | 37 | * Working with other climate variables 38 | 39 | * `Sea Level Rise `_ 40 | * `Experimental charts using wildfire data `_ 41 | * `Working with Long Drought Scenarios `_ 42 | -------------------------------------------------------------------------------- /docs/source/data-catalog.rst: -------------------------------------------------------------------------------- 1 | Data Catalog 2 | ============ 3 | We refer to the datasets in the Cal-Adapt API as resources. Each resource is represented by a unique endpoint (URL). The following is a list of climate datasets in the Cal-Adapt API. We are actively adding new resources to the API so this list may not reflect the most up to date information. 4 | 5 | 6 | Climate Variables 7 | ----------------- 8 | * LOCA downscaled climate projections from Scripps Institution of Oceanography, UC San Diego (`Pierce et al, 2014 `_). 9 | 10 | * Maximum Temperature ``tasmax``, Minimum Temperature ``tasmin``, Precipitation ``precip`` 11 | * Daily and annual averages 12 | * 10 GCMs, 3 scenarios, Envelope 13 | 14 | * Climate variables produced by the Variable Infiltration Capacity (VIC) model using downscaled LOCA data. 15 | 16 | * Snow Water Equivalence ``swe`` 17 | * Monthly averages 18 | * 10 GCMs, 3 scenarios 19 | 20 | * Gridded historical observed climate data from UW Hydro | Computational Hydrology (`Livneh et al, 2015 `_) 21 | 22 | * Maximum Temperature ``tasmax``, Minimum Temperature ``tasmin``, Precipitation ``precip`` 23 | * Daily and annual averages 24 | 25 | * Climate variables produced by the Variable Infiltration Capacity (VIC) model using gridded historical observed Livneh data. 26 | 27 | * Snow Water Equivalence ``swe`` 28 | * Monthly averages 29 | 30 | * Sea Level Rise (CalFloD-3D) for San Francisco Bay, Sacramento-San Joaquin Delta and California Coast from UC Berkeley (`Radke et al, 2016 `_). 31 | 32 | * ``slr_sfbay`` ``slr_delta`` ``slr_coast`` 33 | * SLR scenarios 34 | 35 | * Wildfire from UC Merced (LeRoy Westerling) 36 | 37 | * ``fire`` 38 | * Annual averages 39 | 40 | * Bias-corrected Streamflows for 11 locations (Scripps Institution of Oceanography) 41 | 42 | * ``streamflow`` 43 | * Monthly averages 44 | 45 | * Extended drought (Scripps Institution of Oceanography) 46 | 47 | * ``drought`` 48 | * Daily data for two scenarios that portray 20 year drought conditions. 49 | 50 | 51 | .. _gcm: 52 | 53 | Global Climate Models (GCM) 54 | --------------------------- 55 | The following GCMs have been selected by California state agencies as priority models for Fourth Assessment Research. Data for these models is available through the cal-Adapt API. Downscaled data for 22 other GCMs is available as NetCDF files from the `Cal-Adapt Data Server `_. 56 | 57 | * ``ACCESS1-0`` - Commonwealth Scientific and Industrial Research Organization (CSIRO) and Bureau of Meteorology (BOM) Australia 58 | * ``CanESM2`` - Canadian Centre for Climate Modelling and Analysis 59 | * ``CCSM4`` - University of Miami - RSMAS 60 | * ``CESM1-BGC`` - Community Earth System Model Contributors 61 | * ``CMCC-CMS`` - Centro Euro-Mediterraneo per I Cambiamenti Climatici 62 | * ``CNRM-CM5`` - Centre National de Recherches Météorologiques/ Centre Européen de Recherche et Formation Avancée en Calcul Scientifique 63 | * ``GFDL-CM3`` - NOAA Geophysical Fluid Dynamics Laboratory 64 | * ``HadGEM2-CC`` - Met Office Hadley Centre 65 | * ``HadGEM2-ES`` - Met Office Hadley Centre and Instituto Nacional de Pesquisas Espaciais 66 | * ``MIROC5`` - Atmosphere and Ocean Research Institute (The University of Tokyo), National Institute for Environmental Studies, and Japan Agency for Marine-Earth Science and Technology 67 | 68 | 69 | Scenarios 70 | --------- 71 | Representative Concentration Pathways (RCP). RCP references - `The Beginner's Guide to Representative Concentration Pathways `_ , `IPCC `_ 72 | 73 | * ``rcp45`` - RCP 4.5 (Emissions peak around 2040, then decline) 74 | * ``rcp85`` - RCP 8.5 (Emissions continue to rise strongly through 2050 and plateau) 75 | * ``historical`` - Historical 76 | 77 | 78 | Period 79 | ------ 80 | Different temporal aggregations are available for climate variables through the API. See :ref:`raster-series` to find out what's available in the API. 81 | 82 | * ``year`` - Annual averages 83 | * ``month`` - Monthly averages 84 | * ``day`` - Daily values 85 | 86 | 87 | Vector Data 88 | ----------- 89 | In addition to climate data, the Cal-Adapt API also has endpoints for vector datasets representing administrative boundaries, hydrological boundaries and the LOCA model grid. 90 | 91 | * ``locagrid`` - Model Grid (1/16° - Approximately 6 km) 92 | * ``counties`` - California counties 93 | * ``hydrounits`` - Watersheds (HUC10) 94 | * ``censustracts`` - Census Tracts with CalEnviroScreen 2.0 scores 95 | * ``cdistricts`` - 114th congressional districts 96 | * ``place`` - Incorporated & census designated places, 2015 97 | * ``irwm`` - Integrated Regional Water Management (IRWM) Regions 98 | * ``wecc-load-area`` - SWITCH Load Zones 99 | * ``climregions`` - Climate Zones 100 | * ``electricutilities`` - Investor and public owned electrical utilities 101 | -------------------------------------------------------------------------------- /docs/source/getting-started.rst: -------------------------------------------------------------------------------- 1 | Getting Started 2 | =============== 3 | 4 | 5 | Authentication 6 | -------------- 7 | Currently the Cal-Adapt API does not require authentication. You do not need to sign up for a key to start working with the API. We plan to maintain the current level of open access to support a wide range of users. However, authentication may be implemented in the future to support throttled access for selected applications. 8 | 9 | 10 | Entry Point 11 | ----------- 12 | The entry point or API root is a starting point that provides an overview of all available data in the API. The entry point for the Cal-Adapt API is at https://api.cal-adapt.org/api/. :: 13 | 14 | curl https://api.cal-adapt.org/api/ 15 | 16 | 17 | Browsable API View 18 | ------------------ 19 | When you visit the above entry point in a browser, you will see an easy to read, browsable view of the Cal-Adapt API. The browsable API view provides a quick overview of available data resources in the API and the URLs to access these data resources. This makes it easier and convenient to test requests and their returns in a web browser. 20 | 21 | 22 | Representations 23 | --------------- 24 | The Cal-Adapt API supports the following representations or data formats listed 25 | with their content type followed by format identifier: 26 | 27 | * Raster and vector data 28 | 29 | * Browsable API view ``text/html`` ``api`` 30 | * JavaScript Object Notation ``application/json`` ``json`` 31 | 32 | * Raster data only 33 | 34 | * Comma Separated Values ``text/csv`` ``csv`` 35 | * Zipped GeoTIFF ``application/zip`` ``tif.zip`` 36 | 37 | * Vector data only 38 | 39 | * GeoJSON ``application/vnd.geo+json`` ``geojson`` 40 | * Keyhole Markup Language ``application/vnd.google-earth.kml+xml`` ``kml`` 41 | * Zipped KML files ``application/vnd.google-earth.kmz`` ``kmz`` 42 | 43 | The HTTP Accept header is used in performing content negotiation. The server 44 | will return JSON when a client does not specify. The following command confirms 45 | the `Contenty-Type: application/json` header in the response. :: 46 | 47 | curl -IH 'Accept: application/json' https://api.cal-adapt.org/api/ 48 | 49 | .. code-block:: http 50 | 51 | HTTP/1.1 200 OK 52 | Vary: Accept 53 | Content-Type: application/json 54 | 55 | Or, HTML which returns the browsable API page. :: 56 | 57 | curl -IH 'Accept: text/html' https://api.cal-adapt.org/api/ 58 | 59 | .. code-block:: http 60 | 61 | HTTP/1.1 200 OK 62 | Vary: Accept 63 | Content-Type: text/html; charset=utf-8 64 | 65 | If necessary, content negotiation can be overridden by adding the ``format`` 66 | query parameter to the URL like https://api.cal-adapt.org/api/?format=json. 67 | 68 | 69 | Pagination 70 | ---------- 71 | The API returns a paginated response for large datasets. Pagination links are provided as part of the content of the response so consumers can fetch additional pages as needed with the `next` property which links to https://api.cal-adapt.org/api/series/?page=2. The default number of records returned per page is 10. The number of records returned in each page can be controlled by using ``pagesize`` query parameter. 72 | 73 | **Example Request** 74 | 75 | .. code-block:: http 76 | 77 | GET /api/series/ HTTP/1.1 78 | Host: api.cal-adapt.org 79 | Accept: application/json 80 | 81 | **Response** 82 | 83 | .. code-block:: json 84 | 85 | { 86 | "count": 259, 87 | "next": "https://api.cal-adapt.org/api/series/?page=2", 88 | "previous": null, 89 | "results": [ 90 | { 91 | "name": "U.C. Merced Wildfire high population scenario CNRM-CM5 rcp45", 92 | "slug": "fire_CNRM-CM5_rcp45_H_mu", 93 | "url": "https://api.cal-adapt.org/api/series/fire_CNRM-CM5_rcp45_H_mu/", 94 | "begin": "1954-01-01T00:00:00Z", 95 | "end": "2100-12-31T00:00:00Z", 96 | "rasters": [ 97 | "https://api.cal-adapt.org/api/rstores/fire_CNRM-CM5_rcp45_H_mu_1954/", 98 | "https://api.cal-adapt.org/api/rstores/fire_CNRM-CM5_rcp45_H_mu_1955/", 99 | "https://api.cal-adapt.org/api/rstores/fire_CNRM-CM5_rcp45_H_mu_1956/" 100 | , 101 | ], 102 | "tags": [ 103 | "fire" 104 | ] 105 | }, 106 | { 107 | "name": "U.C. Merced Wildfire low population scenario CNRM-CM5 rcp45", 108 | "slug": "fire_CNRM-CM5_rcp45_L_mu", 109 | "url": "https://api.cal-adapt.org/api/series/fire_CNRM-CM5_rcp45_L_mu/", 110 | "begin": "1954-01-01T00:00:00Z", 111 | "end": "2100-12-31T00:00:00Z", 112 | "rasters": [ 113 | "https://api.cal-adapt.org/api/rstores/fire_CNRM-CM5_rcp45_L_mu_1954/", 114 | "https://api.cal-adapt.org/api/rstores/fire_CNRM-CM5_rcp45_L_mu_1955/", 115 | "https://api.cal-adapt.org/api/rstores/fire_CNRM-CM5_rcp45_L_mu_1956/" 116 | , 117 | ], 118 | "tags": [ 119 | "fire" 120 | ] 121 | } 122 | , 123 | ] 124 | } 125 | -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | .. _index: 2 | 3 | About Cal-Adapt 4 | =============== 5 | Cal-Adapt has been designed to provide access to the wealth of data and information that has been, and continues to be, produced by State of California's scientific and research community. The data available on this site offer 6 | a view of how climate change might affect California at the local level. Here you can work with visualization tools, access data, and participate in community sharing to contribute your own knowledge. Cal-Adapt's development was a key recommendation of the 2009 California Climate Adaptation Strategy. 7 | 8 | Cal-Adapt is developed by the `Geospatial Innovation Facility (GIF), UC Berkeley `_ with funding and advisory oversight by the `California Energy Commission `_. 9 | 10 | We are working on a new generation of climate tools for California using the Cal-Adapt API. You can preview these on our `beta site `_. 11 | 12 | .. note:: We are working on documenting the Cal-Adapt API and adding more examples and tutorials. Check back for updates. 13 | 14 | 15 | Cal-Adapt API 16 | ------------- 17 | Cal-Adapt API (Application Programming Interface) provides programmatic access to climate data hosted on Cal-Adapt. In general, an API is like a cog that allows two systems to interact with each other, e.g. a web browser on your computer and the Cal-Adapt server. 18 | 19 | The Cal-Adapt API is built using `Django `_, `Django REST framework `_, and `Django-Spillway `_, an open source library developed at the GIF. The API follows an architectural style called REST (REpresentational State Transfer) which uses uses HTTP as the transport protocol for the message requests and responses. 20 | 21 | 22 | What is a REST API? 23 | ------------------- 24 | .. figure:: restapi_model.png 25 | :width: 500px 26 | :align: center 27 | :alt: model of a REST API 28 | 29 | A general model of a REST API (`source `_) 30 | 31 | The client (web browser, desktop GIS software, Python script, etc.) sends a request to the API server for data and the server sends a response back. The client and server can be based in any language, but HTTP is the protocol used to transport the message. This request-and-response pattern is fundamentally how REST APIs work. So, when you open a browser and type a website URL (such as https://twitter.com/Cal_Adapt/status/849368048062664704), you’re actually making a GET request for a resource on Twitter's server. The server responds with the content and the browser makes the content visible. 32 | 33 | 34 | Why did we build a public API for Cal-Adapt? 35 | -------------------------------------------- 36 | The Cal-Adapt API provides developers, researchers, and climate specialists with a new tool for working with the wealth of data and information that has been, and continues to be, produced by State of California's scientific and research community. The API allows users to access only the data they actually need, without having to download the entire dataset. 37 | 38 | It is impossible for a single organization to build tools that might satisfy every potential use of the information. With an API, other organizations will be able to easily access the data and build domain specific visualization and planning tools on top of it. 39 | 40 | 41 | Get in Touch 42 | ------------ 43 | Let us know how you are using the API, we would love to feature your work on our blog. If you have questions or if you would like to provide feedback please contact us at `support@cal-adapt.org `_. Thank you! 44 | 45 | 46 | Table of Contents 47 | ----------------- 48 | .. toctree:: 49 | :maxdepth: 2 50 | 51 | getting-started.rst 52 | data-catalog.rst 53 | series.rst 54 | raster-store.rst 55 | indicator.rst 56 | cookbook.rst 57 | -------------------------------------------------------------------------------- /docs/source/indicator.rst: -------------------------------------------------------------------------------- 1 | Climate Indicators 2 | ================== 3 | 4 | 5 | Cooling Degree Days and Heating Degree Days 6 | ------------------------------------------- 7 | Cooling Degree Days (CDD) and Heating Degree Days (HDD) are a measure of energy demand for cooling and heating of buildings. They are defined as the number of degrees above or below a reference temperature. See the `degree days tool `_ for more information and charting of the available data. 8 | 9 | .. http:get:: /api/series/{slug}/hdd/ 10 | 11 | Return heating degree days for any location. 12 | 13 | .. http:get:: /api/series/{slug}/cdd/ 14 | 15 | Return cooling degree days for any location. 16 | 17 | **Example request**: 18 | 19 | .. code-block:: http 20 | 21 | GET /api/series/tasmax_day_HadGEM2-ES_rcp85/cdd/?g=POINT(-121.46+38.59)&freq=A HTTP/1.1 22 | Host: api.cal-adapt.org 23 | Accept: application/json 24 | 25 | **Example response**: 26 | 27 | .. code-block:: http 28 | 29 | HTTP/1.1 200 OK 30 | Allow: GET, POST, OPTIONS 31 | Content-Type: application/json 32 | Vary: Accept 33 | 34 | { 35 | "data": [ 36 | 1272.4594726562, 37 | 2066.6245117188, 38 | 1458.0538330078, 39 | 1674.4998779297 40 | , 41 | ], 42 | "index": [ 43 | "2006-12-31T00:00:00Z", 44 | "2007-12-31T00:00:00Z", 45 | "2008-12-31T00:00:00Z", 46 | "2009-12-31T00:00:00Z", 47 | , 48 | ]} 49 | 50 | :arg slug: series slug identifier, only valid for daily tasmax or tasmin slugs 51 | :query g: a geometry (point, line, polygon) as GeoJSON, WKT, GML or KML 52 | :query freq: resampling frequency string such as ``M``, ``A``, ``10A``, or any `Pandas offset `_ 53 | :query float thresh: the reference temperature in F, defaults to ``65`` 54 | 55 | 56 | Extreme Heat, Heat Waves, and Warm Nights 57 | ----------------------------------------- 58 | An extreme heat day or warm night is defined as a day when the maximum/minimum temperature exceeds the 98th percentile of observed historical data from 1961–1990 between April and October. See the `extreme heat tool `_ for more information and charting of the available data. 59 | 60 | .. http:get:: /api/series/{slug}/exheat/ 61 | 62 | Return extreme heat, heat waves, or warm night counts for any location. 63 | 64 | **Example request**: 65 | 66 | .. code-block:: http 67 | 68 | GET /api/series/tasmax_day_HadGEM2-ES_rcp85/exheat/?g=POINT(-121.46+38.59) HTTP/1.1 69 | Host: api.cal-adapt.org 70 | Accept: application/json 71 | 72 | **Example response**: 73 | 74 | .. code-block:: http 75 | 76 | HTTP/1.1 200 OK 77 | Allow: GET, POST, OPTIONS 78 | Content-Type: application/json 79 | Vary: Accept 80 | 81 | { 82 | "98p": 103.90999603271484, 83 | "counts": { 84 | "2006-12-31T00:00:00+00:00": 1, 85 | "2007-12-31T00:00:00+00:00": 19, 86 | "2008-12-31T00:00:00+00:00": 3 87 | , 88 | }} 89 | 90 | :arg slug: series slug identifier, only valid for daily tasmax (extreme heat) or tasmin (warm night) slugs 91 | :query g: a geometry (point, line, polygon) as GeoJSON, WKT, GML or KML 92 | :query stat: one of ``max``, ``mean``, ``median``, ``min``, ``sum`` for spatial aggregation by polygon/line provided by the ``g`` param, defaults to ``mean`` 93 | :query freq: resampling frequency string such as ``M``, ``A``, ``10A``, or any `Pandas offset `_, defaults to ``A`` 94 | :query float pct: percentile to use for extreme heat or warm night threshold, defaults to ``.98`` (98th percentile) of observed data from 1961-1990 between April-October 95 | :query integer duration: (duration of extreme event in days) 96 | 97 | 98 | Extreme Precipitation 99 | --------------------- 100 | Extreme precipitation events can be characterized using Extreme Value Analysis (EVA) by return levels, including confidence intervals, using the peak over threshold methodology. See the `extreme precipitation tool `_ for more information and charting of the available data. 101 | 102 | .. http:get:: /api/series/{slug}/pot/ 103 | 104 | Response fields include ``returnlevels``, ``threshold``, and ``units`` (unit of measurement). The return levels are summarized over historic, mid, and end of century time frames. Each return interval is a 3-item array of the lower, estimated return level, and upper confidence interval. 105 | 106 | **Example request**: 107 | 108 | .. code-block:: http 109 | 110 | GET /api/series/pr_day_ACCESS1-0_rcp45/pot/?g=POINT(-121.4687+38.5938)&duration=2 HTTP/1.1 111 | Host: api.cal-adapt.org 112 | Accept: application/json 113 | 114 | **Example response**: 115 | 116 | .. code-block:: http 117 | 118 | HTTP/1.1 200 OK 119 | Allow: GET, POST, OPTIONS 120 | Content-Type: application/json 121 | Vary: Accept 122 | 123 | { 124 | "returnlevels": { 125 | "1961-10-01:1990-09-30": { 126 | "10": [ 3.3738083898103706, 3.9522201904266527, 5.228567088406137 ], 127 | "100": [ 4.792120480767816, 6.491227596207121, 11.655569842787486 ], 128 | "2": [ 2.317027627106765, 2.5667466512434016, 2.941214643156155 ], 129 | "20": [ 3.781685742237907, 4.640839376130399, 6.677332244692823 ], 130 | "5": [ 2.9107509896073562, 3.321044449279986, 4.080450921786112 ], 131 | "50": [ 4.368586837537248, 5.648252163486491, 9.185085270172545 ], 132 | "n": 159 133 | }, 134 | "2035-10-01:2064-09-30": { 135 | "10": [ 3.7262371212589867, 4.236568397086659, 5.240493845112521 ], 136 | "100": [ 4.906061402196474, 6.0225286812315595, 9.111781051084918 ], 137 | "2": [ 2.688362812028139, 2.9617466455337116, 3.315414408012187 ], 138 | "20": [ 4.134337164339881, 4.778850804514478, 6.252823005631932 ], 139 | "5": [ 3.312975478107658, 3.690233369085343, 4.342160397675551 ], 140 | "50": [ 4.571528643603971, 5.4895406091554895, 7.7864184564943955 ], 141 | "n": 175 142 | }, 143 | "2070-10-01:2099-09-30": { 144 | "10": [ 4.241220088665857, 5.0994935705499715, 6.9916568467598665 ], 145 | "100": [ 6.244111144979032, 8.769602618538272, 16.754704790152964 ], 146 | "2": [ 2.820991602527356, 3.1581853987832025, 3.650831557730822 ], 147 | "20": [ 4.851689971070942, 6.081585627582591, 9.144602394922993 ], 148 | "5": [ 3.631161165606033, 4.209052130230058, 5.315306960831256 ], 149 | "50": [ 5.653315714995296, 7.536659927706938, 12.944282870291804 ], 150 | "n": 165 151 | }, 152 | "threshold": 1.0, 153 | }, 154 | "units": "inches" 155 | } 156 | 157 | :arg slug: series slug identifier 158 | :query g: a geometry (point, line, polygon) as GeoJSON, WKT, GML or KML 159 | :query stat: one of ``max``, ``mean``, ``median``, ``min``, ``sum`` for spatial aggregation by polygon/line provided by the ``g`` param, defaults to ``mean`` 160 | :query integer duration: duration of extreme event in days 161 | :query intervals: comma separated list of return intervals, returns levels for 2, 5, 10, 20, 50, and 100 year events by default 162 | :query float pct: percentile to use for exceedance threshold, when not specified the min value from the annual maxima series (AMS) is used 163 | -------------------------------------------------------------------------------- /docs/source/raster-store.rst: -------------------------------------------------------------------------------- 1 | .. _raster-store: 2 | 3 | Raster Store 4 | ============ 5 | A Raster Store is an individual raster file and associated information like 6 | spatial resolution, coordinate system reference, and bounding box. 7 | 8 | 9 | List Raster Stores 10 | ------------------ 11 | .. http:get:: /api/rstores/ 12 | 13 | List all raster stores. 14 | 15 | :query name: search raster names containing the provided value 16 | :query integer page: page number 17 | :query integer pagesize: number of records, default is 10 18 | 19 | 20 | Raster Store Detail 21 | ------------------- 22 | .. http:get:: /api/rstores/{slug}/ 23 | 24 | Request an individual raster with a provided slug. A slug is a URL friendly 25 | name of a resource in the API. Each climate dataset or resource has its own 26 | unique slug. A resource slug is generally composed of ``{variable}_{period}_{model}_{scenario}_{timestep}``. 27 | 28 | Response fields include ``image`` (raster file link), ``event`` (date), and ``units`` (unit of measurement for pixel values). Image statistics for ``min`` and ``max`` with regard to the ``nodata`` value, and dimensions ``xpixsize`` ``ypixsize``. Map tiles can be requested with the url template at ``tileurl``. 29 | 30 | **Example request**: 31 | 32 | .. code-block:: http 33 | 34 | GET /api/rstores/tasmax_year_CNRM-CM5_rcp45_2030/ HTTP/1.1 35 | Host: api.cal-adapt.org 36 | Accept: application/json 37 | 38 | **Example response**: 39 | 40 | .. code-block:: http 41 | 42 | HTTP/1.1 200 OK 43 | Allow: GET, POST, OPTIONS 44 | Content-Type: application/json 45 | Vary: Accept 46 | 47 | { 48 | "event": "2030-01-01", 49 | "geom": { 50 | "coordinates": [ 51 | [ 52 | [ 53 | -124.5625, 54 | 31.5625 55 | ], 56 | [ 57 | -113.375, 58 | 31.5625 59 | ], 60 | [ 61 | -113.375, 62 | 43.75 63 | ], 64 | [ 65 | -124.5625, 66 | 43.75 67 | ], 68 | [ 69 | -124.5625, 70 | 31.5625 71 | ] 72 | ] 73 | ], 74 | "type": "Polygon" 75 | }, 76 | "height": 195, 77 | "id": 10545, 78 | "image": "http://api.cal-adapt.org/media/img/tasmax_year_CNRM-CM5_rcp45_r1i1p1_2030.LOCA_2016-04-02.16th.CA_NV.tif", 79 | "maxval": 307.184326171875, 80 | "minval": 278.8943786621094, 81 | "name": "yearly average maximum temperature CNRM-CM5 RCP 4.5", 82 | "nodata": 1.0000000150474662e+30, 83 | "slug": "tasmax_year_CNRM-CM5_rcp45_2030", 84 | "srs": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433],AUTHORITY[\"EPSG\",\"4326\"]]", 85 | "tileurl": "http://api.cal-adapt.org/tiles/tasmax_year_CNRM-CM5_rcp45_2030/{z}/{x}/{y}.png", 86 | "units": "K", 87 | "url": "http://api.cal-adapt.org/api/rstores/tasmax_year_CNRM-CM5_rcp45_2030/", 88 | "width": 179, 89 | "xpixsize": 0.0625, 90 | "ypixsize": -0.0625 91 | } 92 | 93 | :arg slug: raster slug identifier 94 | -------------------------------------------------------------------------------- /docs/source/restapi_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berkeley-gif/caladapt-docs/b41c529097cccad9d0f572f7e9a3ae3d16ccab0c/docs/source/restapi_model.png -------------------------------------------------------------------------------- /docs/source/series.rst: -------------------------------------------------------------------------------- 1 | .. _raster-series: 2 | 3 | Raster Series 4 | ============= 5 | A raster series is a collection of individual rasters comprising an entire time series. 6 | 7 | 8 | List Raster Series 9 | ------------------ 10 | .. http:get:: /api/series/ 11 | 12 | List all available raster time series. 13 | 14 | :query slug: search series slugs containing the provided value 15 | :query name: search series names containing the provided value 16 | :query tags: filter on tags 17 | :query integer page: page number 18 | :query integer pagesize: number of records, default is 10 19 | 20 | 21 | Raster Series Detail 22 | -------------------- 23 | .. http:get:: /api/series/{slug}/ 24 | 25 | Request an individual series with a provided slug. A slug is a URL friendly name of a resource in the API. Each climate dataset or resource has it's own unique slug. A resource slug is generally composed of ``{variable}_{period}_{model}_{scenario}``. 26 | 27 | **Example request**: 28 | 29 | .. code-block:: http 30 | 31 | GET /api/series/tasmax_year_CNRM-CM5_rcp45/ HTTP/1.1 32 | Host: api.cal-adapt.org 33 | Accept: application/json 34 | 35 | **Response**: 36 | 37 | .. code-block:: http 38 | 39 | HTTP/1.1 200 OK 40 | Vary: Accept 41 | Content-Type: application/json 42 | 43 | { 44 | "begin": "2006-01-01T00:00:00Z", 45 | "end": "2100-12-31T00:00:00Z", 46 | "name": "yearly average maximum temperature CNRM-CM5 RCP 4.5", 47 | "rasters": [ 48 | "http://api.cal-adapt.org/api/rstores/tasmax_year_CNRM-CM5_rcp45_2006/", 49 | "http://api.cal-adapt.org/api/rstores/tasmax_year_CNRM-CM5_rcp45_2007/", 50 | "http://api.cal-adapt.org/api/rstores/tasmax_year_CNRM-CM5_rcp45_2008/" 51 | , 52 | ] 53 | "slug": "tasmax_year_CNRM-CM5_rcp45", 54 | "tags": [ 55 | "climate", 56 | "tasmax", 57 | "temperature" 58 | ], 59 | "url": "http://api.cal-adapt.org/api/series/tasmax_year_CNRM-CM5_rcp45/" 60 | } 61 | 62 | :arg slug: series slug identifier 63 | 64 | 65 | Time Series 66 | ----------- 67 | .. http:get:: /api/series/{slug}/events/ 68 | 69 | Return the entire time series for any location, with optional temporal and/or rolling aggregations applied. The response consists of ``columns``, ``data``, and ``index``. 70 | 71 | The structure of the return is context dependent where a single point returns summary fields (min, mean, max, std, count) when a frequency is provided for temporal aggregation. 72 | 73 | Sending a single polygon returns values for all intersecting grid cells, whereas a temporal aggregation is returned when `stat=` and `freq=` are provided controlling spatial aggregation and time series resampling respectively. 74 | 75 | **Example request**: 76 | 77 | .. code-block:: http 78 | 79 | GET /api/series/tasmax_day_HadGEM2-ES_rcp85/events/?g=POINT(-121.46+38.58) HTTP/1.1 80 | Host: api.cal-adapt.org 81 | Accept: application/json 82 | 83 | **Response**: 84 | 85 | .. code-block:: http 86 | 87 | HTTP/1.1 200 OK 88 | Vary: Accept 89 | Content-Type: application/json 90 | 91 | { 92 | "data": [ 93 | 284.2241516113, 94 | 283.9797973633, 95 | 283.4098815918 96 | , 97 | ], 98 | "index": [ 99 | "2006-01-01T00:00:00Z", 100 | "2006-01-02T00:00:00Z", 101 | "2006-01-03T00:00:00Z" 102 | , 103 | ], 104 | "name": "tasmax_day_HadGEM2-ES_rcp85" 105 | } 106 | 107 | :arg slug: series slug identifier 108 | :query g: a geometry (point, line, polygon) as GeoJSON, WKT, GML or KML 109 | :query stat: one of ``max``, ``mean``, ``median``, ``min``, ``sum`` for spatial aggregation by polygon/line provided by the ``g`` param, defaults to ``mean`` 110 | :query freq: resampling frequency string such as ``M``, ``A``, ``10A``, or any `Pandas offset `_ 111 | :query rolling: rolling statistic, one of ``max``, ``mean``, ``median``, ``min``, ``sum`` 112 | :query integer window: rolling window size 113 | :query float thresh: only return values above a given threshold 114 | :query boolean imperial: use imperial units, defaults to false 115 | :query format: ``json`` or ``csv`` 116 | :reqheader Accept: the response content type depends on 117 | :mailheader:`Accept` header 118 | :resheader Content-Type: this depends on :mailheader:`Accept` 119 | header of request 120 | :statuscode 200: no error 121 | :statuscode 400: something is askew with the request, check the error message 122 | :statuscode 404: the slug may be incorrect 123 | :statuscode 500: something's wrong on our end 124 | 125 | .. http:post:: /api/series/{slug}/events/ 126 | 127 | Use POST when providing a feature set to return data for multiple locations. 128 | The same parameters as with GET are available. 129 | 130 | :query features: file upload to provide multiple geometries as part of a feature set, any `OGR supported `_ format or zip file 131 | 132 | Return monthly data aggregated from daily values for a point location using 133 | `freq`: 134 | 135 | .. code-block:: http 136 | 137 | GET /api/series/tasmax_day_HadGEM2-ES_rcp85/events/?g=POINT(-121.46+38.58)&freq=M HTTP/1.1 138 | Host: api.cal-adapt.org 139 | Accept: application/json 140 | 141 | **Response**: 142 | 143 | .. code-block:: http 144 | 145 | HTTP/1.1 200 OK 146 | Vary: Accept 147 | Content-Type: application/json 148 | 149 | { 150 | "columns": [ 151 | "min", 152 | "mean", 153 | "max", 154 | "std", 155 | "count" 156 | ], 157 | "data": [ 158 | [ 159 | 275.4864807129, 160 | 283.8988342285, 161 | 288.8237304688, 162 | 3.3650608063, 163 | 31 164 | ], 165 | [ 166 | 283.4172058105, 167 | 290.7746276855, 168 | 298.8256835938, 169 | 3.4072315693, 170 | 28 171 | ], 172 | [ 173 | 286.8976745605, 174 | 293.8493652344, 175 | 300.5709533691, 176 | 4.2584190369, 177 | 31 178 | ] 179 | , 180 | ], 181 | "index": [ 182 | "2006-01-31T00:00:00Z", 183 | "2006-02-28T00:00:00Z", 184 | "2006-03-31T00:00:00Z" 185 | , 186 | ]} 187 | 188 | 189 | List Series Rasters 190 | ------------------- 191 | .. http:get:: /api/series/{slug}/rasters/ 192 | 193 | List all rasters in the series. See the :ref:`raster-store` description. 194 | 195 | **Example request**: 196 | 197 | .. code-block:: http 198 | 199 | GET /api/series/tasmax_year_CNRM-CM5_rcp45/rasters/ HTTP/1.1 200 | Host: api.cal-adapt.org 201 | Accept: application/json 202 | 203 | **Example response**: 204 | 205 | .. code-block:: http 206 | 207 | HTTP/1.1 200 OK 208 | Allow: GET, POST, OPTIONS 209 | Content-Type: application/json 210 | Vary: Accept 211 | 212 | { 213 | "count": 95, 214 | "next": "https://api.cal-adapt.org/api/series/tasmax_year_CNRM-CM5_rcp45/rasters/?page=2", 215 | "previous": null, 216 | "results": [{ 217 | "id": 10521, 218 | "tileurl": "https://api.cal-adapt.org/tiles/tasmax_year_CNRM-CM5_rcp45_2006/{z}/{x}/{y}.png", 219 | "url": "https://api.cal-adapt.org/api/rstores/tasmax_year_CNRM-CM5_rcp45_2006/", 220 | "image": "https://api.cal-adapt.org/media/img/tasmax_year_CNRM-CM5_rcp45_r1i1p1_2006.LOCA_2016-04-02.16th.CA_NV.tif", 221 | "width": 179, 222 | "height": 195, 223 | "geom": "POLYGON ((-124.5625 31.5625, -113.375 31.5625, -113.375 43.75, -124.5625 43.75, -124.5625 31.5625))", 224 | "event": "2006-01-01", 225 | "srs": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433],AUTHORITY[\"EPSG\",\"4326\"]]", 226 | "minval": 279.1251220703125, 227 | "maxval": 307.180908203125, 228 | "nodata": 1.0000000150474662e+30, 229 | "xpixsize": 0.0625, 230 | "ypixsize": -0.0625, 231 | "name": "yearly average maximum temperature CNRM-CM5 RCP 4.5", 232 | "slug": "tasmax_year_CNRM-CM5_rcp45_2006", 233 | "units": "K" 234 | }, { 235 | "id": 10522, 236 | "tileurl": "https://api.cal-adapt.org/tiles/tasmax_year_CNRM-CM5_rcp45_2007/{z}/{x}/{y}.png", 237 | "url": "https://api.cal-adapt.org/api/rstores/tasmax_year_CNRM-CM5_rcp45_2007/", 238 | "image": "https://api.cal-adapt.org/media/img/tasmax_year_CNRM-CM5_rcp45_r1i1p1_2007.LOCA_2016-04-02.16th.CA_NV.tif", 239 | "width": 179, 240 | "height": 195, 241 | "geom": "POLYGON ((-124.5625 31.5625, -113.375 31.5625, -113.375 43.75, -124.5625 43.75, -124.5625 31.5625))", 242 | "event": "2007-01-01", 243 | "srs": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433],AUTHORITY[\"EPSG\",\"4326\"]]", 244 | "minval": 278.38330078125, 245 | "maxval": 307.52490234375, 246 | "nodata": 1.0000000150474662e+30, 247 | "xpixsize": 0.0625, 248 | "ypixsize": -0.0625, 249 | "name": "yearly average maximum temperature CNRM-CM5 RCP 4.5", 250 | "slug": "tasmax_year_CNRM-CM5_rcp45_2007", 251 | "units": "K" 252 | } 253 | , 254 | ] 255 | } 256 | 257 | :arg slug: series slug identifier 258 | :query g: a geometry (point, line, polygon) as GeoJSON, WKT, GML or KML 259 | :query bbox: a bounding box in the form of x1,y1,x2,y2 260 | :query pagesize: number of records, default is 10 261 | :query format: ``json`` or ``tif.zip`` 262 | :query stat: one of ``mean``, ``max``, ``min``, ``count``, ``median``, ``std``, ``var`` for spatial aggregation by polygon/line geometry provided by the ``g`` param. 263 | :reqheader Accept: the response content type depends on 264 | :mailheader:`Accept` header 265 | :resheader Content-Type: this depends on :mailheader:`Accept` 266 | header of request 267 | :statuscode 200: no error 268 | :statuscode 400: something is askew with the request, check the error message 269 | :statuscode 404: the slug may be incorrect 270 | :statuscode 500: something's wrong on our end 271 | 272 | .. http:get:: /api/series/{slug}/{begin}/{end}/ 273 | 274 | Filter series rasters from start to end date 275 | 276 | :arg slug: series slug identifier 277 | :arg date begin: starting date 278 | :arg date end: ending date 279 | 280 | A time slice or subset can be retrieved by adding start and end dates to the URL. :: 281 | 282 | curl https://api.cal-adapt.org/api/series/tasmax_year_CNRM-CM5_rcp45/2030-01-01/2040-01-01/ 283 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | basemap 2 | GDAL==2.2.2 3 | jupyter 4 | matplotlib==3.0.2 5 | numpy==1.12.1 6 | pandas==0.19.2 7 | rasterio==0.36.0 8 | requests==2.20.0 9 | Sphinx==1.8.5 10 | sphinx-rtd-theme==0.4.3 11 | --------------------------------------------------------------------------------