GEE学习笔记

掩膜

​ 在遥感图像处理中,"掩膜"是指一种用于隐藏或保留图像特定部分的技术。掩膜通常是一个二进制图像,其中的像素值为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,则连接措施也会作为一个属性附加到对象上。

Argument Type Details
primaryKey String, default: "primary" 用于保存主匹配的属性名称。
secondaryKey String, default: "secondary" 用于保存二级匹配的属性名称。
measureKey String, default: null 可选的属性名称,用于保存连接条件的度量值。

Join.apply(primary, secondary, condition)

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

Argument Type Details
primary FeatureCollection 主要的集合,通常是你想要连接的主要数据集
secondary FeatureCollection 次要的集合,即你想要连接到主要集合的数据集
condition Filter 用于从两个集合中选择匹配项的连接条件。

Map

Map.centerObject(object, zoom,onComplete)

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

参数 Type 介绍
object Element|Geometry(几何图像) 要居中的对象--几何体、图像或特征。
zoom Number, optional 缩放级别,从 0 到 24。如果未指定,则根据对象的边界框计算。
onComplete Function, 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 合并)。

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

Argument Type Details
filter Filter|List, optional 可选择添加过滤器。

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

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

Argument Type Details
leftField String, optional 左操作数的选择符。如果指定了 leftValue,则不应指定。
rightValue List, optional 右操作数的值。如果指定了 rightField,则不应指定。
rightField String, optional 右操作数的选择符。如果指定了 rightValue,则不应指定。
leftValue List, optional 左操作数的值。如果指定了 leftField,则不应指定。

ee.Filter.eq(name, value)

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

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

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

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

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

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

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

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

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

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

Argument Type Details
name String 要过滤的属性名称。
value Object 要与之比较的值。

1. Dictionary方法

.toDictionary()

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

.get()

通过Dictionary的键来获取值

.keys()

获取Dictionary中所有的键

.values()

获取Dictionary中所有的值

.size()

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

.rename(from, to)

重命名Dictionary的键

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

.remove(selectors)

返回已删除指定键的Dictionary。

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

.contains(key)

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

参数 Type Details
key String, default: null

2. Feature常用函数

.Feature()

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

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

  • 一个 GeoJSON 几何图形。

  • 一个 GeoJSON 特征。

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

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

.select(propertySelectors, newProperties, retainGeometry)

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

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

.set(var_args)

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

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

.centroid(maxError, proj)

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

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

.simplify(maxError, proj)

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

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

.bounds(maxError, proj)

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

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

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

.convexHull(maxError , proj)

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

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

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

.buffer(distance, maxError , proj)

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

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

.union(right, maxError , proj) 合并

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

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

.intersection(right, maxError , proj) 相交

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

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

.difference(right, maxError , proj) 相差

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

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

.distance(right, maxError , proj)

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

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

.geometry(maxError , proj , geodesics)

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

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

.get(property)

从特征中提取属性

Argument Type Details
property String 要提取的属性。

.area(maxError, proj)

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

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

.perimeter(maxError , proj)

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

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

3. FeatureCollection常用函数

ee.FeatureCollection(args, column)

FeatureCollections 可由以下参数构建:

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

  • 一个几何体。

  • 单个特征。

  • 一个特征列表

  • 一个 GeoJSON 地物集合

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

Argument Type Details
args ComputedObject|Feature|FeatureCollection|Geometry|List 构造函数参数。
column String, optional 要使用的几何列的名称。仅在处理命名集合时有用。

.randomPoints(region, points , seed , maxError)

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

Argument Type Details
region Geometry 要生成积分的区域。
points Integer, default: 1000 要生成的点数。
seed Long, default: 0 随机数生成器的种子。
maxError ErrorMargin, optional 执行任何必要的重投时可容忍的最大误差。

.filterBounds(geometry)

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

Argument Type Details
geometry ComputedObject|FeatureCollection|Geometry 要与之相交的几何体、特征或集合。

.select(propertySelectors, newProperties , retainGeometry)

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

Argument Type Details
propertySelectors List 指定要选择的属性的名称或 regexes 的列表。
newProperties List, optional 输出属性的新名称列表。必须与所选属性的数量一致。
retainGeometry Boolean, optional 为假时,结果的几何形状为空。默认为 true。

.union(maxError)

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

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

.merge(collection2)

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

Argument Type Details
collection2 FeatureCollection 第二个要合并的系列。

.remap(lookupIn, lookupOut, columnName)

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

Argument Type Details
lookupIn List 输入的映射值。限于字符串和整数。
lookupOut List 输出映射值。必须与 lookupIn 大小相同。
columnName String 要重新映射的属性名称。

.sort(property, ascending)

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

Argument Type Details
property String 要排序的属性。
ascending Boolean, optional 按升序还是降序排序。默认为 true(升序)。

.geometry(maxError)

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

Argument Type Details
maxError ErrorMargin, optional 合并几何图形时使用的误差范围。

.reduceToimage(properties, reducer)

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

Argument Type Details
properties List 从每个特征中选取的属性,并将其传递给还原器。
reducer Reducer 一个还原器,用于将每个相交特征的属性合并为最终结果并存储到像素中。

.map(algorithm, dropNulls)

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

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

.aggregate_min(property)

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

Argument Type Details
property String 从集合的每个元素中使用的属性。

.aggregate_max(property)

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

Argument Type Details
property String 从集合的每个元素中使用的属性。

.aggregate_mean(property)

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

Argument Type Details
property String 从集合的每个元素中使用的属性。

.aggregate_first(property)

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

Argument Type Details
property String 从集合的每个元素中使用的属性。

.aggregate_sum(property)

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

Argument Type Details
property String 从集合的每个元素中使用的属性。

.aggregate_histogram(property)

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

Argument Type Details
property String 从集合的每个元素中使用的属性。

4. 栅格数据存储原理

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

4.1 Image方法

Image.clip(geometry)

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

Argument Type Details
geometry Feature|Geometry|Object 要剪切的几何图形或地物。
Image.gt(image2)

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

Argument Type Details
image2 Image 取自右操作数波段的图像。
Image.selfMask()

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

Image.subtract(image2)

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

Argument Type Details
image2 Image 取自右操作数波段的图像。
Image.bitwiseAnd(image2)

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

Argument Type Details
image2 Image 取自右操作数波段的图像。
Image.copyProperties(source , properties , exclude)

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

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

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

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

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

Argument Type Details
value Object 常量图像中像素的值。必须是数字、数组或数字或数组列表。
Image.normalizedDifference(bandNames)

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

Argument Type Details
bandNames List, 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)。

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

Argument Type Details
expression String 要评估的表达式。
map Dictionary, 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)

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

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

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

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

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

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

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

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

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

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

4.2 ImageCollection方法

ee.ImageCollection(args)

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

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

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

  • 单张图片。

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

Argument Type Details
args ComputedObject|Image|List 构造函数参数。
ImageCollection.mosaic()

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

ImageCollection.mean()

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

ImageCollection.median()

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

ImageCollection.sort(property, ascending)

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

Argument Type Details
property String 要排序的属性。
ascending Boolean, optional 按升序还是降序排序。默认为 true(升序)。
ImageCollection.limit(max, property , ascending)

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

Argument Type Details
max Number 限制收集的数量。
property String, optional 如果排序,则按属性排序。
ascending Boolean, 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 "是互斥的。

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

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

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

Argument Type Details
image Image 要导出的图像。
description String, optional 任务的可读名称。默认为 "myExportImageTask"。
assetId String, optional 目标资产 ID。
pyramidingPolicy Object, optional 应用于图像中每个波段的分层策略,以波段名称为关键。值必须是:均值、样本、最小值、最大值或模式之一。默认值为 "平均值"。可以使用特殊键".default "来更改所有波段的默认值。
dimensions Number|String, optional 导出图像的尺寸。最大尺寸可以是单个正整数,也可以是 "WIDTHxHEIGHT"(其中 WIDTH 和 HEIGHT 均为正整数)。
region Geometry.LinearRing|Geometry.Polygon|String, optional 代表要导出区域的 LinearRing、Polygon 或坐标。可以指定为几何对象或以字符串形式序列化的坐标。
scale Number, optional 分辨率,单位为米/像素。默认为 1000。
crs String, optional 导出图像要使用的 CRS。
crsTransform List, optional 用于导出图像的仿射变换。需要定义 "crs"。
maxPixels Number, optional 限制导出的像素数。默认情况下,如果导出超过 1e8 像素,就会出现错误。通过明确设置该值,可以提高或降低该限制。
shardSize Number, 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)合并成一个。这个方法通常用于同时执行多个缩减操作并生成一个合并的结果。

Argument Type Details
reducer2 Reducer 第二个缩减器,它将与第一个缩减器合并。
outputPrefix String, default: "" 用于区分合并结果的前缀,可以是字符串。
sharedInputs Boolean, default: false 一个布尔值,表示是否使用相同的输入数据执行两个缩减器。

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

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

Argument Type Details
image Image 要统计的图像
regions Feature|FeatureCollection|Geometry|List, optional 区域集合,可以是 FeatureCollectionGeometry 对象或 Feature 对象。
reducer Reducer, optional 缩减器(Reducer),用于指定要计算的统计量,例如均值、总和等。
scale Number, optional 空间分辨率(meter/pixel)
xProperty String, optional 作为 X 轴的属性,可以是字符串或指定图表中 X 轴数据的图像属性。

Chart.setChartType(chartType)

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

Argument Type Details
chartType String 要设置的图表类型,可以是字符串。常见的图表类型包括 'ScatterChart''LineChart''ColumnChart' 等。

Chart.setOptions(options)

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

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

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系数、用户精度和生产者精度等指标。
      !
相关推荐
LateBloomer7777 分钟前
FreeRTOS——信号量
笔记·stm32·学习·freertos
legend_jz11 分钟前
【Linux】线程控制
linux·服务器·开发语言·c++·笔记·学习·学习方法
Komorebi.py12 分钟前
【Linux】-学习笔记04
linux·笔记·学习
weiabc1 小时前
学习electron
javascript·学习·electron
fengbizhe1 小时前
笔试-笔记2
c++·笔记
余为民同志1 小时前
mini-lsm通关笔记Week2Day4
笔记
墨染风华不染尘1 小时前
python之开发笔记
开发语言·笔记·python
徐霞客3201 小时前
Qt入门1——认识Qt的几个常用头文件和常用函数
开发语言·c++·笔记·qt
HackKong2 小时前
小白怎样入门网络安全?
网络·学习·安全·web安全·网络安全·黑客
澜世2 小时前
2024小迪安全基础入门第三课
网络·笔记·安全·网络安全