{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Developed by:** [Georgii Bocharov](https://github.com/georgebv)\n",
"\n",
"**E-Mail:** bocharovgeorgii@gmail.com\n",
"\n",
"**coastlib:** https://github.com/georgebv/coastlib\n",
"\n",
"**License:** GNU General Public License v3.0\n",
"\n",
"\n",
"# Introduction\n",
"This notebook provides examples for the `noaa_coops` module of the [coastlib](https://github.com/georgebv/coastlib) library. Source code for this module [can be found here](https://github.com/georgebv/coastlib/blob/master/coastlib/data/noaa_coops.py).\n",
"\n",
"The `noaa_coops` module is a part of the `coastlib.data` package. This module provides interface to the [NOAA CO-OPS](https://co-ops.nos.noaa.gov/) data portal via the [CO-OPS API](https://tidesandcurrents.noaa.gov/api/). It allows retrieval of environmental data collected by CO-OPS sensors such as wind, water levels, currents, salinity, air pressure, etc. in the form of [pandas](https://pandas.pydata.org/) [DataFrame](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html). With the help of this tool one can automate extraction of large amounts of data from NOAA stations for further processing and storing.\n",
"\n",
"# Basic Uusage\n",
"Let's start by extracting water level data for the New York City [the Battery](https://tidesandcurrents.noaa.gov/stationhome.html?id=8518750) station for the October 2012 time period (Hurricane Sandy):"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" v \n",
" s \n",
" f \n",
" q \n",
" \n",
" \n",
" Time (gmt) \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 2012-10-25 00:00:00 \n",
" 0.466 \n",
" 0.157 \n",
" 0,0,0,0 \n",
" v \n",
" \n",
" \n",
" 2012-10-25 00:06:00 \n",
" 0.358 \n",
" 0.095 \n",
" 0,0,0,0 \n",
" v \n",
" \n",
" \n",
" 2012-10-25 00:12:00 \n",
" 0.249 \n",
" 0.190 \n",
" 0,0,0,0 \n",
" v \n",
" \n",
" \n",
" 2012-10-25 00:18:00 \n",
" 0.135 \n",
" 0.105 \n",
" 0,0,0,0 \n",
" v \n",
" \n",
" \n",
" 2012-10-25 00:24:00 \n",
" 0.033 \n",
" 0.144 \n",
" 0,0,0,0 \n",
" v \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" v s f q\n",
"Time (gmt) \n",
"2012-10-25 00:00:00 0.466 0.157 0,0,0,0 v\n",
"2012-10-25 00:06:00 0.358 0.095 0,0,0,0 v\n",
"2012-10-25 00:12:00 0.249 0.190 0,0,0,0 v\n",
"2012-10-25 00:18:00 0.135 0.105 0,0,0,0 v\n",
"2012-10-25 00:24:00 0.033 0.144 0,0,0,0 v"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"from coastlib.data import coops_api, coops_api_batch, coops_datum\n",
"df = coops_api(station=8518750, begin_date='20121025', end_date='20121101', product='water_level', datum='NAVD')\n",
"df.dropna().head()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAEeCAYAAACXEp4oAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO29eXhcZ5Xu+y5JJWuyrFmxJEuyJWvyKFt2PGZyBmcAJ6QBhzTkQg5caAwhQHOAhsBJnxty+wQSEug+BEguIbmEhKTbSUwmx3acOJ7keJBsSZZka7LmwbIGa6zv/FG1K1WlvWuPpapyrd/z+LFq165Vn+Wqd6/9futbHwkhwDAMw4QuEYEeAMMwDGMOFnKGYZgQh4WcYRgmxGEhZxiGCXFYyBmGYUIcFnKGYZgQJyoQb5qWliby8/MD8dYMwzAhy7Fjx3qFEOnexwMi5Pn5+aisrAzEWzMMw4QsRNQsd5ytFYZhmBCHhZxhGCbEYSFnGIYJcVjIGYZhQhwWcoZhmBCHhZxhGCbEYSFnGIYJcVjIGSaE+fvf/47h4eFAD4MJMCzkDBOivPXWW7j99tuxe/fuQA+FCTAs5AwTorzzzjsAgAsXLgR4JEygYSFnmBDlyJEjuOGGG9Da2hrooTABhoWcYUKQ6elpHD9+HHfddRcLOcNCzjChSHNzM1JTU7FkyRIWcoaFnGFCkZqaGpSWlmLBggUs5AwLOcOEIrW1tSgpKUFOTg7a29tht9sDPSQmgLCQM0wIImXkMTExmDdvHrq7uwM9JCaAsJAzTAgiCTkA5OTksL0S5rCQM0yIIYRATU0NSkpKAIB9coaFnGFCjd7eXgghkJGRAYCFnGEhZ5iQo66uDsXFxSAiAEBmZiZ75GEOCznDhBjnzp1DYWGh63Fqair6+/sDOCIm0LCQM0yIMTAwgJSUFNfj1NRU9PX1BXBETKBhIWeYEOPixYtISkpyPU5JSWEhD3M0CzkRPUNE3URU7XYshYjeJaJ659/J/hkmwzASg4ODHkLO1gqjJyP//wBs9Tr2QwDvCSEWA3jP+ZhhGD9y8eJFzJs3z/WYrRVGs5ALIfYD8L7sbwPwJ+fPfwJwp0XjYhhGATlrhTPy8MasR54phOgAAOffGeaHxDCML7ytlYSEBExMTGB8fDyAo2ICyaxNdhLR14iokogqe3p6ZuttGeaKw9taISK2V8Ics0LeRUTzAcD5t+KqBCHE00KICiFERXp6usm3ZZjwxTsjB9heCXfMCvlrAO5z/nwfgJ0m4zEMo4J3Rg4Ac+fOxfDwcIBGxAQaPeWHfwFwEEAxEbUR0f0AHgVwExHVA7jJ+ZhhGD8hhMDg4OAMIU9ISGAhD2OitJ4ohLhH4aktFo2FYRgVRkdHER0djejoaI/jCQkJGBoaCtComEDDKzsZJoSQs1UAtlbCHRZyhgkh5CY6AbZWwh0WcoYJIbwXA0nMnTuXrZUwhoWcYUIIuYlOgDPycIeFnGFCCKWMnCc7wxsWcoYJIXiyk5GDhZxhQgi2Vhg5WMgZJoTwJeRsrYQvLOQME0IoCTlbK+ENCznDhBCckTNysJAzTAjBHjkjBws5w4QQbK0wcrCQM0wIwdYKIwcLOcOEEEpCHh8fj5GREQghAjAqJtCwkDNMCKEk5FFRUZgzZw5GR0cDMCom0LCQM0yIYLfbMTQ0hMTERNnnecIzfGEhZ5gQYWhoCHFxcYiMjJR9nic8wxcWcoYJEZRsFQme8AxfWMgZJkTo6+tDWlqa4vNsrYQvLOQMEyL09vb6FHK2VsIXS4SciB4kotNEVE1EfyGiGCviMgzzCWpCztZK+GJayIkoG8C3AVQIIZYCiASw3WxchmE8YSFnlLDKWokCEEtEUQDiALRbFJdhGCdqQh4fH8915GGKaSEXQlwA8BiAFgAdAAaFEO+YjcswjCdahHxkZGQWR8QEC1ZYK8kAtgFYCCALQDwR/aPMeV8jokoiquzp6TH7tgwTdqgJeVxcHGfkYYoV1sqNAM4LIXqEEJMAXgWwwfskIcTTQogKIURFenq6BW/LMOEFWyuMElYIeQuAdUQUR0QEYAuAGgviMgzjhpaMnK2V8MQKj/wwgL8B+BhAlTPm02bjMgzjCVsrjBJRVgQRQvwMwM+siMUwzEyEEOjt7UVqaqriOTzZGb7wyk6GCQGGh4dhs9kQGxureA5n5OELCznDhABqtgrAGXk4w0LOMCGAFiHnjDx8YSFnmBBAa0bOQh6esJAzTAigNSNnayU8YSFnmBCAM3LGFyzkDBMCcEbO+IKFnGFCAD2TnUKIWRoVEyywkDNMCKBFyCMjIxEdHY2xsbFZGhUTLLCQM0wIoEXIAS5BDFdYyBkmBNAq5DzhGZ6wkDNMCKAnI+cJz/CDhZxhghy73Y7+/n6fDbMkOCMPT1jIGSbIGRwcRHx8PGw2m+q5nJGHJyzkDBPkaLVVAM7IwxUWcoYJcvQIOWfk4QkLOcMEOZyRM2qwkDNMkMMZOaMGCznDBDmckTNqsJAzTJCjNyNnIQ8/LBFyIkoior8RUS0R1RDReiviMsyVwvj4OF5++WVDfVDYWmHUsCoj/zWAt4QQJQBWAKixKC7DXBG8/PLL+NznPocnn3xS92vZWmHUMC3kRJQI4BoAfwQAIcSEEOKi2bgMcyXx/PPP45577sG+fft0v5YzckYNKzLyRQB6ADxLRMeJ6A9EFG9BXIa5Iti1axfefvtt7NixA+fPn9f9es7IGTWsEPIoAKsA/IcQohzACIAfep9ERF8jokoiquzp6bHgbRkmNHj11Vexfft2rFy5Ek1NTRgfH9f1es7IGTWsEPI2AG1CiMPOx3+DQ9g9EEI8LYSoEEJUpKenW/C2DBP8TExM4Pnnn8dTTz2FuLg4rFq1Cnv37tX8+qmpKQwODiI5OVnT+ZyRhyemhVwI0QmglYiKnYe2ADhjNi7DXAk0NzcjKyvLlVHfcMMN+OCDDzS/vr+/H0lJSYiMjNR0PpcfhidWVa18C8ALRHQKwEoAj1gUl2FCmsbGRhQWFroeb9q0CQcOHND8+tbWVixYsEDz+fHx8WythCFRVgQRQpwAUGFFLIa5kmhoaEBBQYHrcUVFBY4fPw673Y6ICPU8qrm5Gbm5uZrfjzPy8IRXdjKMH/HOyFNTU5GSkoL6+npNr29paUFeXp7m9+OMPDxhIWcYP9LY2OiRkQPA6tWrcezYMU2vb2lp0WWtcEYenrCQM4wfkRPykpISnD17VtPrOzo6kJWVpfn9uPwwPGEhZxg/Ybfbce7cuRlCvnDhQs0Lg3p7e6GnXHfOnDmYmprC1NSUrrEyoQ0LOcP4ifb2diQlJSE+3nOhsx4h7+np0bwYCACIiO2VMISFnGH8hJytAugXcr0L6HhRUPjBQs4wfqKhocGjYkViwYIF6OrqUl2qL4TQba0APOEZjrCQM4yfUMrIo6KikJ2djdbWVp+vHxoaQnR0NGJiYnS9L5cghh8s5AzjJ5SEHNBmr+j1xyU4Iw8/WMgZxk+cO3cOixYtkn1Oq5AbaTDHGXn4wULOMH6iqakJCxculH1Oi5Ab8ccBriUPR1jIGcYPDA8PY2RkBBkZGbLP+zMjT05OxsWLvElXOMFCzjBeCCFMxzh//jzy8/NBRLLP+9MjT01NRW9vr+7XuTM9PY3JyUlTMZjZg4WcYdx48MEHERERoWvzBznOnz+vaKsAjhLECxcu+Ixh1FpJTU1FX1+f7te589BDDyEnJ8dUDGb2YCFnGCfd3d144oknUF5ejhdffNFULDUhv+qqq9Dd3Y3p6WnFc/Rs8eaOGSGX7kZeeeUVdHd3Y2BgwFAcZnZhIWcYJ8888wzuv/9+PPvss9izZ4+pWM3NzT7bz9psNqSkpKC7u1vxHKNCnpaWZthaycnJwS9+8Qv09/fj+uuvx8GDBw3FYWYXFnKGcXLo0CHceuutWLZsGS5duoTm5mbDsXp7exUnOiWysrJ82iuzba1cunQJ7e3t+PGPf4xPfepTKCwsREtLi+44zOzDQs4wTs6ePYuioiJERESgoqICJ06cMByrv79fdcPk7OxstLe3Kz4/m9bK4OAgvvKVr2DdunV4/fXX8etf/xo5OTloa2vT/f7M7GPJVm8ME+pMT0/j/Pnzrt4oxcXFqKurMxxvYGAAKSkpPs9Ry8iNVq3otVYGBgawZcsWEBH+7d/+DVu2bAHgmJB9//33db8/M/uwkDMMHDvxpKenIzY2FoBDyI8cOWI4ntaMXEnIJycnMTQ0hKSkJN3vLWXkQgjF8kd3nnvuOcTHx2Pv3r2IivpEEjgjDx0ss1aIKJKIjhPRG1bFZJjZQrJVJMxm5FqEPCsrS9Fa6e/vR0pKiqYNmr2JjY1FRESE5n4r77//Pr7+9a97iDjgEHK1xl5McGClR/4AgBoL4zHMrFFfX2+ZkNvtdvT396vaIr4ycqO2ioRWn9xut2P//v249tprZzwnZeRWLJBi/IslQk5EOQBuB/AHK+IxjBpTU1P47ne/i3/5l3+xJN7Zs2exePFi1+OrrroK4+Pj6O/v1x3r4sWLiI+PR3R0tM/zfAl5R0cH5s+fr/u9JbT65GfOnEFSUpLs4p+5c+fCZrNxLXkIYFVG/gSAHwCwWxSPYXzy5z//GY8//jgeeeQRXL582XQ8b2uFiFBUVKR5k2R3tPZIycvLQ3Nzs2zGq3fTZW+0ZuTvv/++bDYusWDBArZXQgDTQk5EdwDoFkIcUznva0RUSUSVPT09Zt+WCWOEEHjooYfw7rvvYs2aNfjwww9Nx/S2VgDj9opWIZ83bx6io6NlM+f29vZZEfJjx47h6quvVnyeffLQwIqMfCOATxNRE4AXAdxARM97nySEeFoIUSGEqDCyyIFhJE6fPg0iwpYtW/AP//AP2Llzp6l44+PjuHDhAvLz8z2O+1vIAaCgoADnzp2bcdwKIddirVRXV2PZsmWKzy9atEh2fExwYVrIhRA/EkLkCCHyAWwHsEcI8Y+mR8YwCvzlL3/B9u3bQUS4+eab8e6775qKd+7cOeTm5sJms3kcLywsNCRieoR80aJFaGhomHG8vb3dtEeulpHb7XacOXMGS5YsUTxn8eLFqK+vNzwOZnbglZ1MyLFr1y585jOfAQAsX74c/f39puqd6+rqPCY6JXJzcw0tUdcj5EuWLEFVVdWM452dnbjqqqt0v7eEFmvl5MmTyMnJQWJiouI5ixYtUm23ywQeS4VcCLFPCHGHlTEZxp26ujqcPHkS5eXlAICIiAisXbsWlZWVhmMeOHBA1ic2I+RqfVYkFi9ejMbGxhnHu7u7kZmZqfu9JbRYK/X19T6zcQCYP38+Ojs7DY+DmR04I2dCiqeeegrbtm3DnDlzXMeWL1+O6upqwzFPnjyJNWvWzDielZWF7u5u3Rss6MnIlTaY6OrqMiXkWqyVlpYWnx0aAUcZJgt58MNCzoQUb7zxBh577DGPY/n5+aY6Fba2tiI3N3fG8aioKGRmZqpuAOFNd3e3KSEfGxvD2NgY5s2bp+t93dFirai12gWAzMxMdHd3w24PvsriS5cumW43fKXAQs6EDOPj4+js7JxRXZKfn4+mpiZDMYUQaG1tVdwNx4i9oicjT09Px/j4uMcem93d3cjIyNDUJ0UJLdZKc3Oz7AXMnejoaCQmJprecchqent7sW7dOmzZsgXvvfdeoIcTcFjImZChrq4OCxcunNETpLi4GKdPnzYUc3BwEBEREYrZb25uru46aj1CTkQoLS1FTc0n3S3M2iqAtoxci7UCOOyVjo4OU+OxYtGWOzt27MCtt96KJ554An/6058sjR2KsJAzIcP777+PTZs2zTiel5eHgYEBjIyM6I7pKxsH9GfkQghdQg4AS5cu9bgQWSHkiYmJGB8fx8TEhOI5WqwVwNyE51//+lckJSUhLi4OJ0+eNBTDm9raWuzevRsPPfQQ7rrrLrz11lth3w+GhZwJGaqqqlzVKu4QkeGl5K2trViwYIHi83qFfHBwEDExMYiJidH8mpKSEtTW1roed3V1aa56UYKIkJKSopiVDw0NYXJyUrVnOmA8I+/q6sJXv/pV/Pa3v8XPf/5zPP7447pjyPH000/jG9/4BubNm4fc3FzExsaGfa07CzkTMnj3Q3HHaKlgTU0NCgoKFJ/Xa63oKT2UKCoq8lhB2tLSoupda8GXTy415dLiwxvNyF966SVs27YN9957L771rW9h586dMNuew26346WXXsL27dtdxzZv3owPPvjAVNxQh4WccdHZ2Ync3Fy88847lsWsqqoCEWHp0qWmY509exbFxcWyzxnNyKuqqrBq1SrF5/VeIPTaKsDMjLypqWnGhK4RMjIy0NXVJfucnnEaLUE8cuQIrrvuOgBASkoKrrnmGuzbt093HHcOHjyIpKQkj/r3jRs34sCBA6bi+pvR0VF897vfxdjYmF/is5AzLr7//e8jJiYGv/jFLyyL+ZOf/ARr167F6dOnTVU+DA0N4eLFi8jOzpZ93mhG3tbWZqm1oqf0UKKwsBBtbW2ujSC0etdq+Lq46RVyI9bKxx9/jNWrV7seb9q0yXTm/F//9V+4++67PY6tX78eH330kam4/kQIgbvvvhuPP/44Xn75Zb+8Bws5A8DRiGrXrl3Ys2cPKisrDU0cejM9PY39+/fj9ddfx/bt2/G3v/3NcKz6+nosXrxYcccco0Ku5pEnJSVhenoag4ODmuIZsVZsNhsKCwtdWblVGbmakGvduMKItTIyMoLz58+jrKzMdWzNmjU4fvy4rjje7Nu3DzfffLPHsaVLl6KlpQVDQ0OmYvuLhx9+GK2trXjllVfw1FNP+eU9WMgZAMCvfvUrfO9730NOTg7Ky8styXCqqqqQmZmJjIwM3HnnnXj99dcNx/LljwMO0dIr5EIItLW1+axakSZStcY2Yq0Ajp4rp0+fxtTUFDo6OnyOSSu+9tz0d0ZeU1ODoqIij801vC0kvUxNTeHMmTNYsWKFx/GoqCjFFbKBpqGhAU8++SR27tyJbdu2obm52VDCoQYLOQMA2LNnj6sR1apVq3Dq1ClLYl5//fUAHD7m0aNHDcfy3sHHGyP13gMDA4iKivLZNApwXCS0NuUyWnEilSBeuHABGRkZqrsLaWH+/PmKAqxHyKXVnXpoamrCwoULZ8SZnJzU1F5XDmmD7ISEhBnPFRQUyPasCTSPPPIIHnzwQRQUFCAyMtJ0OwklWMj9zMTEhO4vwWxz/vx5XL58GaWlpQAwY4GKUQ4fPowNGzYAcGxrNjU1pTj5pkZra6tPu0GyEfTUE6v5496xtWC02ZWUkTc1NVnijwOOyU6lz15vb69mIU9KSsLw8LCunjNylTdEhJKSEsN7ofqywcys7vUXdrsdu3btwr333us6Jv0/Ww0LuR8RQmDbtm3IzMy0dJeVuro6lJeXW7Zf5d69e3H99de7StHKyspw5swZ03FPnjzpug0mIsVNFLSg1p87Pj4e8fHxusrb1BYDSegRcqMZ+ZIlS1BdXY3m5mZL/HEASE5O9lj6746ejDwiIsJnTbocSqtGi4uLDdsrLS0tikIubZsXTBw/fhzJyckedyYs5CHInj170NzcjAceeAC//OUvLYv7+9//HsnJyXjkkUdclQ5mOHDgADZv3ux6XFpaijNnzphaLTc6Oorm5maUlJS4ji1cuNBw1qRlM2K9PrmaPy6hZ7szoxl5QUEBLl68iI8++siyjDw5OVlx42S9Xn5aWpqui6RSLbwZn1ypuRlgvnGaP6isrMTGjRs9jrGQu9Hb2yu7q0qw8eqrr+JLX/oS7r//flMTfd689tpreOyxxyypywUcmYN7mVhaWhqio6NNtS+trq5GSUmJh9dr5vZXy9Znen1yrTvVz0ZGHhkZiTvuuAO/+93vFGvl9SIJudwFWa+Qp6en6/K2L1y4IFsq6i9rJRgz8urq6hn93svKylBTU2N5N8mQE3IhBG699VYsXrw4KGepJYQQeO2113DnnXdiyZIl6O7uRn9/v+m4PT096O7uxsqVK7F161a89dZbpuJNTEygtrZ2xr6NZWVlpjIHd1tFwqiQT01Noa+vT1UgjdR8a8metWb6U1NTGBgY0FzW583PfvYz/OEPf/DwVM0wZ84c2Gy2GXdtRvrBpKWl6RLyzs5O2YtkSUmJ4fmX2RDy4eFhlJWV4V//9V9N9285ffr0jIVwSUlJSE5OttzPDzkhP3DgAC5duoR/+qd/wl/+8hfL4k5PT2PFihX48Y9/bEm848ePIy4uDiUlJYiIiMDKlStN19ACn3w4IiIicO2115pe0XbmzBksXLgQcXFxHseLiopM3fVYKeRdXV1IS0ub0fXQG73WitbmVFKmr5ZF9fb2IiUlBZGRkZrH4E5hYSHuv/9+w6+XQ64L4sjICCIiImb8n/siPT1ds7UihFDcqm7hwoVoaWnB9PS05veW8CXkaWlpGBsbM11L/sQTTyA+Ph7PPPMMDh8+bCrW6dOnZXdgkrJyKwk5IX/ttddwzz334M4778Sbb75pScz+/n4kJCSgra0Nv/nNbyzJnPfu3YubbrrJ9Xj16tU4duyY6bi1tbWu6pKVK1eipqbG1LLfkydPYuXKlTOOm63LPXXqFJYvX25JTK0WiN6MXKuQx8fHIzExUbXixoquhVYjVwNupNZdT0be39+PuLg42cZhMTExSE5ONmTb+RJyIkJubq6prHxsbAxPPfUUnn/+edx5553Yu3ev4Vg9PT0YHx+XtQPNzBUpEVJCPj09jVdffRU33ngjli9fbtlV7Re/+AU2b96Ms2fPYtOmTZbsOvLhhx96tFxdtmyZJZUglZWVrkw3Li4OhYWFpiyQU6dOzcicAUf2bEbIa2pqZmQjeXl5aGlp0e0PavHHAUeJo57dfPQIr5Zbd2lDiGBCrpZcz6pOCT0ZuZKtImHEBhkeHsbY2BhSU1MtjevOs88+i7Vr16K4uNh0/xbpzlmuKZnZC44cpoWciBYQ0V4iqiGi00T0gBUDk+PYsWOIiorCxo0bkZGR4fJOzSCEwCuvvILHHnsMqampuPnmm/H222+bjnngwAEPIS8sLLRkgra6utojg87PzzdV2njy5MkZmTNgLiPv7e3F5OTkDJGMjY1FUlKS7mxMa0buawGMHHqEXIstFIwZeVZWFtrb2z2O+Tsj7+jokLVVJKQLuh6kUlFf3RrNCvkLL7yAb3zjGwAcC9g++ugjw5OSchOdVo1TDisy8ikA3xNClAJYB+CbRFSm8hpDvPPOO7jttttARCAiFBUV4ezZs6Zi1tbWYnJy0jXZt2nTJhw5csRUzPr6esTGxnqUthUWFppeeSaEQG1trUdJn9GufxJVVVUzJjoBc7d/dXV1KCkpkf3SGfHJOzo6NGXkkpBrmaS6fPkyJiYmNO+LqeXLp9a3JRAoZeR67xz0lB+qXXiNZKRafrdGVvdKdHR04PTp09iyZQsAx+8tOTnZcKmkkj8OGLuQqWFayIUQHUKIj50/DwGoASDfos4k7777rofvXFxcbLiUSeLgwYO49tprXaJTXFyM+vp6U+VB3tk44PhgDA4OYnh42HDczs5O2Gw2j9tiX/001Lh48SJGR0dlRTIjIwMjIyOGxuvu43tjJNNXWwwkER8fj+joaMVFMO5IZYJa98XUcgEKRiHPysqaIeRGLCA95Ydq8Y1m5Go92o02TgOAnTt34rbbbsOcOXNcx8zYK3IVKxLBmpG7IKJ8AOUAzE33yjA0NIRjx47hmmuucR3zbshvhBMnTnjsOjN37lwkJSUZFkcAOHr0KNauXetxLCIiAosWLTKVlXtn44C5jFzqKCgnZkRk2CdvaGhAYWGh7HP+zMgB7Z369NogWr58Vm0IYSXz58+fYa0YEXI9GXlfX59PL9tfGbmZ78J//ud/4q677vI4tnHjRnz44YeG4tXX1ys2ecvKykJfXx/Gx8cNxZbDMiEnogQArwD4jhDikszzXyOiSiKqNLJLyL59+7B27VrEx8e7jhUXF5u2Vo4fPz6jasNspq80gVhaWmpqYlJOyM1k5PX19YqCCxj3yX310zYi5FozckC7T653BWaoZuRyvw+jQt7b26vJturv77d8UlKrtWIkIx8YGMDBgwexdetWj+MbNmzAoUOHdMebnJxEX1+f4jxBZGQksrKyLG3bYYmQE5ENDhF/QQjxqtw5QoinhRAVQogKI20+d+/e7WGrAOYzcrvdLlt+Z0bIhRCKvnN5ebmpWnI5y8JMFtLQ0OCzo6DRuu/m5mafS6n9nZFrEXK9KzAl8fElZMGYkctNdhoR8tjYWNhsNk112moZuRFrpaury+cEKvDJv1XvQp433ngDN9xww4yuiiUlJWhpadHdBqOjowPp6ek+1z1Yba9YUbVCAP4IoEYI8SvzQ5Jn//79rpaoEosXL0ZjY6OhxQUA0NjYiKSkpBkfOjOTqC0tLUhISJD9IJeUlJi6g6ipqZmRkWdnZ6O9vd2Qp9/Y2OiXjNxXuaBeIZ+enkZPT4/m7FmPkOvJyBMTEzFnzhxFn3h4eBjj4+OaNjOeTTIyMtDf34+pqSnXMaNlklp9cjUhT0pKgt1u1zSXIaGl0iYmJgZxcXGK/WWUePvtt3HHHXfMOG6z2VBcXKy7bPjChQuqPXyCTsgBbATwRQA3ENEJ55/bLIjrYnR01NXxz534+HikpaUZnuA4fPgw1q1bN+O4GSGXsz8kzC6ykYsdExODefPmGWqVq/aBMzpeX7ZFXl4eWltbNV98u7u7kZqaqrqqU8JfQg74bszU2dmJrKwszZOns0VkZCTS09M9FjMZFXKtPrmakBOR7qy8t7dXU+27kf1F6+rqFCtMli1bhqqqKl3xlPrMuGN15YoVVSsfCiFICLFcCLHS+efvVgxO4uTJkygrK/OYUZYwU9Z36NAhWSE3472fO3dOcVd2SRiN9HAYHh5Gb2+vrPds1CdXW2hjZLJzZGQEQgjZ5v+A48KTkpKiud5bjz8O+FfI8/LyFO8mlJakBwPuE55G+qxI6MnI1e5M9E54ahXyzMxMXT3vhRA+d5+SNvzQg5aumsGYkfudyspKVFRUyD63aNEiwz2ulZan5+fnowNo9kUAACAASURBVL29HZcvX9Yd05eQJyUlISoqytAiJmmHHLk+HEZ9cjUhl2rJ9Vx4tJT16bFXtC4GkpDzhOUwkpWqZeTBthhIwv3i1tXVhcTERNnl82poXRSklpED+oRsfHwcly9f1lTzf9VVV+kS8p6eHkRGRiqO10iiqGUlsp5dp7QQEkLe0NCg2NrTqJALIXDmzBmPzWElbDYbCgoKDGXljY2NWLRokeLzRu0KOX9cwkhGPjIygvHxcSQlJSmek5ycDAC6PEctAqlHyLUuz9cbO5wycveLm9q8iC+0LNO/fPkyhBCqDbn0WAvShUGLbZWZmanLWlHbC9bIFnJaKqL0rkJWIySE3Neu4kaFvKenB3a7XfEXbrRvsq+MHDDeAN+X924kI5cE0teXg4hck6la0fIh1nMx05uRL1iwAB0dHarbkhn1yENRyN1Fo6Ghwefn0xdaMnKtoqvHWtFqqwD6rRVpLYUS0q5Weu5KtYxXrr7fDGEr5A0NDSgqKlL8wC1atMhQ5qxWgqa3sZN7XO/NbCWMZORaM10j/UsCmZHbbDZkZWX5zPYmJiYwNDSkevvvTWFhoeJdml4vfzZxX93p74xci60C6MvI9Xj6eic7GxsbfV7Y5s6di7i4ON12jdp4U1NTMTIyYqpzqTtBL+RCCL8IuZrgGql3npiYwPDwsM+JnuzsbMMTk0pCYSYjV0OvkGvJyP3pkQPqGX9HRwcyMzMREaHv419SUoK2tjbZWupgXAwk4Z79zVZGrobejFzrRTcjI0PXlnRaSgX12itaMnIi0m0D+SLohVyqNVXyctPS0jAxMYHBwUFdcdV6NxgRcqk9qC+BMJqR+1oUE4oZub+sFUD94n7hwgVdWb5EVFQUysrKUF1dPeO5YBZyqzJyLeWHWoVczzL13t5ezRl5RkaGrlLc9vZ21VJBva01tFpBVvrkQS/k0nJvJQuEiAxlpL525AaMTUpqmejT2gvEG18ZuZFFQXqEXM94tfwOFixYgAsXLmgar5HqErX/Oy1fXiWWL1+OU6dOeRwTQgS1kFuVkWspP9RSegh8skxdSwLibyFX+x7oycj1VNiElZD7slUkjAi5WkauZUm2N1om0IwI+eXLlzEyMqKY6RhZFBRIayUmJgZz587VVMpmpOZZLYPSsmBDieXLl+PEiRMexwYGBmCz2TB37lxDMf1NZmYm+vr60NPTg4mJCUM15IC2jFytz4o7Wu0VPRthSEKu9Xur5bOgR8j1VNhYOeF5RQi5kT7Eahm5tL2X1dmo3NZbakg7rvj6cOi9mAXSWgEcdpCaxTQ6OgohhEejNC0sXrzY5yYeeidQ3dmyZQt27drlcSyYs3HAYQkVFBTg9ddfR2FhoeHVp8nJyRgaGvJZEaTVWgG0T3jqqVqJj48HEWFkZET1XLUESUKPkOsZq1yLYaNcEULuj4wc0O+TaxGxlJQUjI6O6lpspKUiQq9PHkhrBdA26Stl43qFp7CwEPX19YpZmZmMfMmSJRgbG/P4vAW7kAPAqlWr8PLLLxu2VQBHK+aUlBSfC9r6+/s195vJzc3V9P3SI46AdntFmndS+3xJJYha0HP3EHbWilJLVAm9Qn758mVcunRJ9RZTr5BrsRWISPd/oJbuf3p+B0IIzUKu5w5iamoKFy9e1PRB1nLhMbK3JOCYGI+JiVH8Mjc0NCiWcqpBRNiwYQM++ugj17FQEPKKigq89dZbWLNmjak4aiKpJyPXmunqtde0Crme78DQ0JCmzo961ieElZBrXe6qR8ilxRtq5Wd6Jzz1ZKN6Kle0ZOR6Fu5cunQJkZGRmjzdxMRETE5OarpV7e3tRXJysmwbAW+0WCtGe4IAn2TlctTX1yuuFNZCKAr5pz/9aQDA5z73OVNx1MRHT0ZeVFSk+H/kjr8ycq1CTkSa15WwkCugpfxMb98CrYKr13vX+p+otR+IhJYPnJ6JEz2LV4hIc/8KPZs16LFWjKC02fXw8DBGR0cNxwVmCnl9fb2q/RdoCgoKMD4+bvhORELts6snI9fSZVQIoauOHLBeyAHtJYj+FHJf7XSDWsjtdrumhvI5OTlobW3VPFPtL8HVeoHQG1fLxUxPTL3L0/XsuqO1VFCLtaKn7MybxYsXy2Z70kIwM+1mV69ejTNnzmBkZAR2ux379u3z2IIwWImOjjYdQ+1zpicjT0tLg91u9+m5Dw8Pw2azITY2VvMY/SHkWn1yPd8tqVe8WjsJifvvv1/xuaAW8r6+PiQkJKh2aktISMCcOXM0N3fSmjlmZWXpskC0/icasVaszMj17qKuddmznl13ZsNakcvIW1paVOdc1IiNjcXy5ctx6NAhnDp1CikpKUG3M5C/8CXkQghdQk5EKC4u9tkm1shnQO9kpxb8kZFHRkYiLS1N8/J/X9+XoBZyPav6pKxcC1oFR4/vrKfPsz8ycj3VJd3d3bq+HFqFXK+1onYXZXSyE1DOyH1tQ6eHO+64A0899RR2796NG2+80XS8UMHXd2JoaAgxMTG6Mv9rr70W7733nuLzev1xQF9GrlVf/JGRA9rvdu12u8/vYECEXOtyer1CrtUn1/rLzszMRG9vr8c2WUoMDAwgPj5edvMLb/R2FNSSkaekpLi2G1NDb5bjj4w8MTERRIRLl2bs0214nO5IGbn3hcKKjBwAvvWtb+HDDz/E7373uxl7yV7J+EpC9PjjErfccgvefvttxef9LeSBzMgB7ULe09Pjc7VoQIR8eHhY03l6hFzPhKdWLzcqKgqpqamaJ/q0ipgey0brooWIiAjNTXj0CqTWD5ueVq5Si1xfvwczQp6cnIzo6OgZX2irMvLExER89rOfRUNDA6677jrT8UIFX0Kux1aR2LhxI06ePKmYgASLkOfn56OlpcXnFoVCCN0tJbQuClJrKxEQIZ+YmNB0nj+tFT0WgJbsWU82qme3b0kctUzOac2c/ZWR621wpXYXZUbIAXmf3Mqd7n/yk59gz549PjfnuNKQKpjk+uToWZ4vERMTg4KCAtTU1Mg+7y+PfGRkBJOTk5p6okjjzMjI8KkxFy9eRGxsrK7dl7QmSWqN3q4oIbfaWgH0bR2mNebcuXMRGRnp01aQ0JM16LlN0yvkWuJaLeQdHR2mNmuQ88mtslYAx0X++uuvtyRWqBAdHY2kpCTZnitaG2Z5s3z5cpw8eVL2OSMZeVpaGvr6+nw2ZZM+q3qql9R8ciOblWi9O5+VjJyIthJRHRE1ENEP1c73h5DrWRTkDxtET0auJ66e34G/MvL8/HxNu6To7WHiy1oZGhqC3W5HYmKi5njeeGfkU1NTaG9vV+0/zfhGKbkxkpEDjrYHSpUrRoTcZrNh3rx5PpuyGem3o+aTGxFyrYsO/Z6RE1EkgN8CuBVAGYB7iGjmRphuTE5O+vSaJPyRkU9OTmJwcFDzB06rtaInIwe0W0HBkJGnp6cjMjLS5+3qxMQELl26pOtL5+t3oKVRmBreGXlHRwfS09MtqacOZ5SSEKMZeWlpqU9rxUjlktr8ixEhV8vIjWz3V1BQ4LPBm4RafyArMvK1ABqEEOeEEBMAXgSwzdcLIiMjNd+qa/1lS0KuljX29PQgNTVV0zJywH+7smvdu1PPJghaMnK73Y7+/n7dX46SkhLU1tYqPt/Z2YmMjAxdu+74ynCMbCjhTUlJiYdAWOmPhzO+MnKrhdzoojC1760/MnIjn9m8vDx0dHSouhSzYa1kA3BPq9qcxxSJjo5WzUaFELp+MXPnzoXNZlNdFNTa2qrr1lqPtaInI9fakEvLVlQSWjLygYEBJCQkwGazaYop4S2K3hj5YpSVlSkuO7ZCyEtLS1FfX+9aOWdVxUq4oySSRsoPAYcF1tbWJrt/pRFrBQhMRm7kM2uz2ZCTk6OqBbMx2Sl37zsjLSairxFRJRFVAlDtQyw1dkpISNA8EC32it4GR/7KyKWNK9Roa2vTLORaMnKjlSClpaU+M3IjH+KcnBwMDw/LXnytEPLY2FgsWLDAZa9YOdEZzijZjXp7okjYbDYsXLhQtu+KUWtF7XtrdAtBqzNyQJu9MhsZeRsAd2XMATDjNyiEeFoIUSGEqEhISFAVciO/FC0TnnqF3B/lh4D2jFyPkGvJyI0KuZq1YmQXeSJSvK22QsgBYOnSpaiqqgLA1opVKImkkck+CbnPgTTvYuTioHYnbSQjT01Nhd1uV7zrN/IdANTb+Y6Pj6vOP1kh5EcBLCaihUQUDWA7gNd8vUCLtWI0w7M6I09NTcXw8LDqRhB6Jzu1ZORCCLS1tWneBCEzM1OxxlfCTEbuy1rRM5/hjpK9YqWQSxUR0v6vjDl8CbnRclG5z5eUHOmZd5Hwh7UitbO1el6nsLBQNdNXa7ttWsiFEFMAdgB4G0ANgJeEEMpdcADMmTPHLxl5Xl6eaimPXiHXshHE5cuXMTExoatULisry7WHohJ9fX2Ii4vTvNVZTEwMEhIS0N/fr3iO3oZZEnl5eeju7lbsS270Q1xaWupXIXcvbWOP3BrkhNxutxvaKFtCTsiNVIFIqPUeMrrdny+f3F/WipYdrSypIxdC/F0IUSSEKBBC/D9q50dHR6sKuZHblJKSEtTV1fk8x8gmAGr2ivQB1lMqFxUVpTrJoWeiU0LNJzeakUdGRmLx4sWK/aON3la6Wx/uWC3kQgg0NTWZ7sfNyLdf1dNrSI7ZFPKhoSEIIQxtlq2UkY+NjWF4eNiQDaRmrWipXAvIyk6bzeaXjFzNxwWMCbma36bXH5dQa6yvx1aRUFuFaWbZuy97xai1snbtWhw9enSGHWSVkBcXF6OjowO1tbWYM2eOqQVGjIPIyEhkZGR4JDdm/HHA8d2tr6/3WF9iRsgzMjLQ09Mju17FyKpOiUWLFslm5Fp3HVOK2dTUpLi2pq2tTVWzAibk0k4tShj5IhcWFuL8+fOKjdonJyfR09OjW3DUZsD1+uMSWoRcb0auZgPpbWHrjq8LpVHhTU9PR3p6uoe9Mj4+jqGhIUPZjTc2mw3XXHMNHn30USxZssR0PMaB99ZnZoU8Pj4eGRkZHjFbWloMr8K12WxITk6WXd1p1FYBlLNnM4lHfHw8kpOTFZNFLSXTAetHrlZhYuQXExMTg+zsbEUPq729HRkZGYiKitIVV6u1opfi4mKfVpARIc/NzfV5t2MmI1cS8snJSfT39xv2R9evX4+DBw+6Hp87dw65ubmGshs5vv3tb+O5557Dhg0bLInHOJaWu3/PzAo5AKxatQqVlZWux42NjSgsLDQcT8lmNCPkStaKUWtRwteEZ9Bm5IBDyH0JjtErnK+s0egmuYG0VvQKudqKUX9YK11dXa5l/EZYt26dh5BXV1dj2bJlhmLJcdNNN+HgwYP453/+Z8tihjvePULMVKxIbNy40WMv1IaGBlNCLm1e4o0ZIc/NzUVnZ+eMIgWzG3D78smDOiNX29g42IQ8VKwVtfp0M0JeVFSEhoaGGV6eWT/7lltuweuvv+5qr1BdXY2lS5cajifHunXrLLFqGAfeXrEVGbn7ptZCCDQ0NKCgoMBwPKXt/sx8Xm02G7Kzs2d8x5qamkxtwO2rkCDohVwpcxwdHcX4+DiSk5N1x/U1IWdUyNWsFaMZeU5ODgYGBhQ32jBSteJLyKUdyY0KeVxcHK666qoZ8c3eVhYUFGDOnDmuDK+mpgalpaWG4zH+x/tzZpW1UlNTg5GREXR1dSEiIsJUP3ql7f7MZOSAfAmi2TUKy5cvx6lTp2Yc1zqvFzAh91U7KRXAG5lVLisrs1zIJWtFqSGX0Yw8IiIChYWFildiMx653KKggYEBxMXFGS4RA+R7rhitWHGnoqICx44dAwDU19ejqKjIVDzGv3hbK52dnaaFPCYmBitWrMDRo0dRVVWFZcuWmep+WVhY6Bchl/PJm5ubTWXkK1euxIkTJ2Ycb29vR2Zmpuq8XsCE3FfNt5lbHykjlxNdo0I+d+5cREREKG4EYTQjB5TtlUuXLhnqxx0bG4uUlBTLl1BLKAm52VLB9evX44MPPnDdUi9evNhUPMa/ZGVlob+/37Xi2YrPFvCJvSIJuRmU1ii0trbqLut1R87PbmpqMpWRZ2dnY3p6esbkbEtLiybNCpiQFxcXo7a2VlZwzQhDcnIyEhISZJfqm5mQ8LX832hGDjh+D3JCLmXjRjISpYkTK75scs2zzForgGNC8p133kFHRwdiY2M1b8HFBIbIyEgsXLjQlfFakZED1gr5ggULMDk56VGOOzU1hQsXLpha4bts2TKPHY0uXbqE8fFxQ829JIgIK1asmJGVt7a2ahprwIQ8KSkJ8fHxspmj2QxPqX+HGSFXKjuanp421N9boqioSHZytqmpyfCHzZ9CXlJSMuN3a4W1snLlSnR1daG4uBhXX321qVjM7LBmzRocOXIEY2Nj6O3tNZXlSkilqCdOnDAt5ESEVatW4eOPP3Yda29vR3p6uil7cc2aNTh27JjLvpT8cTM2EODZF0hCq2YFTMgB5WzUrIcl179jbGwMg4ODhoVMaeKkr68PSUlJumvTJVasWIHjx4/POG7GXlCarbcqI6+rq/O4k7LCWomIiMCePXvw5S9/Gc8995ypWMzssG7dOhw6dAiNjY3Iz883/B1wZ/78+YiLi8OJEyewatUq0/FWr16NI0eOuB5b0TgtLS0NycnJLj0w649LLF26FNXV1R7Hgt5aARzZqJxPrqUA3hdyC23a2tqQlZVleJGJL3E06o8Djl4gLS0tGBoa8jheX19vWMj9mZGnpaWBiDw237XCWgGA8vJyPPnkk4aqlZjZZ+PGjdi9ezc+/vhjlJX53N1RF6+88grefPNNS7bku+6667Bnzx7XY7NlghIbNmzA+++/74ppRVdNOSEPemsFUPeHzcT1FnKzBftKGbmZjm+Aoy516dKlM7JyM0KutErMCiEnIo9a/enpafT29lrijzKhxYoVK1BUVIQvfelLWLdunWVx165di61bt1oSa9OmTTh+/LirxNcqIb/99tuxa9cuV0wrhFyquHOvOAuJjFxpiXowCrlSRm5molPCvfROwsyqNqmk0XvhjtmLjoS7kHd3dyMlJUX31nHMlcGf//xnPPHEE9ixY0eghyJLfHw81qxZg/379wOwTsi3bt2Kffv24fLly6iqqrJkAVtiYiLS0tJcNepSx04t4w2okC9ZsmRGeZDezRTkyMnJweDgoEe5oFkhz8vLQ2dn54x9Bc1aK4Bj8uTo0aOux5OTk2htbTXccjUlJQXz58+fMU9gVYlYeXk5Dh06BEDf5tDMlUdmZiYeeOABxMXFBXooitx4443YvXs3AOuy55SUFKxcuRK7d+9GZWWlJX4+4GmvdHZ2wmazaVqRHFAhX7hwIQYHB9HX1+c6pnczBTkiIiJmLHk1K+RRUVHIzc2dsXGFFRn52rVrcfjwYdfjpqYmZGdnm/IIS0tLZ9hWVonuhg0bXBNI58+ftyTDYRh/sWXLFpeQNzY2WtaT/t5778VnP/tZ5OXlWZbMuAt5bW0tSkpKNL0uoEIeERGBlStXevjDZm0VCW97RavX5As5n9yKjLykpAT9/f3o6uoCYM4fl/CeSJ6amkJ3d7clH7iysjKcO3cOo6OjOH/+PBYtWmQ6JsP4i4qKCrS1teHs2bPo6emx7PP61a9+FQ8//DB+//vfWxIPcLgU7kKutVVFQIUcmLk01ap9Fb2F3IrVgnI+uRW+c0REBNavX+9qGGSFkHv/+6X6WSu87JiYGFRUVGD//v2orq7WnDUwTCCIiorCDTfcgEcffRRLly413KXTGyLCD37wA6xevdqSeIDjonPgwAHY7XacPHkydIS8vLzcIyO3ysNyryWfnJxES0uL6SuxXEZutuZdYuPGjThw4AAA8+07gZkVQWatJW9uueUW7Nq1CwcPHsT69esti8sw/uDmm2/Gs88+a1k1jL8oLS1Famoq9uzZg507d+L222/X9LqgE3KrMvINGzbgvffew9jYGM6ePYvc3FxTq7kAeSG3ygratGkT9u7dC8Baa0VauNPS0mLpxsOf//zn8Zvf/AbNzc2W1hAzjD+4++678cUvfhHf/OY3Az0UVe677z7cdNNN6Ozs1Nw8ztRSLCL6XwA+BWACQCOALwshLuqJUVpaiqamJoyOjiIuLg7Nzc2W1KTm5eWhtLQUb7zxBqampizZqMC7wdX4+DguXrxoSSXIxo0b0draisbGRhw/ftx0OVN6erprk+u8vDycPXvW0o6ChYWF2LFjBxYuXGjZTj4M4y9SU1NDZsXwjh07MDY2hjvuuEPza8yuqX0XwI+EEFNE9P8C+BGA/64nQHR0NEpKSnDq1CmsW7fOsowcAH7605/i+9//PvLy8nDzzTebjpebm4uenh7XRefChQuYP3++JUIWFRWFz3/+89iwYQPmzZtn+ndARLj66qtx5MgR5OXloba2VvNtmlaeeuopS+MxDONYJPijH/1I12tMKZAQ4h0hxJTz4SEAhjyG8vJy14SnlUK+detW1NfX49y5c7jvvvtMx4uMjERJSYmrsY2WnTv08PDDD+Pqq6/Gv//7v1sSz72ssba2FsXFxZbEZRgmuLDynvgrAN408kLJJ7906RKGh4ctWX0IOLLS8+fPo7Ky0rL+HeXl5a5uavX19aYnJd1JTk7Ga6+9hhtvvNGSeFKXtrGxMdTV1bGXzTBXKKpCTkS7iaha5s82t3P+BcAUgBd8xPkaEVUSUaV7wyUArlpyaYWUlZ5rdnY2EhISLIvn3hbz7NmzQZ3lrl69GseOHcP+/ftRWlpqapEVwzDBi6piCiFuFEIslfmzEwCI6D4AdwC4VyjtheaI87QQokIIUeG9D9+qVatw5swZvPvuu5Y23/EHq1atclXZ1NXVBbWQp6amYuvWrbjlllvwhS98IdDDYRjGT5hKfYloKxyTm58WQowajRMXF4cNGzbg0UcfDfqa5BUrVuD06dOYnJxEXV1d0O8t+eKLL2LXrl34+te/HuihMAzjJ8xWrfwGwBwA7zp3xzgkhDCkGD/96U+xfPlyXSU3gSA+Ph6LFy/Gm2++ifb2dks9cn8QERGB2267LdDDYBjGj5gSciGEZSq2efNmbN682apwfuWLX/witm3bhi996UuIiYkJ9HAYhglzyIet7TcqKipEZWXlrL+vVQgh0NzcjOzsbO7DzTDMrEFEx4QQFd7HzW+yF4YQEbduZRgmaOC11QzDMCEOCznDMEyIw0LOMAwT4rCQMwzDhDgs5AzDMCEOCznDMEyIw0LOMAwT4rCQMwzDhDgBWdlJREMA6lRPDDzzAAwGehAa4HFaRyiMEeBxWk0agN5AD0IDxUKIud4HA7Wys05umWmwQURPCyG+FuhxqMHjtI5QGCPA47QaIqoMEU2S7W3C1opvXg/0ADTC47SOUBgjwONk3AiUtRISVz+GYcKDUNEkpXEGKiN/OkDvyzAMI0eoaJLsOAMi5EKIoPqlEdECItpLRDVEdJqIHnB77ltEVOc8/m/BOE4i+isRnXD+aSKiE0E6zpVEdMg5zkoiWhuk41xBRAeJqIqIXieixACPM4aIjhDRSec4/4fz+EIiOkxE9c7PQHSQjnMHETUQkSCitECOUYlg0yQlFMcphAj7PwDmA1jl/HkugLMAygBcD2A3gDnO5zKCcZxe5/wSwEPBOE4A7wC41Xn8NgD7gnScRwFc6zz+FQD/GuBxEoAE5882AIcBrAPwEoDtzuP/G8A3gnSc5QDyATQBSAvkGK/UP37NyH1kPD8nogtuWWRA9yITQnQIIT52/jwEoAZANoBvAHhUCDHufK47cKP0OU4AADn22/scgL8EZoQOfIxTAJCy23kA2gMzQgc+xlkMYL/ztHcB3B2YEToQDoadD23OPwLADQD+5jz+JwB3BmB4LpTGKYQ4LoRoCtzIPCGirc677AYi+qHzWNDfNfjC39bKFIDvCSFK4bgyf5OIypzPPS6EWOn883c/j0MzRJQPRwZxGEARgM3O29f3iWhNIMfmjtc4JTYD6BJC1AdiTHJ4jfM7AP4XEbUCeAzAjwI3Mk+8xlkN4NPOpz4LYEFgRvUJRBTptMy64bi4NAK4KISYcp7SBreLeqDwHqcQ4rDaa2YTIooE8FsAt8Jx93WPU5MOALgRQHMAh2cYvwq5WgYZbBBRAoBXAHxHCHEJjjr7ZDguQv8M4CVn1htQZMYpcQ8CnI27IzPObwB4UAixAMCDAP4YyPFJyIzzK3AkHcfgsFwmAjk+ABBCTAshVgLIAbAWQKncabM7KpkBeI2TiJYGekxerAXQIIQ4J4SYAPAigG3Bdtegl1mb7JTJIHcQ0SkieoaIkmdrHEoQkQ2OL/MLQohXnYfbALzqvGU8AsAOxwqwgKEwThBRFIDPAPhroMbmjsI47wMg/fwyHF+qgCI3TiFErRDiZiHEajgujI2BHKM7QoiLAPbBkVwkOf/fAYdwBtSqcsdtnFsDPBRvsgG0uj0OijsZs8yKkMtkPP8BoADASgAdcEzQBQxnlv1HADVCiF+5PfVfcPiQIKIiANEI4DJeH+MEHLeFtUKIttkfmSc+xtkO4FrnzzcACKgFpDROIspw/h0B4CdwTCQGDCJKJ6Ik58+xcPxf1wDYC+AfnKfdB2BnYEboQGGctYEckwxyd9QBv5Mxi9+X6CtkPF1uz/8ewBv+HocKGwF8EUCVW+nejwE8A+AZIqqG4/b6PiFEIP/TZcfpnGPYjuCxVZR+n18F8GtnFjkGINBLt5XGuZiIvul8/CqAZwMxODfmA/iT09+NAPCSEOINIjoD4EUi+p8AjiPwVpXSOL8N4AcArgJwioj+LoT4bwEaYxs85zyC6k7GKH5d2enMeP4EoF8I8R234/OFEB3Onx8EcLUQYrvfBsIwDAOXBXkWwBYAF+AoNf2CEOK08/kmABVCiFBooOXC6wrCLAAABWZJREFU3xm5UsZzDxGthOOWpgnA/+3ncTAMw0AIMUVEOwC8DSASwDNCiNNBdtegm4D0WmEYhmGsg7sfMgzDhDgs5AzDMCEOCznDMFc0zmX3v3R7/H0i+nkAh2Q5LOQMw1zpjAP4TCj2UNEKCznDMFc6U3D08X7Q+wkiyiOi95yrzN8jolwimkeOdtARznPiiKjVuSYmKGEhZxgmHPgtgHuJaJ7X8d8AeE4IsRzACwCeFEIMAjiJT1YhfwrA20KIyVkbrU5YyBmGueJxtgZ5DsC3vZ5aD+D/d/78ZwCbnD//FcDnnT9vR5D0MFKChZxhmHDhCQD3A4j3cY60sOY1ALcSUQqA1QD2+HlspmAhZxgmLBBC9MOxq9L9boc/giPjBoB7AXzoPHcYwBEAvwbwhhBiehaHqhsWcoZhwolfwrMV9bcBfJmITsHRTuQBt+f+CuAfEeS2CsBL9BmGYUIezsgZhmFCHBZyhmGYEIeFnGEYJsRhIWcY5oqDiBYQ0V4iqiGi00T0gPN4ChG9S0T1zr+TncdLiOggEY0T0ffV4gQbPNnJMMwVBxHNBzBfCPExEc0FcAzAnQD+Lzh2LHuUiH4IIFkI8d+d+7TmOc8ZEEI85iuOEOJMAP5ZinBGzjDMFYcQokMI8bHz5yE4NqvOBrANju0n4fz7Tuc53UKIowAmNcYJKljIGYa5oiGifADlAA4DyJT2C3b+nWEwTlDBQs4wzBULESUAeAXAd5z9VgIax1+wkDMMc0XibDv7CoAXhBCvOg93OX1vyf/uNhgnqGAhZxjmioOICMAfAdQIIX7l9tRrAO5z/nwfgJ0G4wQVXLXCMMwVBxFtAvABgCoAdufhH8Phb78EIBdAC4DPCiH6iegqAJUAEp3nDwMoA7BcLo4Q4u+z9E/RBAs5wzBMiMPWCsMwTIjDQs4wDBPisJAzDMOEOCzkDMMwIQ4LOcMwTIgTFegBMIwaRJQK4D3nw6sATAPocT4eFUJs8MN7lgP4phDiv1kQ6zoAE0KIj5yPdwAYEUI8azY2wwBcfsiEGET0cwDDUnc6P77PywD+pxDipAWxfg63MRNRHIADQohys7EZBmBrhQlxiGjY+fd1RPQ+Eb1ERGeJ6FEiupeIjhBRFREVOM9LJ6JXiOio889GmZhzASyXRNz5mneJ6GMi+h0RNRNRGhHlE1EtEf2BiKqJ6AUiupGIDjj7Xa91Nlr6OoAHiegEEW0WQowCaCKitbP1e2KubFjImSuJFXDsgr4Mjh3Ri4QQawH8AcC3nOf8GsDjQog1AO52PudNBYBqt8c/A7BHCLEKwH/CsSpQotAZczmAEgBfALAJwPfhWAHYBOB/O99zpRDiA+frKgFsNvWvZRgn7JEzVxJHpRalRNQI4B3n8SoA1zt/vhFAmaOFBgAgkYjmOntNS8zHJx484BDmuwBACPEWEQ24PXdeCFHlfM/TAN4TQggiqgKQ72Os3XAIP8OYhoWcuZIYd/vZ7vbYjk8+6xEA1gshLvuIcxlAjNtjUjpR43vKEeN8H4YxDVsrTLjxDoAd0gMiWilzTg0clonEhwA+5zz/ZgDJOt9zCMBcr2NF8LRvGMYwLORMuPFtABVEdIqIzsAxEemBEKIWwDznpCcA/A8ANxPRxwBuBdABhzhr5XUAd0mTnc5jGwHsNvqPYBh3uPyQYWQgogcBDAkh/kBEcwBMCyGmiGg9gP8QQshl8lpjlwP4rhDii1aNlwlv2CNnGHn+A8BnnT/nAniJiCIATAD4qsnYaQB+ajIGw7jgjJxhGCbEYY+cYRgmxGEhZxiGCXFYyBmGYUIcFnKGYZgQh4WcYRgmxGEhZxiGCXH+D52hvRbgM4PLAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df['v'].plot(color='k', lw=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's also get tidal datum for this station:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Value \n",
" \n",
" \n",
" Datum \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" MHHW \n",
" 2.543 \n",
" \n",
" \n",
" MHW \n",
" 2.445 \n",
" \n",
" \n",
" DTL \n",
" 1.773 \n",
" \n",
" \n",
" MTL \n",
" 1.755 \n",
" \n",
" \n",
" MSL \n",
" 1.785 \n",
" \n",
" \n",
" MLW \n",
" 1.065 \n",
" \n",
" \n",
" MLLW \n",
" 1.002 \n",
" \n",
" \n",
" GT \n",
" 1.542 \n",
" \n",
" \n",
" MN \n",
" 1.380 \n",
" \n",
" \n",
" DHQ \n",
" 0.099 \n",
" \n",
" \n",
" DLQ \n",
" 0.063 \n",
" \n",
" \n",
" NAVD \n",
" 1.848 \n",
" \n",
" \n",
" LWI \n",
" 7.210 \n",
" \n",
" \n",
" HWI \n",
" 0.840 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Value\n",
"Datum \n",
"MHHW 2.543\n",
"MHW 2.445\n",
"DTL 1.773\n",
"MTL 1.755\n",
"MSL 1.785\n",
"MLW 1.065\n",
"MLLW 1.002\n",
"GT 1.542\n",
"MN 1.380\n",
"DHQ 0.099\n",
"DLQ 0.063\n",
"NAVD 1.848\n",
"LWI 7.210\n",
"HWI 0.840"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datum = coops_api(station=8518750, begin_date='20121025', end_date='20121101', product='datums', datum='MLLW', units='metric')\n",
"datum"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `coops_api` is the most direct way of interfacing with the CO-OPS API. Its drawback is that it allows for extraction of data for only a relatively small window (see [CO-OPS API](https://tidesandcurrents.noaa.gov/api/) documentation). Serious applications require many years of data. That's where the `coops_api_batch` function becomes much more convenient.\n",
"\n",
"# Batch Data Extraction\n",
"Let's get 10 years of wind data for the [Eagle Point, Galveston Bay, TX](https://tidesandcurrents.noaa.gov/stationhome.html?id=8771013) station:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" s \n",
" d \n",
" dr \n",
" g \n",
" f \n",
" \n",
" \n",
" Time (gmt) \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 2005-01-01 00:00:00 \n",
" 0.00 \n",
" 114.0 \n",
" ESE \n",
" 3.11 \n",
" 0,0 \n",
" \n",
" \n",
" 2005-01-01 00:06:00 \n",
" 0.19 \n",
" 95.0 \n",
" E \n",
" 2.14 \n",
" 0,0 \n",
" \n",
" \n",
" 2005-01-01 00:12:00 \n",
" 3.89 \n",
" 99.0 \n",
" E \n",
" 4.47 \n",
" 0,0 \n",
" \n",
" \n",
" 2005-01-01 00:18:00 \n",
" 6.41 \n",
" 104.0 \n",
" ESE \n",
" 7.39 \n",
" 0,0 \n",
" \n",
" \n",
" 2005-01-01 00:24:00 \n",
" 6.80 \n",
" 99.0 \n",
" E \n",
" 8.16 \n",
" 0,0 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" s d dr g f\n",
"Time (gmt) \n",
"2005-01-01 00:00:00 0.00 114.0 ESE 3.11 0,0\n",
"2005-01-01 00:06:00 0.19 95.0 E 2.14 0,0\n",
"2005-01-01 00:12:00 3.89 99.0 E 4.47 0,0\n",
"2005-01-01 00:18:00 6.41 104.0 ESE 7.39 0,0\n",
"2005-01-01 00:24:00 6.80 99.0 E 8.16 0,0"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wind = coops_api_batch(station=8771013, begin_date='20050101', end_date='20150101', product='wind', datum='NAVD')\n",
"wind.dropna().head()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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imHDhpX03TfffJM33nij5LIj18GLSFMRmQosA8YA84BVquplqkXAnjm+201EJovI5OXLl+csI43dky5ZsiRw+l133RXL/F9++eWiPl9XV1dy9U52Usj1v5VL0pLp008/naizmL/97W9Ffb6UZNujRw+mT59e9Pe+DRYuXMjtt99e0ncHDx4cqezICV5V61S1LbAXzjisBwZ9LMd3+6hqjarWZF+omD9/Pq+99hqqSosWLaKGWVErV66sdghFe/jhh7n55puL/t7mXFXmOfDAoFU2XpdffnnJLaeiuu6668peRq9evUq+W7zcO8P77ruPpUuXlrWMfKq5s4+tFY2qrsIZdPsoYEcR8Qb03gtYXOz81qxZw+effw6U/wj+qaee4vXXX49tfjvvvHNs86qU2tra1HYyVWgDO/fccxu87to19ktGDBw4sGpVZpXi39kXm9SiHCgU6siuX79+VU/wpf5/UQ+goraiaSkiO7rPtwJ+DswCJgBnux/rDIyIUk6Q1atXxzav1157jRkzZsQ2P4B33nkn1vl5mjZtWpb5jh49mn79+jWYtnjxYp577rkc3/jmfyy0MZf7CCbMRpDvM9mnwU888UTkmIJU6khu2bJlJX83yo1O3jIePHgwd999NwD/+te/YinTL7tDvnJ2ZBeHzTbBA62ACSIyDXgHGKOqo4DrgWtE5COgBdAvzzxyyvfD57pIGVVcG2H79u1jmU+27PrmuJbD6NGjWb16dYP/v7a2lq+++gqAE088sdGZVPv27UOvgOWsyvn3v/8d6ftz586NKZLGvOVZiaqsHj16ALDbbrsxdOhQevfuXdJ8Sr3RyXtvxYoVLF7snLR37NgxcpnZgjrkK2a7LbaVWocOHSKd3RaT4GfOnMmll16aeV3VBK+q01S1naoepqqHqOod7vSPVbW9qv5AVc9R1ZKGgKlU17nr169n+PDh1NbW0q5du4qUGZc77rgj9GeHDBlScNCQP/7xj4wY4ZxwffHFF4wZMwZwznLWrVvH888/X7Acb2MLM0BJHMLUba9du7bgZ37961/nfO/zzz/PVLGESZyqSt++fbn//vtZtGhRo51nOfTq1Yu///3vgHP2tWDBgrKWl+38888HoEmTJkVd+I5juRx22GGhP5vvPhPPnDlzePfddzOfjxpj2ES9atUqpk2bFqksv0TdyVpMK444j4hW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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"wind['s'].plot(lw=.5, color='k')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"wind['s'].plot(kind='hist', bins=40, facecolor='None', edgecolor='k')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's save this wind data for future use. pandas also allows saving DataFrame objects to csv or xlsx formats by using built-in DataFrame methods."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"wind.to_csv(r'../../data/wind_speed.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Datum Extraction\n",
"Though the `coops_api` function provides a way to extract tidal datums, the recommended way to do so is through the `coops_datum` function. This function requires less arguments and provides a more detailed output and, optionally, station metadata. These methods are demonstrated for the [Arena Cove](https://tidesandcurrents.noaa.gov/stationhome.html?id=9416841) station, located in California."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"datum, meta = coops_datum(station=9416841, units='english', metadata=True)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Value \n",
" Description \n",
" \n",
" \n",
" Datum \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" STND \n",
" 0.00 \n",
" Station Datum \n",
" \n",
" \n",
" MHHW \n",
" 34.81 \n",
" Mean Higher-High Water \n",
" \n",
" \n",
" MHW \n",
" 34.14 \n",
" Mean High Water \n",
" \n",
" \n",
" DTL \n",
" 31.88 \n",
" Mean Diurnal Tide Level \n",
" \n",
" \n",
" MTL \n",
" 32.12 \n",
" Mean Tide Level \n",
" \n",
" \n",
" MSL \n",
" 32.08 \n",
" Mean Sea Level \n",
" \n",
" \n",
" MLW \n",
" 30.10 \n",
" Mean Low Water \n",
" \n",
" \n",
" MLLW \n",
" 28.94 \n",
" Mean Lower-Low Water \n",
" \n",
" \n",
" GT \n",
" 5.86 \n",
" Great Diurnal Range \n",
" \n",
" \n",
" MN \n",
" 4.04 \n",
" Mean Range of Tide \n",
" \n",
" \n",
" DHQ \n",
" 0.67 \n",
" Mean Diurnal High Water Inequality \n",
" \n",
" \n",
" DLQ \n",
" 1.15 \n",
" Mean Diurnal Low Water Inequality \n",
" \n",
" \n",
" HWI \n",
" 6.84 \n",
" Greenwich High Water Interval (in hours) \n",
" \n",
" \n",
" LWI \n",
" 0.51 \n",
" Greenwich Low Water Interval (in hours) \n",
" \n",
" \n",
" NAVD88 \n",
" 29.07 \n",
" North American Vertical Datum of 1988 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Value Description\n",
"Datum \n",
"STND 0.00 Station Datum\n",
"MHHW 34.81 Mean Higher-High Water\n",
"MHW 34.14 Mean High Water\n",
"DTL 31.88 Mean Diurnal Tide Level\n",
"MTL 32.12 Mean Tide Level\n",
"MSL 32.08 Mean Sea Level\n",
"MLW 30.10 Mean Low Water\n",
"MLLW 28.94 Mean Lower-Low Water\n",
"GT 5.86 Great Diurnal Range\n",
"MN 4.04 Mean Range of Tide\n",
"DHQ 0.67 Mean Diurnal High Water Inequality\n",
"DLQ 1.15 Mean Diurnal Low Water Inequality\n",
"HWI 6.84 Greenwich High Water Interval (in hours)\n",
"LWI 0.51 Greenwich Low Water Interval (in hours)\n",
"NAVD88 29.07 North American Vertical Datum of 1988"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datum"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Value \n",
" \n",
" \n",
" Property \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" accepted \n",
" Dec 6 2011 \n",
" \n",
" \n",
" superseded \n",
" \n",
" \n",
" \n",
" epoch \n",
" 1983-2001 \n",
" \n",
" \n",
" units \n",
" feet \n",
" \n",
" \n",
" OrthometricDatum \n",
" NAVD88 \n",
" \n",
" \n",
" LAT \n",
" 26.755 \n",
" \n",
" \n",
" LATdate \n",
" 19900525 \n",
" \n",
" \n",
" LATtime \n",
" 13:36 \n",
" \n",
" \n",
" HAT \n",
" 36.587 \n",
" \n",
" \n",
" HATdate \n",
" 19861231 \n",
" \n",
" \n",
" HATtime \n",
" 18:06 \n",
" \n",
" \n",
" min \n",
" 26.302 \n",
" \n",
" \n",
" mindate \n",
" 20030518 \n",
" \n",
" \n",
" mintime \n",
" 14:48 \n",
" \n",
" \n",
" max \n",
" 37.601 \n",
" \n",
" \n",
" maxdate \n",
" 19980206 \n",
" \n",
" \n",
" maxtime \n",
" 14:36 \n",
" \n",
" \n",
" DatumAnalysisPeriod \n",
" [05/01/1991 - 04/30/2008, 05/01/2009 - 04/30/2... \n",
" \n",
" \n",
" NGSLink \n",
" http://www.ngs.noaa.gov/Tidal_Elevation/diagra... \n",
" \n",
" \n",
" ctrlStation \n",
" 9415020 Point Reyes, CA \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Value\n",
"Property \n",
"accepted Dec 6 2011\n",
"superseded \n",
"epoch 1983-2001\n",
"units feet\n",
"OrthometricDatum NAVD88\n",
"LAT 26.755\n",
"LATdate 19900525\n",
"LATtime 13:36\n",
"HAT 36.587\n",
"HATdate 19861231\n",
"HATtime 18:06\n",
"min 26.302\n",
"mindate 20030518\n",
"mintime 14:48\n",
"max 37.601\n",
"maxdate 19980206\n",
"maxtime 14:36\n",
"DatumAnalysisPeriod [05/01/1991 - 04/30/2008, 05/01/2009 - 04/30/2...\n",
"NGSLink http://www.ngs.noaa.gov/Tidal_Elevation/diagra...\n",
"ctrlStation 9415020 Point Reyes, CA"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"meta"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Final Remarks\n",
"This tutorial doesn't cover all functionality and ways of using the `noaa_coops` module. Please refer to the [module source code](https://github.com/georgebv/coastlib/blob/master/coastlib/data/noaa_coops.py) and the API reference for more information on arguments not covered here."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}