• 金仓数据库 KingbaseES V8 GIS 数据迁移方案(5. 第三方通用格式 GIS 数据迁移到 KES)


    5. 第三方通用格式GIS数据迁移到KES

    本章主要介绍如何将第三方通用GIS数据的迁移入库到KES,包括矢量、栅格等数据。

    5.1. 通用GIS数据文件的迁移入库

    本节主要介绍将矢量数据(Esri Shapefile格式,简称shp)和栅格数据(TIF格式)迁移到KES的方案。

    • 矢量数据:提供两个转换工具, shp2pgsql和pgsql2shp。

    Esri Shapefile是ESRI公司的矢量数据格式,同时也是通用的数据格式之一,其由多个文件组成:SHP描述几何特征;SHX描述形状的位置和索引;DBF描述属性数据等。

    1. shp2pgsql和pgsql2shp

    shp2pgsql和pgsql2shp是KGIS对shapefile文件与数据库之间进行转换的工具,下面以shp2pgsql为例说明。

    使用方法如下:

    shp2pgsql -s 3857 -a -W GBK 文件名.shp 命名空间名.表名 | psql -h localhost -U postgres -d 数据库名 -p 5432
    

    其中,命令中的参数含义如下:

    参数   含义
    -s  空间参考标识符(SRID)
       (d|a|c|p)这些是互斥选项,只能选择其中之一:
       -d  重新建立表,并插入数据
       -a  在同一个表中增加数据
       -c  建立新表,并插入数据(缺省)
       -p  只创建表
    -g  指定要创建的表的空间字段名称(在追加数据时有用)
    -D  使用dump方式,比缺省生成sql的速度快
    -G  使用类型geography
    -k  保持标识符(列名,模式,属性)大小写。
    -i  将所有整型都转为标准的32-bit整数
    -I  在几何列上建立GIST索引
    -S  生成简单几何,而非MULTI几何
    -t  指定几何的维度
    -w  指定输出格式为WKT
    -W  输入的dbf文件编码方式
    -N  指定几何为空时的操作
    -n  只导入dbf文件
    -T  指定表的表空间
    -X  指定索引的表空间
    -?  帮助
    
    • 栅格数据:

    1. raster2pgsql

    KGIS提供支持通用栅格数据文件的迁移,栅格数据格式为GDAL支持的数据格式,KGIS提供raster2pgsql工具,用于栅格数据的导入导出,下面以raster2pgsql说明。

    使用方法如下:

    raster2pgsql [] [ [ ...]] [[.]]
    
    -s  空间参考id,必须设置,如 -s 4326
    -b  要提取的栅格波段.不设置则写入所有波段,从1开始,如要提取多个用,号隔开,如 -b 1,2
    -t  栅格切片大小,格式为WIDTHxHEIGHT.,不设置则不切片,导入后只有一行数据.切片后每一片一行,如 -t 256*256
    -P  自动填充瓦片右下角.有些瓦片的有效数据可能达不到-t指定的大小,因此需要自动补填充,确保所有瓦片具有相同的宽度和高度,只有切片才需要设置,如 -P
    -R  注册栅格的db文件,提供db文件的绝对路径
       (d|a|c|p)这些是互斥选项,只能选择其中之一:
     -d 删除该表, 然后重新创建
     -a 追加到当前表中, 图层字段必须与表架构完全相同
     -c 创建一个新表并填充它, 如果不指定任何选项, 这是默认值
     -p 准备模式, 只创建表
    -f  <column>指写raster列名称,如 -f rast
    -F  在栅格表中添加列名称字段,列名称默认为filename,用于存储删除文件名(不包含路径),如 -F
    -n  <column> 与-F参数作用相同,只是允许自定义文件列的列名称,如 -n "fname"
    -l  <overview factor> 未用过,具体用途有用过的欢迎补充.创建栅格的覆盖因子.对于超过多个因素用逗号,分开.覆盖表名如下模式"o_<overview factor>_<table>".创建的覆盖因子是存储在数据库中,不受-R参数影响
    -I  在栅格列上创建GIST 空间索引
    -M  导入完成后运行VACUUM ANALYZE.
    -C  在加载栅格后设置栅格列上的标准约束集,如果一个或多个栅格违反约束,某些约束可能会失败
    -x  禁用设置最大范围约束,只有在使用了-C时才有效
    -r  设置约束(空间唯一和覆盖磁贴) 以进行常规阻塞,只有在使用了-C时才有效
    -T  <tablespace> 指定使用的表空间,索引如未使用-X 标志将使用默认表空间 ,如-T "tabspace"
    -X  <tablespace> 指定使用的索引表空间,不设置将使用默认表空间,如-X "idxtabspace"
    -N  <nodata> 非数据值,用于没有 NODATA 值的波段.
    -k  跳过每个栅格波段的NODATA值检查
    -E  <endian> 指栅格生成二进制时是大端(big-endian)生成还是小端生成(little-endian),使用0表示XDR,使用1表示NDR(默认值),目前仅支持NDR,如-E 1
          little-endian为网络数据表示NDR
          big-endian为外部数据表示XDR
    -V  <version> 指定输出WKB格式的版本,默认是0,目前仅支持0,如-V 0
    -e  单独执行每个语句,不要使用事务
    -Y  使用COPY语句而不是插入语句
    -G  打印支持的 GDAL 栅格格式
    -?  打印帮助
    <div class="hide-preCode-box"><span class="hide-preCode-bt" data-report-view="{"spm":"1001.2101.3001.7365"}"><img class="look-more-preCode contentImg-no-view" src="https://1000bd.com/contentImg/2022/06/27/191644837.png" alt="" title=""></span></div></pre> 
    </blockquote> 
    <h2><a name="t2"></a>5.2. 迁移结果验证</h2> 
    <p>1)可视化校验</p> 
    <blockquote> 
     <ol><li> <p>显示验证:QGIS软件中,将迁移后的数据拖到数据窗口。数据显示如下图:</p> </li></ol>
     <p class="img-center"><img alt="" src="https://1000bd.com/contentImg/2022/08/10/174131661.png"></p> 
     <p><em>图 5.2.6 </em>数据显示</p> 
     <ol><li> <p>操作验证:验证数据正确性,采用对迁移数据进行增、删、改、查等功能验证,如进行函数分析判断结果正确性。</p> </li><li> <p>应用程序验证:运行与迁移数据相关的应用程序,验证数据正确性。</p> </li></ol>
    </blockquote> 
    <h2><a name="t3"></a>5.3. 常见问题汇总(FAQ)</h2> 
    <ol><li> <p>通用数据格式迁移有限制吗?</p> </li></ol>
    <blockquote> 
     <p>答:shp2pgsql和pgsql2shp两个工具只针对shapefile文件格式进行操作。</p> 
     <p>raster2pgsql工具支持栅格数据格式为GDAL支持的数据格式。</p> 
     <p> </p> 
    </blockquote>
                    </div>
                        </div>
                    </li>
    
                    <li class="list-group-item ul-li">
    
                        <b>相关阅读:</b><br>
                        <nobr>
    <a href="/Article/Index/1185818">狂奔的低代码,画风各异的阿里云、腾讯云</a>                            <br />
    <a href="/Article/Index/812937">Lombok工具 : 常用注解介绍 (全)</a>                            <br />
    <a href="/Article/Index/784321">字体属性 font</a>                            <br />
    <a href="/Article/Index/1461809">van-popup滑动卡顿并且在有时候在ios上经常性滑动卡顿的情况</a>                            <br />
    <a href="/Article/Index/922325">【Linux守护进程】一、进程组与会话</a>                            <br />
    <a href="/Article/Index/1140330">华为机试 - 约瑟夫问题</a>                            <br />
    <a href="/Article/Index/1440499">CH11_重构API</a>                            <br />
    <a href="/Article/Index/1058096">RabbitMQ</a>                            <br />
    <a href="/Article/Index/770439">Nginx基础篇-Nginx的编译参数</a>                            <br />
    <a href="/Article/Index/1278197">商品分类显示scroll-view布局实现</a>                            <br />
                        </nobr>
                    </li>
                    <li class="list-group-item from-a mb-2">
                        原文地址:https://blog.csdn.net/arthemis_14/article/details/126171112
                    </li>
    
                </ul>
            </div>
    
            <div class="col-lg-4 col-sm-12">
                <ul class="list-group" style="word-break:break-all;">
                    <li class="list-group-item ul-li-bg" aria-current="true">
                        最新文章
                    </li>
                    <li class="list-group-item ul-li">
                        <nobr>
    <a href="/Article/Index/1484446">攻防演习之三天拿下官网站群</a>                            <br />
    <a href="/Article/Index/1515268">数据安全治理学习——前期安全规划和安全管理体系建设</a>                            <br />
    <a href="/Article/Index/1759065">企业安全 | 企业内一次钓鱼演练准备过程</a>                            <br />
    <a href="/Article/Index/1485036">内网渗透测试 | Kerberos协议及其部分攻击手法</a>                            <br />
    <a href="/Article/Index/1877332">0day的产生 | 不懂代码的"代码审计"</a>                            <br />
    <a href="/Article/Index/1887576">安装scrcpy-client模块av模块异常,环境问题解决方案</a>                            <br />
    <a href="/Article/Index/1887578">leetcode hot100【LeetCode 279. 完全平方数】java实现</a>                            <br />
    <a href="/Article/Index/1887512">OpenWrt下安装Mosquitto</a>                            <br />
    <a href="/Article/Index/1887520">AnatoMask论文汇总</a>                            <br />
    <a href="/Article/Index/1887496">【AI日记】24.11.01 LangChain、openai api和github copilot</a>                            <br />
                        </nobr>
                    </li>
                </ul>
    
                <ul class="list-group pt-2" style="word-break:break-all;">
                    <li class="list-group-item ul-li-bg" aria-current="true">
                        热门文章
                    </li>
                    <li class="list-group-item ul-li">
                        <nobr>
    <a href="/Article/Index/888177">十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!</a>                            <br />
    <a href="/Article/Index/797680">奉劝各位学弟学妹们,该打造你的技术影响力了!</a>                            <br />
    <a href="/Article/Index/888183">五年了,我在 CSDN 的两个一百万。</a>                            <br />
    <a href="/Article/Index/888179">Java俄罗斯方块,老程序员花了一个周末,连接中学年代!</a>                            <br />
    <a href="/Article/Index/797730">面试官都震惊,你这网络基础可以啊!</a>                            <br />
    <a href="/Article/Index/797725">你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法</a>                            <br />
    <a href="/Article/Index/797702">心情不好的时候,用 Python 画棵樱花树送给自己吧</a>                            <br />
    <a href="/Article/Index/797709">通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!</a>                            <br />
    <a href="/Article/Index/797716">13 万字 C 语言从入门到精通保姆级教程2021 年版</a>                            <br />
    <a href="/Article/Index/888192">10行代码集2000张美女图,Python爬虫120例,再上征途</a>                            <br />
                        </nobr>
                    </li>
                </ul>
    
            </div>
        </div>
    </div>
    <!-- 主体 -->
    
    
        <!--body结束-->
        <!--这里是footer模板-->
        
        <!--footer-->
    <nav class="navbar navbar-inverse navbar-fixed-bottom">
        <div class="container">
            <div class="row">
                <div class="col-md-12">
                    <div class="text-muted center foot-height">
                        Copyright © 2022 侵权请联系<a href="mailto:2656653265@qq.com">2656653265@qq.com</a>   
                        <a href="https://beian.miit.gov.cn/" target="_blank">京ICP备2022015340号-1</a>
                    </div>
                    <div style="width:300px;margin:0 auto; padding:0px 5px;">
                        <a href="/regex.html">正则表达式工具</a>
                        <a href="/cron.html">cron表达式工具</a>
                        <a href="/pwdcreator.html">密码生成工具</a>
                    </div>
                    <div style="width:300px;margin:0 auto; padding:5px 0;">
                        <a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010502049817" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;">
                        <img src="" style="float:left;" /><p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;">京公网安备 11010502049817号</p></a>
                    </div>
                </div>
            </div>
        </div>
      
    </nav>
    <!--footer-->
    
        <!--footer模板结束-->
    
        <script src="/js/plugins/jquery/jquery.js"></script>
        <script src="/js/bootstrap.min.js"></script>
    
        <!--这里是scripts模板-->
        
    
        
     
    
    
        <!--scripts模板结束-->
    
    </body>
    </html>