{ "cells": [ { "cell_type": "markdown", "id": "0", "metadata": {}, "source": [ "\"Open\n", "\n", "Uncomment the following line to install [geemap](https://geemap.org) if needed." ] }, { "cell_type": "code", "execution_count": null, "id": "1", "metadata": {}, "outputs": [], "source": [ "# !pip install geemap" ] }, { "cell_type": "markdown", "id": "2", "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, "id": "3", "metadata": {}, "outputs": [], "source": [ "import ee\n", "import geemap.foliumap as geemap" ] }, { "cell_type": "code", "execution_count": null, "id": "4", "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, "id": "5", "metadata": {}, "outputs": [], "source": [ "# Display the map.\n", "Map" ] }, { "cell_type": "code", "execution_count": null, "id": "6", "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 }