ee.Filter.greaterThan

Creates a unary or binary filter that passes if the left operand is greater than the right operand.

UsageReturns
ee.Filter.greaterThan(leftField, rightValue, rightField, leftValue)Filter
ArgumentTypeDetails
leftFieldString, default: nullA selector for the left operand. Should not be specified if leftValue is specified.
rightValueObject, default: nullThe value of the right operand. Should not be specified if rightField is specified.
rightFieldString, default: nullA selector for the right operand. Should not be specified if rightValue is specified.
leftValueObject, default: nullThe value of the left operand. Should not be specified if leftField is specified.

Examples

Code Editor (JavaScript)

// Field site vegetation characteristics from projects in western USA.
var fc = ee.FeatureCollection('BLM/AIM/v1/TerrADat/TerrestrialAIM')
  .filter('ProjectName == "Colorado NWDO Kremmling FO 2016"');

// Display field plots on the map.
Map.setCenter(-107.792, 39.871, 7);
Map.addLayer(fc);

// Compare the per-feature values of two properties and filter the collection
// based on the results of various relational expressions. The two properties
// to compare are invasive and non-invasive annual forb cover at each plot.
var leftProperty = 'InvAnnForbCover_AH';
var rightProperty = 'NonInvAnnForbCover_AH';

print('Plots where invasive forb cover is…');

print('…EQUAL to non-invasive cover',
      fc.filter(ee.Filter.equals(
        {leftField: leftProperty, rightField: rightProperty})));

print('…NOT EQUAL to non-invasive cover',
      fc.filter(ee.Filter.notEquals(
        {leftField: leftProperty, rightField: rightProperty})));

print('…LESS THAN non-invasive cover',
      fc.filter(ee.Filter.lessThan(
        {leftField: leftProperty, rightField: rightProperty})));

print('…LESS THAN OR EQUAL to non-invasive cover',
      fc.filter(ee.Filter.lessThanOrEquals(
        {leftField: leftProperty, rightField: rightProperty})));

print('…GREATER THAN non-invasive cover',
      fc.filter(ee.Filter.greaterThan(
        {leftField: leftProperty, rightField: rightProperty})));

print('…GREATER THAN OR EQUAL to non-invasive cover',
      fc.filter(ee.Filter.greaterThanOrEquals(
        {leftField: leftProperty, rightField: rightProperty})));

print('…is not greater than 10 percent different than non-invasive cover',
      fc.filter(ee.Filter.maxDifference(
        {difference: 10, leftField: leftProperty, rightField: rightProperty})));

// Instead of comparing values of two feature properties using the leftField
// and rightField parameters, you can compare a property value (leftProperty)
// against a constant value (rightValue).
print('Plots where invasive forb cover is greater than 20%',
      fc.filter(ee.Filter.greaterThan(
        {leftField: leftProperty, rightValue: 20})));

// You can also swap the operands to assign the constant to the left side of
// the relational expression (leftValue) and the feature property on the right
// (rightField). Here, we get the complement of the previous example.
print('Plots where 20% is greater than invasive forb cover.',
      fc.filter(ee.Filter.greaterThan(
        {leftValue: 20, rightField: leftProperty})));

// Binary filters are useful in joins. For example, group all same-site plots
// together using a saveAll join.
var groupingProp = 'SiteID';
var sitesFc = fc.distinct(groupingProp);

var joinFilter = ee.Filter.equals(
  {leftField: groupingProp, rightField: groupingProp});

var groupedPlots = ee.Join.saveAll('site_plots').apply(sitesFc, fc, joinFilter);
print('List of plots in first site', groupedPlots.first().get('site_plots'));