Filter
# 简介
过滤器对象(Filter)支持ImageCollection和FeatureCollection的数据过滤,支持空间范围、日期和属性字段的过滤。
# and
过滤对象与连接。
函数 | 返回值 |
---|---|
and(filter) | Filter |
参数 | 类型 | 说明 |
---|---|---|
filter | Filter | 过滤对象 |
var filter1 = pie.Filter.lt("date","2019-12-14");
var filter2 = pie.Filter.gt("date","2019-11-14").and(filter1);
# bounds
过滤对象进行空间范围过滤。
函数 | 返回值 |
---|---|
bounds(geometry) | Filter |
参数 | 类型 | 说明 |
---|---|---|
geometry | Geometry | 过滤空间范围 |
var polygon = pie.Geometry.Polygon([[[120, 41], [121, 41], [121, 42], [120, 42],[120, 41]]], null);
var filter = pie.Filter.bounds(polygon);
# calendarRange
返回一个筛选器,如果对象的时间戳在日历字段的给定范围内则通过。月份、年中的日、月中的日和周中的日是以1为基础的。每周从周一开始,即第一天。如果给定的值中start <=end,则将对象的时间戳中大于等于start且小于等于end的范围判断为通过。
函数 | 返回值 |
---|---|
calendarRange(start, end,field) | Filter |
参数 | 类型 | 说明 |
---|---|---|
start | Integer | 所需日历字段的开始,包括该值 |
end | Integer | 所需日历字段的结尾,包括该值。默认为与“开始”相同的值 |
field | String | 要筛选的日历字段。选项包括:’year', 'month', 'hour', 'minute', 'day_of_year', 'day_of_month', and 'day_of_week'。默认为"day_of_year" |
var imageCollection = pie.ImageCollection("LC08/01/T1_SR");
var filter1 = pie.Filter.calendarRange(2020, 2020,"year")
var filter2 = pie.Filter.calendarRange(1, 2,"month");
var images_result = imageCollection.filter(filter1).filter(filter2);
print(images_result.size());
# contains
生成过滤器,用于筛选过滤对象中包含于给定空间范围的部分。
函数 | 返回值 |
---|---|
contains(geo) | Filter |
参数 | 类型 | 说明 |
---|---|---|
geo | Geometry | 过滤空间范围 |
var polygon = pie.Geometry.Polygon([[[110, 20], [121, 20], [121, 42], [110, 42],[110, 20]]]);
var imageCollection = pie.ImageCollection('LC08/01/T1_SR').filterDate("2019-12-01", "2019-12-31");
var filter = pie.Filter.contains(polygon);
var images_result = imageCollection.filter(filter).select("B1");
print(images_result.size());
# date
生成过滤器用于筛选过滤对象中在给定时间范围内的部分。
函数 | 返回值 |
---|---|
date(start,end) | Filter |
参数 | 类型 | 说明 |
---|---|---|
start | String|Date | 过滤起始时间 |
end | String|Date | 过滤终止时间 |
// 时间过滤器
var filter = pie.Filter.date("2019-12-01", "2019-12-31");
var startDate = pie.Date("2019-12-01");
var endDate = pie.Date("2019-12-31");
var filter = pie.Filter.date(startDate, endDate);
# dayOfYear
返回一个筛选器,如果对象的时间戳在给定的日期范围内则通过。
函数 | 返回值 |
---|---|
dayOfYear(start,end) | Filter |
参数 | 类型 | 说明 |
---|---|---|
start | Integer | 所需年积日范围的开始,包括当前值。从1-366 |
end | Integer | 所需年积日范围的结束,不包括当前值。从1-366 |
var imageCollection = pie.ImageCollection('H08/AHI-L1-G');
var filter = pie.Filter.dayOfYear(200, 250);
var images_result = imageCollection.filter(filter).select("B1");
var count = images_result.size();
print(count);
# eq
过滤对象进行属性相等过滤。
函数 | 返回值 |
---|---|
eq(name,value) | Filter |
参数 | 类型 | 说明 |
---|---|---|
name | String | 属性名 |
value | Object | 属性值 |
var filter = pie.Filter.eq("date","2019-11-14");
# gt
过滤对象进行属性大于过滤。
函数 | 返回值 |
---|---|
gt(name,value) | Filter |
参数 | 类型 | 说明 |
---|---|---|
name | String | 属性名 |
value | Object | 属性值 |
var filter = pie.Filter.gt("date","2019-11-14");
# gte
过滤对象进行属性大于等于过滤。
函数 | 返回值 |
---|---|
gte(name,value) | Filter |
参数 | 类型 | 说明 |
---|---|---|
name | String | 属性名 |
value | Object | 属性值 |
var filter = pie.Filter.gte("date","2019-11-14");
# inList
返回一个筛选器,如果对象的指定字段值等于给定数组内的某个值则通过。
函数 | 返回值 |
---|---|
inList(field, list) | Filter |
参数 | 类型 | 说明 |
---|---|---|
field | String | 指定的字段 |
list | Array | 指定的数组 |
var imageCollection = pie.ImageCollection('LC08/01/T1_SR');
var filter = pie.Filter.inList("cloudCover",[2.39,24.34,94.53,25.1,30.9]);
var images_result = imageCollection.filter(filter).select("B1");
print(images_result.size());
# lt
过滤对象进行属性小于过滤。
函数 | 返回值 |
---|---|
lt(name,value) | Filter |
参数 | 类型 | 说明 |
---|---|---|
name | String | 属性名 |
value | Object | 属性值 |
var filter = pie.Filter.lt("date","2019-11-14");
# lte
过滤对象进行属性小于等于过滤。
函数 | 返回值 |
---|---|
lte(name,value) | Filter |
参数 | 类型 | 说明 |
---|---|---|
name | String | 属性名 |
value | Object | 属性值 |
var filter = pie.Filter.lte("date","2019-11-14");
# maxDifference
返回一个筛选器,如果对象的指定字段值在给定参考值的给定数值范围内则通过。
函数 | 返回值 |
---|---|
maxDifference(difference, name, value) | Filter |
参数 | 类型 | 说明 |
---|---|---|
difference | Number | 筛选器将返回true的最大差值 |
name | String | 字段名称 |
value | Number | 参考值 |
var imageCollection = pie.ImageCollection('LC08/01/T1_SR');
var filter = pie.Filter.maxDifference(10,"cloudCover",20);
var images_result = imageCollection.filter(filter).select("B1");
print(images_result.size());
# neq
过滤对象进行属性不相等过滤。
函数 | 返回值 |
---|---|
neq(name,value) | Filter |
参数 | 类型 | 说明 |
---|---|---|
name | String | 属性名 |
value | Object | 属性值 |
var filter = pie.Filter.neq("date","2019-11-14");
# not
返回一个筛选器,若当前筛选器结果为不通过则通过。
函数 | 返回值 |
---|---|
not(rightFilter) | Filter |
参数 | 类型 | 说明 |
---|---|---|
rightFilter | Filter | 当前筛选器 |
var imageCollection = pie.ImageCollection('LC08/01/T1_SR').filterDate("2019-12-01", "2019-12-31");
var filter = pie.Filter.maxDifference(10,"cloudCover","20");
var notFilter = pie.Filter.not(filter);
var images_result = imageCollection.filter(notFilter).select("B1");
print(images_result.size());
# notNull
返回一个筛选器,如果过滤对象的所有指定属性的属性值都不为空则通过。
函数 | 返回值 |
---|---|
notNull(list) | Filter |
参数 | 类型 | 说明 |
---|---|---|
list | Array | 属性名列表 |
var imageCollection = pie.ImageCollection('LC08/01/T1_SR').filterDate("2019-12-01", "2019-12-31");
var filter = pie.Filter.notNull(["sceneId","sensorId"]);
var images_result = imageCollection.filter(filter).select("B1");
print(images_result.size());
# or
过滤对象或连接。
函数 | 返回值 |
---|---|
or(filter) | Filter |
参数 | 类型 | 说明 |
---|---|---|
filter | Filter | 过滤对象 |
var filter1 = pie.Filter.eq("date","2019-11-14");
var filter2 = pie.Filter.eq("date","2019-12-14").or(filter1);
# stringContains
返回一个筛选器,如果过滤对象中指定属性的值中包含指定值则通过。
函数 | 返回值 |
---|---|
stringContains(name, value) | Filter |
参数 | 类型 | 说明 |
---|---|---|
name | String | 属性名 |
value | object | 指定值 |
var imageCollection = pie.ImageCollection('LC08/01/T1_SR');
var filter = pie.Filter.stringContains("sceneId","LC8119038");
var images_result = imageCollection.filter(filter).select("B1");
print(images_result.size());
# stringEndsWith
返回一个筛选器,如果过滤对象中指定属性的值以指定值为结尾则通过。
函数 | 返回值 |
---|---|
stringEndsWith(name, value) | Filter |
参数 | 类型 | 说明 |
---|---|---|
name | String | 属性名 |
value | object | 指定值 |
var imageCollection = pie.ImageCollection('LC08/01/T1_SR');
var filter = pie.Filter.stringEndsWith("sceneId","2013084LGN02");
var images_result = imageCollection.filter(filter).select("B1");
print(images_result.size());
# stringStartsWith
返回一个筛选器,如果过滤对象中指定属性的值以指定值为开头则通过。
函数 | 返回值 |
---|---|
stringStartsWith (name, value) | Filter |
参数 | 类型 | 说明 |
---|---|---|
name | String | 属性名 |
value | object | 指定值 |
var imageCollection = pie.ImageCollection('LC08/01/T1_SR');
var filter = pie.Filter.stringStartsWith("sceneId","LC8119038");
var images_result = imageCollection.filter(filter).select("B1");
print(images_result.size());
# withinDistance
生成过滤器,用于筛选过滤对象中距离给定空间范围的距离在预定距离内的部分。
函数 | 返回值 |
---|---|
withinDistance(geo, distance, proj) | Filter |
参数 | 类型 | 说明 |
---|---|---|
geo | Geometry | 过滤空间范围 |
distance | Number | 预定距离,默认单位是米,如果是度,需要设置proj为地理坐标系 |
proj | Projection | 坐标系,指定distance的单位;可以WKT串也可以是EPSG编码表示方式 |
var polygon = pie.Geometry.Polygon([[[120, 30], [120, 30.1], [120.1, 30.1], [120.1, 30],[120, 30]]]);
var imageCollection = pie.ImageCollection('LC08/01/T1_SR');
var filter = pie.Filter.withinDistance(polygon,1,"EPSG:4326");
var images_result = imageCollection.filter(filter).select("B1");
print(images_result.size());
有问题,我来改改 (opens new window)
上次更新: 2022/05/15, 05:29:22