AI-generated Key Takeaways
-
Use
featureCollection.map()to apply the same operation to everyFeaturein aFeatureCollection. -
The
map()function can add new properties to features based on computations involving geometry or existing properties. -
map()can also be used to generate an entirely newFeatureCollection, such as converting features to centroids while retaining selected properties.
To apply the same operation to every Feature
in a FeatureCollection
, use featureCollection.map()
. For example,
to add another area attribute to every feature in a watersheds FeatureCollection
, use:
Code Editor (JavaScript)
// Load watersheds from a data table. var sheds = ee . FeatureCollection ( 'USGS/WBD/2017/HUC06' ); // This function computes the feature's geometry area and adds it as a property. var addArea = function ( feature ) { return feature . set ({ areaHa : feature . geometry (). area (). divide ( 100 * 100 )}); }; // Map the area getting function over the FeatureCollection. var areaAdded = sheds . map ( addArea ); // Print the first feature from the collection with the added property. print ( 'First feature:' , areaAdded . first ());
import ee import geemap.core as geemap
Colab (Python)
# Load watersheds from a data table. sheds = ee . FeatureCollection ( 'USGS/WBD/2017/HUC06' ) # Map an area calculation function over the FeatureCollection. area_added = sheds . map ( lambda feature : feature . set ( { 'areaHa' : feature . geometry () . area () . divide ( 100 * 100 )} ) ) # Print the first feature from the collection with the added property. display ( 'First feature:' , area_added . first ())
In the previous example, note that a new property is set based on a computation with the feature's geometry. Properties can also be set using a computation involving existing properties.
An entirely new FeatureCollection
can be generated with map()
.
The following example converts the watersheds to centroids:
Code Editor (JavaScript)
// This function creates a new feature from the centroid of the geometry. var getCentroid = function ( feature ) { // Keep this list of properties. var keepProperties = [ 'name' , 'huc6' , 'tnmid' , 'areasqkm' ]; // Get the centroid of the feature's geometry. var centroid = feature . geometry (). centroid (); // Return a new Feature, copying properties from the old Feature. return ee . Feature ( centroid ). copyProperties ( feature , keepProperties ); }; // Map the centroid getting function over the features. var centroids = sheds . map ( getCentroid ); // Display the results. Map . addLayer ( centroids , { color : 'FF0000' }, 'centroids' );
import ee import geemap.core as geemap
Colab (Python)
# This function creates a new feature from the centroid of the geometry. def get_centroid ( feature ): # Keep this list of properties. keep_properties = [ 'name' , 'huc6' , 'tnmid' , 'areasqkm' ] # Get the centroid of the feature's geometry. centroid = feature . geometry () . centroid () # Return a new Feature, copying properties from the old Feature. return ee . Feature ( centroid ) . copyProperties ( feature , keep_properties ) # Map the centroid getting function over the features. centroids = sheds . map ( get_centroid ) # Display the results. m = geemap . Map () m . set_center ( - 96.25 , 40 , 4 ) m . add_layer ( centroids , { 'color' : 'FF0000' }, 'centroids' ) m
Note that only a subset of properties is propagated to the features in the new collection.

