FeatureCollection Information and Metadata

  • Methods for accessing feature collection metadata are identical to those used for image collections, as detailed in the ImageCollection Information and Metadata section.

  • You can utilize aggregation methods to calculate statistics like feature count or attribute summaries within a feature collection.

  • The provided code examples demonstrate how to obtain column information, including names and data types, from feature collections, which is particularly useful for filtering and analysis.

  • Computed collections might not always possess column information within their metadata, as it's mainly available for collections from the Data Catalog or stored as assets.

  • For comprehensive feature collection reduction and analysis, refer to the Reducing a FeatureCollection page for more advanced aggregation tools.

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.