# !pip install geemap import ee import geemap Map = geemap.Map() Map # point = ee.Geometry.Point([-122.4439, 37.7538]) point = ee.Geometry.Point([-87.7719, 41.8799]) image = ( ee.ImageCollection("LANDSAT/LC08/C01/T1_SR") .filterBounds(point) .filterDate("2019-01-01", "2019-12-31") .sort("CLOUD_COVER") .first() .select("B[1-7]") ) vis_params = {"min": 0, "max": 3000, "bands": ["B5", "B4", "B3"]} Map.centerObject(point, 8) Map.addLayer(image, vis_params, "Landsat-8") props = geemap.image_props(image) props.getInfo() props.get("IMAGE_DATE").getInfo() props.get("CLOUD_COVER").getInfo() # region = Map.user_roi # region = ee.Geometry.Rectangle([-122.6003, 37.4831, -121.8036, 37.8288]) # region = ee.Geometry.Point([-122.4439, 37.7538]).buffer(10000) # Make the training dataset. training = image.sample( **{ # 'region': region, "scale": 30, "numPixels": 5000, "seed": 0, "geometries": True, # Set this to False to ignore geometries } ) Map.addLayer(training, {}, "training", False) Map # Instantiate the clusterer and train it. n_clusters = 5 clusterer = ee.Clusterer.wekaKMeans(n_clusters).train(training) # Cluster the input using the trained clusterer. result = image.cluster(clusterer) # # Display the clusters with random colors. Map.addLayer(result.randomVisualizer(), {}, "clusters") Map legend_keys = ["One", "Two", "Three", "Four", "etc"] legend_colors = ["#8DD3C7", "#FFFFB3", "#BEBADA", "#FB8072", "#80B1D3"] # Reclassify the map result = result.remap([0, 1, 2, 3, 4], [1, 2, 3, 4, 5]) Map.addLayer( result, {"min": 1, "max": 5, "palette": legend_colors}, "Labelled clusters" ) Map.add_legend( legend_keys=legend_keys, legend_colors=legend_colors, position="bottomright" ) Map print("Change layer opacity:") cluster_layer = Map.layers[-1] cluster_layer.interact(opacity=(0, 1, 0.1)) import os out_dir = os.path.join(os.path.expanduser("~"), "Downloads") out_file = os.path.join(out_dir, "cluster.tif") geemap.ee_export_image(result, filename=out_file, scale=90) geemap.ee_export_image_to_drive( result, description="clusters", folder="export", scale=90 )