gee批量下载数据&&Google Drive下载大文件

目录

Google Earth Engine 申请教程:

shp上传

数据下载代码

区域裁剪(裁剪对代码执行效率影响极大)

批量RUN

Google Drive下载大文件

Google Drive→MultCloud→百度网盘

IDM

其他

参考


在进行gee批量下载modis(NDVI)数据时,发现不同的裁剪区域(不止面积大小,还有内外边界复杂度等)对代码执行的效率极大,选择简单的区域边界可提高代码运行效率。

在google earth engine下载大文件时,由于浏览器下载限制或者网速过慢,必须采用一些其他方法。

Google Earth Engine 申请教程

https://www.notion.so/GEE-Google-Earth-Engine-d096617828904d5dae84c24b2f5df9f1

shp上传

Asset中上传shp时,需要上传.shp  .dbf  .shx  (.prj)  文件,有的文件.prj不需要

数据下载代码

var province = ee.FeatureCollection("users/gis418670826/province_ALL"),
    country = ee.FeatureCollection("users/gis418670826/country");



// 按区域进行裁剪
// 方法一:按(70,15)到(140,55)的矩形区域进行裁剪
//var roiChina = ee.Geometry.Rectangle(70, 15,140, 55);
// 方法二:按中国国界进行裁剪
//var roiChina = ee.FeatureCollection(country)
// 方法三:按中国省界组成国界进行裁剪
//var roiChina = ee.FeatureCollection(province);

// 方法二的改进:求包含中国国界的矩形要素
var country = ee.FeatureCollection(country).geometry()
var roiChina = country.bounds()

Map.centerObject(roiChina, 2)
Map.addLayer(roiChina)


// 设置时间范围
var timeStart = '2020-01-01'
var timeEnd = '2022-01-01'

// 选择数据
var dateSet = ee.ImageCollection('MODIS/006/MOD13A2')
                .filterDate(timeStart, timeEnd);
var images =  dateSet.select('NDVI');
print(dateSet)

// 查看数据中含有多少幅影像(NDVI是单波段),getInfo把object转化为number
var num = images.size().getInfo(); 
print(num)

// 把ImageCollection转化为List
var list = images.toList(num); 
print(list); 

for (var i=0; i<num; i++){
    // 把List转化为Image,方便一幅一幅导入云盘 
    var image = ee.Image(list.get(i));
            
    var type = image.bandNames().get(0).getInfo();
    
     // 设置每幅影像的名称
    var nameOut = ee.String(type+'_')
                    .cat(image.id().getInfo())
                    .getInfo();
    print(nameOut)
    
     // 设置输出文件夹的名称,例如NDVI_2000
   
    var time =  image.id().getInfo().substring(0, 4);
    var folder = type + '_' + time;
    print(folder);
    
    // 将数据下载到Google云盘上
    Export.image.toDrive({
        image: image, // 要下载的影像
        description: nameOut, // 下载任务描述
        fileNamePrefix: nameOut, // 文件的名称
        folder: folder, // 选择要下载到云盘的哪个文件夹
        region: roiChina, // 裁剪区域
        scale: 1000, // 分辨率,默认值是1000m
        crs: 'EPSG:4326', //坐标是坐标系84 
    });
}


// function runTaskList() {
//     var tasklist = document.getElementsByClassName('awaiting-user-config');
//     for (var i = 0; i < tasklist.length; i++)
//         tasklist[i].children[2].click();
// }
// function confirmAll() {
//     var ok = document.getElementsByClassName('goog-buttonset-default goog-buttonset-action');
//     for (var i = 0; i < ok.length; i++)
//         ok[i].click();
// }
// runTaskList();
// confirmAll();

区域裁剪(裁剪对代码执行效率影响极大)

// 方法一:按(70,15)到(140,55)的矩形区域进行裁剪
var roiChina = ee.Geometry.Rectangle(70, 15,140, 55);
// 方法二:按中国国界进行裁剪
//var roiChina = ee.FeatureCollection(country)
// 方法三:按中国省界组成国界进行裁剪
//var roiChina = ee.FeatureCollection(province);

 这里有三个不同的范围,

一:边界平滑的矩形:                速度最快                54.8 MB                

二:中国国界                              速度较快                45.2 MB                

三:各省份组成的国界                速度很慢                45.2 MB                不推荐使用

凭感觉来说推荐第一种,因为第二种还是有零碎的面,第三种是真的慢

 

国界→矩形

我们可以使用bounds()得到完全包含中国国界的矩形区域

var country = ee.FeatureCollection(country).geometry()
var roiChina = country.bounds()

批量RUN

打开浏览器控制台(F12-Console),粘贴代码即可批量点击RUN

function runTaskList() {
    var tasklist = document.getElementsByClassName('awaiting-user-config');
    for (var i = 0; i < tasklist.length; i++)
        tasklist[i].children[2].click();
}
function confirmAll() {
    var ok = document.getElementsByClassName('goog-buttonset-default goog-buttonset-action');
    for (var i = 0; i < ok.length; i++)
        ok[i].click();
}
runTaskList();
confirmAll();

Google Drive下载大文件

Google Drive→MultCloud→百度网盘

MultCloud:https://www.multcloud.com/

国内可访问!!!

在云盘之间传输文件、保持两个云服务同步、在一个地方管理所有的云盘账号。

免费帐户每月获得MultCloud提供的30GB数据流量,以将文件从一个云盘传输到其他云盘。

不行就使用临时邮箱白嫖把

IDM

安装教程:https://www.bilibili.com/video/BV1uy4y1U7um?t=1

使用教程:https://zhuanlan.zhihu.com/p/143950267

注:如果是选择了多个文件之后,drive会进行自动压缩形成临时压缩包,下载的文件是没有办法进行断点续传的。

其他

https://zhuanlan.zhihu.com/p/328414025

参考

https://blog.csdn.net/qq_326324545/article/details/106772719?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

https://blog.csdn.net/nonejia/article/details/106157596

https://www.freesion.com/article/9276462754/

Guess you like

Origin blog.csdn.net/qq_41664159/article/details/118882526