确定来自shapefile的最小多边形数以覆盖感兴趣的区域


10

我有很多shapefile,它们代表感兴趣的区域,需要使用各种卫星图像源(IKONOS,RapidEye等)进行分析。不幸的是,这些图像没有使用像Landsat这样的路径系统,因此范围差异很大。

我在每个AOI上剪切了shapefile,分别表示不同图像采集的范围,所有这些都已经被认为可以接受。其中一些shapefile具有500个或更多的多边形。

我需要找到一种方法,最好是一种可以自动化的方法(最好是Python和ArcInfo 10,也可以使用FOSS),以确定覆盖我每个感兴趣区域的最少数量的多边形。


3
概括地说,这是一个NP难题,因此可能需要一些功能强大的软件。一种方法是将其构造为整数线性程序:这些多边形将AOI分解为“原子”多边形,并且每个原始多边形要么完全覆盖每个原子多边形,要么不覆盖每个原子多边形。该信息可以被编码为二进制向量。您试图使每个分量的和等于1或更大的向量的数量最小。有关如何解决类似问题的有效示例,请访问mathematica.stackexchange.com/a/6888gis.stackexchange.com/a/27678
ub

Answers:


3

正如胡布指出的那样,将这类问题归纳为一个高质量的解决方案是很棘手的,但是这种方法可能会使您在没有大量工作的情况下就足够亲密。这是基于以下假设的一些伪代码:

  1. 兴趣区A
  2. 一组完全覆盖A的多边形Y

    Start loop
     Iterate through Y
       Select the polygon x from Y that has greatest area of intersection with A
    
     Clip A with polygon x
     Remove x from Y 
     If A is null then end program
    

这样做的想法是,您要迭代地减小与其他兴趣区重叠最多的卫星范围的兴趣区。AOI在每次迭代时都会变小,直到没有任何剩余。这可能不是最佳解决方案,但应该是合理的并且应该运行得很快。


0

好的,因此您具有代表某个区域的区域A和可以定义为集合Y的一堆图像范围。

如果我正确,则可以执行许多不同的功能:

  1. 按区域A裁剪图像范围
  2. 使用范围多边形和完全包含选项按位置进行选择

然后,您可以检查每个区域的面积,并通过使用ArcPy和光标进行一些空间几何排序来确定是否具有自选多边形。

希望对您有所帮助。


1
您能否详细说明如何使用游标?进入时,我认为它会归结为某种方式,但是我无法设计一种方法。我考虑过从区域中的前n个多边形开始,从其余的多边形中消除那些完全包含的多边形,并以此方式继续进行迭代。这可能是一个开始,但是当然那些面积最大的多边形的范围可能不会很大。
乍得·霍金斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.