GEE数据库
GEE自带了非常多的各种影像矢量文件等资源。包括卫星影像,气候、地形数据,以及各种处理后的数据,比如土地覆盖分类,NDVI,水体检测等。详见数据库列表
顺带列下整理的GEE提供的LULC相关的数据库:
Upload资源
一方面我们可以使用GEE自带的各种影像矢量文件等资源,另外一方面我们可以上传我们自己的资源。GEE的Assets提供了250G的空间。
- 在GEE在线平台左侧任务栏,选择Assets,点击”New”按钮。
- 选择要上传的文件类型。本教程以tfrecord和json为例上传图片数据。
- 选择本地资源,填写相关信息。上传TFRecord数据时,需要上传mixer.json文件。
通过“Task”标签可以看到资源上传进度。资源上传成功后显示蓝色,失败显示红色。左侧任务栏”Assets”可以看到成功导入的数据。其中上传TFRecord图像比较迷,经常会出现mixer unreadable问题,多上传几次就好了。
注:Google Cloud Storage可以通过python代码直接上传,Google Drive尚未实现。接着在“Assets”点击想要import的数据,选择“import”即可。
接着可以在JavaScript在线平台看见import的数据。
python同理:image = ee.Image("users/daviddoyle1/test_c3")
Export资源
GEE主要可以导出如下类型资源,分别是image影像类型、map地图地图类、table矢量文件类和video视频类。导出函数主要可以直接将数据存放于3个地方,Google Drive、Assets和Google Cloud Storage。由于Google Cloud Storage激活需要信用卡,略过不讲。
Google Drive(drive.google.com/drive)前文已介绍过,通过谷歌账号可以直接获取15G免费存储空间,而且可以通过Colab使用免费GPU,适合硬件条件不好的情况。
Assests是GEE资源存放位置,里面的资源是可以直接在GEE工作空间中使用,每个用户空间限制是250G。
GEE下载文件主要有两个方式,一个是getDownloadURL,一个是Export方式。本教程主要介绍Export方法。Export相关方法如下,其中红色的是废弃的方法。[参考无形的风]
以image为例,介绍各个参数,具体见文档。
- 导出到Asset方法简介:
Export.image.toAsset(image, description, assetId, pyramidingPolicy, dimensions, region, scale, crs, crsTransform, maxPixels)
常用参数说明:
image 需要导出的影像;
description 导出任务描述;
assetId 资源名称,也就是在Asset文件夹中看到的资源名称;
pyramidingPolicy 波段值计算方式,是一个对象值。计算方式包括:mean、sample、min、max、mode,默认是mean。这个值通常不会设置,都是采用默认值。示例:{‘B4’: ‘mean’} 意思是波段名称为B4的波段采用mean的方式计算;
dimensions 导出Image的宽和高;
region 导出的区域,是一个Geomtry;
scale 分辨率,单位米,比如:30;
crs 投影信息,一般是采用默认方式,通常可以设置为EPSG:4326;
maxPixels 导出影像的最大像素个数可以设置为 1e13 防止导出时候报错。
- 导出到Drive方法简介
Export.image.toDrive(image, description, folder, fileNamePrefix, dimensions, region, scale, crs, crsTransform, maxPixels, shardSize, fileDimensions, skipEmptyTiles, fileFormat, formatOptions)
常用参数说明:
image 需要导出的影像;
description 导出任务描述;
folder 在Assets中的文件夹名称,也就是用户自己创建的文件夹。如果不传此参数,那么导出的文件会直接放在Assets根目录下,通常都不会传此参数;fileNamePrefix 导出的资源名称,如果默认的不传,那么会直接采用description来作为导出的文件名称;
dimensions 导出Image的宽和高;
region 导出的区域,是一个Geomtry;
scale 分辨率,单位米,比如:30;
crs 投影信息,一般是采用默认方式,通常可以设置为EPSG:4326;
maxPixels 导出影像的最大像素个数可以设置为 1e13 防止导出时候报错。
导出矢量文件类似,可以直接看文档介绍。
导出实例
- 导出矢量数据到”Assets”
这里的矢量数据为在线平台选取的区域,红色为trainingPolys,紫色的为evalPolys。
1 | var desc='trainingPolys'; |
- 导出成功
- import
1 | var evalPolys = ee.FeatureCollection("users/daviddoyle1/Predict_muliti_6/evalPolys"); |
1 | evalPolys = ee.FeatureCollection("users/daviddoyle1/Predict_muliti_6/evalPolys") |
- 导出影像数据到“Assets”(重采样)
- 将高分辨率影像导出时重采样成30m分辨率的。
1
2
3
4
5
6Export.image.toAsset({
image: test_c3,
description: 'test_c3_30',
scale: 30,//定义导出图像的分辨率
maxPixels: 1e13
}); - 结果对比
- 导出矢量数据到Drive(格式为TFRecord)
一同导出的还有mixer.json文件。
偷懒中,只放Python代码:
1 | task = ee.batch.Export.table.toDrive( |
Anyway,JavaScript和python相差不大。