相关疑难解决方法(0)

如何计算二维多边形的面积?

假设2d空间中的一系列点不是自相交的,那么确定结果多边形面积的有效方法是什么?

作为旁注,这不是作业,我不是在寻找代码.我正在寻找一个可以用来实现我自己的方法的描述.我有关于从点列表中拉出一系列三角形的想法,但我知道有一些关于凸多边形和凹多边形的边缘情况我可能无法捕捉到.

algorithm geometry 2d

75
推荐指数
4
解决办法
6万
查看次数

使用值列从 GPS 数据创建插值多边形

我有一些 GPS 数据,其中每个点都有一个值(就像空气质量一样)。我可以绘制这些点,例如用大叶,并将值映射到圆的大小,如下所示:

import pandas, numpy, folium
lat = numpy.random.uniform(45, 45.01, 250)
lon = numpy.random.uniform(3, 3.02, 250)
value = numpy.random.uniform(0,50,250)
df = pandas.DataFrame({'lat': lat, 'lon': lon, 'value': value})
mymap = folium.Map(location = [lat.mean(), lon.mean()], tiles="OpenStreetMap", zoom_start=14)
for elt in list(zip(df.lat, df.lon, df.value)):
    folium.Circle(elt[:2], color="blue", radius=elt[2]).add_to(mymap)
mymap.save('mymap.html')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想处理这些数据,对其进行插值并创建一个 shapefile 作为输出,其中插值的多边形包含平均值并显示高值和低值区域(右侧的假图片)。当然,多边形的限制将通过插值自动生成。

我怎样才能实现这个目标?因为我尝试过在 folium 中使用 HeatMap 工具,但它的设计目的是插值点的密度,而不是与每个点关联的值!我希望它不会太复杂。谢谢,注意:我使用 folium,但我对其他 python 库没问题。

python interpolation raster dataframe folium

2
推荐指数
1
解决办法
2007
查看次数

带有(x,y)坐标列表的多边形区域

考虑到过去在stackoverflow中提供了解决方案,我要求python代码计算带有(x,y)坐标列表的多边形区域,这似乎有点奇怪.但是,我发现所提供的所有解决方案都对给定的(x,y)坐标列表的顺序很敏感.例如,使用下面的代码查找多边形的区域:

def area(p):
    return 0.5 * abs(sum(x0*y1 - x1*y0
                             for ((x0, y0), (x1, y1)) in segments(p)))

def segments(p):
    return zip(p, p[1:] + [p[0]])


coordinates1 = [(0.5,0.5), (1.5,0.5), (0.5,1.5), (1.5,1.5)]
coordinates2 = [(0.5,0.5), (1.5,0.5), (1.5,1.5), (0.5,1.5)]

print "coordinates1", area(coordinates1)
print "coordinates2", area(coordinates2)
Run Code Online (Sandbox Code Playgroud)

这回来了

coordinates1 0.0
coordinates2 1.0  #This is the correct area
Run Code Online (Sandbox Code Playgroud)

对于同一组坐标但具有不同的顺序.我如何纠正这个问题,以便获得非交叉全多边形的区域,其中包含我想要制作成非交叉多边形的随机(x,y)坐标列表?

编辑:我现在意识到可以存在来自一组坐标的多个非交叉多边形.基本上我使用scipy.spatial.Voronoi来创建Voronoi单元格,并且我希望在将坐标提供给scipy Voronoi函数后计算单元格的面积 - 遗憾的是,函数并不总是按照顺序输出坐标将允许我计算正确的面积.

python geometry list

1
推荐指数
1
解决办法
904
查看次数

标签 统计

geometry ×2

python ×2

2d ×1

algorithm ×1

dataframe ×1

folium ×1

interpolation ×1

list ×1

raster ×1