#冲刺创作新星#PIE-Engine:生态遥感指数RSEI研究 原创
这里我们在完成上一次的遥感生态指数,这里我们采用上一次已经得到的RSEI中,进行一个广东省市级区域RSEI的平均值,这里广东省中的7个地级市的生态遥感指数。
ui.Chart.PIEFeature.byFeature(features,xProperty,yProperty)
通过制定矢量数据的feature绘制
方法参数:
- ui(ui.Chart.PIEFeature.byFeature)
调用者:ui.Chart.PIEFeature对象。
- features(Object|List)
feature、featureCollection、list、矢量数据或者列表
- xProperty(List)
x轴属性参数
- yProperty(List)
列表,y轴参数(矢量数据的属性)
返回值:ui.Chart.PIEFeature.byFeature
setChartType(type)
设置图表类型
方法参数:
- ui(ui.Chart.PIEFeature.setChartType)
调用者:ui.Chart.PIEFeature对象。
- type(String)
设置图表的类型。
返回值:ui.Chart
setSeriesNames(value)
设置图标图例
方法参数:
- ui(ui.Chart.PIEFeature.setSeriesNames)
调用者:ui.Chart.PIEFeature对象。
- value(Array)
设置图表图例的内容。
返回值:ui.Chart
setOptions(data)
设置图表基本信息
方法参数:
- ui(ui.Chart.PIEFeature.setOptions)
调用者:ui.Chart.PIEFeature对象。
- data(Object)
设置图表配置信息。
返回值:ui.Chart
reduceRegion(reducer,geometry,scale)
对特定区域的所有像素进行统计,返回结果为一个JSON对象;目前可完成最大、最小和求和统计计算。
方法参数:
- image(Image)
Image实例。
- reducer(Reducer)
统计类型,包括最大值、最小值和求和。
- geometry(Geometry)
统计区域范围。默认是影像第一个波段的范围。
- scale(Number)
统计采样比例。
返回值:Dictionary
代码:
/**
* @Name : 广东省遥感生态指数研究
* @Author : 广州大学张三的组
* @Source : 航天宏图第四届 “航天宏图杯”PIE软件二次开发大赛云开发组三等奖获奖作品
* @Description : 2、计算展示分析RSEI
*/
var province = pie.FeatureCollection('NGCC/CHINA_PROVINCE_BOUNDARY');
var gd = province.filter(pie.Filter.eq("name","广东省")).first().geometry();
//导入归一化后且PCA处理完成影像
var RSEI = pie.Image('user/pieadmin/saas/07/rsei_guangdong').select('B1').clip(gd);
var aveRSEI = pie.Number(RSEI.reduceRegion(pie.Reducer.mean(),gd,75).get('B1'))
var rseiVis = {
min: 0,
max: 1,
palette: [
'FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163', '99B718', '74A901',
'66A000', '529400', '3E8601', '207401', '056201', '004C00', '023B01',
'012E01', '011D01', '011301'
],
};
//RSEI可视化渲染
Map.addLayer(RSEI,rseiVis,'RSEI');
//导入市级行政区矢量
var city = pie.FeatureCollection('NGCC/CHINA_CITY_BOUNDARY')
.filter(pie.Filter.eq("pname", "广东省"));
//构建函数输出广东市级RSEI
function rsei(region){
var aveRSEI = pie.Number(RSEI.reduceRegion(pie.Reducer.mean(),region,1000).get('B1'));
return aveRSEI;
}
city = city.map(function(feature) {
feature = pie.Feature(feature);
var data = rsei(feature.geometry());
feature = feature.set("rsei", data);
return feature;
});
var chart = ui.Chart.PIEFeature.byFeature({
features: city,
xProperty: "name",
yProperties: ["rsei"]
}).setChartType("bar")
.setSeriesNames(['2020年12月'])
.setOptions({
title: {
name: "广东省市级区域RSEI归一化平均值"
},
xAxis: {
name: "RSEI指数"
},
yAxis: {
name: "市级地区"
}
})
print(chart);
结果: