【问题标题】:Teradata Geospatial - Multipolygon / polygon table creationTeradata Geospatial - 创建多多边形/多边形表
【发布时间】:2021-11-08 21:45:07
【问题描述】:

亲爱的, 我有一个表,每个 id 都有点,我们需要用这些数据在 teradata 中创建一个多面或多边形表

table :
id    x-point   y -points 
100     10         25      
100     12         28
100    100        250 
101    110        125 
101    120        129

需要在 teradata 中为每个 id 以多多边形或多边形作为几何数据类型创建一个表

输出表应该是

id     Geometry
100    multipolygon ( (10 25,12 28, 100 250) )
101    polygon(( 110 125, 120 129))

任何人都可以帮助我进行地理空间查询以实现此结果

【问题讨论】:

    标签: teradata geospatial polygon


    【解决方案1】:

    有一个AggGeom 表运算符,可用于将多行与地理空间对象组合:

    SELECT id, geom
    FROM AggGeom
     ( ON 
        ( 
          SELECT new ST_Geometry('point(' || trim(x_point) ||' ' || trim (y_point) || ')')  as geom, id
          FROM vt
        ) 
       PARTITION BY id
       USING Operation('Union') 
     ) AS dt;
    

    但这将返回一个 MULTIPOINT,而不是一个 POLYGON,至少是一个 MULTIPOLYGON

    geom.st_ConvexHull() 可能是你能得到的最接近的。

    【讨论】:

    • 非常感谢您的回复,当我使用包含 200 万行的数据时显示错误消息:太多数据传递到可变最大长度 UDT 实例中。有没有其他方法可以避免这个问题
    • ST_Geometry 限制为 16 MB,但每个 PARTITION 列 -> 每个 id 必须有非常多的行。
    • 我将再次检查数据,您能否建议如何将多点转换为多面体或多边形。这个地理空间对我来说很新。请建议
    • 正如我所写:SELECT id, geom.st_ConvexHull() 将计算包络多边形,这可能适用于您有限的示例数据,但不适用于大量点。在您的数据中,这些点的连接方式没有顺序,例如(10 25,12 28, 100 250)(12 28, 10 25, 100 250) 不同。有适用于 Python 或 R 的 GIS 包,它们可能能够执行您想要的操作,并且可以从 Phyton/R 连接到 Teradata 或使用 ScriptExecR 表运算符功能从 Teradata 使用它们。
    • 我在地理空间方面的知识也很有限 :-) 您最好与组织中具有该领域经验的人联系,了解如何将点转换为多边形
    猜你喜欢
    • 2013-12-11
    • 2018-12-13
    • 2016-09-02
    • 1970-01-01
    • 2013-03-20
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多