GEE学习笔记

发布时间:2023年12月24日

掩膜

? 在遥感图像处理中,"掩膜"是指一种用于隐藏或保留图像特定部分的技术。掩膜通常是一个二进制图像,其中的像素值为0或1,分别表示遮蔽或保留。

? 在去除云的情境中,掩膜通常用于隐藏图像中被云覆盖的部分,使得在分析中只考虑云影响较小或不受云覆盖的区域。这通过将云检测的结果与原始图像相乘来实现,其中云检测结果中的云部分对应的像素值为0,其他部分为1。这样,相乘后,原始图像中的云部分就被设置为0,即被遮蔽,而其他部分保留。

遥感分类系数指标

遥感分类系数是用于评估遥感图像分类结果的指标,常见的包括:

  1. 生产者精度(Producer’s Accuracy): 正确分类为某一类别的样本数与该类别所有样本数的比值,衡量分类模型对某一类别的识别准确度。
  2. 用户精度(User’s Accuracy): 正确分类为某一类别的样本数与模型对该类别所有样本的分类结果的比值,衡量分类模型的分类准确度。
  3. 总体精度(Overall Accuracy): 全部正确分类的样本数与总样本数的比值,是整体分类准确度的度量。
  4. Kappa系数(Kappa Coefficient): 用于考量分类结果与随机分类之间的差异,是一种综合考虑生产者精度和用户精度的指标。
  5. 混淆矩阵(Confusion Matrix): 包含了模型对每个类别的分类情况,可用于详细分析模型的分类性能。

通过混淆矩阵,可以计算出上述提到的生产者精度、用户精度、总体精度等指标。具体而言,混淆矩阵的四个要素分别是:

  • True Positive(TP):实际为正类别,模型预测为正类别。
  • True Negative(TN):实际为负类别,模型预测为负类别。
  • False Positive(FP):实际为负类别,模型预测为正类别。
  • False Negative(FN):实际为正类别,模型预测为负类别。

常用数据(选Collection2 Tier1 的好数据)

在这里插入图片描述

JRC水体数据

在这里插入图片描述

GAIA不透水面数据

在这里插入图片描述

ESA土地利用分类数据

在这里插入图片描述

ERA5温度和降水数据

在这里插入图片描述

Join

ee.Join.inner(primaryKey, secondaryKey, measureKey)

返回将主集合中的元素与次集合中的匹配元素配对的连接。每个结果都有一个包含主集合中元素的 "主 "属性,以及一个包含次集合中匹配元素的 "次 "属性。如果指定了 measureKey,则连接措施也会作为一个属性附加到对象上。

ArgumentTypeDetails
primaryKeyString, default: “primary”用于保存主匹配的属性名称。
secondaryKeyString, default: “secondary”用于保存二级匹配的属性名称。
measureKeyString, default: null可选的属性名称,用于保存连接条件的度量值。

Join.apply(primary, secondary, condition)

用于将两个集合(比如图像集或特征集)根据特定条件进行连接

ArgumentTypeDetails
primaryFeatureCollection主要的集合,通常是你想要连接的主要数据集
secondaryFeatureCollection次要的集合,即你想要连接到主要集合的数据集
conditionFilter用于从两个集合中选择匹配项的连接条件。

Map

Map.centerObject(object, zoom,onComplete)

将地图视图居中于给定对象。

参数Type介绍
objectElement|Geometry(几何图像)要居中的对象–几何体、图像或特征。
zoomNumber, optional缩放级别,从 0 到 24。如果未指定,则根据对象的边界框计算。
onCompleteFunction, optional重新定位成功后触发的回调。传递此参数会导致 centerObject 操作异步运行。

Map.addLayer(eeObject, visParams, name, shown, opacity)

将给定的 EE 对象作为图层添加到地图中。返回新的地图图层。

参数类型介绍
eeObject集合|特征|图像|RawMapId要添加到地图的对象。
visParams特征可视化参数|图像可视化参数,可选可视化参数。对于图像和 ImageCollection,请参阅 ee.data.getMapId 以获取有效参数。对于功能和功能集合,唯一支持的键是“color”,作为 CSS 3.0 颜色字符串或“RRGGBB”格式的十六进制字符串。当 eeObject 是地图 ID 时被忽略。
name字符串,可选图层的名称。默认为“N 层”。
shown布尔值,可选指示该图层是否应默认打开的标志。
opacity数量,可选图层的不透明度表示为 0 到 1 之间的数字。默认为 1。

visParams参数

  • image (JSON string): 要呈现的图像的 JSON 字符串表示,或者可以是 Image 对象。
  • version (number): 图像的版本号,或者使用 “latest” 表示最新版本。
  • bands (comma-separated strings): 要映射到 RGB 的波段名称,用逗号分隔。
  • min (comma-separated numbers): 映射到 00 的值,可以是单个值或每个波段一个值。
  • max (comma-separated numbers): 映射到 FF 的值,可以是单个值或每个波段一个值。
  • gain (comma-separated numbers): 映射到 00-FF 的增益,可以是单个值或每个波段一个值。
  • bias (comma-separated numbers): 映射到 00-FF 的偏移,可以是单个值或每个波段一个值。
  • gamma (comma-separated numbers): 伽马校正因子,可以是单个值或每个波段一个值。
  • palette (comma-separated strings): CSS 样式颜色字符串的列表,仅适用于单波段预览。
  • opacity (number): 透明度,取值范围在 0 到 1 之间。
  • format (string): 输出图像的格式,可以是 “jpg” 或 “png”。

Filter方法

ee.Filter(filter)

构造一个新的过滤器。此构造函数接受以下参数:

  • 另一个过滤器。

  • 一个过滤器列表(隐式 AND 合并)。

  • 一个返回过滤器的计算对象。用户不应创建这些对象;它们由生成器函数生成

ArgumentTypeDetails
filterFilter|List, optional可选择添加过滤器。

ee.Filter.inList(leftField, rightValue, rightField, leftValue)

对列表中的元数据进行筛选。 返回构建的筛选器。

ArgumentTypeDetails
leftFieldString, optional左操作数的选择符。如果指定了 leftValue,则不应指定。
rightValueList, optional右操作数的值。如果指定了 rightField,则不应指定。
rightFieldString, optional右操作数的选择符。如果指定了 rightValue,则不应指定。
leftValueList, optional左操作数的值。如果指定了 leftField,则不应指定。

ee.Filter.eq(name, value)

过滤到等于给定值的元数据。返回构造的过滤器。

用法返回值
ee.Filter.eq(name, value)Filter
参数类型介绍
nameString要进行筛选的属性名称。
valueObject要比较的值。

ee.Filter.date(start, end) 时间筛选

按日期范围筛选数据集。开始和结束可以是日期、数字(解释为自 1970-01-01T00:00:00Z 起的毫秒)或字符串(如 “1996-01-01T08:00”)。基于 "system:time_start "属性。返回构建的过滤器。

ArgumentTypeDetails
startDate|Number|String开始日期(含)。
endDate|Number|String, optional结束日期(不包括)。可选。如果未指定,则会创建一个从 "开始 "开始的 1 毫秒范围。

ee.Filter.bounds(geometry, errorMargin) 位置筛选

创建一个过滤器,如果对象的几何图形与给定的几何图形相交,则通过该过滤器。返回构建的过滤器。

ArgumentTypeDetails
geometryComputedObject|FeatureCollection|Geometry要与之相交的几何体、特征或集合。
errorMarginComputedObject|Number, optional可选的误差范围。如果是数字,则解释为球面米。

ee.Filter.lt(name, value) 属性筛选

过滤小于给定值的元数据。 返回构建的过滤器。

ArgumentTypeDetails
nameString要过滤的属性名称。
valueObject要与之比较的值。

1. Dictionary方法

.toDictionary()

以字典的形式从特性中提取属性(properties)

.get()

通过Dictionary的键来获取值

.keys()

获取Dictionary中所有的键

.values()

获取Dictionary中所有的值

.size()

获取Dictionary中所含键值对的数量

.rename(from, to)

重命名Dictionary的键

参数Type介绍
fromList[]要重命名的的列表。
toList[]来自 "参数中列出的键的新名称列表。长度必须与 "from "列表相同。

.remove(selectors)

返回已删除指定键的Dictionary。

参数Type介绍
selectorsList要删除的键名列表或键名正则表达式。

.contains(key)

判断是否包含键,如果字典包含给定的键,则返回true。

参数TypeDetails
keyString, default: null

2. Feature常用函数

.Feature()

特征可由以下参数之一加上可选的属性字典构建:

  • 一个 ee.Geometry.GeoJSON 几何图形。

  • 一个 GeoJSON 几何图形。

  • 一个 GeoJSON 特征。

  • 一个计算对象:如果指定了属性,则重新解释为几何体;如果没有指定,则解释为地物。

参数Type介绍
geometryComputedObject|Feature|Geometry|Object几何体或特征。
propertiesObject, optional元数据属性字典。如果第一个参数是地物(而不是几何体),则未使用此参数。

.select(propertySelectors, newProperties, retainGeometry)

通过名称或与 RE2 兼容的 regex 从特征中选择属性,并对其进行重命名。

参数Type介绍
propertySelectorsList指定要选择的属性的名称或 regexes 的列表。
newPropertiesList, default: null可选的输出属性新名称。必须与所选属性的数量一致。
retainGeometryBoolean, default: true为假时,结果将为空几何图形。

.set(var_args)

设置元素的一个或多个元数据属性。返回设置指定属性的元素。

参数Type介绍
var_argsVarArgs可以是属性字典,也可以是属性的 vararg 序列,例如 key1、value1、key2、value2、…

.centroid(maxError, proj)

返回一个特征点,该特征点包含特征几何体最高维度组件的中心点。低维组件将被忽略,因此包含两个多边形、三条线和一个点的几何体的中心点等同于仅包含两个多边形的几何体的中心点。

参数Type介绍
maxErrorErrorMargin, default: null执行任何必要的重投时可容忍的最大误差。
projProjection, default: null如果指定,结果将采用该投影。否则将采用 WGS84 投影。

.simplify(maxError, proj)

将地物的几何形状简化到给定误差范围内。需要注意的是,除非 maxError 被明确指定为空,否则它不会尊重该算法的用户所要求的误差范围。 这将覆盖地球引擎传播误差范围的默认策略,因此无论输出所要求的几何精度如何,输入都将按照该算法参数中指定的误差范围进行请求。这样,在渲染矢量地图的所有缩放级别上都能获得一致的渲染效果,但在较低的缩放级别上(即放大),几何图形不会被简化,这可能会影响性能。

参数Type介绍
maxErrorErrorMargin结果与输入可能存在差异的最大误差值。
projProjection, default: null如果指定,结果将采用该投影。否则将采用与输入相同的投影。如果误差幅度以投影单位表示,则误差幅度将被解释为该投影的单位

.bounds(maxError, proj)

官网文档解释:返回包含给定地物几何边界框的地物。

自己理解:返回图像的外接矩形

参数Type介绍
maxErrorErrorMargin, default: null执行任何必要的重投时可容忍的最大误差。
projProjection, default: null如果指定,结果将采用该投影。否则将采用 WGS84 投影。

.convexHull(maxError, proj)

官网文档解释:返回几何图形被原始几何图形的凸壳替代后的特征。单个点的凸壳是点本身,相邻点的凸壳是一条直线,其他所有点的凸壳是一个多边形。需要注意的是,如果一个退化多边形的所有顶点都在同一条直线上,那么该多边形就会形成一条线段。

自己理解:返回图像的外接多边形

参数Type介绍
maxErrorErrorMargin, default: null执行任何必要的重投时可容忍的最大误差。
projProjection, default: null执行操作的投影。如果未指定,操作将在球面坐标系中执行,线性距离将以球面上的米为单位。

.buffer(distance, maxError, proj)

返回按给定距离缓冲的输入值。如果距离为正值,几何体将被扩展;如果距离为负值,几何体将被收缩。

参数Type介绍
distanceFloat缓冲距离,可以是负值。如果没有指定投影,单位为米。否则以投影坐标系为单位。
maxErrorErrorMargin, default: null在近似缓冲圆和执行任何必要的重投影时可容忍的最大误差。如果未指定,默认为距离的 1%。
projProjection, default: null如果指定,缓冲将在该投影中执行,距离将解释为该投影坐标系的单位。否则,距离将被解释为米,缓冲将在球面坐标系中进行。

.union(right, maxError, proj) 合并

返回包含两个地物几何图形结合的地物。

参数Type介绍
rightElement包含作为操作右操作数的几何图形的特征。该对象的属性将被忽略。
maxErrorErrorMargin, default: null执行任何必要的重投时可容忍的最大误差。
projProjection, default: null执行操作的投影。如果未指定,操作将在球面坐标系中执行,线性距离将以球面上的米为单位。

.intersection(right, maxError, proj) 相交

返回包含两个特征几何形状交集的特征,并带有左侧特征的属性。

参数Type介绍
rightElement包含作为操作右操作数的几何图形的特征。该对象的属性将被忽略。
maxErrorErrorMargin, default: null执行任何必要的重投时可容忍的最大误差。
projProjection, default: null执行操作的投影。如果未指定,操作将在球面坐标系中执行,线性距离将以球面上的米为单位。

.difference(right, maxError, proj) 相差

返回具有 "左 "特征属性的特征,以及从 "左 "几何图形减去 "右 "几何图形后的几何图形。

参数Type介绍
rightElement包含作为操作右操作数的几何图形的特征。该对象的属性将被忽略。
maxErrorErrorMargin, default: null执行任何必要的重投时可容忍的最大误差。
projProjection, default: null执行操作的投影。如果未指定,操作将在球面坐标系中执行,线性距离将以球面上的米为单位。

.distance(right, maxError, proj)

返回两个特征点几何形状之间的最小距离。

ArgumentTypeDetails
rightElement包含作为操作右操作数的几何体的特征。
maxErrorErrorMargin, default: null执行任何必要的重投时可容忍的最大误差。
projProjection, default: null执行操作的投影。如果未指定,操作将在球面坐标系中执行,线性距离将以球面上的米为单位。

.geometry(maxError, proj, geodesics)

返回给定投影中给定地物的几何图形。

ArgumentTypeDetails
maxErrorErrorMargin, default: null执行任何必要的重投时可容忍的最大误差。
projProjection, default: null如果指定,几何体将使用该投影。如果未指定,几何体将使用默认投影。
geodesicsBoolean, default: null如果为 “true”,几何体将具有大地边缘。如果为 false,则几何体的边缘将以指定投影中的直线形式出现。如果为空,边缘解释将与原始几何体相同。如果未指定 proj,此参数将被忽略。

.get(property)

从特征中提取属性

ArgumentTypeDetails
propertyString要提取的属性。

.area(maxError, proj)

返回该特征的默认几何形状的面积。点和线串的面积为0,多个几何形状的面积为其组成部分的面积之和(相交面积计算多次)。

参数Type介绍
maxErrorErrorMargin, default: null执行任何必要的重投时可容忍的最大误差。
projProjection, default: null如果指定,结果将使用该投影坐标系的单位。否则将以平方米为单位。

.perimeter(maxError, proj)

返回给定特征几何体多边形部分的周长。多个几何体的周长是其各部分周长的总和。

参数Type介绍
maxErrorErrorMargin, default: null执行任何必要的重投时可容忍的最大误差。
projProjection, default: null如果指定,结果将使用该投影坐标系的单位。否则将以米为单位。

3. FeatureCollection常用函数

ee.FeatureCollection(args, column)

FeatureCollections 可由以下参数构建:

  • 字符串:假定为集合名称。

  • 一个几何体。

  • 单个特征。

  • 一个特征列表

  • 一个 GeoJSON 地物集合

  • 一个计算对象:重新解释为一个集合。

ArgumentTypeDetails
argsComputedObject|Feature|FeatureCollection|Geometry|List构造函数参数。
columnString, optional要使用的几何列的名称。仅在处理命名集合时有用。

.randomPoints(region, points, seed, maxError)

在球面上均匀随机地生成指定区域内的点。

ArgumentTypeDetails
regionGeometry要生成积分的区域。
pointsInteger, default: 1000要生成的点数。
seedLong, default: 0随机数生成器的种子。
maxErrorErrorMargin, optional执行任何必要的重投时可容忍的最大误差。

.filterBounds(geometry)

根据与几何体的交点过滤集合的快捷方式。这等同于 this.filter(ee.Filter.bounds(…))。返回过滤后的集合。

ArgumentTypeDetails
geometryComputedObject|FeatureCollection|Geometry要与之相交的几何体、特征或集合。

.select(propertySelectors, newProperties, retainGeometry)

从集合中的每个特征中选择属性。也可以只使用字符串参数调用此函数;它们都将被解释为属性选择器(varargs)。 返回包含所选属性的特征集合。

ArgumentTypeDetails
propertySelectorsList指定要选择的属性的名称或 regexes 的列表。
newPropertiesList, optional输出属性的新名称列表。必须与所选属性的数量一致。
retainGeometryBoolean, optional为假时,结果的几何形状为空。默认为 true。

.union(maxError)

将给定集合中的所有几何图形合并为一个,并返回一个集合,其中包含一个 ID 为 "union_result "的单一地物和一个几何图形。

ArgumentTypeDetails
maxErrorErrorMargin, default: null执行任何必要的重现时允许的最大误差。如果未指定,则默认为输出所要求的误差范围。

.merge(collection2)

将两个集合合并为一个。第一个集合中的元素 ID 前缀为 “1”,第二个集合中的元素 ID 前缀为 “2”。

ArgumentTypeDetails
collection2FeatureCollection第二个要合并的系列。

.remap(lookupIn, lookupOut, columnName)

重映射集合中特定属性的值。使用两个并行列表,将其中一个列表中的值映射到另一个列表中的值。任何元素的值如果未在第一个列表中指定,就会从输出集合中删除。

ArgumentTypeDetails
lookupInList输入的映射值。限于字符串和整数。
lookupOutList输出映射值。必须与 lookupIn 大小相同。
columnNameString要重新映射的属性名称。

.sort(property, ascending)

按指定属性对集合排序。 返回排序后的集合。

ArgumentTypeDetails
propertyString要排序的属性。
ascendingBoolean, optional按升序还是降序排序。默认为 true(升序)。

.geometry(maxError)

提取并合并几何图形集合。要求集合中的所有几何图形共享投影和边缘解释。

ArgumentTypeDetails
maxErrorErrorMargin, optional合并几何图形时使用的误差范围。

.reduceToimage(properties, reducer)

通过对与每个像素相交的所有特征的选定属性应用还原器,从特征集合创建图像。

ArgumentTypeDetails
propertiesList从每个特征中选取的属性,并将其传递给还原器。
reducerReducer一个还原器,用于将每个相交特征的属性合并为最终结果并存储到像素中。

.map(algorithm, dropNulls)

将算法映射到集合上,并返回映射后的集合。

ArgumentTypeDetails
algorithmFunction映射图像或集合特征的操作。接收图像或特征并返回图像或特征的 JavaScript 函数。该函数只调用一次,其结果将作为描述捕获,因此不能执行命令式操作或依赖外部状态。
dropNullsBoolean, optional如果为 “true”,则允许映射算法返回空值,并且会放弃返回空值的元素。

.aggregate_min(property)

对集合中对象的给定属性进行聚合,计算所选属性值的最小值。

ArgumentTypeDetails
propertyString从集合的每个元素中使用的属性。

.aggregate_max(property)

对集合中对象的给定属性进行聚合,计算所选属性值的最大值。

ArgumentTypeDetails
propertyString从集合的每个元素中使用的属性。

.aggregate_mean(property)

对集合中对象的给定属性进行聚合,计算所选属性的平均值。

ArgumentTypeDetails
propertyString从集合的每个元素中使用的属性。

.aggregate_first(property)

对集合中对象的给定属性进行聚合,计算集合中第一个对象的属性值。

ArgumentTypeDetails
propertyString从集合的每个元素中使用的属性。

.aggregate_sum(property)

对集合中对象的给定属性进行聚合,计算所选属性值的总和。

ArgumentTypeDetails
propertyString从集合的每个元素中使用的属性。

.aggregate_histogram(property)

对集合中对象的给定属性进行聚合,计算所选属性的直方图。

ArgumentTypeDetails
propertyString从集合的每个元素中使用的属性。

4. 栅格数据存储原理

由Image和ImageCollection进行存储,很多的image的集合就是一个ImageCollection,Image包括多个波段(Band),波段组合成影像,影像集合成为影像数据集。

4.1 Image方法

Image.clip(geometry)

将图像剪切到几何图形或地物上,输出波段与输入波段完全对应,但几何图形未覆盖的数据将被屏蔽。输出图像保留输入图像的元数据。使用 clipToCollection 将图像剪辑到特征集合。返回剪切后的图像。

ArgumentTypeDetails
geometryFeature|Geometry|Object要剪切的几何图形或地物。
Image.gt(image2)

如果图像 1 和图像 2 中每对匹配的波段的第一个值大于第二个值,则返回 1。如果图像 1 或图像 2 中只有一个波段,则该波段将与另一幅图像中的所有波段进行比对。如果图像中的波段数相同,但名称不相同,则按自然顺序成对使用。输出色带以两个输入色带中较长的一个命名,如果两个输入色带长度相等,则按图像 1 的顺序排列。输出像素的类型是布尔型。

ArgumentTypeDetails
image2Image取自右操作数波段的图像。
Image.selfMask()

使用图像值作为新的掩码值,更新图像所有现有掩码不为零位置的掩码。输出图像会保留输入图像的元数据和足迹。

Image.subtract(image2)

将图像 1 和图像 2 中每对匹配的波段的第二个值减去第一个值。如果图像 1 或图像 2 中只有一个波段,则将其与另一幅图像中的所有波段进行对比。如果图像中的波段数相同,但名称不同,则按自然顺序成对使用。输出波段以两个输入波段中较长的一个命名,如果两个输入波段长度相等,则按图像 1 的顺序命名。输出像素的类型是输入类型的组合。

ArgumentTypeDetails
image2Image取自右操作数波段的图像。
Image.bitwiseAnd(image2)

计算图像 1 和图像 2 中每对匹配波段的输入值的位和。如果图像 1 或图像 2 中只有一个波段,则将其与另一张图像中的所有波段进行比对。如果图像中的波段数相同,但名称不同,则按自然顺序成对使用。输出波段以两个输入波段中较长的一个命名,如果两个输入波段长度相等,则按图像 1 的顺序命名。输出像素的类型是输入类型的组合。

ArgumentTypeDetails
image2Image取自右操作数波段的图像。
Image.copyProperties(source, properties, exclude)

将元数据属性从一个元素复制到另一个元素。

ArgumentTypeDetails
sourceElement, default: null从中复制属性的对象。
propertiesList, default: null要复制的属性。如果省略,则复制所有普通(即非系统)属性。
excludeList, default: null复制所有属性时要排除的属性列表。如果 properties 为,则不得指定。
Image.updateMask(mask)

更新图像掩码中所有现有掩码不为零的位置。输出图像保留输入图像的元数据和足迹。

ArgumentTypeDetails
maskImage图像的新掩码,范围为 [0, 1] 的浮点数(无效 = 0, 有效 = 1)。如果该图像只有一个波段,它将用于输入图像的所有波段;否则,必须具有与输入图像相同的波段数。
ee.Image.constant(value)

生成一幅图像,图像各处都包含一个常量值。

ArgumentTypeDetails
valueObject常量图像中像素的值。必须是数字、数组或数字或数组列表。
Image.normalizedDifference(bandNames)

计算两个波段之间的归一化差值。如果没有指定要使用的波段,则使用前两个波段。归一化差值的计算公式为(第一-第二)/(第一+第二)。请注意,返回的图像波段名称是 “nd”,输出图像中不会保留输入图像属性,而且任一输入波段中的负像素值都会导致输出像素被屏蔽。为避免屏蔽负输入值,请使用 ee.Image.expression() 计算归一化差值。

ArgumentTypeDetails
bandNamesList, default: null指定要使用的频带的名称列表。如果未指定,则使用第一个和第二个波段。
Image.expression(expression, map)

对一幅图像(可能涉及其他图像)进行算术表达式求值。 主要输入图像的波段可使用内置函数 b(),即 b(0) 或 b(‘band_name’)。

表达式中的变量被解释为附加图像参数,必须在 opt_map 中提供。每个此类图像的波段都可以像 image.band_name 或 image[0] 一样访问。

b() 和 image[] 都允许使用多个参数来指定多个波段,例如 b(1,‘name’,3)。调用不带参数的 b() 或使用变量本身,都会返回图像的所有波段。

如果表达式的结果是单个波段,则可以使用"="操作符为其赋名(例如:x = a + b)。

返回根据所提供表达式计算出的图像。

ArgumentTypeDetails
expressionString要评估的表达式。
mapDictionary, optional按名称提供的输入图像地图。

在这里插入图片描述

Image.addBands(srcImg, names, overwrite)

用于向图像添加新波段的方法。

  • srcImg: 要添加的源图像或图像集。
  • names: 要添加的波段的名称,可以是字符串或字符串数组。每个名称对应于 srcImg 中的一个波段。
  • overwrite: 布尔值,表示如果已存在同名波段是否覆盖。如果设置为 true,则覆盖现有的同名波段;如果设置为 false,则不覆盖。
Image.reduceRegion(reducer, geometry, scale, crs, crsTransform, bestEffort, maxPixels, tileScale)

用于在图像上执行区域缩减操作的方法。

  • reducer: 用于指定要执行的缩减操作,比如 ee.Reducer.mean() 表示计算平均值。常见的统计操作包括 mean()sum()min()max() 等。
  • geometry: 定义缩减操作的地理区域,可以是一个 ee.Geometry 对象。
  • scale: 指定缩减的分辨率,以米为单位。
  • crs: 缩减操作的坐标参考系统(Coordinate Reference System)。
  • crsTransform: 缩减操作的坐标转换参数,通常用于从图像坐标到投影坐标的转换。
  • bestEffort: 布尔值,表示是否尽最大努力执行缩减操作,即使在某些情况下无法完成全部操作。
  • maxPixels: 指定执行缩减操作的最大像元数。
  • tileScale: 控制图像切片时的缩放比例,可用于提高处理速度。
Image.aside(func, var_args)

用于在图像计算过程中插入调试语句,以便在调试或理解代码时查看图像计算的中间结果。

ArgumentTypeDetails
funcFunction一个函数,该函数接受图像作为参数并返回图像。在这个函数中,你可以使用 print 等语句来输出图像信息。
var_argsVarArgs要传递给函数的额外参数。
Image.unmask(value, sameFootprint)

用于将图像中的掩码(mask)去除。掩码是指图像中某些像素被标记为无效或不适用的区域,通过 maskupdateMask 方法设置。

ArgumentTypeDetails
valueImage, default: null一个数值,用于替代掩码区域的像素值。
sameFootprintBoolean, default: true一个布尔值,指示是否将去除掩码的图像保持与原始图像相同的地理范围。
Image.stratifiedSample(numPoints, classBand, region, scale, projection, seed, classValues, classPoints, dropNulls, tileScale, geometries)

从图像中提取分层随机点样本。为 "classBand "中发现的每个不同值提取指定数量的样本。每个提取点返回一个包含 1 个特征的特征集合,每个特征在输入图像的每个波段中包含 1 个属性。如果给定类别值的可用样本少于指定数量,则会包含该类别的所有点。要求 classBand 包含整数值。

ArgumentTypeDetails
numPointsInteger每个类的默认采样点数。可以使用 "classValues "和 "classPoints "属性对特定类别进行重设。
classBandString, default: null用于分层的包含类别的波段名称。如果未指定,则使用输入图像的第一个波段。
regionGeometry, default: null采样区域。如果未指定,则使用输入图像的整个足迹作为采样区域。
scaleFloat, default: null要采样的投影的标称比例(以米为单位)。默认为输入图像第一个波段的比例。
projectionProjection, default: null采样的投影。如果未指定,则使用输入图像第一个波段的投影。如果除了缩放比例外还指定了投影比例,则会按照指定的比例重新缩放。
seedInteger, default: 0用于子采样的随机化种子。
classValuesList, default: null要覆盖 numPoints 参数的类值列表。必须与 classPoints 大小相同或为空。
classPointsList, default: nullclassValues(类别值)列表中每个类别的最大采样像素数。必须与 classValues 大小相同或为空。
dropNullsBoolean, default: true跳过任何遮挡带的像素。
tileScaleFloat, default: 1缩放因子,用于减小聚合磁贴大小;使用较大的 tileScale(如 2 或 4)可能会导致计算耗尽默认内存。
geometriesBoolean, default: false如果为 “true”,结果将包括每个采样像素的几何图形。否则,几何图形将被省略(节省内存)。
Image.blend(top)

在一张图像上叠加另一张图像。图像将使用遮罩作为不透明度混合在一起。如果其中一幅图像只有一个色带,则会进行复制,以匹配另一幅图像中的色带数量。

ArgumentTypeDetails
topImage是要与原始图像混合的另一个图像
Image.sampleRegions(collection, properties, scale, projection, tileScale, geometries)

用于从图像中抽样获取指定区域(region)内的像元,并返回一个包含属性信息的特征集合。

ArgumentTypeDetails
collectionFeatureCollection采样区域。
propertiesList, default: null要从每个输入特征点复制的属性列表。默认为所有非系统属性。
scaleFloat, default: null要采样的投影的标称比例(以米为单位)。如果未指定,则使用图像第一个波段的比例。
projectionProjection, default: null采样时的投影。如果未指定,则使用图像第一个波段的投影。如果除比例外还指定了投影,则按指定比例重新缩放。
tileScaleFloat, default: 1缩放因子,用于减小聚合磁贴大小;使用较大的 tileScale(如 2 或 4)可能会导致计算耗尽默认内存。
geometriesBoolean, default: false如果为 “true”,结果将包括每个采样像素的点几何图形。否则,几何图形将被省略(节省内存)。

4.2 ImageCollection方法

ee.ImageCollection(args)

ImageCollections 可以通过以下参数构建:

  • 字符串:假定为集合的名称、

  • 图像列表,或任何可用于构建图像的参数。

  • 单张图片。

  • 一个计算对象–重新解释为一个集合。

ArgumentTypeDetails
argsComputedObject|Image|List构造函数参数。
ImageCollection.mosaic()

使用遮罩合成图像集中的所有图像。(取最后的有效值)

ImageCollection.mean()

通过计算所有匹配波段堆栈中每个像素上所有值的平均值来减少图像集合。波段按名称匹配。

ImageCollection.median()

通过计算所有匹配波段堆栈中每个像素点所有值的中值来减少图像集合。波段按名称匹配。

ImageCollection.sort(property, ascending)

按指定属性对集合排序。 返回排序后的集合。

ArgumentTypeDetails
propertyString要排序的属性。
ascendingBoolean, optional按升序还是降序排序。默认为 true(升序)。
ImageCollection.limit(max, property, ascending)

将集合限制为指定数量的元素,可选择先按指定属性排序。 返回限制后的集合。

ArgumentTypeDetails
maxNumber限制收集的数量。
propertyString, optional如果排序,则按属性排序。
ascendingBoolean, optional按升序还是降序排序。默认为 true(升序)。

5. 一些常用的去云方法

5.1 Sentinel-2A遥感数据去云方法

Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-2A

5.2 Sentinel-2C遥感数据去云方法1

Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C

通过波段第10位和11位去云。

5.3 Sentinel-2C 遥感数据去云方法2

Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C

Sentinel-2: Cloud Probability

波段联合去云。

5.4 Sentinel-3遥感数据去云方法

Sentinel-3 OLCI EFR: Ocean and Land Color Instrument Earth Observation Full Resolution

主要是通过波段第25位和27位来解决问题,25是用来判断数据是否有效,27是判断是否是高亮地区。因为云是白色的所以是高亮,所以可以通过这种方式来去云,同时这种高亮也包括雪山,如果要同时去除云和雪山的话,可以采用这种方式。

5.5Landsat4/5/7/8_TOA_LC2_T1数据去云

主要通过QA_PIXEL第3位和第4位去云。

5.6 Landsat 8/9_SR_LC2_T1数据去云

主要通过QA_PIXEL第2,3,4位去云。

5.7 MOD09Q1_8Day 数据去云

主要通过State bits0-1和bits2去云。

6 数据输出

数据输出位置不同,功能不同

  • Driver:为了将数据输出,导出在本地进行数据分析;
  • Asset:为了解决GEE数据单次运行计算超载,方便下次调用;
  • Cloud Storage:为了深度学习调用等。

注意:对于Collection数据类型而言,我们需要先将Collection数据类型转化成List数据类型(.toList),然后利用for循环逐一将每一个要素输出(Image或者Feature),从而实现对Collection数据的输出。

6.1 Export.image.toDrive(image, description, folder, fileNamePrefix, dimensions, region, scale, crs, crsTransform, maxPixels, shardSize, fileDimensions, skipEmptyTiles, fileFormat, formatOptions)

创建一个批处理任务,将图像以光栅形式导出到驱动器。任务可从 "任务 "选项卡启动。“crsTransform”、"scale "和 "dimensions "是互斥的。

ArgumentTypeDetails
imageImage要导出的图像。
descriptionString, optional任务的可读名称。可包含字母、数字、-、_(无空格)。默认为 “myExportImageTask”。
folderString, optional导出内容所在的 Google Drive 文件夹。注意:(a) 如果文件夹名存在于任何级别,输出将写入该文件夹;(b) 如果存在重复的文件夹名,输出将写入最近修改的文件夹;? 如果文件夹名不存在,将在根目录下创建新文件夹;(d) 带分隔符的文件夹名(如 “path/to/file”)将被解释为字面字符串,而非系统路径。默认为驱动器根目录。
fileNamePrefixString, optional文件名前缀。可包含字母、数字、-、_(无空格)。默认为描述。
dimensionsNumber|String, optional导出图像的尺寸。最大尺寸可以是单个正整数,也可以是 “WIDTHxHEIGHT”(其中 WIDTH 和 HEIGHT 均为正整数)。
regionGeometry.LinearRing|Geometry.Polygon|String, optional代表要导出区域的 LinearRing、Polygon 或坐标。可以指定为几何对象或以字符串形式序列化的坐标。
scaleNumber, optional分辨率,单位为米/像素。默认为 1000。
crsString, optional导出图像要使用的 CRS。
crsTransformList, optional导出图像的坐标转换参数。需要定义 “crs”。
maxPixelsNumber, optional限制导出的像素数。默认情况下,如果导出超过 1e8 像素,就会出现错误。通过明确设置该值,可以提高或降低该限制。
shardSizeNumber, optional计算图像的磁贴大小(像素)。默认为 256。
fileDimensionsList, optional如果图像太大,无法放入单个文件,每个图像文件的像素尺寸。可以指定一个数字来表示正方形,也可以指定一个包含两个尺寸的数组来表示(宽、高)。需要注意的是,图像仍将按照整个图像的尺寸进行裁剪。必须是 shardSize 的倍数。
skipEmptyTilesBoolean, optional如果为 “true”,则跳过写入空(即完全屏蔽)图像磁贴。默认为假。
fileFormatString, optional导出图像的字符串文件格式。目前只支持 "GeoTIFF "和 “TFRecord”,默认为 “GeoTIFF”。
formatOptionsImageExportFormatConfig, optional用于格式化特定选项的字符串键字典。

6.2 Export.image.toAsset(image, description, assetId, pyramidingPolicy, dimensions, region, scale, crs, crsTransform, maxPixels, shardSize)

创建一个批处理任务,将图像以光栅形式导出到地球引擎资产中。任务可从 "任务 "选项卡中启动。

ArgumentTypeDetails
imageImage要导出的图像。
descriptionString, optional任务的可读名称。默认为 “myExportImageTask”。
assetIdString, optional目标资产 ID。
pyramidingPolicyObject, optional应用于图像中每个波段的分层策略,以波段名称为关键。值必须是:均值、样本、最小值、最大值或模式之一。默认值为 “平均值”。可以使用特殊键".default "来更改所有波段的默认值。
dimensionsNumber|String, optional导出图像的尺寸。最大尺寸可以是单个正整数,也可以是 “WIDTHxHEIGHT”(其中 WIDTH 和 HEIGHT 均为正整数)。
regionGeometry.LinearRing|Geometry.Polygon|String, optional代表要导出区域的 LinearRing、Polygon 或坐标。可以指定为几何对象或以字符串形式序列化的坐标。
scaleNumber, optional分辨率,单位为米/像素。默认为 1000。
crsString, optional导出图像要使用的 CRS。
crsTransformList, optional用于导出图像的仿射变换。需要定义 “crs”。
maxPixelsNumber, optional限制导出的像素数。默认情况下,如果导出超过 1e8 像素,就会出现错误。通过明确设置该值,可以提高或降低该限制。
shardSizeNumber, optional计算图像的磁贴大小(像素)。默认为 256。

crs 参数用于指定导出图像时的坐标参考系统 (Coordinate Reference System)。在 Google Earth Engine 中,常见的坐标参考系统的标识是 EPSG(European Petroleum Survey Group)代码。

一些常见的 EPSG 代码示例:

  • WGS 84(地理坐标系): 'EPSG:4326'
  • Web Mercator(投影坐标系): 'EPSG:3857'
  • UTM Zone 33N(UTM投影坐标系): 'EPSG:32633'

具体选择哪个坐标参考系统取决于你的应用场景和需要。如果你不确定应该选择哪个坐标参考系统,通常可以根据你的地理区域和使用习惯来选择。地理坐标系(如 WGS 84)适用于全球范围,而投影坐标系(如 Web Mercator)适用于在线地图等应用。

7 GEE植被指数计算

在GEE常见的计算指数的三种方式

  1. 利用Image.normalizedDifference(bandNames)函数
  2. 直接用加减乘除方法运算
  3. 利用expression计算
指数类型计算公式
NDVI 归?化植被指数(NIR-Red)/(NIR+Red)
FVC 植被覆盖度(NDVI-NDVIsoil)/(NDVIveg-NDVI)
EVI 增强植被指数2.5 * (NIR-Red) / (NIR + 6 * Red-7.5 * Blue + 1)
LAI 叶?积指数3.618*EVI-0.118
BSI 裸?指数(SWIR+Red)-(NIR-Blue))/((SWIR+Red)+(NIR-Blue)
LSWI 植被?分含量指数(NIR-SWIR)/(NIR+SWIR)
MNDWI 修正的归?化?体指数(Green-SWIR)/(Green+SWIR)
SAVI ?壤调节植被指数(NIR-R)*(1+L)/(NIR+R+L)L=0.5
NDTI 归?化差异耕作指数(SWIR1-SWIR2)/(SWIR1+SWIR2)
IBI 城市建筑指数在这里插入图片描述
NIR 纹理特征视情况而定,通常使用纹理滤波等方法进行计算
  • NIR: 近红外波段
  • Red: 红色波段
  • Blue: 蓝色波段
  • SWIR: 短波红外波段
  • Green: 绿色波段
  • L: 土壤调节参数(SAVI中的参数)
  • NDVIsoil 是裸土区域的平均 NDVI 值。
  • NDVIveg 是完全覆盖植被区域的平均 NDVI 值。

8. 数据统计分析

通过Reducer.combine讲数据合并到一块,然后通过ui.Chart.image.方法将图像显示输出。

Reducer.combine(reducer2, outputPrefix, sharedInputs)

用于将两个缩减器(Reducer)合并成一个。这个方法通常用于同时执行多个缩减操作并生成一个合并的结果。

ArgumentTypeDetails
reducer2Reducer第二个缩减器,它将与第一个缩减器合并。
outputPrefixString, default: “”用于区分合并结果的前缀,可以是字符串。
sharedInputsBoolean, default: false一个布尔值,表示是否使用相同的输入数据执行两个缩减器。

ui.Chart.image.byRegion(image, regions, reducer, scale, xProperty)

用于创建图表的方法,用于按区域对图像进行统计并生成图表。

ArgumentTypeDetails
imageImage要统计的图像
regionsFeature|FeatureCollection|Geometry|List, optional区域集合,可以是 FeatureCollectionGeometry 对象或 Feature 对象。
reducerReducer, optional缩减器(Reducer),用于指定要计算的统计量,例如均值、总和等。
scaleNumber, optional空间分辨率(meter/pixel)
xPropertyString, optional作为 X 轴的属性,可以是字符串或指定图表中 X 轴数据的图像属性。

Chart.setChartType(chartType)

用于设置图表类型的方法。该方法用于更改图表的显示类型。

ArgumentTypeDetails
chartTypeString要设置的图表类型,可以是字符串。常见的图表类型包括 'ScatterChart''LineChart''ColumnChart' 等。

Chart.setOptions(options)

用于设置图表选项的方法。通过这个方法,你可以设置图表的各种显示选项,例如标题、坐标轴标签、图例等。

ArgumentTypeDetails
optionsObject一个包含图表选项的对象。可以包括各种属性,具体取决于图表的类型和需求。

options常用的属性:

  1. title: 设置图表的标题。
  2. hAxis: 设置水平轴选项。
  3. vAxis: 设置垂直轴选项。
  4. lineWidth: 设置线的宽度。
  5. pointSize: 设置点的大小。
  6. legend: 控制图例的显示。
  7. backgroundColor: 设置图表的背景颜色。
  8. curveType: 设置曲线类型(例如,‘function’ 或 ‘none’)。
  9. colors: 设置系列的颜色。

9.数据填充

9.1 NPP数据栅格填充(MOD17A3HGF数据)

在这里插入图片描述

Net Primary Production (NPP): 净初级生产力是指植物通过光合作用从大气中吸收二氧化碳,将其转化为植物体内的有机物质的速率。这个数据集测量了全球范围内植被的净初级生产力。

9.2 人口数据栅格填充(POP数据)

在这里插入图片描述

9.3MODIS数据插值详解

在这里插入图片描述

MODIS(Moderate Resolution Imaging Spectroradiometer)是一种载荷在Terra和Aqua卫星上的遥感仪器,属于美国宇航局(NASA)的地球观测系统(EOS)项目。它被设计用于监测地球表面的大气、陆地和海洋等方面的变化。

MODIS具有较高的空间分辨率和广泛的波段覆盖,使其成为全球气象、气候和环境研究中的重要工具。它能够提供每天多次的全球覆盖,获取的数据包括植被指数、云覆盖、地表温度等信息。

Savitzky-Golay 滤波器(SG 滤波器)是一种平滑数据的技术,它利用多项式拟合来平滑信号。相较于简单的线性插值,SG 滤波器在平滑时考虑了更多的局部信息,因此在某些情况下,它可能更适用于去除噪声和提取趋势。

10.土地分类

基于目视解译的土地利用分类

主要流程的解释:

  1. 设置研究区域:

    • 通过提供的table获取研究区域的边界,并在地图上标出。
  2. 设置时间窗口:

    • 定义了开始日期(startDate)和结束日期(endDate),用于选择Landsat 9影像数据的时间范围。
  3. 比例换算和云去除:

    • 使用applyScaleFactors函数对遥感影像进行比例换算,然后使用rmL89Cloud函数去除云影响。
  4. 指数计算:

    • 使用addIndexs函数计算了一些遥感指数,如NDVI(归一化植被指数)、BSI(裸土指数)、LSWI(水体指数)和MNDWI(水体蓝光差异指数)。
  5. 获取研究区时间窗口内数据:

    • 通过筛选日期、研究区域和应用之前定义的函数,获取Landsat 9影像,并计算得到的指数。最后,取这些影像的中值(.median())以减少噪音,并将其裁剪到研究区域。
  6. 可视化:

    • 在地图上添加了遥感影像的可视化图层。
  7. 合并样本:

    • 将水体、建筑、林地、耕地和未利用地的样本合并成一个样本集合。
  8. 样本采样:

    • 利用sampleRegions函数,对上述合并的样本进行随机采样,并为每个样本点添加了一个随机数列。
  9. 训练和验证样本:

    • 将样本数据分为70%用于训练,30%用于验证。
  10. 设置分类器:

    • 使用Random Forest分类器(ee.Classifier.smileRandomForest(300))对训练样本进行训练。
  11. 影像分类:

    • 利用训练好的分类器对遥感影像进行分类,得到Classified_RF
  12. 显示分类结果:

    • 在地图上添加了分类结果的图层,使用了不同颜色表示不同类别。
  13. 精度验证:

    • 使用验证样本对分类结果进行精度验证,计算混淆矩阵,然后输出准确度、Kappa系数、用户精度和生产者精度等指标。
      !
文章来源:https://blog.csdn.net/m0_59167353/article/details/135181350
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。