依据shapefile文件从Google Earth Engine中下载点位数据
Google Earth Engine平台不仅有着快速的运算能力,其本身涵盖的大量数据也令人垂涎不已。这里分享下通过点状Shapefile文件和Export函数,将点位上的数据导出的代码。
首先,我们需要将shapefile文件上传到我们平台的assets中,具体方式不多介绍,网上自行搜索;下面代码中的table即我上传的点形状的shapefile;imageCollection可以GEE平台中任意的栅格数据,这里以简单的Worldpop人口数据为例
var table = ee.FeatureCollection("projects/xxxxx"), var imageCollection = ee.ImageCollection("WorldPop/GP/100m/pop")
其次,我们可以对shapefile和栅格数据做一些预处理,比如按照shapefile中的字段进行过滤,比方这里是筛选出year等于2023的点位。同样的,如果我们也可以对栅格数据做同样的处理,选择自己感兴趣的区域、时间,尽量保证研究时间仅包含一景影像;
var table = table.filter(ee.Filter.eq("year","2023")) var imcol = imageCollection.filterDate("2020-1-1", "2021-1-1").select(['population']).sum() var imcol = ee.ImageCollection.fromImages([imcol])
接着,定义fill函数,用于我们对栅格数据采样。文档中sampleRegions的解释是:“Converts each pixel of an image (at a given scale) that intersects one or more regions to a Feature, returning them as a FeatureCollection.”,所以将scale设置成影像的空间分辨率即可。properties设置为shapefile中想要在输出结果中保留的字段。
function fill(img, ini) { var ft1 = ee.FeatureCollection(ini) var ft2 = img.sampleRegions({ collection:table, properties:["name","latitude","longitude"], scale:100 }); return ft1.merge(ft2) }
最后是导出代码。定义变量newft,作为容器,存储从imcol获取的值。在fill函数迭代完之后,整体导出到Google Drive。
var newft = ee.FeatureCollection(ee.List([])) newft = ee.FeatureCollection(imcol.iterate(fill,newft)) Export.table.toDrive({ collection: newft, description: "Worldpop", folder: "folder", fileFormat: 'csv', selectors:["name","latitude","longitude","population"] });```
标签:
🌎地球引擎JS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!