赞
踩
目录
在进行gee批量下载modis(NDVI)数据时,发现不同的裁剪区域(不止面积大小,还有内外边界复杂度等)对代码执行的效率极大,选择简单的区域边界可提高代码运行效率。
在google earth engine下载大文件时,由于浏览器下载限制或者网速过慢,必须采用一些其他方法。
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
在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
- maxPixels: 1e13 // 下载数据的最大像元数
- });
- }
-
-
- // 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()
打开浏览器控制台(F12-Console),粘贴代码即可批量点击RUN
- runTasks = function() {
- const evt = new MouseEvent('click', {bubbles: true, cancelable: true, ctrlKey: true})
- $$('.run-button' ,$$('ee-task-pane')[0].shadowRoot).forEach(function(e) {
- e.dispatchEvent(evt)
- })
- }
- runTasks()
MultCloud:MultCloud | Best Free Multiple Cloud Storage Manager
国内可访问!!!
在云盘之间传输文件、保持两个云服务同步、在一个地方管理所有的云盘账号。
免费帐户每月获得MultCloud提供的30GB数据流量,以将文件从一个云盘传输到其他云盘。
不行就使用临时邮箱白嫖把
安装教程:IDM安装 注册 使用详细教程_哔哩哔哩_bilibili
使用教程:Google Drive(谷歌网盘)下载超大文件方法 - 知乎
注:如果是选择了多个文件之后,drive会进行自动压缩形成临时压缩包,下载的文件是没有办法进行断点续传的。
Google Drive下载大文件问题解决办法_yiteeee的博客-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。