GEE(google earth engine)学习交流1

GEE相关介绍:

GEE(Google earth engine)是由谷歌推出的地理信息数据处理以及可视化的综合平台。对于科研人员来说有以下几个优点:

  1. 免费
  2. 免费
  3. 将PB级卫星图像和地理空间数据集与行星尺度分析功能相结合,可轻松的进行全球层面的分析与出图
  4. 面对的对象是科研人员,并非专业的程序员,相对来说比较简单,不需要配置复杂的环境,只需要掌握一些基本的js知识以及gee的api即可
  5. 处理大型图像速度比较快,能够快速分析,具有较好的展示效果

当然,也有它的一些局限性:

  1. 需要科学上网
  2. 下载数据比较麻烦

案例介绍

首先处理数据就得有数据,GEE在官网上提供了大量免费数据的接口,可以轻松的对这些免费数据进行分析,为此给出链接Earth Engine Data Catalog。

GEE(google earth engine)学习交流1_第1张图片

GEE数据仓库

如果有自己的数据可以上传到Google drive 或者GEE上的Assets,之后再进行导入即可。本次就以如何使用GEE免费数据,筛选并下载的代码为例进行分享。

以Landsat8表面反射率影像为例,

GEE(google earth engine)学习交流1_第2张图片

连接到GEE code页面以后,你将得到以下界面,这个将是我们主要的工作阵地:

GEE(google earth engine)学习交流1_第3张图片

其代码如下:

//定义存储的google drive文件位置
var dir_name = "test";
//定义区域范围
var geometry = ee.Geometry.Rectangle(115, 38, 117, 40);
function maskL8sr(image) {
  // 第3位和第5位分别是云影和云。
  var cloudShadowBitMask = (1 << 3);
  var cloudsBitMask = (1 << 5);
  // 获取QA值
  var qa = image.select('pixel_qa');
  // 两种值都应该为零,才能保证成像清晰
  var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
                 .and(qa.bitwiseAnd(cloudsBitMask).eq(0));
  return image.updateMask(mask);
}

var dataset = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')//导入数据集
                  .filterDate('2016-01-01', '2016-12-31')//筛选特定时间的数据
                  .map(maskL8sr)//筛选云量多的数据
                  .filterBounds(geometry);//按区域筛选数据

var img = dataset.mosaic().clip(geometry);//镶嵌图像集中的图片并将其按照区域裁剪
var bandNameList = img.bandNames();//获取波段名称
print(bandNameList);
var bandName = ["B1", "B2", "B3", "B4","B5","B6", "B7","B8","B9","B10","B11"]; //定义要下载的波段

//循环下载各个波段的数据
for (var num in bandName){
  var bn = bandName[num];
  var download_img = img.select(bn);
  download(download_img, bn);
}
//定义下载函数
function download(img,file_name){
  Export.image.toDrive({
  image: img,//导出的图片对象
  description: file_name,//文件描述
  fileNamePrefix: file_name,//文件名称
  folder: dir_name,//目标文件位置
  scale: 30,//图像分辨率
  region: geometry,//图像范围(可能会裁剪,但并未尝试)
  maxPixels: 1e13,//最大像素值
  crs: "EPSG:4326"//参考坐标
});
}
//展示参数
var visParams = {   
  bands: ['B4', 'B3', 'B2'],//合成需要的波段
  min: 0,//像素最小值
  max: 3000,//像素最大值
  gamma: 1.4,//伽马系数
};
Map.centerObject(geometry, 8);//设置图像中心以及缩放等级
Map.addLayer(dataset.median(), visParams);//将数据集的中值作为展示图 

点击run执行代码之后,tasks就会有下载任务出现,点击run即可将图片传输到google drive,之后就可以下载啦

GEE(google earth engine)学习交流1_第4张图片

上面的的区域数据是我在地图上随便画的一个区域,如果想要某地区的数据,可以上传某个区域的边界矢量数据,将上传的矢量数据替换掉我画的geometry即可。

你可能感兴趣的:(研发)