GEE必须会教程—一文教会你GEE下载影像数据的方法

2024-04-09 05:12

本文主要是介绍GEE必须会教程—一文教会你GEE下载影像数据的方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、基本流程

A.平台进入:网站搜索:https://developers.google.com/earth-engine,进入Google Earth Engine 官网平台(以下简称GEE平台),正常登录该平台需要利用邮箱进行申请,申请通过后可以正常登录该平台。

B.数据检索:在平台上点击“Dataset”,可以查看GEE平台上所有的数据集,此处选择“Landsat”数据,选择“Landsat9OLI/TIRS”数据集,选择大气层顶反射率数据集“Top of Atmosphere”数据集。

C.数据信息查看:具体查看该数据集的描述、波段信息、影像属性等等,以及平台上调用和访问的代码信息。

D.数据的下载:GEE上进行影像数据的下载一般可通过JavaScript和Python两个接口进行代码的编辑,一般的代码编写思路为导入研究区域→影像数据集的访问→影像数据的空间、时间和云量筛选→查看影像结果→代码调整→影像下载

图1

图2

二、下载流程

①导入研究区域;在ArcMap中导出县级行政区划数据,并在个人资产上上传家乡—江西省赣州市南康区的矢量shp文件。利用ee.FeatureCollection代码导入研究区域,作为影像数据筛选的参考范围。

var roi = ee.FeatureCollection("users/hesuixinya511/rongchang");

②数据调用和预处理:在GEE平台上,通过ee.ImageCollection代码访问Sentinel-2数据。根据研究区域边界,以及2020年的全年日期范围,筛选云量百分比小于0.05的卫星数据,并根据Sentinel-2的去云函数方法进行初步的去云处理。

function maskS2clouds(image) {var qa = image.select('QA60');// Bits 10 and 11 are clouds and cirrus, respectively.var cloudBitMask = 1 << 10;var cirrusBitMask = 1 << 11;// Both flags should be set to zero, indicating clear conditions.var mask = qa.bitwiseAnd(cloudBitMask).eq(0).and(qa.bitwiseAnd(cirrusBitMask).eq(0));return image.updateMask(mask).divide(10000);
}
var dataset = ee.ImageCollection('COPERNICUS/S2_HARMONIZED').filterDate('2020-01-01', '2020-12-31').filterBounds(roi).filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 0.05)).map(maskS2clouds);
print(dataset);

③查看影像:利用list命令生成影像列表,方便按照索引值进行可视化的显示,在对符合条件的影像进行逐一查看后,发现2020年3月15日的两景影像能够完全覆盖区域。

//生成影像列表
var list = dataset.toList(dataset.size());
var downImage = ee.Image(list.get(3));
var upImage = ee.Image(list.get(5));
var visualization = {min: 0.0,max: 0.3,bands: ['B4', 'B3', 'B2'],
};
Map.centerObject(roi,6);
Map.addLayer(upImage,visualization,"upImage");
Map.addLayer(downImage, visualization, 'downImage');
Map.addLayer(roi,{"color":"red"},"ROI");

④合成影像和下载:由于Sentinel-2数据不同的波段具有不同的分辨率,在下载前需要将同一分辨率(10m、20m、60m)的波段数据进行影像合成后,再编写下载的代码,设置好下载参数,在“Task”目录中完成Sentinel-2数据的下载即可。

//生成影像列表
var list = dataset.toList(dataset.size());
var downImage = ee.Image(list.get(3));
var upImage = ee.Image(list.get(5));
var visualization = {min: 0.0,max: 0.3,bands: ['B4', 'B3', 'B2'],
};
Map.centerObject(roi,6);
Map.addLayer(upImage,visualization,"upImage");
Map.addLayer(downImage, visualization, 'downImage');
Map.addLayer(roi,{"color":"red"},"ROI");
④合成影像和下载:由于Sentinel-2数据不同的波段具有不同的分辨率,在下载前需要将同一分辨率(10m、20m、60m)的波段数据进行影像合成后,再编写下载的代码,设置好下载参数,在“Task”目录中完成Sentinel-2数据的下载即可。
var downImage10 = downImage.select("B2","B3","B4","B8");
var downImage20 = downImage.select("B5","B6","B7","B8A","B11","B12");
var downImage60 = downImage.select("B1","B9","B10");
var upImage10 = upImage.select("B2","B3","B4","B8");
var upImage20 = upImage.select("B5","B6","B7","B8A","B11","B12");
var upImage60 = upImage.select("B1","B9","B10");
//下载影像
Export.image.toDrive({  image: downImage10,  description: "downImage10",//影像名称   fileNamePrefix: "Sentinel-2down10",  folder: "RongchangESA",  //文件夹名称 scale: 10,  region: roi,  maxPixels: 1e13,  crs: "EPSG:4326"  });
Export.image.toDrive({  image: downImage20,  description: "downImage20",//影像名称   fileNamePrefix: "Sentinel-2down20",  folder: "RongchangESA",  //文件夹名称 scale: 20,  region: roi,  maxPixels: 1e13,  crs: "EPSG:4326"  });
Export.image.toDrive({  image: downImage60,  description: "downImage60",//影像名称   fileNamePrefix: "Sentinel-2down60",  folder: "RongchangESA",  //文件夹名称 scale: 60,  region: roi,  maxPixels: 1e13,  crs: "EPSG:4326"  });
Export.image.toDrive({  image: upImage10,  description: "upImage10",//影像名称   fileNamePrefix: "Sentinel-2up10",  folder: "RongchangESA",  //文件夹名称 scale: 10,  region: roi,  maxPixels: 1e13,  crs: "EPSG:4326"  });
Export.image.toDrive({  image: upImage20,  description: "upImage20",//影像名称   fileNamePrefix: "Sentinel-2up20",  folder: "RongchangESA",  //文件夹名称 scale: 20,  region: roi,  maxPixels: 1e13,  crs: "EPSG:4326"  });
Export.image.toDrive({  image: upImage60,  description: "upImage60",//影像名称   fileNamePrefix: "Sentinel-2up60",  folder: "RongchangESA",  //文件夹名称 scale: 60,  region: roi,  maxPixels: 1e13,  crs: "EPSG:4326"  });

⑤将下载好的Sentinel-2影像数据和Landsat8数据分别在ENVI中进行加载,查看下载的影像是否无误。结果如下:

本期内容到这里就结束了,更多内容欢迎持续关注小编的公众号“梧桐GIS”,谢谢大家支持!

这篇关于GEE必须会教程—一文教会你GEE下载影像数据的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/887254

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa