2

我有一个由左下角和右上角坐标定义的地理区域。我如何将此区域划分为 20x20km 的区域。我的意思是实际上地球的形状不是扁平的,而是圆形的。边界框只是一个近似值。它甚至不是真正意义上的矩形。这只是一个假设。假设左下坐标由 x1,y1 给出,右上坐标由 x2,y2 给出,y1 处 x1 到 x2 的长度与 y2 处 x1 到 x2 之间的长度不同。我该如何克服这个问题

实际上,我必须使用 matlab 的 meshgrid 函数为这个区域创建一个空间网格网格。这样网格的面积为 20x20km。

meshgrid(x1:deltaY:x2,y1:deltaX:y2)

如您所见,我只能拥有一个 deltaX 和一个 deltaY。我想选择 deltaX 和 deltaY 以便增量创建大小为 20x20km 的网格。然而,这个 deltaX 和 deltaY 应该根据位置而变化。有什么建议么?

我的意思是说 deltaX=del1。然后点 (x1,y1) 到 (x1,y1+del1) 之间的距离为 20 公里。但是当我测量点 (x2,y1) 到 (x2, y1_del1) 之间的距离时,距离小于 20 公里。上面的 meshgrid 函数确实创建了网格。但距离并不一致。任何想法如何克服这个问题?

4

1 回答 1

0

请记住,地球表面 20 公里的距离非常短,大​​约为 0.01 弧度 - 因此,对于任何非科学领域,您所看到的区域都将近似为平坦的。假设它是科学的...

要在 meshgrid 中获得除单调步骤之外的其他内容,您应该创建一个函数,该函数将您想要的 (x,y) 作为其输入,并将其相对于您选择的单位中的 (x_0,y_0) 和 (x_max,y_max) 映射。这是一个内联函数,演示了将函数用于网格网格步骤的想法

step=inline('log10(x)');
[x,y]=meshgrid(step(1:10),step(1:10));
image(255*x.*y)
colormap(gray(255))

那么你如何确定函数应该是什么?如果没有更多关于您的数据集是什么样子、您如何与之交互以及您的准确性要求是什么的更多信息,我们很难准确地回答这个问题。如果您可以访问每个点的实际位置,则应一次更改一个维度(例如,如果您的数据网格与您的纬度网格对齐)并使用模型选择技术(akaike/bayes 标准)进行曲线拟合为您的数据找到最佳功能。

于 2012-07-01T14:11:37.187 回答