1、修改“计算边界框”的计算方式,以排除偏远岛屿。
你可以将每个国家的 MultiPolygon 拆分为单独的 Polygon 对象,然后检查每个多边形的面积,排除那些小于给定总面积值的多边形。
2、使用世界边界数据集创建一个新的形状文件,其中每个国家由一个包含其地理中心的单一“点”几何图形表示。
可以从之前计算的国家边界框开始,然后使用以下公式计算中点:
-
midLat = (minLat + maxLat) / 2 -
midLong = (minLong + maxLong) / 2
若要增加挑战难度,可以使用 Shapely 的 centroid() 方法来更精确地表示每个国家的中心。为此,需要将国家轮廓转换为 Shapely 几何图形,计算质心,然后在将质心保存到输出形状文件之前,将其转换回 OGR 几何图形。
3、扩展前面的直方图示例,使其仅包含落在选定国家轮廓内的高度值。
- 高效实现这一点可能有难度。
- 一个好的方法是确定构成国家轮廓的每个多边形的边界框,然后遍历该边界框内的DEM坐标。
- 接着可以使用
polygon.contains(point)检查给定坐标是否确实在国家轮廓内,并且仅当该点确实在国家轮廓内时,才将高度添加到直方图中。
4、优化“识别附近公园”示例,使其能在处理更大数据集时快速运行。
一种可能的方法是计算每个城市区域周围的矩形边界框,然后将该边界框在 北、南、东、西 四个方向上按所需的角距离进行扩展。这样,在调用耗时的 polygon.contains(point) 函数之前,就可以快速排除所有不在该边界框内的点。

最低0.47元/天 解锁文章
10万+

被折叠的 条评论
为什么被折叠?



