首页 > 其他分享 >【GEE笔记5】数据筛选Filter

【GEE笔记5】数据筛选Filter

时间:2022-10-08 19:00:43浏览次数:58  
标签:filter 01 ee Filter GEE var 筛选


过滤筛选就是从数据中筛选出符合条件的数据,比如在海量的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景

【GEE笔记5】数据筛选Filter_地理信息

  • 时间范围和属性包含筛选​​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 );

解释如下:

【GEE笔记5】数据筛选Filter_GEE_02

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


标签:filter,01,ee,Filter,GEE,var,筛选
From: https://blog.51cto.com/u_15813863/5738492

相关文章

  • 侧边栏筛选功能
    设计url我们可以观察博客园关于日期、标签、分类的url设计是如下的:https://www.cnblogs.com/suncolor/category/2226294.html分类urlhttps://www.cnblogs.com/suncolor......
  • 【GEE笔记2】数据整合Reducer/遍历循环.map
    Reducer是GEE中按照时间、空间、波段等进行整合数据的方法;类似于从部分到整体。ee.Reducer()可以指定数据整合的方式,如:max\min\mean\etal。时间:imageCollection.reduce()空......
  • 【GEE笔记6】数据连接Join
    连接​​ee.Join​​​用于根据​​ee.Filter​​​指定的条件组合来自不同集合(例如ImageCollection或FeatureCollection)的元素。过滤器由每个集合中相互关联的属性的......
  • 【GEE笔记4】GEE的数据下载和上传(Google Drive和Google Assets)
    虽然GEE有很多在线数据,但我们在使用的过程中有很多场景需要用到自己独有的数据,比如shp数据、csv数据等。GEE中,有多个存储空间​​GoogleDrive​​​​https://drive.google......
  • 【GEE笔记3】发布APP(简易版)
    何为GEE发布APP就是GEE发布一些APP(应用)用官方的话说就是Dynamic,publiclyaccessibleuserinterfacesforEarthEngineanalyses(用于地球引擎分析的动态、可公开访问的......
  • OpenResty 使用sub_filter注入代码
    1、编译openresty时需要增加模块 --with-http_sub_module2、修改nginx配置文件,测试将</head>替换为 '<scriptsrc="http://libs.baidu.com/jquery/2.0.2/jquery.min.js......
  • 【nginx】使用 sub_filter 注入 js 代码,例如 google analysis 等
    目录1.创建GA12.注入代码2结果网站F12GA控制台Reference在一项工作中,已经将内网的一个网站通过二级域名+nginx+frp的方式映射到公网。网站并不属于我来管理,当......
  • Springboot 之 Filter 实现 Gzip 压缩超大 json 对象
    简介在项目中,存在传递超大json数据的场景。直接传输超大json数据的话,有以下两个弊端占用网络带宽,而有些云产品就是按照带宽来计费的,间接浪费了钱传输数据大导致......
  • 【Django Admin】外键关联下拉框筛选数据
    #admin.pyclassInnerOrderAdmin(admin.ModelAdmin):...#外键关联下拉框筛选defformfield_for_foreignkey(self,db_field,request,**kwargs):......
  • firewalld和netfilter
    ####selinux防火墙#getenforce查看selinux防火墙状态#setenforce0临时关闭#vi/etc/selinux/conf配置文件中永久关闭#######netfilter防火墙#防火墙叫做iptables......