过滤筛选就是从数据中筛选出符合条件的数据,比如在海量的Landsat数据中选出符合你的研究区间和研究时间内的数据。

在GEE中实现过滤的方法叫做Filter,主要的过滤规则可分为:

  • 空间过滤
  • 时间过滤
  • 属性过滤

具体方法有:

  1. 关系比较型筛选器
ee.Filter.eq()   ee.Filter.neq() ee.Filter.ge()  ee.Filter.gte() ee.Filter.le()
ee.Filter.lte()
  1. 差值筛选器
ee.Filter.maxDifference()
  1. 字符筛选器
ee.Filter.stringContains()   ee.Filter.StarsWith()   ee.Filter.EndWith()
ee.Filter.Rangecontains()   ee.Filter.listContains()    ee.Filter.inList()
  1. 时间筛选器
ee.Filter.calendarRange()    ee.FilterDateRangeContains()    ee.Filter.dayOfYear()
  1. 与或非筛选
ee.Filter.and()  ee.Filter.or()  ee.Filter.not() ee.Filter()
// ee.Filter.and = ee.Filter

1.关系比较型

var filter_1 = ee.Filter.eq/neq/gt/gte/lt/lte('字段','字段值');  // eq/ neq/ gt/ gte/ lt/ lte// equales/ notEquals/ greaterThan/ greaterThanOrEquals/ lessThan/ lessThanOrEquals//关系进行判断,返回筛选器
var result_filter = (FeatureCollection/ImageCollection).fliter(filter_1);
//此时筛选结果仍为Collection类型。

若返回非Collection类型,如下所示:

var result_filter = (FeatureCollection/ImageCollection).fliter(filter_1).first();
  • 案例:
var CQ_Area = CQ.get('Shape_Area')
var Smaller_Than_CQ_Filter = ee.Filter.lt('Shape_Area',CQ_Area) // 筛选出面积比CQ小的元素
var Smaller_Than_CQ_Provinces = China_Provinces.filter(Smaller_Than_CQ_Filter) //返回结果

2.差值筛选器

ee.Filter.maxDifference()
两个量之间某一变量的差值小于设定阈值

var filter_1 = ee.Filter.maxDifference('最大差值','属性字段','字段数值');
var filter_1 = ee.Filter.maxDifference('10','area',100);
//表示面积字段area与100最大相差10的区域
var result_filter = (FeatureCollection/ImageCollection).fliter(filter_1);

3.字符筛选器

  • 起始字符串ee.Filter.StarsWith()
  • 末尾字符串ee.Filter.EndWith()
  • 中间包含字符串ee.Filter.stringContains()
var filter_1 = ee.Filter.stringStartsWith('字段','起始字符串');
// 筛选出指定字段内以某一字符为开头的数据
var filter_2 = ee.Filter.stringEndsWith('字段','末尾字符串');
// 筛选出指定字段内以某一字符为末尾的数据
var filter_3 = ee.Filter.stringContains('字段','包含字符串');
// 筛选出指定字段内包含某一字符为的数据
  • 字符范围筛选ee.Filter.Rangecontains()
var filter_1 = ee.Filter.rangeContains('字段','起始字母', '终止字母');
'var filter_1 = ee.Filter.rangeContains('NAME','B', 'D');'
//表示筛选出NAME字段中包含字母B到D的全部区域
  • 针对某些字段内以列表形式存在的字段值,需要用到ee.Filter.listContains()
var filter_1 = ee.Filter.listContains('字段','列表内包含值');
  • 针对多值进行筛选时,需要用到列表进行多值筛选ee.Filter.inList()
    创建一个list,对属于这个list的值进行筛选
var list_1 = ee.List('字符串1', '字符串2', '字符串3');
var filter_1 = ee.Filter.inlist('字段',list_1);
//筛选出字段中包含列表内某些元素的结果(多值筛选)

4. 时间筛选器

  • 年中日/月筛选ee.Filter.dayOfYear()
var filter_1 = ee.Filter.calendarRange(day1, day2, 'day_of_year');
//筛选一年中第day1到第day2天中的影像
var filter_2 = ee.Filter.calendarRange(month1, month2, 'month_of_year');
//按月份筛选
  • 日历筛选ee.Filter.calendarRange()
    案例
    筛选某地点2022-01-01至2022-08-01的Landsat8数据
var Point = ee.Geometry.Point(119.2351, 29.3642);
var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_TOA").filterDate('2021-01-01','2022-01-01').filterBounds(Point);var L8_00_200_Filter = ee.Filter.calendarRange(00,200,'day_of_year');
var L8_00_200_Images = L8.filter(L8_00_200_Filter);print(L8,L8_00_100_Images);

其中L8有19景影像,前200天有13景

  • 时间范围和属性包含筛选ee.FilterDateRangeContains()
var Point = ee.Geometry.Point(119.2351, 29.3642);
var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_TOA").filterDate('2021-01-01','2022-01-01').filterBounds(Point);var Date_Range   = ee.DateRange( '2021-01-01', '2021-05-01' );
var Rang_Filter  = ee.Filter.dateRangeContains(null, null, 'DATE_ACQUIRED', Date_Range );
var L8_Filted_Images = L8.filter(Rang_Filter)print(L8,L8_Filted_Images)

对于

var Rang_Filter  = ee.Filter.dateRangeContains(null, null, 'DATE_ACQUIRED', Date_Range );

解释如下:

5. 与或非筛选

var filter_1 = ee.Filter.and(filter_A, filter_B);
//筛选交filter
var filter_2 = ee.Filter.or(filter_A, filter_B);
//筛选并filter
var filter_2 = filter_1.not();
//要filter_1筛选结果不符合的部分
ee.Filter.and = ee.Filter

【GEE笔记5】数据筛选Filter相关推荐

  1. 10.8 UiPath 数据筛选Filter Data Table的介绍和使用(Excel数据写入另一个Excel中)

    UiPath数据筛选Filter Data Table的介绍和使用 一.数据筛选(Filter Data Table)的介绍 二.Filter Data Table在UiPath中的使用 ) 一.数据 ...

  2. 前端js数组元素的筛选,修改,新增属性小技巧一---前端数据筛选filter()函数,更新数组map()函数;

    举个简单的例子(对数组的筛选,比如说3的倍数的值取出来): var a = [1,2,3,4,5,6,7];a = a.filter(function(value){var flag = true;i ...

  3. Python笔记 | 数据筛选

    无论是在数据分析还是数据挖掘的时候,数据筛选总会涉及到.这里我总结了一下python中列表,字典,数据框中一些常用的数据筛选的方法. 1.列表 案例一:从一个含有数字0-9的列表中筛选出偶数(奇数): ...

  4. oracle查询一列汇总,【学习笔记】Oracle数据筛选 查找oracle所有表中的特定列中的某些数据...

    天萃荷净 开发DBA反映,根据需求需要查找Oracle数据库中所有表中特定的列中指定的关键词的数据,和数据内容和数量 找出数据库中所有表表中REMARK列中含有WN.wind.wlr中表名和数量 de ...

  5. python异常数据筛选_学习笔记(06):Python数据清理实践-数据过滤,06Python,清洗,实战,筛选...

    数据筛选:直接引用,选择行列,基础索引,loc和iloc,如何区分 import三个库:pandas as pd,os, numpy as np os.chdir('数据存放路径') 读取 变量 = ...

  6. 学习笔记之数据可视化(二)—— 页面布局(下)

    续上一章 2.7 地图区域(.map) 2.7.1 实现步骤: 2.8 用户统计模块 2.8.1 布局: 2.8.2 柱状图 2.9 订单模块 2.9.1 订单区域布局 2.9.2 订单区域(orde ...

  7. excel下拉列表数据筛选_从筛选的Excel列表中下拉

    excel下拉列表数据筛选 Someone asked me how to make a data validation drop down that only shows the visible r ...

  8. csvtk:命令行下表格统计分析、数据筛选、替换、整理神器

    文章目录 安装 介绍 功能 使用 例子 猜你喜欢 写在后面 内容主要来自csvkt官方中文介绍 https://bioinf.shenwei.me/csvtk/chinese/.有改动,内容有增加 如 ...

  9. 影像组学视频学习笔记(6)-特征筛选之LASSO回归(理论)、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(6)主要介绍: 特征筛选之LASSO回归分析(理论通俗讲解) LASSO (Least Absolute Shrinkage Selec ...

最新文章

  1. C#的变迁史09 - C# 5.0 之调用信息增强篇
  2. IOS-网络(监听网络状态)
  3. 刷爆AI圈!基于Transformer的DALL-E代码刚刚开源了
  4. Cerebro 插件之电影磁力搜索神器
  5. 如何用命令行运行python程序_如何使用运行python代码命令行.exe从C应用程序?
  6. 零基础学python-零基础适合学习python吗?
  7. 从留言簿开始,学习MonoRail MVC(三)
  8. 1.输入复制到输出,并将其中连续多个空格用一个空格代替
  9. SpringBoot1.5.9集成Activiti6
  10. matlab 中.*和* 区别
  11. 关注物业公司信息化建设
  12. Qt for Python做一个虚拟示波器软件
  13. c++随笔——隐藏窗口
  14. wpa_cli工具的使用方法及分析
  15. 22-23 - 页式内存管理
  16. APP开发商城时,常说三级分销,你知道什么是分销机制吗?
  17. 提高效率必备,EdrawMax亿图图示教你快速制作图表!
  18. html表格中字与字间距如何调整,excel表格字间距怎么调
  19. java 泛型缺点_Go 与 泛型: 优点 or 缺陷
  20. 3D数学读书笔记——笛卡尔坐标系统

热门文章

  1. 技术晨读_2014_9_1
  2. android学生成绩查询代码,android学生成绩查询系统.pdf
  3. 名帖233 俞和 行书《自书诗卷》
  4. 什么叫最少拍计算机控制系统,最少拍无波纹计算机控制系统的一种综合方法.doc...
  5. div css经典布局实例,div+css布局实例:常用图文混排(一)--腾讯图文 - 蜗爱CSS
  6. BFD1从北京顺义新国展到酒仙桥特斯拉办公室
  7. 回环口--Loopback接口
  8. 手机通过蓝牙共享网络给电脑上网
  9. 用关键词搜索店铺列表详情
  10. 教你学会u盘重装win10系统,u盘系统盘安装win10