计算地球表面上任意多边形所包围的区域 [英] Calculating area enclosed by arbitrary polygon on Earth's surface

查看:128
本文介绍了计算地球表面上任意多边形所包围的区域的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有一组任意的纬度和经度对,代表一些简单的闭合曲线上的点。在笛卡尔空间中,我可以使用格林定理很容易地计算出这条曲线所包围的面积。计算球体表面面积的类似方法是什么?我猜我以后的(甚至是一些近似的)算法背后的算法 Matlab的 areaint 函数

解决方案

有几种方法可以做到这一点。



1)整合来自纬度带的贡献。这里每个地带的面积将是(Rcos(A)(B1-B0))(RdA),其中A是纬度,B1和B0是开始和结束经度,所有角度都是弧度。



2)将曲面分解为球形三角形 ,然后使用 Girard's Theorem 计算该区域,并将其添加。

$ 3)正如James Schek在GIS工作中所建议的那样,他们使用一个面积保留投影到一个平面空间并计算其中的面积。



从数据描述中,听起来像第一种方法可能是最简单的。 (当然,也可能有其他更简单的方法我不知道。)



有一个这篇文章,如果你有权限访问,但我碰到它的搜索引擎 ,所以我猜他们正在使用上面的方法1.

编辑 - 比较这两种方法:



首次检查时,似乎球形三角形方法最容易,但通常情况并非如此。问题在于,不仅需要将该区域分解成三角形,而且还要分解成球形三角形,即三角形的两边都是大圆弧。例如,横向边界不符合,所以这些边界需要分解成更接近大圆弧的边。对于大圆圈需要特定球面角度组合的任意边缘而言,这变得更加困难。例如,考虑一下如何分解一个球体周围的中间带,比如纬度0到45之间的所有区域都变成球形三角形。

最后,如果一种是针对每种方法使用类似的错误正确地做到这一点,方法2将减少三角形,但它们很难确定。方法1给出了更多的条带,但是它们确定是微不足道的。因此,我建议方法1是更好的方法。


Say I have an arbitrary set of latitude and longitude pairs representing points on some simple, closed curve. In Cartesian space I could easily calculate the area enclosed by such a curve using Green's Theorem. What is the analogous approach to calculating the area on the surface of a sphere? I guess what I am after is (even some approximation of) the algorithm behind Matlab's areaint function.

解决方案

There several ways to do this.

1) Integrate the contributions from latitudinal strips. Here the area of each strip will be (Rcos(A)(B1-B0))(RdA), where A is the latitude, B1 and B0 are the starting and ending longitudes, and all angles are in radians.

2) Break the surface into spherical triangles, and calculate the area using Girard's Theorem, and add these up.

3) As suggested here by James Schek, in GIS work they use an area preserving projection onto a flat space and calculate the area in there.

From the description of your data, in sounds like the first method might be the easiest. (Of course, there may be other easier methods I don't know of.)

There is a paper on this, if you have access, but I bumped into it googling for "longitudinal strips", so I'd guess they're using method 1 above.

Edit – comparing these two methods:

On first inspection, it may seem that the spherical triangle approach is easiest, but, in general, this is not the case. The problem is that one not only needs to break the region up into triangles, but into spherical triangles, that is, triangles whose sides are great circle arcs. For example, latitudinal boundaries don't qualify, so these boundaries need to be broken up into edges that better approximate great circle arcs. And this becomes more difficult to do for arbitrary edges where the great circles require specific combinations of spherical angles. Consider, for example, how one would break up a middle band around a sphere, say all the area between lat 0 and 45deg into spherical triangles.

In the end, if one is to do this properly with similar errors for each method, method 2 will give fewer triangles, but they will be harder to determine. Method 1 gives more strips, but they are trivial to determine. Therefore, I suggest method 1 as the better approach.

这篇关于计算地球表面上任意多边形所包围的区域的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆