厦门哪里有建设网站的数据分析平台
今天在群里看到有人在问一个问题,如何使用GEE把文件导出到Google Drive的子目录中?这里我就简单的说一下这个问题。
首先,在GEE中我们都知道了如何将数据导出导出Google Drive的文件夹中,如下面的一个例子:
var geometry = /* color: #d63000 */ee.FeatureCollection([ee.Feature(ee.Geometry.Point([-102.05546874999999, 40.40069505477473]),{"system:index": "0"})]);Export.table.toDrive({collection: geometry,description: "tFcol",folder: "tF",fileFormat: "GeoJSON"});
例子很简单,运行结果如下:
Google Drive中的数据
这里需要说明一下,在GEE中是无法直接创建我们看到的Google Drive中的子目录的,GEE导出数据到Google Drive其实就是一个查找路径的过程。
以上面例子为例,
第一种情况文件夹不存在
(1)程序会遍历整个Google Drive的根目录查找是否有文件夹名称叫做“tF”;
(2)程序就会在Google Drive根目录也就是my-drive下面创建一个文件夹叫做“tF”;
(3)将文件导出到新创建的文件夹中;
第二种情况文件夹存在
(1)程序会遍历整个Google Drive的根目录查找是否有文件夹名称叫做“tF”;
(2)程序会将找到的所有名叫“tF”的文件夹排序,规则是先是父级别文件夹,依次是子级别文件夹;
(3)将文件导出到排序后的第一个文件夹内;
说了上面两种情况,其实有的小伙伴应该已经明白了该如何导出文件到子目录中了。答案就是先建立一个子文件夹目录,然后直接导出文件到指定的子目录名称就可以。下面具体说明一下:
第一步、我先在文件夹“tF”中建立了一个文件夹“tF1”
第二步、编写代码
var geometry = /* color: #d63000 */ee.FeatureCollection([ee.Feature(ee.Geometry.Point([-102.05546874999999, 40.40069505477473]),{"system:index": "0"})]);// Export.table.toDrive({// collection: geometry,// description: "tFcol",// folder: "tF",// fileFormat: "GeoJSON"// });Export.table.toDrive({collection: geometry,description: "tFcol",folder: "tF1",fileFormat: "GeoJSON"});
第三步、执行导出
这是只有一个文件夹叫做“tF1”的情况,如果是多个文件夹会是什么样子呢?这里我在根目录中新建了一个文件夹叫做“tF1”,如下图
第二步、重新执行代码
var geometry = /* color: #d63000 */ee.FeatureCollection([ee.Feature(ee.Geometry.Point([-102.05546874999999, 40.40069505477473]),{"system:index": "0"})]);// Export.table.toDrive({// collection: geometry,// description: "tFcol",// folder: "tF",// fileFormat: "GeoJSON"// });// Export.table.toDrive({// collection: geometry,// description: "tFcol",// folder: "tF1",// fileFormat: "GeoJSON"// });Export.table.toDrive({collection: geometry,description: "tFcol1",folder: "tF1",fileFormat: "GeoJSON"});
第三步、查看结果
根目录下的文件夹“tF1”中有文件“tFcol1.geojson”
“tF”下的文件夹中不存在
可以看到数据确实是只导出到了根目录中的文件夹中。好了,这就是今天要讲的内容。
来源请引用:地理遥感生态网科学数据注册与出版系统.