将gis数据从一个postgis表转换为另一个postgis表以简化的最佳方法

时间:2017-03-23 14:48:29

标签: database postgresql postgis qgis

我已将大量的shapefile转储到postgis数据库中,并将通过QGIS将其用于GIS应用程序。现在,我已经开发了一个数据字典,对于最终用户来说,在整理收集数据上是合理且直观的。因此,这就是生成初始表的方式,最终用户在Trimble上是最优先考虑的。现在,当我在qgis中使用此收集的数据时,显示某些要素类上的选定点的属性列不是很简单。

例如,我们是一个管道实用程序,我设置了三边形,这样当它们选择一个标称管道直径时,它会根据管道尺寸给出不同壁厚的选项。这适用于修剪,但是我在地图中为每个管道获得8或9个空白值。所以,如果我选择2" main,属性显示尺寸,以及每个尺寸的壁厚字段,从3/4和#34;到10"但唯一有价值的是2"。我想做的是创建一个简化了这个的新表,然后运行包含Trimble生成数据的表中的数据,并将其转储到新表中。这不仅需要从一个postgres表中导入数据,而且还需要从#34; Main"在db" GIS"进入一张新桌子" Main"在我的试用数据库中,但还需要一些代码来搜索列等等,以找到那个不是空的,并将其发送到新表的壁厚列。

我有几个属性,有几个有这些问题的表,但我想如果有人可以帮助或至少指出我在这个特定情况下的正确方向,我可以做其余的。在我们准备开始推出之前,这是我构建GIS的最后一步,如果有人能帮我清理一下,我真的很感激。

我有pgadmin 4,qgis 2.18,关于SQL的一些知识,可以从命令行操作数据,我看到qgis有一个内置的python控制台,可以提供帮助。我知道python有点,如果最好的路线通过它可能会过去。关于我自己的一些信息,可以帮助你们确定我最好的路线。再次感谢!

P.S。我已经为" Main"添加了我现有数据结构的图片。 qgis中的功能,以及新表格的图片我想填充" Main"命令行中的功能。 http://imgur.com/a/bkUqS

1 个答案:

答案 0 :(得分:0)

我自己是一名管道测量师,是一位自学成才的程序员。所以我希望我理解你困境的第一部分。每根管子可以具有不同的壁厚值。示例:主线管道为0.250,并表示所有道路孔和HDD管道为0.300墙壁,用于厚壁管道。 在您对“原始”的查询中您首先拥有的字段数据,可以尝试类似

的内容
SELECT * 
FROM your_table
WHERE wall_thickness_value IN (0.250,0.300)

由于没有管道通常会有两个壁厚值,而它们之间没有某种类型的过渡焊接,希望这个查询将获取该管道的实际值,而不是返回所有空值。