text: {
   "cells": [
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "# Mapboxgl Python Library for location data visualization\n",
      "\n",
      "https://github.com/mapbox/mapboxgl-jupyter\n",
      "\n",
      "### Requirements\n",
      "\n",
      "These examples require the installation of the following python modules\n",
      "\n",
      "```\n",
      "pip install mapboxgl\n",
      "```\n",
      "\n",
      "### Notes\n",
      "\n",
      "`ImageViz` object accepts either an url, a local path or a numpy ndarray data as input for an image source"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": null,
     "metadata": {},
     "outputs": [],
     "source": [
      "import os\n",
      "import numpy\n",
      "from matplotlib.pyplot import imread\n",
      "from mapboxgl.viz import ImageViz"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "## Set your Mapbox access token.  \n",
      "Set a  `MAPBOX_ACCESS_TOKEN` environment variable or copy/paste your token  \n",
      "If you do not have a Mapbox access token, sign up for an account at https://www.mapbox.com/  \n",
      "If you already have an account, you can grab your token at https://www.mapbox.com/account/"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": null,
     "metadata": {},
     "outputs": [],
     "source": [
      "# Must be a public token, starting with `pk`\n",
      "token = os.getenv('MAPBOX_ACCESS_TOKEN')"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "## Display an image given an URL"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": null,
     "metadata": {
      "scrolled": false
     },
     "outputs": [],
     "source": [
      "img_url = 'https://raw.githubusercontent.com/mapbox/mapboxgl-jupyter/master/examples/data/mosaic.png'\n",
      "\n",
      "# Coordinates must be an array in the form of [UL, UR, LR, LL]\n",
      "coordinates = [[-123.40515640309, 38.534294809274336],\n",
      "               [-115.92938988349292, 38.534294809274336],\n",
      "               [-115.92938988349292, 32.08296982365502], \n",
      "               [-123.40515640309, 32.08296982365502]]\n",
      "\n",
      "# Create the viz from the dataframe\n",
      "viz = ImageViz(img_url, \n",
      "               coordinates, \n",
      "               access_token=token,\n",
      "               height='600px',\n",
      "               center=(-119, 35),\n",
      "               zoom=5,\n",
      "               below_layer='waterway-label')\n",
      "viz.show()"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "## Display an image given a numpy.ndarray"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": null,
     "metadata": {
      "scrolled": false
     },
     "outputs": [],
     "source": [
      "img = imread(img_url)\n",
      "img = numpy.mean(img[::10, ::10], axis=2)\n",
      "\n",
      "# Coordinates must be an array in the form of [UL, UR, LR, LL]\n",
      "coordinates = [[-123.40515640309, 38.534294809274336],\n",
      "               [-115.92938988349292, 38.534294809274336],\n",
      "               [-115.92938988349292, 32.08296982365502], \n",
      "               [-123.40515640309, 32.08296982365502]]\n",
      "\n",
      "# Create the viz from the dataframe\n",
      "viz = ImageViz(img, \n",
      "               coordinates, \n",
      "               access_token=token,\n",
      "               height='600px',\n",
      "               center=(-119, 35),\n",
      "               zoom=5,\n",
      "               below_layer='waterway-label')\n",
      "viz.show()"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "## Display an image given a local path"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": null,
     "metadata": {
      "scrolled": false
     },
     "outputs": [],
     "source": [
      "# Coordinates must be an array in the form of [UL, UR, LR, LL]\n",
      "coordinates = [[-123.40515640309, 38.534294809274336],\n",
      "               [-115.92938988349292, 38.534294809274336],\n",
      "               [-115.92938988349292, 32.08296982365502], \n",
      "               [-123.40515640309, 32.08296982365502]]\n",
      "\n",
      "# Create the viz from the dataframe\n",
      "viz = ImageViz(img_url, \n",
      "               coordinates, \n",
      "               access_token=token,\n",
      "               height='600px',\n",
      "               center=(-119, 35),\n",
      "               zoom=5,\n",
      "               below_layer='waterway-label')\n",
      "viz.show()"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "## Choose a colormap"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": null,
     "metadata": {},
     "outputs": [],
     "source": [
      "from matplotlib import cm\n",
      "\n",
      "img = imread(img_url)\n",
      "img = numpy.mean(img[::10, ::10], axis=2)\n",
      "img = cm.magma(img)\n",
      "\n",
      "# Coordinates must be an array in the form of [UL, UR, LR, LL]\n",
      "coordinates = [[-123.40515640309, 38.534294809274336],\n",
      "               [-115.92938988349292, 38.534294809274336],\n",
      "               [-115.92938988349292, 32.08296982365502], \n",
      "               [-123.40515640309, 32.08296982365502]]\n",
      "\n",
      "# Create the viz from the dataframe\n",
      "viz = ImageViz(img_url, \n",
      "               coordinates, \n",
      "               access_token=token,\n",
      "               height='600px',\n",
      "               center=(-119, 35),\n",
      "               zoom=5,\n",
      "               below_layer='waterway-label')\n",
      "viz.show()"
     ]
    }
   ],
   "metadata": {
    "anaconda-cloud": {
     "attach-environment": true,
     "environment": "Root",
     "summary": "Mapboxgl Python Data Visualization example"
    },
    "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.6.1"
    }
   },
   "nbformat": 4,
   "nbformat_minor": 1
  }
  