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
文章图片

GEE数据仓库
如果有自己的数据可以上传到Google drive 或者GEE上的Assets,之后再进行导入即可。本次就以如何使用GEE免费数据,筛选并下载的代码为例进行分享。
以Landsat8表面反射率影像为例,
GEE(google earth engine)学习交流1
文章图片

连接到GEE code页面以后,你将得到以下界面,这个将是我们主要的工作阵地:
GEE(google earth engine)学习交流1
文章图片

其代码如下:
//定义存储的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
文章图片

【GEE(google earth engine)学习交流1】上面的的区域数据是我在地图上随便画的一个区域,如果想要某地区的数据,可以上传某个区域的边界矢量数据,将上传的矢量数据替换掉我画的geometry即可。

    推荐阅读