如何从高程栅格中近似计算出矢量轮廓?

11
我有一个以光栅形式存储的高程图。我想要将平滑的“向量”曲线拟合到恒定高程的等高线上。在我的应用程序中,数据实际上是地理高程,但这个问题可以推广到任何两个变量的函数。
如果需要,我可以生成另一张带有反锯齿轮廓线的光栅图像,并将其用作矢量拟合过程的输入。
这个问题与这个问题相似,但我正在寻找一个可以在我的Java应用程序中使用的免费库,或者我(一个非数学家)可以自己实现的算法说明。此外,在我的情况下,我已经找到了所有我关心的“边缘”,我只需要将它们转换成矢量形式。
另一个问题涉及到了我的问题,但发帖者从未回来解释他如何实现最后一步,这正是我所缺少的部分。

2
不幸的是,谷歌搜索大多数情况下都会出现关于如何在ARCgis或Mapview中执行此操作的页面。 - Paul Tomblin
3个回答

3
您可能希望适合封闭的贝塞尔样条曲线。

有一个带有Java小程序可以完成这样的拟合。看看他们(未注释的)PSegment.java

如果这做得不够好,通过平方距离最小化将B样条曲线拟合到点云应该是过度解决问题。

欲了解更多信息,请使用Google(学者)搜索“b-spline拟合”和“封闭贝塞尔样条曲线”等内容。


2

1

我使用GDAL。在我看来,您可能不想创建贝塞尔样条曲线,因为这会增加复杂性。短线段已经足够好了。

唯一的问题是您必须在数据准备时间创建等高线,而不是在Java应用程序中创建。

这是一张地图,使用GDAL从USGS高程数据创建了一些等高线:

enter image description here


你能提供GDAL中轮廓的示例或链接吗? - Shoaib Ijaz
请参考 http://www.gdal.org/gdal_contour.html。不幸的是,我没有三年半之前的示例。 - Graham Asher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接