批量下载1985-2019年研究区的30米土地利用数据

0.背景

PIE-Engine可以下载的6种土地利用数据(仅限本人所知),有10m、30m、1000m分辨率。
批量下载1985-2019年研究区的30米土地利用数据_第1张图片
这两天连发了两篇使用PIE-Engine下载数据的推文,这一篇是终结篇。剩余的1000m分辨率的土地利用数据,感觉没什么价值,就不写了。
批量下载1985-2019年研究区的30米土地利用数据_第2张图片
这一次数据来源是武汉大学黄昕教授团队制作的中国30米年度土地覆盖产品,该数据基于三十万景Landsat影像,结合现有产品自动稳定样本和目视解译样本生产获得。该数据集基于5463个独立参考样本,产品整体精度为79.31% 。
批量下载1985-2019年研究区的30米土地利用数据_第3张图片
时间跨度为1985年、1990年-2019年。

1.准备工作


PIE engine是一个遥感云计算平台,类似与google earth engine。但可以直接连接。如果你会GEE,那PIE engine上手很快,两者基本上没有语法差别。
使用之前,打开pie engine的网址:
批量下载1985-2019年研究区的30米土地利用数据_第4张图片
然后注册一个账户,之后选择产品与服务中的PIE engine Studio,进入编程界面。

2.数据加载

上传一个研究区的shp文件到PIE上,然后加载到编程界面,我上传的是四川省_资阳市_乐至县的行政区数据。待数据上传后,与GEE不同,该研究区不能直接调用,需要转为geometry类型:

//研究区加载 四川省_资阳市_乐至县
ROI= ROI.first().geometry(); 
Map.centerObject(ROI,9);    
Map.addLayer(ROI, {
     color: 'FF0000', fillColor: '00000000', width: 1}, "ROI")

批量下载1985-2019年研究区的30米土地利用数据_第5张图片
之后加载影像集,筛选时间,选择波段,镶嵌与裁剪:

//加载土地利用数据 筛选、镶嵌、裁剪  
var ROI_landcover=pie.ImageCollection("WHU/CLCD")
              .filterBounds(ROI)
              .filterDate(startDate, endDate)
              .select(["B1"])
              .first()
              .clip(ROI);

//显示土地利用数据
Map.addLayer(ROI_landcover,visParam,note)

3.数据导出

数据已经处理好了,我们现在可以直接导出。这里几乎和GEE差不多,选择下载区域、下载路径等:

//下载
Export.image({
     
    image:ROI_landcover,
    description: note,
    assetId: note,
    region:ROI,
    scale:30,
    maxPixels:1e13
});

有两个地方需要注意一下:

ppqq 如果你不知道下载区域大小,maxPixels记得设置大一点;

ppqq PIE数据处理完之后,在PIE资源里面,点击文件即可下载;

4.循环函数

由于我们需要下载多个时间段的数据,所以将上面的步骤封装为一个单独的下载函数,传入年份即可进行调用,下载对应年份数据:

function get_yearly_LandCover(year) {
       
    //设置需要提取的年份
    var startDate = pie.Date.fromYMD(year, 1, 1);
    var endDate = pie.Date.fromYMD(year, 12, 31);
    //设置导出的文件名字
    var note=year+"_ROI"+"_LandCover_"+"CLCD" 

    //加载土地利用数据 筛选、镶嵌、裁剪  
    var ROI_landcover=pie.ImageCollection("WHU/CLCD")
                .filterBounds(ROI)
                .filterDate(startDate, endDate)
                .select(["B1"])
                .first()
                .clip(ROI);

    //显示土地利用数据
    Map.addLayer(ROI_landcover,visParam,note)

    //下载
    Export.image({
     
        image:ROI_landcover,
        description: note,
        assetId: note,
        region:ROI,
        scale:30,
        maxPixels:1e13
    });
}

get_yearly_LandCover函数封装好之后,我们循环时间,下载1985年、1990-2019年数据:

//引用数据下载函数  在这里改时间,数据时间范围为1985年、1990年-2019年,需要下载哪一年的就使用get_yearly_LandCover(年份)
get_yearly_LandCover(1985)
//获取哪一年的,获取1900年到2019年
for(var i=1990;i<2020;i++){
     
  var year = parseInt(JSON.parse(i));
  get_yearly_LandCover(year)
}

批量下载1985-2019年研究区的30米土地利用数据_第6张图片

运行整个函数,在5分钟内下载研究区的1985年-2019年的土地利用数据。因为这个数据是30m分辨率,而且进行了LZW压缩,处理速度和下载速度都很迅速。例如该博文的研究区每年的土地利用数据大小只有100KB。
批量下载1985-2019年研究区的30米土地利用数据_第7张图片

5.代码链接

代码已经调整好了。PIE代码链接功能提供了两种方式。
一种是外部链接方式用于给非登陆用户使用:
https://engine.piesat.cn/engine-share/shareCode.html?id=f80612c42cc14a779c140b2788b05deb
一种是内部链接方式,直接在编辑器中打开用于给登陆用户直接使用:
https://engine.piesat.cn/engine/home?sourceId=f80612c42cc14a779c140b2788b05deb
另外附上一个展示链接
https://engine.piesat.cn/user-app/15884411724&1985-2019_download
批量下载1985-2019年研究区的30米土地利用数据_第8张图片
如果你需要下载自己的研究区,你需要做以下几个步骤:

上传研究区
加载研究区
将研究区名字为"ROI"
点击运行。

6.写到最后

我写PIE-Engine不是宣传PIE,只是这个工具确实有独到的地方,比如中文支持不用代理数据独特。比如在GEE里,基本上没有Land Cover数据,但PIE有,类型还不少,所以我用了。
批量下载1985-2019年研究区的30米土地利用数据_第9张图片

虽然这个工具好处很多,但拉跨的地方也不少,我连着提交了数个BUG反馈。但总体而言瑕不掩瑜,希望国产软件越做越好。

你可能感兴趣的:(GOOGLE,EARTH,ENGINE,PIE,engine,数据专栏,javascript)