FeatureCollection Information and Metadata

Methods for getting information from feature collection metadata are the same as those for image collections. See the ImageCollection Information and Metadata section for details.

Metadata aggregation

You can use the aggregation shortcuts to count the number of features or summarize an attribute:

Code Editor (JavaScript)

// Load watersheds from a data table.
var sheds = ee.FeatureCollection('USGS/WBD/2017/HUC06')
  // Filter to the continental US.
  .filterBounds(ee.Geometry.Rectangle(-127.18, 19.39, -62.75, 51.29))
  // Convert 'areasqkm' property from string to number.
  .map(function(feature){
    var num = ee.Number.parse(feature.get('areasqkm'));
    return feature.set('areasqkm', num);
  });

// Display the table and print its first element.
Map.addLayer(sheds, {}, 'watersheds');
print('First watershed', sheds.first());

// Print the number of watersheds.
print('Count:', sheds.size());

// Print stats for an area property.
print('Area stats:', sheds.aggregate_stats('areasqkm'));

Python setup

See the Python Environment page for information on the Python API and using geemap for interactive development.

import ee
import geemap.core as geemap

Colab (Python)

# Load watersheds from a data table.
sheds = (
    ee.FeatureCollection('USGS/WBD/2017/HUC06')
    # Filter to the continental US.
    .filterBounds(ee.Geometry.Rectangle(-127.18, 19.39, -62.75, 51.29))
    # Convert 'areasqkm' property from string to number.
    .map(
        lambda feature: feature.set(
            'areasqkm', ee.Number.parse(feature.get('areasqkm'))
        )
    )
)

# Display the table and print its first element.
m = geemap.Map()
m.add_layer(sheds, {}, 'watersheds')
display(m)
display('First watershed:', sheds.first())

# Print the number of watersheds.
display('Count:', sheds.size())

# Print stats for an area property.
display('Area stats:', sheds.aggregate_stats('areasqkm'))

Column information

Knowing the names and dataypes of FeatureCollection columns can be helpful (e.g., filtering a collection by metadata). The following example prints column names and datatypes for a collection of point features representing protected areas.

Code Editor (JavaScript)

// Import a protected areas point feature collection.
var wdpa = ee.FeatureCollection("WCMC/WDPA/current/points");

// Define a function to print metadata column names and datatypes. This function
// is intended to be applied by the `evaluate` method which provides the
// function a client-side dictionary allowing the 'columns' object of the
// feature collection metadata to be subset by dot notation or bracket notation
// (`tableMetadata['columns']`).
function getCols(tableMetadata) {
  print(tableMetadata.columns);
}

// Fetch collection metadata (`.limit(0)`) and apply the
// previously defined function using `evaluate()`. The printed object is a
// dictionary where keys are column names and values are datatypes.
wdpa.limit(0).evaluate(getCols);

Python setup

See the Python Environment page for information on the Python API and using geemap for interactive development.

import ee
import geemap.core as geemap

Colab (Python)

# Import a protected areas point feature collection.
wdpa = ee.FeatureCollection('WCMC/WDPA/current/points')

# Fetch collection metadata (`.limit(0)`). The printed object is a
# dictionary where keys are column names and values are datatypes.
wdpa.limit(0).getInfo()['columns']

For more general purpose FeatureCollection aggregation tools, see the Reducing a FeatureCollection page.