gpt4 book ai didi

gis - 展平/溶解/合并整个 shapefile

转载 作者:行者123 更新时间:2023-12-04 21:40:56 26 4
gpt4 key购买 nike

我一直在用ogr2ogr用 shapefile 做我需要的大部分事情(包括溶解它们)。然而,我发现对于大的来说,这需要很长时间。

这是我正在做的一个例子:
ogr2ogr new.shp old.shp -dialect sqlite -sql "SELECT ST_Union(geometry) FROM old"
在某些情况下,人们可能想要溶解常见的相邻形状(我认为在上面的命令中就是这样做的)。 但是,在我的情况下,我只想展平整个文件和其中的每个形状,而不管值如何(我已经隔离了我需要的形状)。

  • 当您不需要关心值并且只想要一个勾勒出文件中形状数组的形状时,是否有更快的方法来做到这一点?
  • 最佳答案

    如果您已隔离这些形状,并且它们没有任何共享边界,则可以使用 ST_Collect 轻松地将它们收集到单个 MULTIPOLYGON 中。这应该非常快速且简单:

    ogr2ogr gcol.shp old.shp -dialect sqlite -sql "SELECT ST_Collect(geometry) FROM old"

    如果几何重叠且边界需要“溶解”,则必须使用 ST_Union。更快的空间联合是通过级联联合技术完成的, described here for PostGIS .它是由 OGR 支持的,但它似乎并没有优雅地完成。

    这是一个两步 SQL 查询。首先使用 ST_Collect 对所有内容进行 MULTIPOLYGON(这很快),然后进行自联合,这应该会触发 UnionCascaded()称呼。
    ogr2ogr new.shp old.shp -dialect sqlite -sql "SELECT ST_Union(gcol, gcol) FROM (SELECT ST_Collect(geometry) AS gcol FROM old) AS f"

    或者为了更好地查看实际的 SQL 语句:
    SELECT ST_Union(gcol, gcol)
    FROM (
    SELECT ST_Collect(geometry) AS gcol
    FROM old
    ) AS f

    关于gis - 展平/溶解/合并整个 shapefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29701086/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com