Announcement: All noncommercial projects registered to use Earth Engine before April 15, 2025 must verify noncommercial eligibility to maintain Earth Engine access.
This quickstart will give you an interactive introduction to visualizing and
analyzing geospatial data with the Earth Engine Python interface.
Before you begin
Register or create a Google Cloud
Project; you'll be prompted to complete the following steps. If you already have a project
registered for Earth Engine access, skip to the next section.
Select the project's purpose: commercial or noncommercial.
If the purpose is noncommercial, select a project type.
Create a new Google Cloud project or select an existing project.
If the purpose is commercial, verify or set up billing for your project.
Confirm your project information.
Note: If you don't plan to keep the resources that you create
in this procedure, create a project instead of selecting an existing project. After you finish
these steps, you can
delete the project,
removing all resources owned by the project.
Notebook setup
Jupyter notebooks allow you to use Earth Engine and explore results
interactively. The quickest way to get started is with a notebook in Google
Colab notebook. You can either open a new notebook and
copy the following code chunks into individual cells or use the prefilled
Earth Engine Python Quickstart notebook.
Import the Earth Engine and geemap libraries.
importeeimportgeemap.coreasgeemap
Authenticate and initialize the Earth Engine service. Follow the
resulting prompts to complete authentication. Be sure to replace PROJECT_ID
with the name of the project you set up for this quickstart.
Plot the temperature for the cities as a bar chart.
alt.Chart(city_climates_dataframe).mark_bar(size=100).encode(alt.X('city:N',sort='y',axis=alt.Axis(labelAngle=0),title='City'),alt.Y('temperature_2m:Q',title='Temperature (K)'),tooltip=[alt.Tooltip('city:N',title='City'),alt.Tooltip('temperature_2m:Q',title='Temperature (K)'),],).properties(title='January 2023 temperature for selected cities',width=500)
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-11-07 UTC."],[[["\u003cp\u003eThis quickstart provides an interactive introduction to visualizing and analyzing geospatial data using the Earth Engine Python interface within a Jupyter notebook environment like Google Colab.\u003c/p\u003e\n"],["\u003cp\u003eUsers will learn to add both raster and vector data to an interactive map, visualizing climate data and city locations as examples.\u003c/p\u003e\n"],["\u003cp\u003eThe guide demonstrates data extraction and charting by retrieving climate data for specific cities and creating a bar chart using the Altair library.\u003c/p\u003e\n"],["\u003cp\u003eBefore starting, users need a Google Cloud Project registered for Earth Engine access, and the quickstart provides instructions for setting one up.\u003c/p\u003e\n"],["\u003cp\u003eFurther learning resources on Earth Engine objects, processing environments, machine learning capabilities, and data export to BigQuery are linked at the end.\u003c/p\u003e\n"]]],[],null,["|----------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|\n| [Run in Google Colab](https://colab.research.google.com/github/google/earthengine-community/blob/master/guides/linked/generated/quickstart_python.ipynb) | [View source on GitHub](https://github.com/google/earthengine-community/blob/master/guides/linked/generated/quickstart_python.ipynb) |\n\nThis quickstart will give you an interactive introduction to visualizing and\nanalyzing geospatial data with the Earth Engine Python interface.\n\nBefore you begin\n\n\n[Register or create](https://console.cloud.google.com/earth-engine) a Google Cloud\nProject; you'll be prompted to complete the following steps. If you already have a project\nregistered for Earth Engine access, skip to the next section.\n\n- Select the project's purpose: commercial or noncommercial.\n- If the purpose is noncommercial, select a project type.\n- Create a new Google Cloud project or select an existing project.\n- If the purpose is commercial, verify or set up billing for your project.\n- Confirm your project information. \n\n **Note:** If you don't plan to keep the resources that you create\n in this procedure, create a project instead of selecting an existing project. After you finish\n these steps, you can\n [delete the project](https://cloud.google.com/resource-manager/docs/creating-managing-projects#shutting_down_projects),\n removing all resources owned by the project.\n\nNotebook setup Jupyter notebooks allow you to use Earth Engine and explore results interactively. The quickest way to get started is with a notebook in Google Colab notebook. You can either [**open a new notebook**](https://colab.new/) and copy the following code chunks into individual cells or use the prefilled [**Earth Engine Python Quickstart notebook**](https://colab.sandbox.google.com/github/google/earthengine-community/blob/master/guides/linked/generated/quickstart_python.ipynb).\n\n1. Import the Earth Engine and geemap libraries. \n\n ```python\n import ee\n import geemap.core as geemap\n ```\n\n\n2. Authenticate and initialize the Earth Engine service. Follow the resulting prompts to complete authentication. Be sure to replace PROJECT_ID with the name of the project you set up for this quickstart. \n\n ```python\n ee.Authenticate()\n ee.Initialize(project='PROJECT_ID')\n ```\n\nAdd raster data to a map\n\n\n1. Load climate data for a given period and display its metadata. \n\n ```python\n jan_2023_climate = (\n ee.ImageCollection('ECMWF/ERA5_LAND/MONTHLY_AGGR')\n .filterDate('2023-01', '2023-02')\n .first()\n )\n jan_2023_climate\n ```\n\n\n2. Instantiate a map object and add the temperature band as a layer with specific visualization properties. Display the map. \n\n ```python\n m = geemap.Map(center=[30, 0], zoom=2)\n\n vis_params = {\n 'bands': ['temperature_2m'],\n 'min': 229,\n 'max': 304,\n 'palette': 'inferno',\n }\n m.add_layer(jan_2023_climate, vis_params, 'Temperature (K)')\n m\n ```\n\nAdd vector data to a map\n\n1. Create a vector data object with points for three cities. \n\n ```python\n cities = ee.FeatureCollection([\n ee.Feature(ee.Geometry.Point(10.75, 59.91), {'city': 'Oslo'}),\n ee.Feature(ee.Geometry.Point(-118.24, 34.05), {'city': 'Los Angeles'}),\n ee.Feature(ee.Geometry.Point(103.83, 1.33), {'city': 'Singapore'}),\n ])\n cities\n ```\n\n\u003c!-- --\u003e\n\n2. Add the city locations to the map and redisplay it. \n\n ```python\n m.add_layer(cities, name='Cities')\n m\n ```\n\nExtract and chart data\n\n1. Import the Altair charting library. \n\n ```python\n %pip install -q --upgrade altair\n import altair as alt\n ```\n\n\n2. Extract the climate data for the three cities as a pandas DataFrame. \n\n ```python\n city_climates = jan_2023_climate.reduceRegions(cities, ee.Reducer.first())\n\n city_climates_dataframe = ee.data.computeFeatures(\n {'expression': city_climates, 'fileFormat': 'PANDAS_DATAFRAME'}\n )\n city_climates_dataframe\n ```\n\n\u003c!-- --\u003e\n\n3. Plot the temperature for the cities as a bar chart. \n\n ```python\n alt.Chart(city_climates_dataframe).mark_bar(size=100).encode(\n alt.X('city:N', sort='y', axis=alt.Axis(labelAngle=0), title='City'),\n alt.Y('temperature_2m:Q', title='Temperature (K)'),\n tooltip=[\n alt.Tooltip('city:N', title='City'),\n alt.Tooltip('temperature_2m:Q', title='Temperature (K)'),\n ],\n ).properties(title='January 2023 temperature for selected cities', width=500)\n ```\n\nWhat's next\n\n- Learn about analyzing data with Earth Engine's [objects and methods](/earth-engine/guides/objects_methods_overview).\n- Learn about Earth Engine's [processing environments](/earth-engine/guides/processing_environments).\n- Learn about Earth Engine's [machine learning capabilities](/earth-engine/guides/machine-learning).\n- Learn how to [export your computation results to BigQuery](/earth-engine/guides/exporting_to_bigquery)."]]