geemap学习笔记040:GEE中样本点选择操作流程

前言

geemap中目前有一个bug,就是在选择样本点的时候不合理,选完一类样本之后,没法继续选择下一类,并且没法在线进行编辑和修改。因此目前就只能结合在线版的GEE进行样本选择,本节就详细的介绍一下GEE中样本点的选择过程。

1 加入底图数据

下面是一个简单的加载LC08数据集底图,可以根据自己需求进行修改。

var dataset = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
    .filterDate('2022-05-01', '2022-06-01');

// Applies scaling factors.
function applyScaleFactors(image) {
  var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2);
  var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0);
  return image.addBands(opticalBands, null, true)
              .addBands(thermalBands, null, true);
}

dataset = dataset.map(applyScaleFactors);

var visualization = {
  bands: ['SR_B4', 'SR_B3', 'SR_B2'],
  min: 0.0,
  max: 0.3,
};

Map.setCenter(119.158977,37.75768, 12);
Map.addLayer(dataset, visualization, 'True Color (432)');

加载结果
image.png

2 选择样本

点击面板中点、线或者矩形(如下面第一张图);然后点击设置进行属性修改(如下面第二张图),然后根据自己的需求修改相应的属性,属性名写为landcocer,值设置为1(不同类型样本的landcover值不应该一样)(如下面第三张图);这一类选好之后,可以点击+new layer添加新的类别,然后重复上述过程(如下面第四张图);第五张图是已经选好的三类样本。

image.png

image.png

image.png

image.png

image.png

3 导出样本

下面的代码是导出标签,然后点击RUN进行运行,可以根据自己的需求修改下面第二张图导出的位置以及参数等。

var sampleCollection =vegetation.merge(water).merge(tantu); //合并标签
print(sampleCollection , 'Sample Collection ')

Export.table.toDrive({
  collection: sampleCollection,
  description: 'Sample_YRD',
});  //导出标签

image.png

image.png

后记

大家如果有地信遥感方面的问题需要请教或者有项目需要合作,可以在闲 鱼软件的用户中搜索:遥感GIS工作室,请认准头像,谢谢。

### 使用 Google Earth Engine (GEE) 随机生成样本点的方法 在 GEE 中,可以通过 `ee.FeatureCollection.randomPoints` 函数实现区域内的随机样本点生成。以下是具体方法及其代码示例。 #### 初始化 GEE 为了使用 GEE 的功能,首先需要进行身份验证并初始化环境。这一步通过调用 `ee.Initialize()` 完成[^1]: ```javascript // 初始化 Google Earth Engine ee.Initialize(); ``` #### 创建几何区域 随机样本点的生成依赖于指定的研究区域(geometry),通常是一个多边形或边界框。假设我们已经定义了一个名为 `sampleArea` 的几何对象,则可以继续执行后续操作[^2]。 #### 生成随机样本点 利用 `ee.FeatureCollection.randomPoints` 方法,在给定区域内生成一定数量的随机点。以下参数可用于配置该过程: - **region**: 指定目标区域的几何形状。 - **points**: 设置要生成的随机点的数量。 - **seed**: 可选参数,用于设置随机数种子以确保结果可重复。 下面是完整的代码片段: ```javascript // 假设已有的研究区域为 sampleArea var points = ee.FeatureCollection.randomPoints({ region: sampleArea, points: 1000, // 设定生成 1000 个随机点 seed: 1234 // 设置随机数种子以便结果可重现 }); // 打印生成的点集合至控制台 print(points, "points"); // 将生成的点添加到地图上作为图层 Map.addLayer(points, {}, "Random Points", false); ``` 上述代码会生成一个包含 1000 个随机分布点的要素集,并将其存储在变量 `points` 中。这些点位于由 `sampleArea` 定义的空间范围内。 #### 结果可视化 最后,可通过 `Map.addLayer` 方法将生成的随机点显示在交互式地图上。如果不需要默认展示此图层,可以在第四个参数中传入 `false` 来隐藏它。 --- ### 注意事项 1. 确保输入的 `region` 参数有效且表示闭合的几何图形。 2. 如果未提供 `seed` 参数,每次运行程序可能会得到不同的随机点位置。 3. 调整 `points` 数量可以根据实际需求灵活设定。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值