Bạn có thể triển khai Earth Engine Python API trong sổ tay Google Colaboratory. Sổ tay trên Colab là các sổ tay Jupyter chạy trên đám mây và được tích hợp chặt chẽ với Google Drive, giúp bạn dễ dàng thiết lập, truy cập và chia sẻ. Nếu bạn chưa quen với Google Colab hoặc sổ tay Jupyter, vui lòng dành thời gian khám phá trang web chào mừng của Colab.
Các phần sau đây mô tả cách triển khai Earth Engine trong Google Colab và hình ảnh hoá bản đồ và biểu đồ bằng các gói Python của bên thứ ba.
Mở sổ tay Colab
Bạn có thể mở sổ tay từ Google Drive hoặc giao diện Colaboratory.
Sổ tay mới
Google Drive
Mở Google Drive rồi tạo một tệp mới.
- Mới > Khác > Colaboratory
- Nhấp chuột phải vào một thư mục rồi chọn Tuỳ chọn khác > Colaboratory trong trình đơn theo ngữ cảnh.
Giao diện Colab
Truy cập vào trang web Colab và tạo một tệp mới.
- File > New > New Python 3 notebook (Tệp > Mới > Sổ tay Python 3 mới)
- Nếu bạn đã tương tác với Colab trước đây, thì việc truy cập vào trang web được liên kết ở trên sẽ cung cấp cho bạn một trình khám phá tệp, trong đó bạn có thể bắt đầu một tệp mới bằng trình đơn thả xuống ở cuối cửa sổ.
Sổ tay hiện có
Bạn có thể mở các tệp sổ tay hiện có (.ipynb) từ Google Drive và giao diện Colab.
Google Drive
Sổ tay Colab có thể tồn tại trong nhiều thư mục trong Google Drive tuỳ thuộc vào vị trí tạo tệp sổ tay. Sổ tay được tạo trong Google Drive sẽ nằm trong thư mục mà bạn tạo hoặc di chuyển sổ tay đó đến. Theo mặc định, các sổ tay được tạo từ giao diện Colab sẽ nằm trong thư mục có tên "Sổ tay Colab". Thư mục này sẽ tự động được thêm vào thư mục "Ổ của tôi" trên Google Drive khi bạn bắt đầu làm việc với Colab.
Bạn có thể xác định tệp Colab bằng biểu tượng "CO" màu vàng và đuôi tệp ".ipynb". Mở tệp bằng cách nhấp đúp vào tệp đó rồi chọn Open with > Colaboratory (Mở bằng > Colaboratory) trên nút ở đầu trang xuất hiện hoặc nhấp chuột phải vào tệp rồi chọn Open with > Colaboratory (Mở bằng > Colaboratory) trên trình đơn theo bối cảnh của tệp.
Giao diện Colab
Việc mở sổ tay từ giao diện Colab cho phép bạn truy cập vào các tệp hiện có trên Google Drive, GitHub và phần cứng cục bộ. Khi truy cập vào giao diện Colab sau lần sử dụng đầu tiên, một cửa sổ trình khám phá tệp sẽ xuất hiện. Trong các thẻ ở đầu trình khám phá tệp, hãy chọn một nguồn và chuyển đến tệp .ipynb mà bạn muốn mở. Bạn cũng có thể truy cập vào trình khám phá tệp từ giao diện Colab bằng cách chọn File > Open notebook (Tệp > Mở sổ tay) hoặc sử dụng tổ hợp phím Ctrl+O.
Nhập API và lấy thông tin xác thực
Phần này minh hoạ cách nhập API Earth Engine Python và xác thực quyền truy cập. Nội dung này cũng có sẵn dưới dạng sổ tay Colab:
Earth Engine API được đưa vào Google Colaboratory theo mặc định, vì vậy, bạn chỉ cần nhập và xác thực. Bạn phải hoàn tất các bước này cho mỗi phiên Colab mới hoặc nếu khởi động lại hạt nhân Colab hoặc nếu máy ảo Colab của bạn được tái chế do không hoạt động.
Nhập API
Chạy ô sau để nhập API vào phiên của bạn.
import ee
Xác thực và khởi chạy
Chạy hàm ee.Authenticate
để xác thực quyền truy cập của bạn vào máy chủ Earth Engine và ee.Initialize
để khởi chạy hàm này. Thêm một ô mã, nhập các dòng sau, chỉnh sửa dự án và chạy ô.
# Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project')
Bạn sẽ được yêu cầu uỷ quyền truy cập vào tài khoản Earth Engine của mình. Làm theo hướng dẫn được in vào ô để hoàn tất bước này.
Kiểm thử API
Kiểm thử API bằng cách in độ cao của đỉnh Everest. Xin lưu ý rằng trước khi sử dụng API, bạn phải khởi chạy API đó. Chạy tập lệnh Python sau trong một ô mới.
# 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)
Hình ảnh bản đồ
Bạn có thể hiển thị các đối tượng ee.Image
cho các ô đầu ra của sổ tay. Hai ví dụ sau đây minh hoạ cách hiển thị hình ảnh tĩnh và bản đồ tương tác.
Hình ảnh tĩnh
Mô-đun IPython.display
chứa hàm Image
. Hàm này có thể hiển thị kết quả của một URL đại diện cho hình ảnh được tạo từ lệnh gọi đến hàm getThumbUrl
của Earth Engine. Tập lệnh sau đây sẽ hiển thị hình thu nhỏ của mô hình độ cao toàn cầu.
# 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']}))
Bản đồ tương tác
Bạn có thể sử dụng gói folium
để hiển thị các đối tượng ee.Image
trên bản đồ Leaflet (Tờ rơi) tương tác. Folium không có phương thức mặc định để xử lý thẻ thông tin từ Earth Engine, vì vậy, bạn phải xác định và thêm một phương thức vào mô-đun folium.Map
trước khi sử dụng.
Tập lệnh sau đây cung cấp ví dụ về cách thêm một phương thức để xử lý thẻ thông tin Earth Engine và sử dụng phương thức đó để hiển thị mô hình độ cao cho bản đồ 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)
Hình ảnh trực quan của biểu đồ
Một số hàm Earth Engine tạo ra dữ liệu dạng bảng có thể được lập biểu đồ bằng các gói trực quan hoá dữ liệu như matplotlib
. Ví dụ sau đây minh hoạ cách hiển thị dữ liệu dạng bảng từ Earth Engine dưới dạng biểu đồ tán xạ. Hãy xem bài viết Tạo biểu đồ trong Colaboratory để biết thêm thông tin.
# 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()