前言
在迎来中国共产党成立一百周年的重要时刻,我国脱贫攻坚战取得全面胜利。现行标准下9899万农村贫困人口全部脱贫,832个贫困县全部摘帽,12.8万个贫困村全部出列,区域性整体贫困得到解决,完成了消除绝对贫困的艰巨任务,脱贫攻坚的壮举成为载入史册的又一奇迹。提起脱贫攻坚,更多人想到的可能会是前段时间热播的电视剧:《山海情》,随着剧集的播出,西海固走进了大众的视野之中,让我们了解了那片“苦瘠甲天下”的土地,看到了那里恶劣的环境、贫苦的生活,当然也看到了扶贫干部带领百姓脱贫致富、改善环境的不懈努力。
青海地处青藏高原东北部,平均海拔4058米,集黄土高原和青藏高原典型地质地貌为一体,境内高山林立、峡谷纵横,改变生存条件、改善群众生活的任务十分繁重,部分地区“一方水土养不好一方人”的问题突出。受自然条件、区域环境的影响,那些祖祖辈辈居住在青海干旱山区、高原牧区的群众靠天吃饭,收入微薄,生活困难,但他们从来都没有停下追求富裕、幸福生活的脚步。
太阳能光伏等新能源产业可以改变化石燃料为主的能源格局,缓解能源紧缺,推进节能减排,对建设资源节约型和环境友好型社会具有重要的意义。青海省是中国太阳能最为丰富的地区之一,日照时间长,且有着广阔的荒漠地区,可利用土地面积广,地势平坦,为开发利用太阳能提供了有利的土地条件。
海南藏族自治区州共和县盆地区域的塔拉滩以戈壁沙丘为主,是黄河上游和三江源地区风沙危最严重的地带之一,每年从这里进入龙羊峡库区的流沙达3131万m³。2011年至今,塔拉滩地区大力发展光伏产业,并建成数十个光伏企业集聚的光伏产业园,占地面积达到609km²,接近一个新加坡的大小,发电能力达到3350兆瓦,随着光伏电站与龙羊峡水电站的并网发电,该地成为了全球最大的水光互补能源基地。光伏产业为当地人民群众提供了大量的就业岗位,直接带动当地经济条件的稳步增长。
光伏产业的发展改变了地面热力平衡和地表覆盖状况,促进了塔拉滩地区生态环境的改善,随着植被的不断恢复,沙丘的移动距离和移动速度呈现出明显减缓态势。但植被恢复对于光伏发电的效率和园区的灾害风险产生了不利影响,为此园区内引入牧羊业,这一举措使得园区内的生态形成了良性的循环。
01 PIE-Engine平台介绍
航天宏图致力于加速我国遥感技术的发展进程,依托行业多年技术积累,独立自主研发了安全可控的开放式遥感云计算平台:PIE-Engine(Pixel Information Expert Engine,像素专家引擎),实现了遥感数据按需获取、运算以及专题信息聚焦服务,以满足对地观测数据获取能力飞速增长带来的信息高效化处理和服务需求。目前平台数据总量已达3PB,存储了国内与国外超过80种遥感数据集,超过630万景影像数据,涵盖了光学、微波、高光谱、高程、人口、气象、夜光等多种数据集,国内数据包括高分、风云、海洋等系列,国外数据包括Landsat、MODIS、Sentinel以及Himawari等。
02 利用PIE-Engine看光伏板助力脱贫成效
塔拉滩位于共和县东南部地区,影像中规则排列的“方块”就是我们今天的主角——光伏板。
卫星捕捉到的夜光常常来自于灯光、火光等人类活动产生的光源,往往被用来反映一个地区的经济发展状况,一般情况下亮度越大人口越稠密、经济条件也相对较好。利用PIE-Engine平台提供的夜光遥感数据,我们从宏观的视角来了解当地的发展情况。可以看出,光伏产业为当地提供能源,在一定程度上提高了当地的夜光强度。该区域的夜光亮度呈现出逐年增加的状态,这也从侧面反映了当地的人口、经济等条件正在逐年增长。
通过PIE-Engine提供的WorldPop人口数据集,生成2013-2020年共和县人口变化曲线。从图中我们可以看出,该地区的人口数量正在逐年增长,这印证了我们前文根据当地灯光变化提出的结论。
利用PIE-Engine平台提供的Landsat 8 TOA数据集,来看光伏产业园的发展历程。可以看出,当地光伏产业的发展速度飞快,自塔拉滩东北部地区开始搭建光伏板,2020年已经发展至塔拉滩的西南部地区。另外,我们可以直观地从遥感影像中看出,随着光伏板的搭建,该区域抵抗风沙侵蚀的能力在逐渐提高。光伏板能够阻挡气流的运动,减轻风沙侵蚀,遮挡光照造成的水分蒸发,提髙土壤的湿度,促进植被恢复。但由于当地植被生长条件的影响,沙地植被的叶绿素含量并不高,所以在影像中的表现为浅黑色。
所以,我们可以利用PIE-Engine计算时间序列遥感影像的植被指数NDVI,从生态环境的角度来看光伏板对当地植被生长状况的影响。
通过生成植被指数NDVI年度均值曲线可以看出,尽管NDVI的水平不高,总体在0.2左右,但却呈现出逐年上升的趋势,直接反映了当地区域生态环境的恢复。
03 示例代码
3.1
夜光
链接:
https://engine.piesat.cn/engine-share/shareCode.html?id=01ec7d196fc846588ae5391a8af008f8
向下滑动阅览
1./**
2. * @File : 基于PIE-Engine获取共和县夜光年度变化数据
3. * @Time : 2021/3/1
4. * @Author : Yangyang Liu & ShiWei Li
5. * @Version : 1.0
6. * @Contact : 400-890-0662
7. * @License : 航天宏图研究院云服务产品研发部
8. * @Desc : 脱贫攻坚案例分享
9. */
10.
11.//加载青海省共和县矢量数据
12.var ghx = pie.FeatureCollection("NGCC/CHINA_COUNTY_BOUNDARY")
13. .filter(pie.Filter.eq("name", "共和县"))
14. .first()
15. .geometry();
16.Map.centerObject(ghx, 8.2);
17.Map.addLayer(ghx, {color: "0000FF", fillColor: "00000000", width: 1}, "感兴趣区", false);
18.
19.//设置夜光数据预览参数
20.var visParams = {min: 0, max: 60000,
21. palette:['000000','4c3300','664401','7f5501','996601','b27702',
22. 'cc8802','e59902','ffad02','ffaf02','ffb102','ffb302','ffb502',
23. 'ffb702','ffb902','ffbb02','ffbd02','ffc002','ffc202','ffc402',
24. 'ffc602','ffc801','ffca01','ffcc01'
'ffc602','ffc801','ffca01','ffcc01','ffce01','ffd001','ffd201',
25. 'ffd501','ffd701','ffd901','ffdb01','ffdd01','ffdf01','ffe101',
26. 'ffe300','ffe500','ffe700','ffea00','ffec00','ffee00','fff000',
27. 'fff200','fff400','fff600','fff800','fffa00','fffc00','ffff00']};
28.
29.//循环获取每年夜光数据
30.var xSeries = [];
31.for(var i = 2013; i < 2021; i ++){
32. var nightLight = pie.ImageCollection('VIIRS_VCMCFG/NIGHTTIME_LIGHTS')
33. .filterDate(i + "-01-01", i + "-12-31")
34. .select("avg_rad")
35. .mean()
36. .clip(ghx);
37. Map.addLayer(nightLight, visParams, String(i), true);
38. xSeries.push(String(i));
39.}
40.//动画显示
41.Map.playLayersAnimation(xSeries, 0.5, 100);.
3.2
人口
链接:
https://engine.piesat.cn/engine-share/shareCode.html?id=9e375b7238a94389ab83c13913c6c099
向下滑动阅览
1./**
2. * @File : 基于PIE-Engine获取共和县人口年变化数据
3. * @Time : 2021/3/1
4. * @Author : Yangyang Liu & ShiWei Li
5. * @Version : 1.0
6. * @Contact : 400-890-0662
7. * @License : 航天宏图研究院云服务产品研发部
8. * @Desc : 脱贫攻坚案例分享
9. */
10.
11.//加载青海省共和县矢量数据
12.var ghx = pie.FeatureCollection("NGCC/CHINA_COUNTY_BOUNDARY")
13. .filter(pie.Filter.eq("name", "共和县"))
14. .first()
15. .geometry();
16.Map.centerObject(ghx, 10.5);
17.Map.addLayer(ghx, {color: "0000FF", fillColor: "00000000", width: 1}, "感兴趣区");
18.
19.//循环获取每年人口数据
20.var xSeries = [];
21.var populations = [];
22.for(var i = 2013; i < 2021; i ++){
23. var img = pie.ImageCollection("WorldPop/Global_100m_UNadj")
24. .filterDate(i + "-01-01", i + "-12-31")
25. .select("population")
26. .mean()
27 .clip(ghx);
28. var pop = img.reduceRegion(pie.Reducer.sum(), ghx, 100).get("population").getInfo();
29. var population = pop/10000000;
30. xSeries.push(String(i));
31. populations.push(population)
32.}
33.
34.//生成人口年变化曲线
35.var line_t = {
36. title: "共和县人口年度变化统计图",
37. legend: ["人口"],
38. xAxisName: "年份",
39. yAxisName: "人口数",
40. chartType: "line",
41. yMin:22,
42. yMax:25,
43. xAxis: xSeries,
44. series: [populations],
45. smooth: true
46.};
47.ChartArray(line_t)
3.3
NDVI
链接:
https://engine.piesat.cn/engine-share/shareCode.html?id=177e8d96e5a44147bd0adbe51ffddd35
向下滑动阅览
1./**
2. * @File : 基于PIE-Engine获取塔拉滩光伏产业园及其周边区域的NDVI
3. * @Time : 2021/3/1
4. * @Author : Yangyang Liu & ShiWei Li
5. * @Version : 1.0
6. * @Contact : 400-890-0662
7. * @License : 航天宏图研究院云服务产品研发部
8. * @Desc : 脱贫攻坚案例分享
9. */
10.
11.//加载光伏产业园区域矢量数据
12.var ghx = pie.Geometry.Polygon([[100.22726518751324, 36.230584905681750],
13. [100.22726518751324, 35.939258288800005],
14. [100.66191179395855, 35.939258288800005],
15. [100.66191179395855, 36.230584905681750],
16. [100.22726518751324, 36.230584905681750]], null);
17.Map.centerObject(ghx, 10.5);
18.Map.addLayer(ghx, {color: "0000FF", fillColor: "00000000", width: 1}, "感兴趣区");
19.
20.//循环计算每年NDVI
21.var xSeries = [];
22.var ySeries = [];
23.for(var i = 2013; i < 2021; i ++){
24. var l8 = pie.ImageCollection("LC08/01/T1")
25. .filterBounds(ghx)
26. .filterDate(i + "-05-01", i + "-10-01")
27. .filter(pie.Filter.lte("cloudCover", 20))
28. .select(["B2", "B3", "B4", "B5", "BQA"])
29. .map(function (l8) {var qa = l8.select("BQA");
30. var mask = qa.bitwiseAnd(1 << 4).eq(0);
31. return l8.updateMask(mask);})
32. .mean()
33. .clip(ghx);
34. var green = l8.select("B3");
35. var red = l8.select("B4");
36. var nir = l8.select("B5");
37. var NDVI = (nir.subtract(red)).divide(nir.add(red)).rename("NDVI");
38. var NDVI_e = NDVI.updateMask(NDVI.gt(0));
39. var visParams = {min: 0, max: 1, palette: ['FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163', '99B718', '74A901',
40. '66A000', '529400', '3E8601', '207401', '056201', '004C00', '023B01',
41. '012E01', '011D01', '011301']};
42.
43. Map.addLayer(NDVI_e, visParams, String(i));
44. //计算NDVI均值
45. var NDVI_mean = NDVI_e.reduceRegion(pie.Reducer.mean(), ghx, 100).get("NDVI").getInfo();
46. xSeries.push(String(i));
47. ySeries.push(NDVI_mean);
48.}
49.
50.//生成NDVI年变化动画
51.Map.playLayersAnimation(xSeries, 0.5, 100);
52.
53.//生成NDVI均值年变化曲线
54.var line_t = {
55. title: "共和县NDVI时间序列动态变化图",
56. legend: ["NDVI"],
57. xAxisName: "年份",
58. yAxisName: "NDVI值",
59. chartType: "line",
60. yMin: 0.1,
61. yMax: 0.3,
62. xAxis: xSeries,
63. series: [ySeries],
64. smooth: true
65.};
66.ChartArray(line_t);