我想制作一个矩阵,其中数据在矩阵中,我可以将矩阵中的每个网格拉出为某个长的纬度点。数据持续了 3 年以上,所以我还需要第三维作为时间。
我现在拥有的是三个 1437x159 双纬度、经度和海冰数据。如何将它们组合成符合我上面提到的标准的 3d 矩阵?基本上,我想能够说,我想要第 47 天 -50S lat 和 50W lon 的数据,并且能够索引到数组并找到答案。
谢谢!
我想制作一个矩阵,其中数据在矩阵中,我可以将矩阵中的每个网格拉出为某个长的纬度点。数据持续了 3 年以上,所以我还需要第三维作为时间。
我现在拥有的是三个 1437x159 双纬度、经度和海冰数据。如何将它们组合成符合我上面提到的标准的 3d 矩阵?基本上,我想能够说,我想要第 47 天 -50S lat 和 50W lon 的数据,并且能够索引到数组并找到答案。
谢谢!
是的——这可以毫不费力地完成。我在跨时间分析大气数据方面做了类似的工作。
根本问题是您的数据按小时组织,网格随时间动态变化,您需要随时间分析数据。我会推荐两种方法之一。
方法 1:网格重采样
这涉及在统一的标准化网格上重新采样网格数据。使用 Matlabndgrid()
函数定义网格,然后使用 对每个点重新采样interp2()
,并连接成统一的 3D 矩阵。然后,您可以使用interp3()
. 这种方法涉及最少的编程,但在重采样过程中会丢失一些原始数据。
方法 2:动态插值
围绕您的数据对象定义一个自定义类包装器,例如“SeaIce”,然后编写您自己的SeaIce.interp3()
方法。该方法将加载每小时的网格信息,首先在横向维度执行插值,然后在时间维度执行插值。这确保不会通过插值丢失任何信息,但需要权衡更多编码。
第二种方法在我的出版物“航空应用中的风分析”中有详细描述(针对风领域)。 此处提供幻灯片。