• PostGIS 爆管分析管网、阀门数据处理,并导出shp


    背景

    在做爆管分析时,需要制作一些模拟数据。
    我先制作了一些管网以后,再将阀门数据放到管网上

    操作

    数据处理:

    1. 创建x1,y1字段
      ALTER TABLE fm ADD COLUMN x1 double precision;
      ALTER TABLE fm ADD COLUMN y1 double precision;

    2. 将管网表表x1、y1字段更新到阀门表,这里因为是模拟数据,所以思路是将gid相等的管网和阀门放一起
      update fm a set x1 = b.x1,y1=b.y1 from zy b where a.gid = b.gid

    3. 检查数据更新对不对
      select a.gid,a.x1,a.y1,b.gid,b.x1,b.y1 from fm a left join zy b on a.gid =b.gid

    4. 将x1、y1坐标更新到geom字段
      update fm set geom = ST_Geometryfromtext('point('||x1||' '||y1||')',3857);
      --POINT(12678475.5121968 2624441.96137548)

    5. 查看阀门是否都在管网上
      select a.gid from fm a,(select c.* from zy c ) b where ST_intersects(a.geom,b.geom)

    导出
    1. 数据更新完了以后,我需要将postgis中的数据导出成shp,以便去arcmap中查看
      故用到postgis插件的导出工具pgsql2shp
      [root@localhost ~]# yum install postgis25_12-utils postgis25_12-client postgis25_12 -y
    2. 检验是否安装成功
      [root@localhost ~]# pgsql2shp --help
    3. 导出
      [root@localhost ~]# pgsql2shp -f /data/fm.shp -h 192.168.1.** -u postgres -P password gw_iocs "select * from fm";
      导出结果
  • 相关阅读:
    操作系统进程调度策略
    runnable & callable
    leetcode 124 二叉树中的最大路径和
    leetcode 24 两两交换链表中的节点
    leetcode 93 复原IP地址
    C++ 11 move
    leetcode 64 最小路径和
    leetcode 1143 最长公共子序列
    leetcode 528 按权重随机选择
    数据挖掘面试题(1)
  • 原文地址:https://www.cnblogs.com/giser-s/p/12396810.html
Copyright © 2020-2023  润新知