PostGIS:使用shp2pgsql、pgsql2shp、OGR2OGR函数进行数据导入、导出

数据导入与导出函数

数据库数据导入与导出可以通过多个函数完成,QGIS文档介绍了3个函数: shp2pgsqlpgsql2shpOGR2OGR,分别用于shp导入数据库、数据库文件导出为shp、数据转换为多种数据格式。

(1)shp2pgsql

在linux语法如下所示,其中:-s <SRID>指定空间参考系统标识符(SRID),-c表示将根据 Shapefile 的结构在数据库中创建一个新表,-D是一种更紧凑的 SQL 表示方式来存储数据,-I是在创建的新表上创建空间索引,<schema>.<table>指定了将 Shapefile 数据存储在 PostgreSQL 数据库中的模式和表名;然后将shp2pgsql的输出作为 psql 的输入,在psql中制定了数据库名称、主机名或者IP、用户名信息。

shp2pgsql -s <SRID> -c -D -I <path of shapefile> <schema>.<table> | \
psql -d <databasename> -h <hostname> -U <username> 

在window系统下需要分两步执行,代码参考如下:

shp2pgsql -s <SRID> -c -D -I <path to shapefile> <schema>.<table> > import.sql
psql psql -d <databasename> -h <hostname> -U <username> -f import.sql 
(2)pgsql2shp

pgsql2shp语法参考如下,

pgsql2shp -f <新的shp文件路径> -g <几何列名称> \
-h <主机名> -U <用户名> <数据库名称> <表名 | 视图名> 

此外,可以使用查询语句,这里的 "<查询>"指定要执行的 SQL 查询,查询结果将被导出为 Shapefile。

pgsql2shp -f <新的 Shapefile 路径> -g <几何列名称> \
-h <主机名> -U <用户名> "<查询>"
(3)OGR2OGR

ogr2ogr 是 GDAL 库的一部分,支持多种数据格式,包括但不限于 Shapefile、GML、GeoJSON、SQLite 等。在使用GDAL之前,可以使用gdalinfo --version查看是否安装了GDAL。官网具有详细的教程:https://gdal.org/en/stable/programs/ogr2ogr.html。

这个函数在之前也学习分享过,链接为:GDAL:矢量数据提取-转换-加载(ETL)过程 https://mp.weixin.qq.com/s/9mqrb2Ze0wHKpMA-LixcZA?token=1828476271&lang=zh_CN。在这个分享中,介绍了使用ogr2ogr 结合WHERE语句提取子集、使用CAST() 更改列的数据类型、重命名、SCV转SHP。

此外,QGIS文档中介绍了将表从 PostGIS 导出到 GML,它在这里指定了-f 参数,这个参数用来指定输出的格式。但我们可以省略这个参数,因此GDAL会根据拓展名来推断出要导出的格式。

ogr2ogr -f GML export.gml PG:'dbname=<databasename> user=<username>host=<hostname>' <Name of PostGIS-Table>
#转shp
ogr2ogr 输出Shapefile.shp PG:"dbname='<databasename>' user='<username>' host='<hostname>'" <表名或视图名> 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/69244.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AIGC魔童】DeepSeek v3推理部署:vLLM/SGLang/LMDeploy

【AIGC魔童】DeepSeek v3推理部署&#xff1a;vLLM/SGLang/LMDeploy &#xff08;1&#xff09;使用vLLM推理部署DeepSeek&#xff08;2&#xff09;使用SGLang推理部署DeepSeek&#xff08;3&#xff09;使用LMDeploy推理部署DeepSeek &#xff08;1&#xff09;使用vLLM推理部…

C语言的灵魂——指针(2)

前言&#xff1a;上期我们介绍了如何理解地址&#xff0c;内存&#xff0c;以及指针的一些基础知识和运算&#xff1b;这期我们来介绍一下const修饰指针&#xff0c;野指针&#xff0c;assert断言&#xff0c;指针的传址调用。 上一篇指针&#xff08;1&#xff09; 文章目录 一…

Android studio 创建aar包给Unity使用

1、aar 是什么&#xff1f; 和 Jar有什么区别 aar 和 jar包 都是压缩包&#xff0c;可以使用压缩软件打开 jar包 用于封装 Java 类及其相关资源 aar 文件是专门为 Android 平台设计的 &#xff0c;可以包含Android的专有内容&#xff0c;比如AndroidManifest.xml 文件 &#…

ASP.NET Core中Filter与Middleware的区别

中间件是ASP.NET Core这个基础提供的功能&#xff0c;而Filter是ASP.NET Core MVC中提供的功能。ASP.NET Core MVC是由MVC中间件提供的框架&#xff0c;而Filter属于MVC中间件提供的功能。 区别 中间件可以处理所有的请求&#xff0c;而Filter只能处理对控制器的请求&#x…

基础篇05-图像直方图操作

本节将简要介绍Halcon中有关图像直方图操作的算子&#xff0c;重点介绍直方图获取和显示两类算子&#xff0c;以及直方图均衡化处理算子。 目录 1. 引言 2. 获取并显示直方图 2.1 获取&#xff08;灰度&#xff09;直方图 (1) gray_histo算子 (2) gray_histo_abs算子 (3…

MySQL | Navicat安装教程

MySQL | Navicat安装教程 &#x1fa84;个人博客&#xff1a;https://vite.xingji.fun 简介 Navicat 是一款流行的 图形化数据库管理工具&#xff0c;由 PremiumSoft 公司开发&#xff0c;支持多种主流数据库系统&#xff08;如 MySQL、MariaDB、SQL Server、Oracle、Postgre…

硬件实现I2C案例(寄存器实现)

一、需求分析 二、硬件电路设计 本次案例需求与前面软件模拟案例一致&#xff0c;这里不再赘述&#xff0c;不清楚可参见下面文章&#xff1a;软件模拟I2C案例&#xff08;寄存器实现&#xff09;-CSDN博客 值得注意的是&#xff0c;前面是软件模拟I2C&#xff0c;所以并没有…

基于SpringBoot养老院平台系统功能实现六

一、前言介绍&#xff1a; 1.1 项目摘要 随着全球人口老龄化的不断加剧&#xff0c;养老服务需求日益增长。特别是在中国&#xff0c;随着经济的快速发展和人民生活水平的提高&#xff0c;老年人口数量不断增加&#xff0c;对养老服务的质量和效率提出了更高的要求。传统的养…

matlab simulink 汽车四分之一模型轮胎带阻尼

1、内容简介 略 matlab simulink121-汽车四分之一模型轮胎带阻尼 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略

w196Spring Boot高校教师科研管理系统设计与实现

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…

数据分析:企业数字化转型的金钥匙

引言&#xff1a;数字化浪潮下的数据金矿 在数字化浪潮席卷全球的背景下&#xff0c;有研究表明&#xff0c;只有不到30%的企业能够充分利用手中掌握的数据&#xff0c;这是否让人深思&#xff1f;数据已然成为企业最为宝贵的资产之一。然而&#xff0c;企业是否真正准备好从数…

Vue 入门到实战 八

第8章 组合API与响应性 目录 8.1 响应性 8.1.1 什么是响应性 8.1.2 响应性原理 8.2 为什么使用组合API 8.3 setup组件选项 8.3.1 setup函数的参数 8.3.2 setup函数的返回值 8.3.3 使用ref创建响应式引用 8.3.4 setup内部调用生命周期钩子函数 8.4 提供/注入 8.4.1 …

Java使用aspose实现pdf转word

Java使用aspose实现pdf转word 一、下载aspose-pdf-21.6.jar包【下载地址】&#xff0c;存放目录结构如图&#xff1b;配置pom.xml。 <!--pdf to word--> <dependency><groupId>com.aspose</groupId><artifactId>aspose-pdf</artifactId>…

使用Node.js搭配express框架快速构建后端业务接口模块Demo

使用Node.js搭配express框架快速构建后端业务接口模块Demo&#xff01;实际开发中&#xff0c;有很多项目&#xff0c;其实都是可以使用node.js来完成对接mysql数据库的&#xff0c;express确实使用起来非常简单&#xff0c;入手快&#xff0c;效率非常高。下面是一个简单的案例…

Python----Python高级(并发编程:协程Coroutines,事件循环,Task对象,协程间通信,协程同步,将协程分布到线程池/进程池中)

一、协程 1.1、协程 协程&#xff0c;Coroutines&#xff0c;也叫作纤程(Fiber) 协程&#xff0c;全称是“协同程序”&#xff0c;用来实现任务协作。是一种在线程中&#xff0c;比线程更加轻量级的存在&#xff0c;由程序员自己写程序来管理。 当出现IO阻塞时&#xff0c;…

Unity 加载OSGB(webgl直接加载,无需转换格式!)

Unity webgl加载倾斜摄影数据 前言效果图后续不足 前言 Unity加载倾斜摄影数据&#xff0c;有很多的插件方便好用&#xff0c;但是发布到网页端均失败&#xff0c;因为webgl 的限制&#xff0c;IO读取失效。 前不久发现一个开源项目: UnityOSGB-main 通过两种方式在 Unity 中…

【Block总结】PSA,金字塔挤压注意力,解决传统注意力机制在捕获多尺度特征时的局限性

论文信息 标题: EPSANet: An Efficient Pyramid Squeeze Attention Block on Convolutional Neural Network论文链接: arXivGitHub链接: https://github.com/murufeng/EPSANet 创新点 EPSANet提出了一种新颖的金字塔挤压注意力&#xff08;PSA&#xff09;模块&#xff0c;旨…

【重新认识C语言----结构体篇】

目录 -----------------------------------------begin------------------------------------- 引言 1. 结构体的基本概念 1.1 为什么需要结构体&#xff1f; 1.2 结构体的定义 2. 结构体变量的声明与初始化 2.1 声明结构体变量 2.2 初始化结构体变量 3. 结构体成员的访…

如何在Vscode中接入Deepseek

一、获取Deepseek APIKEY 首先&#xff0c;登录Deepseek官网的开放平台&#xff1a;DeepSeek 选择API开放平台&#xff0c;然后登录Deepseek后台。 点击左侧菜单栏“API keys”&#xff0c;并创建API key。 需要注意的是&#xff0c;生成API key复制保存到本地&#xff0c;丢失…

电脑开机提示按f1原因分析及终极解决方法来了

经常有网友问到一个问题&#xff0c;我电脑开机后提示按f1怎么解决&#xff1f;不管理是台式电脑&#xff0c;还是笔记本&#xff0c;都有可能会遇到开机需要按F1&#xff0c;才能进入系统的问题&#xff0c;引起这个问题的原因比较多&#xff0c;今天小编在这里给大家列举了比…