基于PIE-Engine的新疆地区棉花种植面积提取_pie-engine机器学习种植面积反演-程序员宅基地

技术标签: PIE遥感影像处理平台  javascript  

在这里插入图片描述
前言
农业是国民经济的基础,是人类社会的衣食之源、生存之本。遥感技术由于具有探测范围广、信息获取快、宏观性强等特点,已广泛应用于农作物分类识别和作物面积估算的研究中。传统的利用遥感手段进行农作物分类识别的方法,大多基于中低分辨率遥感影像(如Landsat、MODIS等)开展,但大量的混合像元会限制识别精度的提高。随着高分辨率的遥感影像不断免费开放,快速精准地获取作物信息为政府部门合理制定粮食政策、精准发放农作物补贴、适时调配农业机械等多方面具有重要意义。
新疆作为中国最大的棉花种植基地,其棉花产量能够左右国际棉价,在我国棉花产业中占有举足轻重的作用,而棉花作为新疆的主要经济作物,对新疆农业经济和社会发展也至关重要。本应用案例主要是基于PIE-Engine平台利用Sentinel-2A L2A级数据快速识别、提取新疆维吾尔族自治区石河子市的棉花耕地,并反演棉花的NDVI(植被指数)、NDWI(水体指数)以及SPAD(叶绿素),以期获取高精度、高分辨率的区域棉花耕地分布及其生长情况,服务一带一路核心区的农业信息化建设。
石河子市概况图
PIE-Engine平台介绍
航天宏图致力于加速我国遥感技术的发展进程,依托行业多年技术积累,独立自主研发了安全可控的开放式遥感云计算平台:PIE-Engine(Pixel Information Expert Engine,像素专家引擎),实现了遥感数据按需获取、运算以及专题信息聚焦服务,以满足对地观测数据获取能力飞速增长带来的信息高效化处理和服务需求。目前平台数据总量已经超过1.5PB,存储了国内与国外的近80种遥感数据集,超过250万景影像数据,涵盖了光学、微波、高光谱、高程、人口、气象、夜光等多种数据集,国内数据包括高分、风云、海洋等系列,国外数据包括Landsat、MODIS、Sentinel以及Himawari等。
PIE-Engine Studio代码在线编辑器
棉花提取方法
首先,利用GlobaLand 30全球地表覆盖分类数据获取石河子市的所有耕地区域。另外,通过分析石河子市棉花耕地在影像中的敏感特征(光谱与指数),棉花在红光波段的反射率相比其它波段表现出了更高的敏感性,并且该区域处于生长季的棉花NDVI指数普遍大于0.5。由此,我们可以根据这两个敏感特征在影像中的耕地区域内快速识别与提取棉花耕地,并计算棉花的NDVI、NDWI以及叶绿素。计算公式如下:
在这里插入图片描述
式中:B3为影像的绿光波段反射率,B4为影像的红光波段反射率,B6为红边2波段反射率,B7为红边3波段反射率,B8为近红外波段的反射率。

提取结果
棉花提取结果
棉花NDVI
棉花NDWI
棉花叶绿素
示例代码
代码链接:
https://engine.piesat.cn/engine-share/shareCode.html?id=4481acfe5c3d4ee79f2b739f056bc730
代码运行结果
向下滑动阅览
1.//加载显示石河子市矢量边界数据
2.var shz = pie.FeatureCollection(“NGCC/CHINA_COUNTY_BOUNDARY”)
3. .filter(pie.Filter.eq(“name”, “石河子市”))
4. .first()
5. .geometry();
6.Map.centerObject(shz, 9);
7.Map.addLayer(shz, {color: “ff0000ff”, fillColor: “00000000”, width: 1}, “石河子市”);
8.
9.//加载显示全球地表覆盖GlobeLand30数据集并筛选耕地
10.var lc = pie.ImageCollection(‘NGCC/GLOBELAND30’)
11. .filterDate(“2019”, “2021”)
12. .select("B1
13. .first()
14. .eq(10)
15. .clip(shz);
16.Map.addLayer(lc, {uniqueValue: [“0”, “1”], palette: [“f5fffa”, “9acd32”]}, “耕地”, false);
17.
18.//加载显示2020年7月石河子市Sentinel-2 L2A合成影像
19.var img = pie.Image(“user/3408/SHZ_S2_L2A”);
20.Map.addLayer(img.select([“B4”, “B3”, “B2”]), {min:0, max: 3000}, “石河子市S2_L2A合成影像”,false);
21.
22.//计算影像NDVI、NDWI以及SPAD
23.var green = img.select(“B3”);
24.var red = img.select(“B4”);
25.var re2 = img.s
26.var re3 = img.select(“B7”);
27.var nir = img.select(“B8”);
28.var NDVI = (nir.subtract(red)).divide(nir.add(red)).rename(“NDVI”);
29.var NDWI = (green.subtract(nir)).divide(green.add(nir)).rename(“NDWI”);
30.var SPAD = (re3.divide(re2)).multiply(25.34).subtract(28.06).rename(“SPAD”);
31.
32.//根据敏感特征提取棉花并显示
33.var cot_RGB = img.select([“B4”, “B3”, “B2”])
34. .updateMask(lc.eq(1).and(nir.gt(4500)).and(NDVI.gt(0.5)));
35.Map.addLayer(cot_RGB,
36.
37.//掩膜获取棉花NDVI
38.var cot = NDVI.updateMask(lc.eq(1).and(nir.gt(4500)).and(NDVI.gt(0.5)));
39.
40.//按不同阈值显示NDVI
41.var cot_NDVI = cot.where(cot.gt(0.50).and(cot.lte(0.75)), 1)
42. .where(cot.gt(0.75).and(cot.lte(0.80)), 2)
43. .where(cot.gt(0.80).and(cot.lte(0.85)), 3)
44. .where(cot.gt(0.85).and(cot.lte(0.90)), 4)
45. .where(cot.gt(0.90).and(cot.lte(1.00)), 5);
46.Map.addLayer(cot_N
47.
48.//计算棉花NDVI最大值、最小值以及均值
49.var NDVI_max = cot.reduceRegion(pie.Reducer.max(), shz, 30).get(“NDVI”).getInfo();
50.print(“NDVI最大值”, NDVI_max);
51.var NDVI_min = cot.reduceRegion(pie.Reducer.min(), shz, 30).get(“NDVI”).getInfo();
52.print(“NDVI最小值”, NDVI_min);
53.var NDVI_mean = cot.reduceRegion(pie.Reducer.mean(), shz, 30).get(“NDVI”).getInfo();
54.print(“NDVI平均值”, NDVI_mean);
55.
56.//计算棉花耕地的面积,单位:公顷
57.var area = cot.pixelArea()
58.
59. .reduceRegion(pie.Reducer.sum(), shz, 30)
60. .getInfo()
61. .constant/1000000;
62.print(“棉花种植面积”, area);
63.
64.//掩膜获取棉花NDWI
65.var wat = NDWI.updateMask(lc.eq(1).and(nir.gt(4500)).and(NDVI.gt(0.5)));
66.
67.//按不同阈值显示NDWI
68.var water = wat.where(wat.gt(-1.00).and(wat.lte(-0.90)), 1)
69. .where(wat.gt(-0.90).and(wat.lte(-0.85)), 2)
70. .where(wat.gt(-0.85).and(wat.lte(-0.80)), 3)
71. .where(wat.gt(-0.80).and(wat.lte(-0.70)), 4)
72. .where(wat.gt(-0.70), 5);
73.Map.addLayer(water, {min: 1, max: 5, palette: [“FF0000”, “FFC800”, “B6FF8F”, “33C2FF”, “0000FF”]}, “棉花-NDWI”);
74.
75.//计算棉花NDWI最大值、最小值以及均值
76.var NDWI_max = wat.reduceRegion(pie.Reducer.max(), shz, 30).get(“NDWI”).getInfo();
77.print(“NDWI最大值”, NDWI_max);
78.var NDWI_min = wat.reduceRegion(pie.Reducer.min(), shz, 30).get(“NDWI”).getInfo();
79.print("NDWI
80.var NDWI_mean = wat.reduceRegion(pie.Reducer.mean(), shz, 30).get(“NDWI”).getInfo();
81.print(“NDWI平均值”, NDWI_mean);
82.
83.//掩膜获取棉花SPAD
84.var crp = SPAD.updateMask(lc.eq(1).and(nir.gt(4500)).and(NDVI.gt(0.5)));
85.
86.//按不同阈值显示SPAD
87.var chlorophyll = crp.where(crp.gt(0.0).and(crp.lte(1.5)), 1)
88. .where(crp.gt(1.5).and(crp.lte(2.5)), 2)
89. .where(crp.gt(2.5).and(crp.lte(3.5)), 3)
90. .wh
91. .where(crp.gt(4.5), 5);
92.Map.addLayer(crp, {min:1, max:5, palette: [“FFFF80”, “71EB2F”, “55FF00”, “216E9E”, “0C1078”]}, “叶绿素”);
93.
94.//计算棉花SPAD最大值、最小值以及均值
95.var SPAD_max = crp.reduceRegion(pie.Reducer.max(), shz, 30).get(“SPAD”).getInfo();
96.print(“叶绿素最大值”, SPAD_max);
97.var SPAD_min = crp.reduceRegion(pie.Reducer.min(), shz, 30).get(“SPAD”).getInfo();
98.print(“叶绿素最小值”, SPAD_min);
99.var SPAD_mean = crp.reduceRegion(pie.Reducer.mean
100.print(“叶绿素平均值”, SPAD_mean);

小编为各位正在关注和学习PIE-Engine Studio的用户强烈安利一期教学视频,感兴趣的小伙伴,快快点击查看呀!今后,我们会在相关的公众号文章下面,附送一期视频教程,请大家持续关注哦~

第一讲:认识PIE-Engine

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40609412/article/details/113945176

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法