Skip to content

Commit

Permalink
Added js-py conversion module
Browse files Browse the repository at this point in the history
  • Loading branch information
giswqs committed Mar 16, 2020
1 parent 175a7df commit 67cb54b
Show file tree
Hide file tree
Showing 20 changed files with 4,969 additions and 16 deletions.
187 changes: 187 additions & 0 deletions examples/JavaScripts/ClippedComposite.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<table class=\"ee-notebook-buttons\" align=\"left\">\n",
" <td><a target=\"_blank\" href=\"https://github.com/giswqs/geemap/tree/master/examples/JavaScripts/ClippedComposite.ipynb\"><img width=32px src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /> View source on GitHub</a></td>\n",
" <td><a target=\"_blank\" href=\"https://nbviewer.jupyter.org/github/giswqs/geemap/blob/master/examples/JavaScripts/ClippedComposite.ipynb\"><img width=26px src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/3/38/Jupyter_logo.svg/883px-Jupyter_logo.svg.png\" />Notebook Viewer</a></td>\n",
" <td><a target=\"_blank\" href=\"https://mybinder.org/v2/gh/giswqs/geemap/master?filepath=examples/JavaScripts/ClippedComposite.ipynb\"><img width=58px src=\"https://mybinder.org/static/images/logo_social.png\" />Run in binder</a></td>\n",
" <td><a target=\"_blank\" href=\"https://colab.research.google.com/github/giswqs/geemap/blob/master/examples/JavaScripts/ClippedComposite.ipynb\"><img src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" /> Run in Google Colab</a></td>\n",
"</table>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Install Earth Engine API\n",
"Install the [Earth Engine Python API](https://developers.google.com/earth-engine/python_install) and [geehydro](https://github.com/giswqs/geehydro). The **geehydro** Python package builds on the [folium](https://github.com/python-visualization/folium) package and implements several methods for displaying Earth Engine data layers, such as `Map.addLayer()`, `Map.setCenter()`, `Map.centerObject()`, and `Map.setOptions()`.\n",
"The following script checks if the geehydro package has been installed. If not, it will install geehydro, which automatically install its dependencies, including earthengine-api and folium."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import subprocess\n",
"\n",
"try:\n",
" import geehydro\n",
"except ImportError:\n",
" print('geehydro package not installed. Installing ...')\n",
" subprocess.check_call([\"python\", '-m', 'pip', 'install', 'geehydro'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Import libraries"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import ee\n",
"import folium\n",
"import geehydro"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Authenticate and initialize Earth Engine API. You only need to authenticate the Earth Engine API once. "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"try:\n",
" ee.Initialize()\n",
"except Exception as e:\n",
" ee.Authenticate()\n",
" ee.Initialize()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create an interactive map \n",
"This step creates an interactive map using [folium](https://github.com/python-visualization/folium). The default basemap is the OpenStreetMap. Additional basemaps can be added using the `Map.setOptions()` function. \n",
"The optional basemaps can be `ROADMAP`, `SATELLITE`, `HYBRID`, `TERRAIN`, or `ESRI`."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"Map = folium.Map(location=[40, -100], zoom_start=4)\n",
"Map.setOptions('HYBRID')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Add Earth Engine Python script "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# Composite an image collection and clip it to a boundary.\n",
"\n",
"# Load Landsat 7 raw imagery and filter it to April-July 2000.\n",
"collection = ee.ImageCollection('LANDSAT/LE07/C01/T1') \\\n",
" .filterDate('2000-04-01', '2000-07-01')\n",
"\n",
"# Reduce the collection by taking the median.\n",
"median = collection.median()\n",
"\n",
"# Load a table of state boundaries and filter.\n",
"fc = ee.FeatureCollection('TIGER/2016/States') \\\n",
" .filter(ee.Filter.Or(\n",
" ee.Filter.eq('NAME', 'Nevada'),\n",
" ee.Filter.eq('NAME', 'Arizona')))\n",
"\n",
"# Clip to the output image to the Nevada and Arizona state boundaries.\n",
"clipped = median.clipToCollection(fc)\n",
"\n",
"# Display the result.\n",
"Map.setCenter(-110, 40, 5)\n",
"visParams = {'bands': ['B3', 'B2', 'B1'], 'gain': [1.4, 1.4, 1.1]}\n",
"Map.addLayer(clipped, visParams, 'clipped composite')\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Display Earth Engine data layers "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjUuMS9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjUuMS9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF9iMTk2YjYxNDdmNGU0ZWJlYmNlMTY5YmQ5ZGI2ZGVjOCB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5mdWxsc2NyZWVuLzEuNC4yL0NvbnRyb2wuRnVsbFNjcmVlbi5taW4uanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0LmZ1bGxzY3JlZW4vMS40LjIvQ29udHJvbC5GdWxsU2NyZWVuLm1pbi5jc3MiLz4KPC9oZWFkPgo8Ym9keT4gICAgCiAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF9iMTk2YjYxNDdmNGU0ZWJlYmNlMTY5YmQ5ZGI2ZGVjOCIgPjwvZGl2PgogICAgICAgIAo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXBfYjE5NmI2MTQ3ZjRlNGViZWJjZTE2OWJkOWRiNmRlYzggPSBMLm1hcCgKICAgICAgICAgICAgICAgICJtYXBfYjE5NmI2MTQ3ZjRlNGViZWJjZTE2OWJkOWRiNmRlYzgiLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGNlbnRlcjogWzQwLjAsIC0xMDAuMF0sCiAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICAgICAgICAgICAgICB6b29tOiA0LAogICAgICAgICAgICAgICAgICAgIHpvb21Db250cm9sOiB0cnVlLAogICAgICAgICAgICAgICAgICAgIHByZWZlckNhbnZhczogZmFsc2UsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICAKCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfMzdlMzFmMGNhY2I2NDg3Y2E5ZDdhNGFjOTA2Mzc2NTQgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICJodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZyIsCiAgICAgICAgICAgICAgICB7ImF0dHJpYnV0aW9uIjogIkRhdGEgYnkgXHUwMDI2Y29weTsgXHUwMDNjYSBocmVmPVwiaHR0cDovL29wZW5zdHJlZXRtYXAub3JnXCJcdTAwM2VPcGVuU3RyZWV0TWFwXHUwMDNjL2FcdTAwM2UsIHVuZGVyIFx1MDAzY2EgaHJlZj1cImh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0XCJcdTAwM2VPRGJMXHUwMDNjL2FcdTAwM2UuIiwgImRldGVjdFJldGluYSI6IGZhbHNlLCAibWF4TmF0aXZlWm9vbSI6IDE4LCAibWF4Wm9vbSI6IDE4LCAibWluWm9vbSI6IDAsICJub1dyYXAiOiBmYWxzZSwgIm9wYWNpdHkiOiAxLCAic3ViZG9tYWlucyI6ICJhYmMiLCAidG1zIjogZmFsc2V9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2IxOTZiNjE0N2Y0ZTRlYmViY2UxNjliZDlkYjZkZWM4KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgdGlsZV9sYXllcl85NDhlNDVlYjIxMmU0M2JiOGE3MWY5NzI1YzQxYjkxMiA9IEwudGlsZUxheWVyKAogICAgICAgICAgICAgICAgImh0dHBzOi8vbXQxLmdvb2dsZS5jb20vdnQvbHlycz15XHUwMDI2eD17eH1cdTAwMjZ5PXt5fVx1MDAyNno9e3p9IiwKICAgICAgICAgICAgICAgIHsiYXR0cmlidXRpb24iOiAiR29vZ2xlIiwgImRldGVjdFJldGluYSI6IGZhbHNlLCAibWF4TmF0aXZlWm9vbSI6IDE4LCAibWF4Wm9vbSI6IDE4LCAibWluWm9vbSI6IDAsICJub1dyYXAiOiBmYWxzZSwgIm9wYWNpdHkiOiAxLCAic3ViZG9tYWlucyI6ICJhYmMiLCAidG1zIjogZmFsc2V9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2IxOTZiNjE0N2Y0ZTRlYmViY2UxNjliZDlkYjZkZWM4KTsKICAgICAgICAKICAgIAogICAgICAgICAgICBtYXBfYjE5NmI2MTQ3ZjRlNGViZWJjZTE2OWJkOWRiNmRlYzguZml0Qm91bmRzKAogICAgICAgICAgICAgICAgW1s0MCwgLTExMF0sIFs0MCwgLTExMF1dLAogICAgICAgICAgICAgICAgeyJtYXhab29tIjogNX0KICAgICAgICAgICAgKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgdGlsZV9sYXllcl9jYTNmNzNmODhhY2E0NzZlOGI5MjFmNmYwOWFlNjc4OCA9IEwudGlsZUxheWVyKAogICAgICAgICAgICAgICAgImh0dHBzOi8vZWFydGhlbmdpbmUuZ29vZ2xlYXBpcy5jb20vdjFhbHBoYS9wcm9qZWN0cy9lYXJ0aGVuZ2luZS1sZWdhY3kvbWFwcy9hZGY1ZGU2NWE2NDdlMTI0YzljNTdmYzE0OTMzMTY3NS1kMGY2MDM3NzZhMTk4MGE4NWQyODkwYTlkMWYwOWI0Yy90aWxlcy97en0ve3h9L3t5fSIsCiAgICAgICAgICAgICAgICB7ImF0dHJpYnV0aW9uIjogIkdvb2dsZSBFYXJ0aCBFbmdpbmUiLCAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsICJtYXhOYXRpdmVab29tIjogMTgsICJtYXhab29tIjogMTgsICJtaW5ab29tIjogMCwgIm5vV3JhcCI6IGZhbHNlLCAib3BhY2l0eSI6IDEsICJzdWJkb21haW5zIjogImFiYyIsICJ0bXMiOiBmYWxzZX0KICAgICAgICAgICAgKS5hZGRUbyhtYXBfYjE5NmI2MTQ3ZjRlNGViZWJjZTE2OWJkOWRiNmRlYzgpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBsYXllcl9jb250cm9sXzVlMmM3YWM4YzkyMDQxYjM5MWZhMDlhNjg2MDZjMWZlID0gewogICAgICAgICAgICAgICAgYmFzZV9sYXllcnMgOiB7CiAgICAgICAgICAgICAgICAgICAgIm9wZW5zdHJlZXRtYXAiIDogdGlsZV9sYXllcl8zN2UzMWYwY2FjYjY0ODdjYTlkN2E0YWM5MDYzNzY1NCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBvdmVybGF5cyA6ICB7CiAgICAgICAgICAgICAgICAgICAgIkdvb2dsZSBTYXRlbGxpdGUiIDogdGlsZV9sYXllcl85NDhlNDVlYjIxMmU0M2JiOGE3MWY5NzI1YzQxYjkxMiwKICAgICAgICAgICAgICAgICAgICAiY2xpcHBlZCBjb21wb3NpdGUiIDogdGlsZV9sYXllcl9jYTNmNzNmODhhY2E0NzZlOGI5MjFmNmYwOWFlNjc4OCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIEwuY29udHJvbC5sYXllcnMoCiAgICAgICAgICAgICAgICBsYXllcl9jb250cm9sXzVlMmM3YWM4YzkyMDQxYjM5MWZhMDlhNjg2MDZjMWZlLmJhc2VfbGF5ZXJzLAogICAgICAgICAgICAgICAgbGF5ZXJfY29udHJvbF81ZTJjN2FjOGM5MjA0MWIzOTFmYTA5YTY4NjA2YzFmZS5vdmVybGF5cywKICAgICAgICAgICAgICAgIHsiYXV0b1pJbmRleCI6IHRydWUsICJjb2xsYXBzZWQiOiB0cnVlLCAicG9zaXRpb24iOiAidG9wcmlnaHQifQogICAgICAgICAgICApLmFkZFRvKG1hcF9iMTk2YjYxNDdmNGU0ZWJlYmNlMTY5YmQ5ZGI2ZGVjOCk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgTC5jb250cm9sLmZ1bGxzY3JlZW4oCiAgICAgICAgICAgICAgICB7ImZvcmNlU2VwYXJhdGVCdXR0b24iOiBmYWxzZSwgInBvc2l0aW9uIjogInRvcGxlZnQiLCAidGl0bGUiOiAiRnVsbCBTY3JlZW4iLCAidGl0bGVDYW5jZWwiOiAiRXhpdCBGdWxsIFNjcmVlbiJ9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2IxOTZiNjE0N2Y0ZTRlYmViY2UxNjliZDlkYjZkZWM4KTsKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIGxhdF9sbmdfcG9wdXBfNDYzMTA2NTM0ODU0NDA5MDg1ZmEyMjExYTcyZjZlMGYgPSBMLnBvcHVwKCk7CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBsYXRMbmdQb3AoZSkgewogICAgICAgICAgICAgICAgICAgIGxhdF9sbmdfcG9wdXBfNDYzMTA2NTM0ODU0NDA5MDg1ZmEyMjExYTcyZjZlMGYKICAgICAgICAgICAgICAgICAgICAgICAgLnNldExhdExuZyhlLmxhdGxuZykKICAgICAgICAgICAgICAgICAgICAgICAgLnNldENvbnRlbnQoIkxhdGl0dWRlOiAiICsgZS5sYXRsbmcubGF0LnRvRml4ZWQoNCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPGJyPkxvbmdpdHVkZTogIiArIGUubGF0bG5nLmxuZy50b0ZpeGVkKDQpKQogICAgICAgICAgICAgICAgICAgICAgICAub3Blbk9uKG1hcF9iMTk2YjYxNDdmNGU0ZWJlYmNlMTY5YmQ5ZGI2ZGVjOCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbWFwX2IxOTZiNjE0N2Y0ZTRlYmViY2UxNjliZDlkYjZkZWM4Lm9uKCdjbGljaycsIGxhdExuZ1BvcCk7CiAgICAgICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x7fe2cd34b3a0>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Map.setControlVisibility(layerControl=True, fullscreenControl=True, latLngPopup=True)\n",
"Map"
]
}
],
"metadata": {
"anaconda-cloud": {},
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
22 changes: 22 additions & 0 deletions examples/JavaScripts/ClippedComposite.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// Composite an image collection and clip it to a boundary.

// Load Landsat 7 raw imagery and filter it to April-July 2000.
var collection = ee.ImageCollection('LANDSAT/LE07/C01/T1')
.filterDate('2000-04-01', '2000-07-01');

// Reduce the collection by taking the median.
var median = collection.median();

// Load a table of state boundaries and filter.
var fc = ee.FeatureCollection('TIGER/2016/States')
.filter(ee.Filter.or(
ee.Filter.eq('NAME', 'Nevada'),
ee.Filter.eq('NAME', 'Arizona')));

// Clip to the output image to the Nevada and Arizona state boundaries.
var clipped = median.clipToCollection(fc);

// Display the result.
Map.setCenter(-110, 40, 5);
var visParams = {bands: ['B3', 'B2', 'B1'], gain: [1.4, 1.4, 1.1]};
Map.addLayer(clipped, visParams, 'clipped composite');
25 changes: 25 additions & 0 deletions examples/JavaScripts/ClippedComposite.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import ee
from ee_plugin import Map

# Composite an image collection and clip it to a boundary.

# Load Landsat 7 raw imagery and filter it to April-July 2000.
collection = ee.ImageCollection('LANDSAT/LE07/C01/T1') \
.filterDate('2000-04-01', '2000-07-01')

# Reduce the collection by taking the median.
median = collection.median()

# Load a table of state boundaries and filter.
fc = ee.FeatureCollection('TIGER/2016/States') \
.filter(ee.Filter.Or(
ee.Filter.eq('NAME', 'Nevada'),
ee.Filter.eq('NAME', 'Arizona')))

# Clip to the output image to the Nevada and Arizona state boundaries.
clipped = median.clipToCollection(fc)

# Display the result.
Map.setCenter(-110, 40, 5)
visParams = {'bands': ['B3', 'B2', 'B1'], 'gain': [1.4, 1.4, 1.1]}
Map.addLayer(clipped, visParams, 'clipped composite')

0 comments on commit 67cb54b

Please sign in to comment.