二维ee.List对象的可以作为回归缩减器的输入。下面的例子提供了简单的证明;自变量是因变量的副本,产生等于 0 的 y 截距和等于 1 的斜率。

注意:减少的结果ee.List是一个对象。将其强制转换为 an ee.Dictionary以使访问属性更容易。

注意:行和列之间的长度必须相等。使用null表示丢失的数据条目。

linearFit()代码:

// 定义一个列表列表,其中列代表变量。
// 第一列是自变量,第二个是因变量。
var listsVarColumns = ee.List([[1, 1],[2, 2],[3, 3],[4, 4],[5, 5]
]);// 计算线性函数的最小二乘估计。请注意,一个返回对象;将其转换为 ee.Dictionary 以访问
系数更容易。很简单的操作就是根据在进行线性回归之前加入 ee.Dictionary整个程序更像是在外面进行加了一层包装
var linearFit = ee.Dictionary(listsVarColumns.reduce(ee.Reducer.linearFit()));// 检查结果
print(linearFit);
print('y-intercept:', linearFit.get('offset'));
print('Slope:', linearFit.get('scale'));

结果很明显,因为我们取得就是相同的数,所以:

如果变量由行表示,则通过转换为ee.Array,转置它,然后转换回 来转置列表ee.List

函数:

ee.Array(values, pixelType)这个函数在这里只起到对于对象的转化

返回具有给定坐标的数组。参数:

Returns an array with the given coordinates.

Arguments:

值(对象): 要转换的现有数组,或用于创建数组的任何深度的数字/数字列表/嵌套数字列表。对于嵌套列表,相同深度的所有内部数组必须具有相同的长度,并且数字只能出现在最深层.

values (Object):

An existing array to cast, or a number/list of numbers/nested list of numbers of any depth to create an array from. For nested lists, all inner arrays at the same depth must have the same length, and numbers may only be present at the deepest level.

pixelType (PixelType, default: null):

像素类型(像素类型,默认值:null):
values 参数中每个数字的类型。如果未提供像素类型,则将从“值”中的数字推断。如果“值”中没有任何数字,则必须提供此类型。

The type of each number in the values argument. If the pixel type is not provided, it will be inferred from the numbers in 'values'. If there aren't any numbers in 'values', this type must be provided.

Returns: Array

ee.Dictionary(dict)

构造一个新的字典。

Constructs a new Dictionary.

Arguments:

dict (ComputedObject|Object, optional):

要转换为字典的对象。此构造函数接受以下类型: 1) 另一个字典。 2) 键/值对列表。 3) 空或无参数(产生一个空字典)下面的例子就是2)

An object to convert to a dictionary. This constructor accepts the following types: 1) Another dictionary. 2) A list of key/value pairs. 3) A null or no argument (producing an empty dictionary)

Returns: Dictionary

代码:

//如果列表中的变量按行排列,则需要对其进行转置。
// 定义一个列表列表,其中行代表变量。
// 第一行是自变量,第二个是因变量。
var listsVarRows = ee.List([[1, 2, 3, 4, 5],[1, 2, 3, 4, 5]
]);// 将 ee.List 转换为 ee.Array,转置它,然后转换回 ee.List。
var listsVarColumns = ee.Array(listsVarRows).transpose().toList();// 计算线性函数的最小二乘估计。请注意,一个返回对象;
// 将其转换为 ee.Dictionary 以访问系数更容易。
var linearFit = ee.Dictionary(listsVarColumns.reduce(ee.Reducer.linearFit()));// 进行结果显示
print(linearFit);
print('y-intercept:', linearFit.get('offset'));
print('Slope:', linearFit.get('scale'));

linearRegression()这里面一定会有一个常数自变量,也就是自变量有两个一个常数一个自己定义的数

的应用ee.Reducer.linearRegression()类似于上面的 linearFit()示例,不同之处在于包括了一个常数自变量。

// 定义一个列表列表,其中列代表变量。
// 第一列代表一个常数项,第二个是自变量,
// 第三个是一个因变量。
var listsVarColumns = ee.List([[1, 1, 1],[1, 2, 2],[1, 3, 3],[1, 4, 4],[1, 5, 5]
]);// 计算普通最小二乘回归系数。 numX 是 2,因为有一个常数项和一个额外的自变量。
//numY 为 1,因为只有一个因变量。这里有几个自变量X就为几,因变量一般为一个
//将结果对象强制转换为 ee.Dictionary 以便于访问属性。
var linearRegression = ee.Dictionary(listsVarColumns.reduce(ee.Reducer.linearRegression({numX: 2,numY: 1
})));// 将系数数组转换为列表。
var coefList = ee.Array(linearRegression.get('coefficients')).toList();// Extract the y-intercept and slope.
var b0 = ee.List(coefList.get(0)).get(0); // y-intercept
var b1 = ee.List(coefList.get(1)).get(0); // slope// Extract the residuals.
var residuals = ee.Array(linearRegression.get('residuals')).toList().get(0);// 检查结果。
print('OLS estimates', linearRegression);
print('y-intercept:', b0);
print('Slope:', b1);
print('Residuals:', residuals);

结果如图,一般情况下出来的默认就是0为截距,1为斜率这是对于(linearRegression.get('coefficients'))中系数来说,而残差因为只有一个所以直接获取就可以。

基本上操作还是比较简单,但是这个在云平台上用的还是较少,一般本地的软件都可以轻松实现!

Google Earth Engine(GEE)——在线计算列表二维ee.List对象为线性回归方程计算slope和残差相关推荐

  1. Google Earth Engine(GEE)——在线计算EVI指数线性回归趋势图!

    要计算集合的长期线性趋势,请使用线性回归缩减器之一.以下代码计算 MODIS 增强型植被指数 (EVI) 的线性趋势: ee.Reducer.linearFit() 返回一个 Reducer,用于计算 ...

  2. Google Earth Engine(GEE)——在线调取云端影像!

    来自 Cloud GeoTIFF 的图像 You can use ee.Image.loadGeoTIFF() to load images from Cloud Optimized GeoTIFFs ...

  3. Google Earth Engine(GEE)批量下载代码(以 NDVI数据为例)

    下载数据先准备工作(具体细节都能查到):科学上网 谷歌邮箱,谷歌邮箱注册GEE账号. 一:导入需要下载边界shp文件. 标题 找到自己的shp文件,导入除了sbx文件的所有文件. 导入成功 命名ass ...

  4. 使用Google Earth Engine (GEE)实现MODIS数据批量下载

    使用Google Earth Engine GEE实现MODIS数据批量下载 前言 下载数据代码 批量执行run任务 关注公众号,分享GIS知识.ArcGIS教程.SCI论文与科研日常等 前言 上图是 ...

  5. Google Earth Engine(GEE)——User memory limit exceeded(2)

    上一次我们已经知道如何去进行避免这种错误的发生,有关详细内容,如果单单只是解决这个问题我们用到的是limit 和 first,上一次的博客在这里: (207条消息) Google Earth Engi ...

  6. Google Earth Engine(GEE) 01-中输入提示快捷键Ctrl+space无法使用的问题

    Google Earth Engine(GEE) 01-中输入提示快捷键Ctrl+space无法使用的问题 GEE中 Ctrl+space组合键用于代码输入快捷提示,能够提高编码的准确度和速度,但是, ...

  7. 基于google earth engine(GEE)下载研究区域影像

    基于google earth engine(GEE)下载研究区域影像 当研究需要Landsat数据时,我们可以通过USGS官网或者地理空间数据云平台下载.由于地理空间数据云目前无法下载到较新的数据,可 ...

  8. Google Earth Engine APP——在线计算Landsat 和 sentinel数据的23类植被指数的应用

    今天给大家介绍一款google earth engine app,VICAL: VEGETATION INDICES CALCULATOR 是一款可以在线计算Landsat 和 sentinel 系列 ...

  9. 利用GEE(Google Earth Engine)在线处理NDVI、EVI、SAVI、NDMI等指数归一化教程!

    1.首先进行"去云"函数的准备 //landsat5.7 EVI指数计算 // SR数据去云 function rmCloud(image) { var cloudShadowBi ...

最新文章

  1. PTA团体程序设计天梯赛-L2-013 红色警报
  2. [自定义区间-Range]书里的例子 - 中文数字类
  3. Cache一致性与2种基本写策略(1)
  4. 使用js代码将HTML Table导出为Excel
  5. 普诺飞思公布发明者社区,启发基于事件视觉技术的创新
  6. 漫话CLR ---- 属性
  7. socket.io插件调用的demo
  8. Ubunt更换阿里云镜像源
  9. 利用栈将html源码解析为节点树
  10. 第三季-第21课-多线程同步
  11. CSS实现限制字数功能
  12. vba移动文件_你想要的爬虫、VBA系列教程这里都有!
  13. 中缀表达式——表达式树
  14. 球形天空盒php,unity3d天空盒
  15. ns3网络设置模块 PointToPoint
  16. Windows_解决win7开机画面变成vista画面的方法
  17. 使用Arduino的自动药物提醒
  18. C++——运算符的重载
  19. python好学吗-非科班出身自学Python好学吗?
  20. SAP ABAP FOR ALL ENTRIES 的用法

热门文章

  1. 太原理工大学系统分析与设计实验报告实验室设备_塔斯马尼亚大学和皇家墨尔本理工大学的实验室医学硕士从学术和移民角度来看,有什么区别?选择哪一个更好?...
  2. 【实用小工具】如何用Python语音合成,以及文字转语音~
  3. python的快捷键查看函数用法_python快捷键与命令函数
  4. 软件测试——接口测试测试用例设计
  5. MATLAB读入视频出错的解决方法
  6. 使用 VMware-Workstation-9 或者 Vmware10 安装 fedora9时卡住了
  7. Qt程序获取管理员权限
  8. bytedance怎么读_我被字节的HR骗了...
  9. 计算机毕业设计springboot社区志愿者管理系统的设计与实现【前后端分离·新项目】
  10. C#技巧与解析(部分)