ee.Image类及常用函数说明

简介

ee.Image 是 Google Earth Engine 中表示图像数据的类。它可以代表从遥感传感器获取的单个图像,也可以是由多个波段组成的图像集合。

以下是 ee.Image 的一个简单示例:

// 创建一个具有随机值的图像
var randomImage = ee.Image.random();

// 打印图像信息
print('Random Image:', randomImage);

在这个例子中,ee.Image.random() 方法创建了一个具有随机值的图像。你可以在此图像上应用各种操作,例如裁剪、筛选和分析。

常用函数说明

ee.Image.constant()

ee.Image.constant 是 Google Earth Engine 中创建具有常量值的图像的方法。它返回一个具有指定常量值的图像。

以下是 ee.Image.constant 的一个简单示例:

// 创建一个具有常量值的图像
var constantImage = ee.Image.constant(10);

// 打印图像信息
print('Constant Image:', constantImage);

在这个例子中,ee.Image.constant(10) 创建了一个所有像元值都为 10 的图像。这对于创建具有固定值的遮罩或填充图像非常有用。

对象.clipToBoundsAndScale()

这个函数对图像进行裁剪,将其裁剪到指定几何图形的边界,并将裁剪后的图像按照指定的尺寸或比例进行缩放。

this(图像):要裁剪和缩放的输入图像。
geometry(几何图形,默认值:null):将图像裁剪到的几何图形。图像将被裁剪到该几何图形在图像投影下的边界框。
width(整数,默认值:null):缩放图像的宽度,以像素为单位。必须与“height”一起提供。与“maxDimension”和“scale”互斥。
height(整数,默认值:null):缩放图像的高度,以像素为单位。必须与“width”一起提供。与“maxDimension”和“scale”互斥。
maxDimension(整数,默认值:null):将图像缩放到的最大尺寸,以像素为单位。与“width”、“height”和“scale”互斥。
scale(浮点数,默认值:null):如果指定了比例尺,则通过将指定的比例尺值除以图像投影中的米的标准尺寸来缩放投影。与“width”、“height”和“maxDimension”互斥。
该函数返回裁剪和缩放后的图像。

对象.rename()

.rename() 是 Earth Engine 中用于重命名图像的方法。它允许你将图像的一个或多个波段重命名为新的名称。

对象…toInt16()

.toInt16() 是 Earth Engine 中用于将图像的像素值类型转换为有符号 16 位整数 (int16) 的方法。这在处理遥感影像数据时经常使用,特别是在需要减小数据文件大小或减少计算开销时。这个方法将图像中的像素值转换为有符号 16 位整数类型,范围从 -32768 到 32767。在进行转换时,像素值将四舍五入到最接近的整数。

对象.setDefaultProjection()

.setDefaultProjection() 方法在 Earth Engine 中用于设置图像的默认投影。默认投影是在缺少投影信息的情况下用于展示图像的投影。如果图像已经具有投影信息,则此方法将不起作用。

应用

var projection = ee.Projection('EPSG:4326').atScale(scale); // 投影
emptyImage = emptyImage.setDefaultProjection(projection);

对象.set()

.set() 方法用于设置图像或特征集合的属性。通过该方法,你可以为图像或特征集合添加元数据,例如投影信息、无效值、名称等。

emptyImage = emptyImage.set('crs', crs);

对象.addBands()

.addBands() 方法用于将一个或多个图像的波段添加到另一个图像中。你可以使用这个方法将一个或多个图像的特定波段添加到目标图像中,以创建具有更多波段的新图像。

应用

emptyImage= emptyImage.addBands(ee.Image.random().multiply(100).toInt().rename('random'));

ee.Image.random()

方法用于创建一个具有随机像元值的图像。你可以使用这个方法生成具有特定尺寸、分布和范围的随机像元值的图像。

对象.reduceRegion()

reduceRegion() 方法用于对图像在指定区域内进行统计或计算。它可以用于计算区域内的总和、平均值、最大值、最小值等统计指标,或者对区域内的像素进行任意的自定义操作。

以下是 reduceRegion() 方法的基本语法:

var result = image.reduceRegion(reducer, geometry, scale);

  • image:要执行统计或计算的图像。
  • reducer:用于指定要应用于像元值的统计函数,例如 ee.Reducer.sum()、ee.Reducer.mean()、ee.Reducer.max() 等。你也可以使用自定义的 reducer。
  • geometry:要执行操作的区域,可以是一个几何图形或特征集合。
  • scale:空间分辨率,以米为单位。
    该方法返回一个包含统计结果的字典,其中包括每个波段的统计值。

以下是一个示例代码,演示如何使用 reduceRegion() 方法对图像在指定区域内进行统计:

// 定义一个几何图形
var geometry = ee.Geometry.Rectangle([xmin, ymin, xmax, ymax]);

// 定义要执行统计的图像
var image = ee.Image('COPERNICUS/S2/20190101T030359_20190101T031233_T48NPM');

// 指定统计函数为平均值
var reducer = ee.Reducer.mean();

// 在指定区域内执行统计,并指定空间分辨率
var result = image.reduceRegion(reducer, geometry, 30);

// 打印统计结果
print('Reduced Region:', result);

这段代码将在指定的几何图形内对 Sentinel-2 影像进行平均值统计,并打印结果。

对象.evaluate()

.evaluate() 方法用于从 Earth Engine 服务器端获取异步操作的结果。在客户端 JavaScript 代码中,当你执行异步操作(如图像计算、图表绘制等)时,通常无法立即获得结果,而是返回一个任务对象或 promise。为了获取这些异步操作的结果,你需要使用 .evaluate() 方法。

对象.select()

选择波段

ee.Image.pixelLonLat()

在 Google Earth Engine 中,ee.Image.pixelLonLat() 是用于从影像中获取每个像素的经度和纬度信息的方法。它返回一个具有两个波段的图像,一个表示像素的经度,另一个表示像素的纬度。

语法如下:

var lonLatImage = image.pixelLonLat();

其中 image 是一个 ee.Image 对象。

这将返回一个具有两个波段的图像,第一个波段代表每个像素的经度,第二个波段代表每个像素的纬度。你可以使用这个图像来提取每个像素的地理坐标信息,从而进行空间分析或将其与其他图像数据进行配准。

对象.sample()

在 Google Earth Engine 中,.sample() 方法用于在指定区域内从图像中获取样本点。该方法用于生成图像上的随机采样点,这些点可以用于训练机器学习模型、验证分类结果等。

语法如下:

var sampledPoints = image.sample({
  region: geometry, // 指定采样区域
  numPixels: 1000 // 指定采样点数量
});

其中:

image 是一个 ee.Image 对象,代表要从中获取样本点的图像。
geometry 是一个 ee.Geometry 对象,用于指定采样区域。
numPixels 是一个数字,表示要获取的采样点数量。

对象.neighborhoodToArray()

.neighborhoodToArray()是在Earth Engine中对图像对象应用neighborhoodToArray()函数,该函数将图像的每个像素周围的邻域信息转换为数组形式。这个函数通常用于获取图像的局部信息,例如用于图像分割、特征提取等操作。

neighborhoodToArray()函数接受一个卷积核作为参数,该卷积核定义了每个像素的邻域大小和权重。在这种情况下,如果没有提供卷积核参数,则默认使用3x3的方形卷积核。这意味着对于每个像素,它将提取其周围3x3范围内的像素值,并将其转换为一个数组。

这个函数的输出是一个图像对象,其中的每个像素都是一个数组,表示该像素周围的邻域信息。通常情况下,您可能需要使用arrayFlatten()函数将这个数组扁平化为一个特征向量,以便进行进一步的处理或分析。

对象.sampleRegions()

.sampleRegions()是Earth Engine中用于在给定的特征集合上抽样图像值的方法。这个方法通常用于生成训练数据集或验证数据集,以便用于监督学习任务。

.sampleRegions()方法接受一个参数字典作为输入,用于指定抽样的参数,其中最重要的参数是:

‘collection’:要在其上进行抽样的特征集合(FeatureCollection)。
‘properties’:要将抽样的图像值存储到特征属性中的属性名称。如果未提供,则默认使用’properties’。
‘scale’:抽样时使用的比例尺,以米为单位。
‘tileScale’:用于处理图像块的额外缩放级别,以解决大型图像的内存问题。
‘geometries’:指定要抽样的特征几何类型,默认为’centroid’(特征的中心点)。
‘label’:用于指定图像值所代表的类别标签(用于监督学习任务)。
下面是一个示例代码,演示了如何使用.sampleRegions()方法在一个特征集合上抽样图像值:

# 假设fc是一个FeatureCollection对象,img是一个影像对象

# 在特征集合上抽样图像值
sampled_data = img.sampleRegions(**{
  'collection': fc,
  'properties': ['propertyName'], # 可选,指定要将图像值存储到特征属性中的属性名称
  'scale': 30  # 比例尺
})

在这个示例中,sampled_data是一个新的特征集合(FeatureCollection),其中的每个特征都包含了其所在位置的图像值。您可以使用这个抽样后的数据集进行监督学习或其他地理空间分析任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海绵波波107

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值