Reduce
# 简介
Reducer 是PIE-Engine中用来统计计算或者执行聚合的对象。用户可按照时间、空间、波段、数组或其他数据结构进行数据聚合和统计。PIE-Engine Studio提供最大值、最小值、平均值、求和、线性回归等相关算法。
# count
得到一个返回非空个数的统计器。
函数 | 返回值 |
---|---|
count() | Reducer |
# 示例:
list =pie.List([5.50,6.75,7.25])
resultCount = list.reduce(pie.Reducer.count())
print(resultCount.getInfo())
# covariance
得到一个返回求协方差矩阵的统计器。
函数 | 返回值 |
---|---|
covariance() | Reducer |
# 示例:
image=pie.Image("LC08/01/T1/LC08_121031_20181019").select(['B3','B4'])
geometry = pie.Geometry.Polygon([[[119.5, 41.5], [120, 41.5], [120, 42],[119.5,42],[119.5, 41.5]]], None)
result=image.reduceRegion(pie.Reducer.covariance(),geometry,30)
print(result.getInfo())
# first
得到一个返回输入中第一个项的统计器。
函数 | 返回值 |
---|---|
first() | Reducer |
# 示例
list1 = pie.List([1, 2, 3])
first_num = list1.reduce(pie.Reducer.first())
print(first_num.getInfo())
# fixedHistogram
返回一个Reducer。它将使用固定数量、固定宽度的容器计算输入的直方图;超出[最小值,最大值]范围的值将被忽略。
函数 | 返回值 |
---|---|
fixedHistogram(max,min,steps) | Reducer |
参数 | 类型 | 说明 |
---|---|---|
max | Int | 直方图横轴最大值 |
min | Int | 直方图横轴最小值 |
steps | Int | 直方图横轴间隔 |
# 示例
image = pie.Image("LC08/01/T1/LC08_121031_20181019").select(['B3','B4'])
geometry = pie.Geometry.Polygon([[[119.5, 41.5], [120, 41.5], [120, 42],[119.5,42],[119.5, 41.5]]], None)
result = image.reduceRegion(pie.Reducer.fixedHistogram([1000,100],[10000,2000],5),geometry,30)
print(result.getInfo())
# last
得到一个返回结束值的统计器。
函数 | 返回值 |
---|---|
last() | Reducer |
# 示例:
list =pie.List([5.50,6.75,7.25,12.5])
resultLast = list.reduce(pie.Reducer.last())
print(resultLast.getInfo())
# linearFit
得到一个返回线性回归的统计器,返回的结果包括offset和scale两项信息。
函数 | 返回值 |
---|---|
linearFit() | Reducer |
# 示例
# 自变量
x1 = [
-0.05, 0.25,0.60,0, 0.25,0.20, 0.15,0.05,
-0.15, 0.15, 0.20, 0.10,0.40,0.45,0.35,
0.30, 0.50,0.50, 0.40,-0.05, -0.05,-0.10,
0.20,0.10,0.50,0.60,-0.05,0, 0.05, 0.55
]
# 因变量
y = [
7.38,8.51,9.52,7.50,9.33,8.28,8.75,7.87,
7.10,8.00, 7.89,8.15,9.10,8.86,8.90,8.87,
9.26,9.00,8.75,7.95, 7.65,7.27,8.00,8.50,
8.75,9.21,8.27,7.67,7.93,9.26
]
list = pie.List([x1,y])
result = list.reduce(pie.Reducer.linearFit())
print(result.getInfo())
# linearRegression
得到一个返回多元线性回归的统计器,统计器返回的结果包括针对每一个因变量的各个自变量参数。
函数 | 返回值 |
---|---|
linearRegression(numX,numY) | Reducer |
参数 | 类型 | 说明 |
---|---|---|
numX | Number | 自变量的个数 |
numY | Number | 因变量的个数 |
# 示例
# 自变量
x0 = [
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1
]
x1 = [
-0.05, 0.25,0.60,0, 0.25,0.20, 0.15,0.05,
-0.15, 0.15, 0.20, 0.10,0.40,0.45,0.35,
0.30, 0.50,0.50, 0.40,-0.05, -0.05,-0.10,
0.20,0.10,0.50,0.60,-0.05,0, 0.05, 0.55
]
x2 = [
5.50,6.75,7.25,5.50,7.00,6.50,6.75,5.25,
5.25,6.00, 6.50,6.25,7.00,6.90,6.80,6.80,
7.10,7.00,6.80,6.50, 6.25,6.00,6.50,7.00,
6.80,6.80,6.50,5.75,5.80,6.80
]
# 因变量
y = [
7.38,8.51,9.52,7.50,9.33,8.28,8.75,7.87,
7.10,8.00, 7.89,8.15,9.10,8.86,8.90,8.87,
9.26,9.00,8.75,7.95, 7.65,7.27,8.00,8.50,
8.75,9.21,8.27,7.67,7.93,9.26
]
list = pie.List([x0,x1,x2,y])
result = list.reduce(pie.Reducer.linearRegression(3,1))
print(result.getInfo())
# max
返回一个输出其输入的最大值的Reducer。
函数 | 返回值 |
---|---|
max() | Reducer |
# 示例
x1 = [
-0.05, 0.25,0.60,0, 0.25,0.20, 0.15,0.05,
-0.15, 0.15, 0.20, 0.10,0.40,0.45,0.35,
0.30, 0.50,0.50, 0.40,-0.05, -0.05,-0.10,
0.20,0.10,0.50,0.60,-0.05,0, 0.05, 0.55
]
list = pie.List(x1)
result = list.reduce(pie.Reducer.max())
print(result.getInfo())
# mean
返回一个计算其输入的(加权)算术平均值的Reducer。
函数 | 返回值 |
---|---|
mean() | Reducer |
# 示例
x1 = [
-0.05, 0.25,0.60,0, 0.25,0.20, 0.15,0.05,
-0.15, 0.15, 0.20, 0.10,0.40,0.45,0.35,
0.30, 0.50,0.50, 0.40,-0.05, -0.05,-0.10,
0.20,0.10,0.50,0.60,-0.05,0, 0.05, 0.55
]
list = pie.List(x1)
result = list.reduce(pie.Reducer.mean())
print(result.getInfo())
# median
返回一个计算其输入的中值的Reducer。
函数 | 返回值 |
---|---|
median(maxBuckets=None,minBuckets=None,maxRaw=None) | Reducer |
参数 | 类型 | 说明 |
---|---|---|
maxBuckets | int | 默认为None |
minBuckets | Int | 默认为None |
maxRaw | Int | 默认为None |
# 示例
x1 = [
-0.05, 0.25,0.60,0, 0.25,0.20, 0.15,0.05,
-0.15, 0.15, 0.20, 0.10,0.40,0.45,0.35,
0.30, 0.50,0.50, 0.40,-0.05, -0.05,-0.10,
0.20,0.10,0.50,0.60,-0.05,0, 0.05, 0.55
]
list = pie.List(x1)
result = list.reduce(pie.Reducer.median())
print(result.getInfo())
# min
返回一个输出其输入的最小值的Reducer。
函数 | 返回值 |
---|---|
min() | Reducer |
# 示例
x1 = [
-0.05, 0.25,0.60,0, 0.25,0.20, 0.15,0.05,
-0.15, 0.15, 0.20, 0.10,0.40,0.45,0.35,
0.30, 0.50,0.50, 0.40,-0.05, -0.05,-0.10,
0.20,0.10,0.50,0.60,-0.05,0, 0.05, 0.55
]
list = pie.List(x1)
result = list.reduce(pie.Reducer.min())
print(result.getInfo())
# minMax
得到一个返回最大、最小值的统计器。
函数 | 返回值 |
---|---|
minMax() | Reducer |
# 示例:
list =pie.List([8,11,6])
result = list.reduce(pie.Reducer.minMax())
print (result.getInfo())
# pearsonsCorrelation
计算皮尔森相关系数。
函数 | 返回值 |
---|---|
pearsonsCorrelation() | Reducer |
# 示例
x1 = [
-0.05, 0.25,0.60,0, 0.25,0.20, 0.15,0.05,
-0.15, 0.15, 0.20, 0.10,0.40,0.45,0.35,
0.30, 0.50,0.50, 0.40,-0.05, -0.05,-0.10,
0.20,0.10,0.50,0.60,-0.05,0, 0.05, 0.55
]
x2 = [
5.50,6.75,7.25,5.50,7.00,6.50,6.75,5.25,
5.25,6.00, 6.50,6.25,7.00,6.90,6.80,6.80,
7.10,7.00,6.80,6.50, 6.25,6.00,6.50,7.00,
6.80,6.80,6.50,5.75,5.80,6.80]
list = pie.List([x1, x2])
result = list.reduce(pie.Reducer.pearsonsCorrelation())
print(result.getInfo())
# percentile
得到一个返回指定百分位上数值的统计器。
函数 | 返回值 |
---|---|
percentile(percentiles, outputNames) | Reducer |
参数 | 类型 | 说明 |
---|---|---|
percentiles | List | 由0到100之间数值组成的数组 |
outputNames | List | 输出的名称列表,默认为null |
# 示例:
list =pie.List([1,2,5,8,5,2,2,6,6,2,9,2,3,4,5,6,7,8,9,10])
result = list.reduce(pie.Reducer.percentile([0,10,60,100]))
print (result.getInfo())
# stdDev
得到一个返回求标准差的统计器。
函数 | 返回值 |
---|---|
stdDev() | Reducer |
# 示例:
list =pie.List([8,11,6])
result = list.reduce(pie.Reducer.stdDev())
print (result.getInfo())
# sum
返回一个计算其输入的(加权)和的Reducer。
函数 | 返回值 |
---|---|
sum() | Reducer |
# 示例
x1 = [
-0.05, 0.25,0.60,0, 0.25,0.20, 0.15,0.05,
-0.15, 0.15, 0.20, 0.10,0.40,0.45,0.35,
0.30, 0.50,0.50, 0.40,-0.05, -0.05,-0.10,
0.20,0.10,0.50,0.60,-0.05,0, 0.05, 0.55
]
list = pie.List(x1)
result = list.reduce(pie.Reducer.sum())
print(result.getInfo())
# toList
返回一个Reducer。它将其输入放入一个列表中,可以选择分组为元组。
函数 | 返回值 |
---|---|
toList(tupleSize=1,numOptional=None) | Reducer |
参数 | 类型 | 说明 |
---|---|---|
tupleSize | Int | 列表最大尺寸 |
numOptional | Sting | 默认为None |
# 示例
list1 = pie.List([1, 2, 3])
result = list1.reduce(pie.Reducer.toList())
print(result.getInfo())
# variance
得到一个返回求方差的统计器。
函数 | 返回值 |
---|---|
variance() | Reducer |
# 示例:
list =pie.List([8,11,6])
result = list.reduce(pie.Reducer.variance())
print (result.getInfo())
有问题,我来改改 (opens new window)
上次更新: 2022/05/25, 07:37:39