matlab - 在 MATLAB 中加入地理参考矩阵
问题描述
我有两个我想加入的具有不同空间范围和分辨率(即地球表面上一个像素的空间覆盖)的地理参考矩阵(网格化气候数据集)。让我们称它们为referenceMatrix
and targetMatrix
。这些矩阵可以作为 geotiffs 或者只是具有每个像素对应的纬度/经度网格的矩阵加载到 MATLAB 中。
我想要的是NaN
用targetMatrix
来自referenceMatrix
. 我可以使用一个for
-loop 来逐个查看像素,并使用基于最近像素的数据填充NaN
s 中的 s 。这里描述了我用来定位空间中最近像素的方法:如何使用 MATLAB 找到给定坐标的最近点?targetMatrix
referenceMatrix
但是我需要用数千个矩阵来做这件事,而且for
-loop 太慢了。因此我想使用逻辑索引,例如
targetMatrix(isnan(targetMatrix)) = referenceMatrix(isnan(targetMatrix))
增加了根据纬度和经度匹配矩阵中像素的能力。你们中的任何人都可以通过基于地理参考比较具有不同程度的矩阵的示例为我指明一个方向吗?
下面是输入数据和所需输出的示例
targetMatrix = [1, NaN, 3;
NaN, 5, 6];
referenceMatrix = [10, 20, 30, 40;
50, 60, 70, 80];
referenceLatitude = [13.3, 13.3, 13.3, 13.3;
14.1, 14.1, 14.1, 14.1];
referenceLongitude = [3.2, 4.2, 5.2, 6.2;
3.2, 4.2, 5.2, 6.2];
targetLatitude = [13.4, 13.4, 13.4;
13.9, 13.9, 13.9];
targetLongitude = [3.1, 3.6, 4.1;
3.1, 3.6, 4.1];
wantedOutput = [ 1, 10, 3;
50, 5, 6];
想要的输出由 s 中的原始值组成,targetMatrix
其中NaN
s 填充有referenceMatrix
, 即10
和中最接近的(在空间中)值50
。
解决方案
推荐阅读
- php - 使用 BaseController 检查字段
- c# - Dapper 和大于 decimal.MaxValue 的值
- html - 从 url 下载 html 并将 tem 保存在文件夹中
- excel - 在 Z 列之后不复制数据
- scala - scala play 项目 - Kamon 的问题
- c# - HPC Pack 2019 - C# 调度程序类无法连接到“localhost”
- amazon-web-services - 如果它安装在我的 EC2 虚拟机上,我可以在 docker 容器中使用亚马逊 ecr 凭证助手吗?
- python - 如何解析嵌套的 TLV 结构
- python - 在 exec() 中使用 ctypes 导入时“未定义名称‘c_byte’”
- python - 如何使用 pyinstaller 在二进制文件中包含 QtVirtualKeyboard?