news 2026/7/7 4:57:35

使用命令行工具 ogr2ogr 将 CSV 转换为 Shp 数据(二)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用命令行工具 ogr2ogr 将 CSV 转换为 Shp 数据(二)

前言

ogr2ogr是一个数据转换工具,可用于在文件格式之间转换简单要素数据。它还可以在转换过程中执行各种操作,如空间或属性选择、减少属性集、设置输出坐标系,甚至在转换过程中重新投影特征。

如有兴趣,可参阅文章:

GDAL 实现将 CSV 转换为 Shp 数据(一)[1]

ogr2ogr作为GDAL(Geospatial Data Abstraction Library)库中的一个命令行工具,用于转换和处理地理空间数据。它可以读取多种矢量数据格式(如Shapefile、GeoJSON、KML、GML、PostGIS等),并进行格式转换、坐标转换、属性过滤、几何操作等。

1. 用户环境

本文使用如下用户环境,以供参考。

时间:2025年

系统:Windows 11

Python:3.11.7

GDAL:3.11.1

ogr2ogr:3.9.2

2. 验证ogr2ogr工具信息

打开命令行终端,输入命令ogr2ogr --version查看版本信息。如果ogr2ogr正确安装并添加到环境变量,便会输出其版本号。

3. 将CSV转换为Shp数据

原始CSV数据内容显示如下,具有四个字段,分别为“名称”、“地址”、“LATQ”代表纬度,“LNGQ”代表经度。

在命令行终端输入以下命令进行数据转换。

ogr2ogr -f"ESRI Shapefile"E:datatest_dataogr_transform.shp E:datatest_data景点.csv -oo X_POSSIBLE_NAMES=LNGQ,longitude,x,X -oo Y_POSSIBLE_NAMES=LATQ,latitude,y,Y -a_srs EPSG:4326

以下是ogr2ogr工具常用参数解释:

选项

说明

-f "ESRI Shapefile"

指定输出格式,如“ESRI Shapefile”

-a_srs EPSG:4326

设置空间参考

-select "field1,field2"

选择特定字段

-where "value > 100"

过滤条件

-lco ENCODING=UTF-8

设置字符编码

-oo AUTODETECT_TYPE=YES

自动检测字段类型

-oo SEPARATOR=TAB

设置分隔符(TAB/COMMA/SEMICOLON)

-oo X_POSSIBLE_NAMES

指定经度字段,可书写多个可能值

-oo Y_POSSIBLE_NAMES

指定纬度字段,可书写多个可能值

4. 中文转换错误解决办法

由于CSV文件中具有中文字段,直接进行转换工具会报错,无法创建中文字段。此时需要指定正确的字符编码。

在命令中添加-lco ENCODING=UTF-8选项以正确转换中文字符。

ogr2ogr -f"ESRI Shapefile"E:datatest_dataogr_transform.shp E:datatest_data景点.csv -oo X_POSSIBLE_NAMES=LNGQ,longitude,x,X -oo Y_POSSIBLE_NAMES=LATQ,latitude,y,Y -lco ENCODING=UTF-8 -a_srs EPSG:4326

将CSV转换为Shp数据在ArcGIS中的显示结果。

5. 常见字符编码

以下是一些常见编码格式。

# UTF-8(推荐)
-lco ENCODING=UTF-8

# 中文编码
-lco ENCODING=GBK# 简体中文
-lco ENCODING=BIG5# 繁体中文
-lco ENCODING=GB2312# 简体中文旧版

# 其他编码
-lco ENCODING=LATIN1
-lco ENCODING=ISO-8859-1
-lco ENCODING=CP1252

6. 数据转换事项

使用ogr2ogr工具进行数据转换时如果所有的命令都写在一行,那么显示效果不仅不美观,也不具有可读性,所以可按照转换内容对其进行分行展示。在windowslinux系统中换行符略有差别。

windows系统进行分行展示时使用符号"^"进行分隔:

ogr2ogr -f"ESRI Shapefile""E:\datatest_data\ogr_transform5.shp""E:\data\test_data\景点.csv"^
-oo X_POSSIBLE_NAMES=LNGQ,longitude,x,X ^
-oo Y_POSSIBLE_NAMES=LATQ,latitude,y,Y ^
-lco ENCODING=UTF-8 ^
-a_srs EPSG:4326

linux系统进行分行展示时使用符号"\"进行分隔

ogr2ogr -f"ESRI Shapefile""E:\datatest_data\ogr_transform5.shp""E:\data\test_data\景点.csv"^
-oo X_POSSIBLE_NAMES=LNGQ,longitude,x,X ^
-oo Y_POSSIBLE_NAMES=LATQ,latitude,y,Y ^
-lco ENCODING=UTF-8 ^
-a_srs EPSG:4326
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 21:42:50

单链表-删除中间节点的应用

思索过程:1.将链表从中间位置断开(变成head->1->2->3和4->5->6两段)2.将后半段的链表逆置(从4->5->6变成6->5->4)3.设置四个指针p1,p2,q1,q2&#xff08…

作者头像 李华
网站建设 2026/7/7 14:31:26

FreeModbus+STM32F407IGT6标准库项目代码

FreeModbus移植的文章比较多了,分享一个移植好可用的代码。 代码连接:STM32F407IGT6移植FreeModbushttps://gitee.com/zhuzheshuai/STM32F407IGT6_FreeModbus 通信使用串口和RS485两种方式,RS485发送/接收使能引脚用的PH9,可以根…

作者头像 李华
网站建设 2026/7/7 11:02:10

拥抱AI,HPE Networking以“自动驾驶的网络”引领智能网络新时代

2025年12月16日,HPE Networking在北京举办以“拥抱AI,构建自动驾驶的网络”为主题的媒体沟通会,首次对外分享了在完成对 Juniper Networks 收购后所推出的全新战略路线:以构建“安全赋能的AI原生网络”为核心举措,打造…

作者头像 李华
网站建设 2026/7/7 2:04:27

基于springboot名老中医传承信息系统设计与开发

基于Spring Boot的名老中医传承信息系统设计与开发是一个结合了现代信息技术和传统中医智慧的综合性项目。以下是对该系统的详细介绍: 一、系统背景与意义 中医作为中华民族的传统医学,承载着丰富的历史文化底蕴与独特的医疗智慧。在历史的长河中&#x…

作者头像 李华
网站建设 2026/7/7 12:24:58

潮玩盲盒二手交易平台

可s我领取源码!!Spring Boot 潮玩盲盒二手交易平台是一款专为潮玩盲盒爱好者打造的线上二手交易系统。借助 Spring Boot 框架的高效性和灵活性,该平台旨在为用户提供便捷、安全且功能丰富的交易环境,促进潮玩盲盒的二手流通,满足玩家对独特潮…

作者头像 李华
网站建设 2026/7/7 16:59:21

除了抓包失败,Burp Suite还有哪些新手常遇到的配置问题?

除了抓包失败,Burp Suite新手还常遇到以下配置问题:一、证书配置问题证书未正确信任是新手最常遇到的HTTPS抓包问题。即使下载了Burp的CA证书,如果未导入到浏览器的"受信任的根证书颁发机构"存储区,浏览器仍会提示"…

作者头像 李华