Объявление : Все некоммерческие проекты, зарегистрированные для использования Earth Engine до
15 апреля 2025 года, должны
подтвердить некоммерческое право на сохранение доступа к Earth Engine.
ee.Filter.maxDifference
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Создаёт унарный или двоичный фильтр, который проходит проверку, если левый и правый операнды (оба числа) находятся в пределах заданной максимальной разницы. При использовании в качестве условия соединения эта числовая разница используется в качестве меры соединения.
Использование | Возврат | ee.Filter.maxDifference(difference, leftField , rightValue , rightField , leftValue ) | Фильтр |
Аргумент | Тип | Подробности | difference | Плавать | Максимальная разница, при которой фильтр вернет значение true. |
leftField | Строка, по умолчанию: null | Селектор для левого операнда. Не следует указывать, если указано leftValue. |
rightValue | Объект, по умолчанию: null | Значение правого операнда. Не следует указывать, если указано rightField. |
rightField | Строка, по умолчанию: null | Селектор правого операнда. Не следует указывать, если указано rightValue. |
leftValue | Объект, по умолчанию: null | Значение левого операнда. Не следует указывать, если указано leftField. |
Примеры
Редактор кода (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'));
Настройка Python
Информацию об API Python и использовании geemap
для интерактивной разработки см. на странице «Среда Python» .
import ee
import geemap.core as geemap
Colab (Python)
# Field site vegetation characteristics from projects in western USA.
fc = ee.FeatureCollection('BLM/AIM/v1/TerrADat/TerrestrialAIM').filter(
'ProjectName == "Colorado NWDO Kremmling FO 2016"'
)
# Display field plots on the map.
m = geemap.Map()
m.set_center(-107.792, 39.871, 7)
m.add_layer(fc)
display(m)
# 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.
left_property = 'InvAnnForbCover_AH'
right_property = 'NonInvAnnForbCover_AH'
display('Plots where invasive forb cover is…')
display(
'…EQUAL to non-invasive cover',
fc.filter(
ee.Filter.equals(leftField=left_property, rightField=right_property)
),
)
display(
'…NOT EQUAL to non-invasive cover',
fc.filter(
ee.Filter.notEquals(leftField=left_property, rightField=right_property)
),
)
display(
'…LESS THAN non-invasive cover',
fc.filter(
ee.Filter.lessThan(leftField=left_property, rightField=right_property)
),
)
display(
'…LESS THAN OR EQUAL to non-invasive cover',
fc.filter(
ee.Filter.lessThanOrEquals(
leftField=left_property, rightField=right_property
)
),
)
display(
'…GREATER THAN non-invasive cover',
fc.filter(
ee.Filter.greaterThan(
leftField=left_property, rightField=right_property
)
),
)
display(
'…GREATER THAN OR EQUAL to non-invasive cover',
fc.filter(
ee.Filter.greaterThanOrEquals(
leftField=left_property, rightField=right_property
)
),
)
display(
'…is not greater than 10 percent different than non-invasive cover',
fc.filter(
ee.Filter.maxDifference(
difference=10, leftField=left_property, rightField=right_property
)
),
)
# Instead of comparing values of two feature properties using the leftField
# and rightField parameters, you can compare a property value (left_property)
# against a constant value (rightValue).
display(
'Plots where invasive forb cover is greater than 20%',
fc.filter(ee.Filter.greaterThan(leftField=left_property, 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.
display(
'Plots where 20% is greater than invasive forb cover.',
fc.filter(ee.Filter.greaterThan(leftValue=20, rightField=left_property)),
)
# Binary filters are useful in joins. For example, group all same-site plots
# together using a saveAll join.
grouping_prop = 'SiteID'
sites_fc = fc.distinct(grouping_prop)
join_filter = ee.Filter.equals(
leftField=grouping_prop, rightField=grouping_prop
)
grouped_plots = ee.Join.saveAll('site_plots').apply(sites_fc, fc, join_filter)
display('List of plots in first site', grouped_plots.first().get('site_plots'))
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-24 UTC.
[null,null,["Последнее обновление: 2025-07-24 UTC."],[],["The `ee.Filter.maxDifference` function creates a filter for numeric comparisons. It checks if the difference between two numbers (operands) is within a specified maximum. Operands can be specified as feature properties (`leftField`, `rightField`) or constant values (`leftValue`, `rightValue`). The filter returns `true` if the numeric difference is within the defined limit. In joins, it serves as a numeric join measure. Example code demonstrates how to apply different filter comparisons and joins.\n"],null,[]]