Google Earth Engine(GEE)——如何正常加载PCA过程中的出现的影像错误Srqt: Tile error: Array: Max (NaN) cannot be less than

在使用Google Earth Engine (GEE) 进行PCA分析时,可能会遇到' Srqt: Tile error: Array: Max (NaN) cannot be less than min (NaN)'的错误,这通常由于负特征值导致。文章介绍了一种通过取绝对值的方法来避免这种错误,确保影像正常加载。同时,提供了关于GEE中矩阵乘法、协方差计算和纹理指标计算的相关函数和概念。
摘要由CSDN通过智能技术生成

在我们进行PCA进行分析之外,有时候想加载平方根的结果,但是显示无法正常展示,我们这里可以用一个绝对值来实现正常影像的加载

Srqt: Tile error: Array: Max (NaN) cannot be less than min (NaN).

对于在计算 PCA 时遇到此问题的人,我发现“数组:最大值(NaN)不能小于最小值(NaN)”错误的根本原因是负特征值。在某些情况下,您最终会得到非常非常小的负数(例如 -1e-13)并且调用它的 sqrt() 会导致此错误。据我了解,当您具有高度相关的输入波段并且最后几个特征值最终非常接近 0 时,就会发生这些情况。 

一个简单的解决方法是在求平方根之前对特征值调用 abs()。例如
var sdImage = ee.Image(eigenValues.abs(). sqrt())

 

代码:

// 一个演示错误的最小例子
// 阵列。最大(NaN)不能小于最小(NaN)。

// 运行脚本并检查任何像素以查看错误
// 当我们在有负数的数组上调用sqrt()时,就会发生这个错误。

var image = ee.Image("users/ujavalgandhi/temp/aerial_photo_clipped");
var geometry = image.geometry();
Map.addLayer(image, {}, 'Image');
Map.centerObject(image);

var projection = image.projection();
var scale = projection.nominalScale();

var texture = image.glcmTexture({size:5});
Map.addLayer(texture, {}, 'Texture')
var pca = PCA(texture).select(['pc1', 'pc2', 'pc3'])
Map.addLayer(pca, {}, 'PCA');

  
//************************************************************************** 
//
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此星光明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值