我有一个由左下角和右上角坐标定义的特定地理区域。如何将该区域划分为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)之间的距离是20km。当我测量点(x2,y1)到(x2,y1_del1)之间的距离时,距离是< 20公里。上面的meshgrid函数确实创建了网格。但距离并不一致。有任何想法如何克服这个问题?
答案 0 :(得分:0)
请记住,地球表面20公里是一个非常短的距离,大约.01弧度 - 所以你所看到的区域对于任何非科学的东西来说都是近似的。假设它是科学的...
要获得除meshgrid中的单调步骤之外的其他内容,您应该创建一个函数,该函数将所需的(x,y)作为其输入,并将其相对于(x_0,y_0)和(x_max,y_max)以您选择的单位进行映射。这是一个内联函数,演示了使用函数进行meshgrid步骤的想法
step=inline('log10(x)');
[x,y]=meshgrid(step(1:10),step(1:10));
image(255*x.*y)
colormap(gray(255))
那么你如何确定该功能应该是什么?如果没有关于数据集的外观,如何与其进行交互以及您的准确性要求的更多信息,我们很难准确回答。如果您可以访问每个点的实际位置,则应一次改变一个维度(例如,如果数据网格与纬度网格对齐),并使用曲线拟合模型选择技术(akaike / bayes标准)找到最适合您数据的功能。