{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\"Open\n", "\n", "Uncomment the following line to install [geemap](https://geemap.org) if needed." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# !pip install geemap" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To follow this tutorial, you will need to [sign up](https://datapane.com/accounts/signup/) for an account with , then install and authenticate the `datapane` Python package. More information can be found [here](https://docs.datapane.com/tutorials/tut-getting-started). \n", "\n", "- `pip install datapane`\n", "- `datapane login`\n", "- `datapane ping`" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import ee\n", "import geemap.foliumap as geemap" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Create a map centered at (lat, lon).\n", "Map = geemap.Map(center=[40, -100], zoom=4)\n", "\n", "# Use an elevation dataset and terrain functions to create\n", "# a custom visualization of topography.\n", "\n", "# Load a global elevation image.\n", "elev = ee.Image('USGS/GMTED2010')\n", "\n", "# Zoom to an area of interest.\n", "Map.setCenter(-121.069, 50.709, 6)\n", "\n", "# Add the elevation to the map.\n", "Map.addLayer(elev, {}, 'elev')\n", "\n", "# Use the terrain algorithms to compute a hillshade with 8-bit values.\n", "shade = ee.Terrain.hillshade(elev)\n", "Map.addLayer(shade, {}, 'hillshade', False)\n", "\n", "# Create a \"sea\" variable to be used for cartographic purposes\n", "sea = elev.lte(0)\n", "Map.addLayer(sea.mask(sea), {'palette': '000022'}, 'sea', False)\n", "\n", "# Create a custom elevation palette from hex strings.\n", "elevationPalette = ['006600', '002200', 'fff700', 'ab7634', 'c4d0ff', 'ffffff']\n", "# Use these visualization parameters, customized by location.\n", "visParams = {'min': 1, 'max': 3000, 'palette': elevationPalette}\n", "\n", "# Create a mosaic of the sea and the elevation data\n", "visualized = ee.ImageCollection(\n", " [\n", " # Mask the elevation to get only land\n", " elev.mask(sea.Not()).visualize(**visParams),\n", " # Use the sea mask directly to display sea.\n", " sea.mask(sea).visualize(**{'palette': '000022'}),\n", " ]\n", ").mosaic()\n", "\n", "# Note that the visualization image doesn't require visualization parameters.\n", "Map.addLayer(visualized, {}, 'elev palette', False)\n", "\n", "# Convert the visualized elevation to HSV, first converting to [0, 1] data.\n", "hsv = visualized.divide(255).rgbToHsv()\n", "# Select only the hue and saturation bands.\n", "hs = hsv.select(0, 1)\n", "# Convert the hillshade to [0, 1] data, as expected by the HSV algorithm.\n", "v = shade.divide(255)\n", "# Create a visualization image by converting back to RGB from HSV.\n", "# Note the cast to byte in order to export the image correctly.\n", "rgb = hs.addBands(v).hsvToRgb().multiply(255).byte()\n", "Map.addLayer(rgb, {}, 'styled')\n", "\n", "states = ee.FeatureCollection('TIGER/2018/States')\n", "Map.addLayer(ee.Image().paint(states, 0, 2), {}, \"US States\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Display the map.\n", "Map" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "Map.publish(\n", " name='Terrain Visualization',\n", " description='A folium map with Earth Engine data layers',\n", ")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 5 }