API Python Earth Engine можно развернуть в блокноте Google Colaboratory. Блокноты Colab — это блокноты Jupyter , которые работают в облаке и тесно интегрированы с Google Диском, что упрощает их настройку, доступ и совместное использование. Если вы не знакомы с блокнотами Google Colab или Jupyter, потратьте некоторое время на изучение приветственного сайта Colab .
В следующих разделах описывается развертывание Earth Engine в Google Colab и визуализация карт и диаграмм с использованием сторонних пакетов Python.
Откройте блокнот Colab
Блокноты можно открыть либо из Google Диска, либо из интерфейса Colaboratory.
Новый блокнот
Гугл Диск
Откройте Google Диск и создайте новый файл.
- Новинка > Еще > Совместная работа
- Щелкните правой кнопкой мыши папку и выберите «Дополнительно» > «Совместная работа» в контекстном меню.
интерфейс колаба
Посетите сайт Colab и создайте новый файл.
- Файл > Создать > Новый блокнот Python 3
- Если вы ранее взаимодействовали с Colab, посещение указанного выше сайта предоставит вам проводник, в котором вы сможете создать новый файл, используя раскрывающееся меню в нижней части окна.
Существующий блокнот
Существующие файлы записной книжки (.ipynb) можно открыть с Google Диска и из интерфейса Colab.
Гугл Диск
Блокноты Colab могут существовать в различных папках на Google Диске в зависимости от того, где были созданы файлы блокнотов. Блокноты, созданные на Google Диске, будут существовать в той папке, в которой они были созданы или перемещены. Записные книжки, созданные в интерфейсе Colab, по умолчанию будут помещены в папку «Записные книжки Colab», которая автоматически добавляется в папку «Мой диск» на вашем Google Диске, когда вы начинаете работать с Colab.
Файлы Colab можно идентифицировать по желтому символу «CO» и расширению файла «.ipynb». Откройте файлы, дважды щелкнув по ним и выбрав «Открыть с помощью» > «Совместная работа» на кнопке, расположенной в верхней части результирующей страницы, или щелкнув файл правой кнопкой мыши и выбрав «Открыть с помощью» > «Совместная работа» в контекстном меню файла.
интерфейс колаба
Открытие блокнотов из интерфейса Colab позволяет получить доступ к существующим файлам с Google Диска, GitHub и локального оборудования. Посещение интерфейса Colab после первоначального использования приведет к появлению модального окна проводника. На вкладках в верхней части проводника выберите источник и перейдите к файлу .ipynb, который вы хотите открыть. Доступ к файловому проводнику также можно получить из интерфейса Colab, выбрав «Файл» > «Открыть блокнот» или используя комбинацию клавиш Ctrl+O .
Импортируйте API и получите учетные данные
В этом разделе показано, как импортировать API Python Earth Engine и аутентифицировать доступ. Этот контент также доступен в виде блокнота Colab:
API Earth Engine по умолчанию включен в Google Colaboratory, поэтому требуется только импорт и аутентификация. Эти шаги необходимо выполнять для каждого нового сеанса Colab, а также при перезапуске ядра Colab или если ваша виртуальная машина Colab перезапускается из-за неактивности.
Импортируйте API
Запустите следующую ячейку, чтобы импортировать API в ваш сеанс.
import ee
Аутентификация и инициализация
Запустите функцию ee.Authenticate
, чтобы аутентифицировать ваш доступ к серверам Earth Engine, и ee.Initialize
чтобы инициализировать ее. Добавьте ячейку кода, введите следующие строки, отредактируйте проект и запустите ячейку.
# Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project')
Вам будет предложено авторизовать доступ к вашей учетной записи Earth Engine. Следуйте инструкциям, напечатанным на ячейке, чтобы выполнить этот шаг.
Проверьте API
Проверьте API, напечатав высоту Эвереста. Обратите внимание, что перед использованием API необходимо его инициализировать. Запустите следующий скрипт Python в новой ячейке.
# Print the elevation of Mount Everest. dem = ee.Image('USGS/SRTMGL1_003') xy = ee.Geometry.Point([86.9250, 27.9881]) elev = dem.sample(xy, 30).first().get('elevation').getInfo() print('Mount Everest elevation (m):', elev)
Визуализация карты
Объекты ee.Image
могут отображаться в выходных ячейках блокнота. Следующие два примера демонстрируют отображение статического изображения и интерактивной карты.
Статическое изображение
Модуль IPython.display
содержит функцию Image
, которая может отображать результаты URL-адреса, представляющего изображение, созданное в результате вызова функции getThumbUrl
Earth Engine. Следующий скрипт отобразит миниатюру глобальной модели рельефа.
# Import libraries. import ee from IPython.display import Image # Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project') # Import a DEM and display a thumbnail of it. dem = ee.Image('USGS/SRTMGL1_003') Image(url=dem.updateMask(dem.gt(0)) .getThumbUrl({'min': 0, 'max': 4000, 'dimensions': 512, 'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']}))
Интерактивная карта
Пакет folium
можно использовать для отображения объектов ee.Image
на интерактивной карте Leaflet . В Folium нет метода по умолчанию для обработки плиток из Earth Engine, поэтому перед использованием его необходимо определить и добавить в модуль folium.Map
.
Следующий скрипт представляет собой пример добавления метода для передачи плиток Earth Engine и его использования для отображения модели рельефа на карте Leaflet.
# Import libraries. import ee import folium # Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project') # Define a method for displaying Earth Engine image tiles to folium map. def add_ee_layer(self, ee_image_object, vis_params, name): map_id_dict = ee.Image(ee_image_object).getMapId(vis_params) folium.raster_layers.TileLayer( tiles = map_id_dict['tile_fetcher'].url_format, attr = "Map Data © Google Earth Engine", name = name, overlay = True, control = True ).add_to(self) # Add EE drawing method to folium. folium.Map.add_ee_layer = add_ee_layer # Fetch an elevation model. dem = ee.Image('USGS/SRTMGL1_003') # Set visualization parameters. vis_params = { 'min': 0, 'max': 4000, 'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']} # Create a folium map object. my_map = folium.Map(location=[20, 0], zoom_start=3) # Add the elevation model to the map object. my_map.add_ee_layer(dem.updateMask(dem.gt(0)), vis_params, 'DEM') # Add a layer control panel to the map. my_map.add_child(folium.LayerControl()) # Display the map. display(my_map)
Визуализация диаграммы
Некоторые функции Earth Engine создают табличные данные, которые можно отображать на графике с помощью пакетов визуализации данных, таких как matplotlib
. В следующем примере показано отображение табличных данных из Earth Engine в виде точечной диаграммы. Дополнительную информацию см. в разделе «Диаграммы в Colaboratory» .
# Import libraries. import ee import matplotlib.pyplot as plt # Trigger the authentication flow. ee.Authenticate() # Initialize the Earth Engine module. ee.Initialize(project='my-project') # Fetch a Landsat TOA image. img = ee.Image('LANDSAT/LT05/C02/T1_TOA/LT05_034033_20000913') # Select Red and NIR bands, scale them, and sample 500 points. samp_fc = img.select(['B3','B4']).sample(scale=30, numPixels=500) # Arrange the sample as a list of lists. samp_dict = samp_fc.reduceColumns(ee.Reducer.toList().repeat(2), ['B3', 'B4']) samp_list = ee.List(samp_dict.get('list')) # Save server-side ee.List as a client-side Python list. samp_data = samp_list.getInfo() # Display a scatter plot of Red-NIR sample pairs using matplotlib. plt.scatter(samp_data[0], samp_data[1], alpha=0.2) plt.xlabel('Red', fontsize=12) plt.ylabel('NIR', fontsize=12) plt.show()