当前位置: 首页 > 面试题库 >

计算地球表面上任意多边形包围的面积

南宫才艺
2023-03-14
问题内容

假设我有一组任意的纬度和经度对,它们代表一些简单的闭合曲线上的点。在笛卡尔空间中,我可以使用格林定理轻松计算出此类曲线所包围的面积。计算球体表面面积的类似方法是什么?我想我所追求的是Matlabareaint函数背后的算法(甚至是近似算法)。


问题答案:

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

1)整合纬度带的贡献。此处每个条带的面积为(Rcos(A)(B1-B0))(RdA),其中A为纬度,B1和B0为起点和终点经度,所有角度均以弧度为单位。

2)将表面分成球形三角形,并使用吉拉德定理计算面积,并将其相加。

3)正如詹姆斯·谢克(James Schek)在这里建议的那样,在GIS工作中,他们使用保留投影到平坦空间上的面积并计算该面积。

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

编辑–比较这两种方法:

初次检查时,球形三角形方法似乎最简单,但通常情况并非如此。问题在于,不仅需要将区域分解为三角形,而且还需要将球形分解为球形三角形,即边长为大圆弧的三角形。例如,纬度边界不符合条件,因此需要将这些边界分解为更好地近似大圆弧的边缘。对于大圆弧需要特定球面角度组合的任意边缘,这变得更加困难。例如,考虑一个人如何分解一个球体的中间带,说介于lat 0和45deg之间的所有区域都变成球形三角形。

最后,如果对每种方法正确地使用相似的错误来做到这一点,则方法2将给出较少的三角形,但将更难确定。方法1给出了更多的条带,但是确定起来很简单。因此,我建议将方法1作为更好的方法。



 类似资料:
  • 问题内容: 标题基本上说明了一切。我需要使用Python计算地球表面上的多边形内部的面积。计算地球表面上任意多边形所围成的面积虽然可以说明这一点,但在技术细节上仍然含糊不清: 如果要使用更“ GIS”的样式来执行此操作,则需要为您的区域选择一个度量单位,并找到保留该区域的适当投影(并非全部如此)。由于您正在谈论计算任意多边形,因此我将使用类似Lambert Azimuthal等面积投影的方法。将投

  • 问题内容: 我搜索了有关如何计算地球多边形表面积的解释和算法。我发现了这个,这 说我已经凸出了船体点 从第二个链接开始,第一个答案使用Python库,而第二个答案的方法即使我们假设地球是球形,也不会给出非常精确的区域(我是对的)吗?如果我们假设地球是球形,我可以采取什么方法来计算面积(便宜些)? 另外,我寻找了不同的库(geotools.org等),但是在它们有关面积计算的文档中找不到。 问题答案

  • 这更多的是一个方法问题,而不仅仅是技术问题。 我有一个生成的球体,分解成六边形作为一个网格。每一个六边形瓷砖都是一种不同的地形,例如,山,丘陵,海洋,飞机等。我想在3D中把每一种地形类型画成几个网格的集合,代表一种相应的地形类型。 现在最大的问题是如何在运行时将地形网格调整到每个六边形面,这取决于地形类型,在运行时地形类型也会发生变化,例如,地形变形。同时,考虑到六边形并不是完全正则或相等的。 缩

  • 我使用Python 3.4和shapely 1.3.2创建一个多边形对象的长/lat坐标对列表,我转换成一个众所周知的文本字符串,以便解析它们。这样的多边形可能看起来像: 由于shapely不处理任何投影并实现carthesian空间中的所有几何体对象,因此对该多边形调用area方法,如: 以平方度为单位给出多边形的面积。为了得到以平方米为单位的平面面积,我想我必须使用不同的投影变换多边形的坐标(

  • 总结: 我试图在r中计算大量多边形的面积。我读过几篇关于如何做的文章(例1 扩展说明: 我实际上是在计算澳大利亚维多利亚州的房产面积。多边形表示这些属性。我从Spatial Datamart下载了所有维多利亚州的VicMaps简化模型1和2。然而,考虑到形状文件的大小,我不得不将搜索范围缩小到一个地方政府区域(LGA),并计算多边形区域(仅用于测试)。形状文件为15.5MB。 这是有效的,但它不是

  • 本文向大家介绍Java多边形重心计算,包括了Java多边形重心计算的使用技巧和注意事项,需要的朋友参考一下 多边形重心计算 三角形重心 顶点为a,b,c的三角形重心为x = (xa + xb + xc) / 3,y = (ya + yb + yc) / 3 多边形重心 x = (x1w1 + x2w2 + … + xnwn)/W y = (y1w1 + y2w2 + … + ynwn)/W 总结