wkt转shp CSV中文本WKT值生成shape文件

本文解决WKT形式为点、线、面等不同情况下直接生成shape矢量数据,包括CSV中原有的属性内容!

提供一个PostGIS&PostSQL下载网址链接(亲测可用):https://download.csdn.net/download/weixin_46489415/12510972

(本文利用软件将wkt转shp,利用python实现转至链接:https://blog.csdn.net/weixin_46489415/article/details/106834150)

PostGIS&PostSQL安装成功后如下图,安装教程网上很多,在此提出安装时注意的几个小点:
1、在安装时关闭第三方杀毒软件;
2、PostSQL安装过程中需要输入后面登陆时的账号及密码,账号可默认为postgres,密码设置一个自己能记住的即可;
3、PostSQL安装过程中端口“5432”可以默认;
4、PostGIS&PostSQL安装基本都是下一步,两个软件安装路径最好放在同一路径下。

安装成功后,可在电脑中查看安装成果:

在这里插入图片描述
安装成功后,
首先启动pgAdmin4,输入安装时设置的账号及密码,为了保证PostSQL有PostGIS拓展,请先运行SQL语句(Tools工具下,点击Query Tool,新窗口运行语句):CREATE Extension PostGIS

在数据库(可新建属于自己的数据库)中添加SQL脚本(本文脚本提供了数据是投影坐标系和地理坐标系不同情况下的转换方式),如下图:
在这里插入图片描述
代码粘贴出来(如下),方便大家复制:
CREATE TABLE fishnet(FID varchar(100),biao varchar(100),cs varchar(100),wkt varchar(10000000));
COPY fishnet FROM ‘D:/fishnet.csv’ WITH CSV HEADER;

数据是投影坐标系(平面坐标系),那就用要将WKT转成geometry
ALTER TABLE fishnet ADD geom geometry
UPDATE fishnet set geom=ST_GeomFromText(wkt,4326)

数据是地理坐标系(大地坐标系),那就用要将WKT转成geography
ALTER TABLE fishnet ADD geog geography
UPDATE fishnet set geog=ST_GeographyFromText(wkt)

(CREATE TABLE 创建表中字段时,少量的可直接创建,属性多时,可创建能关联字段,在ArcGIS中后面进行关联即可,测试数据csv中我只用了几条数据展示一下,如下:)
在这里插入图片描述

在数据库中表创建完成及数据导入了之后,接下来进入数据转换步骤!
打开PostGIS 2.0 Shapefile and DBF Loader Exporter,依次点击添加刚刚创建好的数据并导出数据,如下图:
在这里插入图片描述
上图步骤说明:
1、进入导出数据界面;
2、添加数据库(如果一切都是默认的话,Username应该是postgres,密码就是你安装数据库时设置的密码,Database如果是默认的话应该也是postgres);
3、添加数据库中的表数据(所创建的数据表);
4、导出数据。
导出数据后在相应的文件夹中能看到shape文件。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以使用 PyShp 库来创建一个 shp 文件。 这是一个简单的例子,创建一个矩形并将其写入一个 shp 文件: ``` import shapefile # 创建一个 shapefile 写入器 w = shapefile.Writer() # 增加字段 w.field("NAME", "C", "40") # 增加矩形 w.poly([[-120, 35], [-120, 40], [-125, 40], [-125, 35], [-120, 35]]) # 写入数据 w.record("Rectangle 1") # 保存到文件 w.save("rectangle.shp") ``` 你可以在 PyShp 的文档找到更多示例和信息: https://pyshp.readthedocs.io/en/latest/ ### 回答2: 使用Python创建SHP文件需要用到shapely库。Shapely是一个用于处理几何图形的库,它可以将WKT(Well-Known Text)格式的几何图形换为SHP文件。 首先,我们需要安装shapely库。可以使用pip命令在终端安装: ``` pip install shapely ``` 接下来,导入shapely库的相关模块: ```python from shapely.geometry import Polygon import fiona ``` 然后,根据WKT格式的几何图形来创建多边形对象: ```python wkt = 'POLYGON ((0 0, 0 1, 1 1, 1 0, 0 0))' polygon = Polygon.from_wkt(wkt) ``` 然后,创建保存SHP文件的输出路径和文件名: ```python output_path = 'output.shp' ``` 接着,使用fiona库创建SHP文件,并将多边形对象写入其: ```python schema = {'geometry': 'Polygon', 'properties': {'id': 'int'}} with fiona.open(output_path, 'w', 'ESRI Shapefile', schema) as c: c.write({'geometry': mapping(polygon), 'properties': {'id': 1}}) ``` 注意,此处使用的mapping函数用于将shapely对象映射到GeoJSON格式。需要导入mapping函数: ```python from shapely.geometry import mapping ``` 最后,运行Python脚本,即可在指定的输出路径生成SHP文件。 通过以上步骤,我们可以使用Python从WKT创建SHP文件。这样,我们就可以利用Python的强大功能来处理和分析空间数据。 ### 回答3: Python WKT (Well-Known Text) 是一种文本表示方法,用于描述空间对象的几何形状。我们可以使用Python的相关库,比如GeoPandas和Shapely,来创建Shapefile (.shp) 文件。 首先,我们需要安装依赖库。打开终端或命令提示符,运行以下命令来安装GeoPandas和Shapely库: ``` pip install geopandas pip install shapely ``` 然后,我们可以使用以下代码来创建一个WKT字符串表示的几何对象,并将其保存为Shapefile文件: ```python import geopandas as gpd from shapely.wkt import loads # 创建一个WKT字符串表示的点 wkt_point = 'POINT(1 1)' # 使用Shapely的loads函数将WKT字符串换为几何对象 point = loads(wkt_point) # 创建一个GeoDataFrame gdf = gpd.GeoDataFrame(geometry=[point]) # 指定Shapefile输出路径和文件名 output_path = 'path/to/output.shp' # 将GeoDataFrame保存为Shapefile文件 gdf.to_file(output_path) ``` 在上述代码,我们首先创建了一个表示点的WKT字符串。然后,使用Shapely库的loads函数将WKT字符串换为Shapely几何对象。接下来,我们使用GeoPandas创建一个包含该几何对象的GeoDataFrame。最后,将GeoDataFrame保存为Shapefile文件,通过指定输出路径和文件名来完成保存。 以上就是使用Python WKT创建Shapefile的简单示例。根据需要,您可以根据不同的WKT字符串和几何对象类型进行修改,以创建各种形状和结构的Shapefile文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值