{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", " \n", " \n", " \n", "
View source on GitHubNotebook Viewer Run in Google Colab
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Install Earth Engine API and geemap\n", "Install the [Earth Engine Python API](https://developers.google.com/earth-engine/python_install) and [geemap](https://github.com/giswqs/geemap). The **geemap** Python package is built upon the [ipyleaflet](https://github.com/jupyter-widgets/ipyleaflet) and [folium](https://github.com/python-visualization/folium) packages and implements several methods for displaying Earth Engine data layers, such as `Map.addLayer()`, `Map.setCenter()`, and `Map.centerObject()`.\n", "The following script checks if the geemap package has been installed. If not, it will install geemap, which automatically installs its [dependencies](https://github.com/giswqs/geemap#dependencies), including earthengine-api, folium, and ipyleaflet." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "# Installs geemap package\n", "import subprocess\n", "\n", "try:\n", " import geemap\n", "except ImportError:\n", " print('geemap package not installed. Installing ...')\n", " subprocess.check_call([\"python\", '-m', 'pip', 'install', 'geemap'])" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "import ee\n", "import geemap" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create an interactive map" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f8ea3ceedcc24564bd2528e372f4b18f", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Map(center=[40, -100], controls=(WidgetControl(options=['position'], widget=HBox(children=(ToggleButton(value=…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Map = geemap.Map(center=[40,-100], zoom=4)\n", "Map" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Add Earth Engine Python script" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mount Everest elevation (m): 8729\n" ] } ], "source": [ "# Add Earth Engine dataset\n", "image = ee.Image('USGS/SRTMGL1_003')\n", "\n", "# Set visualization parameters.\n", "vis_params = {\n", " 'min': 0,\n", " 'max': 4000,\n", " 'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']}\n", "\n", "# Print the elevation of Mount Everest.\n", "xy = ee.Geometry.Point([86.9250, 27.9881])\n", "elev = image.sample(xy, 30).first().get('elevation').getInfo()\n", "print('Mount Everest elevation (m):', elev)\n", "\n", "# Add Earth Engine layers to Map\n", "Map.addLayer(image, vis_params, 'SRTM DEM', True, 0.5)\n", "Map.addLayer(xy, {'color': 'red'}, 'Mount Everest')\n", "\n", "# Center the map based on an Earth Eninge object or coordinates (longitude, latitude)\n", "# Map.centerObject(xy, 4)\n", "Map.setCenter(86.9250, 27.9881, 4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Add layer control and display the map" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f8ea3ceedcc24564bd2528e372f4b18f", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Map(center=[27.9881, 86.925], controls=(WidgetControl(options=['position'], widget=HBox(children=(ToggleButton…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Map.addLayerControl()\n", "Map" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Add basemaps" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "05aeb5a653b1467e8ab55a4864dd313e", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Map(center=[40, -100], controls=(WidgetControl(options=['position'], widget=HBox(children=(ToggleButton(value=…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Map = geemap.Map(center=[40, -100], zoom=4)\n", "Map.add_basemap('Esri Ocean')\n", "Map.add_basemap('Esri Physical Map')\n", "Map.add_basemap('Esri National Geographic')\n", "Map.addLayerControl()\n", "Map" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Add XYZ tile layer" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "74e839bd8d95474ca95d05f7ddbbbae2", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Map(center=[40, -100], controls=(WidgetControl(options=['position'], widget=HBox(children=(ToggleButton(value=…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Map = geemap.Map(center=[40, -100], zoom=4)\n", "url = 'https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}'\n", "Map.add_tile_layer(url, name='Google Map', attribution='Google')\n", "Map.addLayerControl()\n", "Map" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Add WMS layer" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "74325fe5bf6640b9b64c005d788a74b1", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Map(center=[40, -100], controls=(WidgetControl(options=['position'], widget=HBox(children=(ToggleButton(value=…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Map = geemap.Map(center=[40, -100], zoom=4)\n", "\n", "elev_url = 'https://elevation.nationalmap.gov/arcgis/services/3DEPElevation/ImageServer/WMSServer?'\n", "Map.add_wms_layer(url=elev_url, layers='3DEPElevation:None', name='3DEP Elevation', shown=False)\n", "\n", "naip_url = 'https://services.nationalmap.gov/arcgis/services/USGSNAIPImagery/ImageServer/WMSServer?'\n", "Map.add_wms_layer(url=naip_url, layers='0', name='NAIP Imagery', format='image/png', shown=True)\n", "\n", "Map.addLayerControl()\n", "Map" ] } ], "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.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }