首页 > 其他分享 >GEE C12 Filter,Map,Reduce

GEE C12 Filter,Map,Reduce

时间:2024-03-14 11:56:26浏览次数:18  
标签:map 01 Map Reduce Filter var C12 2010 影像

目录

一、Filter

二、Map

三、Reduce

一、Filter

1.1 FilterDate 

1.用法
ImageCollection.filterDate('2010-01-01', '2010-01-01')
// var imgCol = ee.ImageCollection('LANDSAT/LT05/C02/T1_L2');
// How many Tier 1 Landsat 5 images have ever been collected? //print("All images ever: ", imgCol.size()); // A very large number 目前有 1869014景 //FilterDate // How many images were collected in the 2010s? //var imgColfilteredByDate = imgCol.filterDate('2010-01-01', '2010-01-01'); var startDate = '2010-01-01'; var endDate = '2010-12-31'; var imgColfilteredByDate = imgCol.filterDate(startDate, endDate); print("All images 2010s: ", imgColfilteredByDate.size()); // A smaller (but still large) number

2.查看影像集的影像数量

   ImageCollection .size()

1.2 FilterBounds

var ShanghaiImage = ee.Image( 'LANDSAT/LT05/C02/T1_L2/LT05_118038_20000606');

Map.centerObject(ShanghaiImage, 9); 
var imgColfilteredByDateHere = imgColfilteredByDate.filterBounds(Map.getCenter()); 
print("All images here, 2010: ", imgColfilteredByDateHere .size()); // A smaller number

1. ImageCollection .filterBounds()

filterBounds()中的参数可以是一个点,一个矩形或上传的面矢量数据;

 通过print可以看到这里是一个点。

2. Map.getCenter() 

获取地图的中心位置坐标。 

3. Map.centerObject()

将对象缩放到地图中间。

 

Map.centerObject(ShanghaiImage, 9); 

1.3 Filter by Other Image Metadata

 上面是根据影像日期和范围对影像集进行了筛选,下面根据影像本身的元数据继续进行筛选。可以根据影像本身的云量多少进行筛选。
//FilterMetadata
var L5FilteredLowCloudImages = imgColfilteredByDateHere .filterMetadata('CLOUD_COVER', 'less_than', 50); 
print("Less than 50% clouds in this area, 2010", L5FilteredLowCloudImages.size());

1.用法

.filterMetadata('影像本身的云量波段名称', 'less_than', 50)
说明:1.'影像本身的云量波段名称':是影像本身的云量波段,landsat 卫星自身的云量波段名字为'CLOUD_COVER',而sentinel-2的云量波段名称为“CLOUDY_PIXEL_PERCENTAGE”;
     2. 少于50%的云量

1.4 Filtering in an Efficient Order 以一个有效的方式过滤

上面通过日期、范围、云量三种方式进行了影像筛选,那么怎样的一个筛选顺序可以提高我们的运行速度呢?

var efficientFilteredSet = imgCol.filterBounds(Map.getCenter()) .filterDate(startDate, endDate) .filterMetadata('CLOUD_COVER', 'less_than', 50); 
print('Efficient filtering: Less than 50% clouds in this area, 2000-2010', efficientFilteredSet.size()); 

filterBounds------filterDate------filterMetadata 的顺序更高效一点。

 

二、Map

在Google Earth Engine(GEE)中,Mapmap这两个词虽然看起来非常相似,但它们在用法上有着根本的不同,主要体现在两个方面:Map对象和map方法。

Map对象:指的是Google Earth Engine中的地图显示对象,用于在GEE代码编辑器的地图区域中添加图层、设置视觉化参数、调整地图视图等。Map对象是与地图界面交互的主要手段。

map方法:是FeatureCollectionImageCollectionList等集合上的一个方法,用于对集合中的每个元素应用一个函数。这是一个非常重要的方法,用于批量处理集合中的数据。

2.1 Map. 常用的方法

  • add(item) 添加组件到Map上,比如Panel等
  • addLayer(eeObject, visParams, name, shown, opacity) 添加图层到Map上
  • centerObject(object, zoom) 以object对象范围居中显示,同时设置缩放级别为zoom
  • clear() 清理Map
  • getBounds() 获取Map的边界
  • getScale() 获取Map的分辨率
  • getCenter() 获取Map的中心
  • getZoom() 获取Map缩放级别
  • insert(index, widget) 添加组件到制定的位置
  • layers() 获取所有的图层
  • remove(item) 移除组件
  • setControlVisibility(xxxx) 设置Map地图上控件是否显示,可以设置缩放组件、全屏组件、地图类型组件等
  • setCenter(lon, lat, zoom) 设置居中位置以及缩放级别
  • setOptions(mapTypeId, styles, types) 设置地图的相关选项
  • setZoom(zoom) 设置级别
  • style() 获取样式
  • widgets() 获取所有的组件

2.2 map. 的用法

var featureCollection = ee.FeatureCollection([...]);
var newFeatureCollection = featureCollection.map(function(feature) {
  return feature.set('newProperty', 123);
});
//在这个例子中,map方法遍历featureCollection中的每一个Feature,并通过一个匿名函数给每个Feature添加一个名为newProperty的新属性。

1. for ,while , map , evaluate, iterate的异同

  • for、while:就是基本的循环结构语句,但是在GEE里很少用,基本用 map 替代,因为是顺序执行代码,效率太慢
  • map:用的最多,执行效率最快,相当于“并行执行任务”,能用 map,就用 map,但是函数里一般不能用 print,Map,toDrive 等方法
  • iterate:“迭代”,顺序执行,每次执行都在前面执行的结果上继续执行,很遗憾,这次的例子没有体现“迭代”的意思
  • evaluate:主要用来异步导出和显示,加快速度,一般没有返回值,结合 for 和 map 一起用,这里的 map 里可以有 print,Map,toDrive 方法

 

三、Reducing an Image Collection

 将一个集合通过对每一个像素列表求和、求极值等方式变成为一张影像。

3.1  ee.Reducer.first() 返回输入的第一个元素

 1.用法

对象. reduce(ee.Reducer.first())

3.2 GEE 中

 



标签:map,01,Map,Reduce,Filter,var,C12,2010,影像
From: https://www.cnblogs.com/bltstop/p/18072544

相关文章

  • 探索Flutter中的模糊毛玻璃滤镜效果:ImageFilter介绍使用和深入解析
    在Flutter中,模糊效果不仅可以增加应用的视觉吸引力,还可以用于多种场景,如背景模糊、图像处理等。通过BackdropFilter和ImageFilter.blur,Flutter使得添加和调整模糊效果变得异常简单。本文将深入探讨如何在Flutter中实现动态模糊效果,并通过TileMode参数调整模糊效果的边缘行为......
  • installEventFilter、eventFilter函数理解
    installEventFilter函数如下:voidQObject::installEventFilter(QObject*filterObj)Qt助手的解释如下:在对象上安装一个事件过滤器filterObj。如下:monitoredObj->installEventFilter(filterObj);其中monitoredObj、filterObj都是QObject的子类。上面代码意思是:在monitoredObj......
  • spring-security源码-FilterChainProxy
    FilterChainProxy内部存储了我们各个HttpSecurty生成的SecurityFilterChain。FilterChainProxy实现了ServletFilter接口。只真正的入口org.springframework.security.web.FilterChainProxy.doFilterpublicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,F......
  • spring-security源码-如何初始化SecurityFilterChain到Servlet
    1.SecurityFilterChain是由HttpSecurty根据各个config配置生成的FilterSecurityFilterChain是接口,默认实现是由DefaultSecurityFilterChainSecurityFilterChain只充当描述的作用,描述哪些url走这批filterpublicfinalclassDefaultSecurityFilterChainimplementsSecurityF......
  • 启用和配置EWF(Enhanced Write Filter)通过命令行或者注册表等方式启用和配置EWF功能
     启用和配置EWF(EnhancedWriteFilter)功能,可以通过以下方式进行设置:命令行方式:打开命令提示符(以管理员身份运行)。使用以下命令启用EWF功能:ewfmgrc:-enable 这里的c:表示要启用EWF功能的逻辑磁盘,可以根据实际情况更改。若要禁用EWF功能,可以使用以下命令:ewfmgrc:-dis......
  • arc127A 分巧克力
    题面:有一块大小为H*W的巧克力,要分给n个人,第i个人要分边长为2^a[i]的正方形,问是否够分?范围:H,W<=1E9;n<=1000;a[i]<=25思路:贪心,关键是先处理大请求,并且要用大块来处理大请求。将请求按从大到小依次处理,优先处理大请求,如果处理不了,则无解。用大根堆维护剩余的巧克力大小,按短边......
  • 达梦不支持filter类型的执行路径导致慢SQL
     达梦不支持filter类型的执行路径导致慢SQL 最近有个政府项目的库往政务云上迁移到达梦库,源库的业务量不是很大,库本身也不大。迁移后抓取达梦的AWR,发现有一条SQL每次执行需要15s多,而在原来的Oracle里边执行0.1s。查看后发现是达梦不支持filter执行路径导致的。模拟如下:创......
  • (21)Lazarus之FilterComboBox1过滤ShellListView1的文件名
    FilterComboBox1只过滤当前目录下的文件名,不过滤目录名,也不过滤子目录名拖一个FilterComboBox1,ShellListView1到界面上1]将FilterComboBox1的ShellListView设置为ShellListView12]添加过滤文件类型 3]还须设置ShellListView1的根目录Root ......
  • (20) Lazarus学习之ListFilterEdit1过滤ListBox1数据
     Delphi我写的类似功能带历史记忆,并模糊带出功能的Edit 先在ListBox1的Items里添加数据 再拖一个ListFilterEdit1要界面上,设置它的 即可看到过滤效果 同样适合CheckListBox1 ......
  • (23)lazarus memdataset的filter问题
    参考https://www.cnblogs.com/qiufeng2014/p/17388138.html链接:https://pan.baidu.com/s/1ayzgDbXjgXBnw-jM1FR4gA提取码:ogqzunitUnit1;{$modeobjfpc}{$H+}interfaceusesClasses,SysUtils,memds,db,Forms,Controls,Graphics,Dialogs,DBGrids;type{TForm1......