Google Earth Engine(GEE)随机生成研究区

Google Earth Engine (GEE) 是由谷歌公司开发的众多应用之一。借助谷歌公司超强的服务器运算能力以及与NASA的合作关系,GEE平台将Landsat/Sentinel等可以公开获取的遥感图像数据存储在谷歌的磁盘阵列中,使得GEE用户可以方便的提取、调用和分析海量的遥感大数据资源。

 

本文基于GEE平台,实现在目标区域内随机生成研究区,达到随机抽样的目的,可扩展为多种机器学习或者监督分类算法的样本收集方法。代码如下:

// Define an arbitrary region in which to compute random points.
var region = ee.Geometry.Rectangle(-119.224, 34.669, -99.536, 50.064);
//Setting
var nums = 5;
var Length = 0.1;
// Create 5 random points in the region -------------------------
var randomPoints = ee.FeatureCollection.randomPoints(region,5);
// print(randomPoints);
Map.centerObject(region,nums);
Map.addLayer(randomPoints, {color: "blue"}, "random_points");

var points = randomPoints.geometry().coordinates();
print("all random points are:",points);
//Create Target Region list ----------------------
var make_region = function(point){
  var pointLatLon = ee.Geometry.Point(point);
  var coords = pointLatLon.coordinates();
  var minX = ee.Number(coords.get(0)).subtract(Length);
  var minY = ee.Number(coords.get(1)).subtract(Length);
  var maxX = ee.Number(coords.get(0)).add(Length);
  var maxY = ee.Number(coords.get(1)).add(Length); 
  var rect = ee.Geometry.Rectangle([minX, minY, maxX, maxY], null, false); 
  return rect;
};
var region = points.map(make_region);   //所有的geometry作为一个列表进行保存
Map.addLayer(ee.Geometry(region.get(0)), {color: "blue"}, "2"); //get()指可视化第一个区域
                                                                 

注:方法是随机生成点后,对随机点的列表设定一种映射,以随机点为中心,Length为矩形区域边长的1/2来生成矩形。使用.map()方式进行处理。后续使用可对这个列表里的区域进行其他操作。

同时需要注意的是,在GEE中,尽量不使用for循环语句,使用.map()等异步循环方法进行代替。

 

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值