Google Earth Engine(GEE)——因阈值设定,无法加载影像放大后的影像

简介: Google Earth Engine(GEE)——因阈值设定,无法加载影像放大后的影像

   我想通过区域阈值设置过滤掉对应的区域,但是当你滑向更小的区域时,挑出超过阈值区域的区域以及为什么不能显示,代码有什么问题?

首先我们先看一下我们加载的矢量和影像:

image.png

image.png

矢量数据集:

image.png

本次有一个新的函数需要讲解:

connectedComponents(connectedness, maxSize)

找出与输入的第一个带子的值相同的连接组件,并给它们贴上一个全局唯一的值。连通性是由给定的内核指定的。大于maxSize的对象被认为是背景,并被屏蔽。

参数。

this:image(图像)。

要标记的图像。

connectedness (Kernel)。

连通性内核。

maxSize(整数)。

要标记的对象的最大尺寸。

返回。图像

本代码中的结果:

image.png

 

ee.Kernel.plus(radius, units, normalize, magnitude)

生成一个加号的布尔运算内核。

参数。

radius (Float):

要生成的内核的半径。

units(字符串,默认为 "像素")。

内核的测量系统("像素 "或 "米")。如果内核的单位是米,那么当缩放级别改变时,它将会调整大小。

normalize(布尔值,默认为true)。

将内核值归一化,使其总和为1。

magnitude(浮点数,默认为1)。

用这个量来缩放每个值。

返回。内核

connectedPixelCount(maxSize, eightConnected)

生成一个图像,其中每个像素包含4个或8个连接的邻居(包括它自己)的数量。

参数。

this:输入(图像)。

输入的图像。

maxSize(整数,默认:100)。

邻域的最大尺寸,单位是像素。

eightConnected(布尔值,默认为true)。

是否使用8连通而不是4连通的规则。

返回。图像

代码:

var image_baxi01 = ee.Image("projects/ee-ivettexft07-americeclassify/assets/image_baxi01-0000000000-0000000000"),
    Table_baxi01 = ee.FeatureCollection("projects/ee-ivettexft07-americe/assets/dissolve_grid_baxi_01");
var industrial_mature_oilpalm=image_baxi01.eq(5).selfMask();
// print(industrial_mature_oilpalm);
// 对工业_成熟_油棕的图像对象进行独特的标记。
var objectId =industrial_mature_oilpalm.connectedComponents({
  connectedness: ee.Kernel.plus(1),
  maxSize: 128
});
print(objectId);
 Map.addLayer(objectId.randomVisualizer(), null, 'Objects');
var objectSize = objectId.select('labels')
  .connectedPixelCount({
    maxSize: 128, eightConnected: false
  });
 Map.addLayer(objectSize, null, 'Object n pixels');
//获取影像的像素面积
var pixelArea = ee.Image.pixelArea();
//用像素面积乘以物体的像素数来计算物体面积。
//其结果是一个图像,物体的每个像素都与物体的面积有关,单位是m^2。
var objectArea =objectSize.multiply(pixelArea);
// 向地图显示对象区域。
 Map.addLayer(objectArea,
             {min: 0, max: 30000, palette: ['0000FF', 'FF00FF']},
             'Object area m^2');
// 筛选低于一定规模(本例中为1公顷)的物体。
//原有代码:var areaMask=objectArea.gte(10000000);
var areaMask=objectArea.gte(10000);
// 使用刚刚定义的最小面积掩码,更新之前定义的`objectId`层的掩码。
var objectId_IM= objectId.updateMask(areaMask);
Map.addLayer(objectId_IM, null, 'Large Area');

其实这里的原有的问题就是当我们设定了大于10000000的时候,放大zoom的时候,小区域便不会进行加载了,也就是我们这里选择筛选掉了超级大的部分,只剩下小的了,而我们所设定了的单位时平方米,不是我们原有代码中那种单位换算。

当然我们如果依旧再次放大的时候,依旧会有看不到的时候,大家可以自行尝试解决这个问题

image.png

image.png

image.png

image.png

image.png


相关文章
|
6月前
|
数据可视化 定位技术 Sentinel
如何用Google Earth Engine快速、大量下载遥感影像数据?
【2月更文挑战第9天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间范围、空间范围的遥感影像数据(包括Landsat、Sentinel等)的方法~
2475 1
如何用Google Earth Engine快速、大量下载遥感影像数据?
|
6月前
|
机器学习/深度学习 算法 数据可视化
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
222 0
|
6月前
GEE——Google dynamic world中在影像导出过程中无法完全导出较大面积影像的解决方案(投影的转换)EPSG:32630和EPSG:4326的区别
GEE——Google dynamic world中在影像导出过程中无法完全导出较大面积影像的解决方案(投影的转换)EPSG:32630和EPSG:4326的区别
123 0
|
6月前
|
存储 编解码 数据可视化
Google Earth Engine获取随机抽样点并均匀分布在栅格的不同数值区中
【2月更文挑战第14天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,按照给定的地表分类数据,对每一种不同的地物类型,分别加以全球范围内随机抽样点自动批量选取的方法~
565 1
Google Earth Engine获取随机抽样点并均匀分布在栅格的不同数值区中
|
6月前
|
编解码 人工智能 算法
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
88 0
|
6月前
|
编解码 人工智能 数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
143 0
|
6月前
|
编解码
Open Google Earth Engine(OEEL)——matrixUnit(...)中产生常量影像
Open Google Earth Engine(OEEL)——matrixUnit(...)中产生常量影像
76 0
|
6月前
Google Earth Engine(GEE)——导出指定区域的河流和流域范围
Google Earth Engine(GEE)——导出指定区域的河流和流域范围
262 0
|
6月前
|
传感器 编解码 数据处理
Open Google Earth Engine(OEEL)——哨兵1号数据的黑边去除功能附链接和代码
Open Google Earth Engine(OEEL)——哨兵1号数据的黑边去除功能附链接和代码
127 0
|
6月前
Google Earth Engine(GEE)——当加载图表的时候出现错误No features contain non-null values of “system:time_start“.
Google Earth Engine(GEE)——当加载图表的时候出现错误No features contain non-null values of “system:time_start“.
124 0

热门文章

最新文章