南头外贸网站建设公司现在个人做网站还能盈利吗
2026/1/17 6:05:26 网站建设 项目流程
南头外贸网站建设公司,现在个人做网站还能盈利吗,徐州网络建站模板,网站做虚假广告前言 ❝ TXT 作为一种文本格式#xff0c;可以很方便的存储一些简单几何数据。在 GIS 开发中#xff0c;经常需要进行数据的转换处理#xff0c;其中常见的便是将 TXT 转换为 Shp 数据进行展示。本篇教程在之前一系列文章的基础上讲解如如果你还没有看过#xff0c;建议从以…前言❝TXT 作为一种文本格式可以很方便的存储一些简单几何数据。在 GIS 开发中经常需要进行数据的转换处理其中常见的便是将 TXT 转换为 Shp 数据进行展示。本篇教程在之前一系列文章的基础上讲解如如果你还没有看过建议从以上内容开始。1. 开发环境本文使用如下开发环境以供参考。时间2025年系统Windows 11Python3.11.7GDAL3.11.12. 数据准备TXT纯文本文件是一种最基本的文件格式仅存储无格式的文本数据适用于各种场景如数据交换、日志记录、配置文件等。如下是全国省会城市人口 TXT 文本结构ID,Name,Longitude,Latitude,Population1,Beijing,116.40,39.90,2171万2,Shanghai,121.47,31.23,2487万3,Guangzhou,113.26,23.12,1868万4,Shenzhen,114.05,22.55,1756万5,Tianjin,117.20,39.08,1373万6,Chongqing,106.50,29.53,3205万7,Chengdu,104.06,30.67,2094万8,Wuhan,114.30,30.60,1121万9,Hangzhou,120.15,30.28,1194万10,Nanjing,118.78,32.04,931万11,Xian,108.93,34.27,1295万12,Changsha,112.97,28.20,839万13,Zhengzhou,113.62,34.75,1260万14,Harbin,126.63,45.75,1076万15,Shenyang,123.43,41.80,831万16,Qingdao,120.38,36.07,1007万17,Dalian,121.62,38.92,745万18,Xiamen,118.08,24.48,516万19,Ningbo,121.55,29.88,854万20,Hefei,117.28,31.86,937万21,Fuzhou,119.30,26.08,829万22,Jinan,117.00,36.67,920万23,Taiyuan,112.55,37.87,530万24,Changchun,125.35,43.88,906万25,Kunming,102.72,25.04,846万26,Nanning,108.37,22.82,874万27,Lanzhou,103.82,36.06,435万28,Yinchuan,106.27,38.47,285万29,Xining,101.77,36.62,263万30,Urümqi,87.62,43.82,405万31,Lhasa,91.11,29.65,86万32,Haikou,110.20,20.05,287万3. 导入依赖TXT作为一种矢量数据格式可以使用矢量库OGR进行处理以实现TXT数据从文本格式转换为Shp格式。其中还涉及坐标定义所以还需要引入osr模块。from osgeo import ogr,osrimport osimport csv4. 数据读取与转换定义一个方法Txt2Shp(txtPath,shpPath,encodingUTF-8)用于将TXT数据转换为Shp数据。说明将 TXT 文件转换为 Shapfile 文件参数-txtPathTXT 文件路径-shpPathShp 文件路径-encodingTXT 文件编码def Txt2Shp(txtPath,shpPath,encodingUTF-8)在进行TXT数据格式转换之前需要检查数据路径是否存在。# 检查文件是否存在ifos.path.exists(txtPath):print(TXT 文件存在。)else:print(TXT 文件不存在请重新选择文件)return通过GetDriverByName获取Shp数据驱动并使用os.path.exists方法检查Shp文件是否已经创建如果存在则将其删除。# 注册所有驱动ogr.RegisterAll()# 添加Shp数据源shpDriver ogr.GetDriverByName(ESRI Shapefile)ifos.path.exists(shpPath):try:shpDriver.DeleteDataSource(shpPath)print(文件已删除)except Exception as e:print(f文件删除出错{e})returnFalse接着创建Shp数据源和空间参考数据坐标系这里定义为4326。# 创建Shp数据源shpDataSource shpDriver.CreateDataSource(shpPath)ifshpDataSource is None:print(无法创建Shp数据源请检查文件)returnfalse# 创建空间参考spatialReference osr.SpatialReference()spatialReference.ImportFromEPSG(4326)之后通过数据源方法CreateLayer创建Shp图层使用图层方法CreateField添加属性字段需要定义属性名称以及属性字段类型。# 创建图层shpLayer shpDataSource.CreateLayer(points,spatialReference,ogr.wkbPoint)# 添加图层字段shpLayer.CreateField(ogr.FieldDefn(ID,ogr.OFTString))shpLayer.CreateField(ogr.FieldDefn(Name,ogr.OFTString))shpLayer.CreateField(ogr.FieldDefn(Longitude,ogr.OFTReal))shpLayer.CreateField(ogr.FieldDefn(Latitude,ogr.OFTReal))shpLayer.CreateField(ogr.FieldDefn(Population,ogr.OFTString))读取TXT数据并将其转换为Shapefile数据在打开数据时根据TXT文件属性使用逗号分隔符进行读取并跳过表头行数据。之后根据行数据进行属性遍历将读取的字段值和几何属性写入到要素对象中。# 读取TXT文件with open(txtPath,r,encodingencoding) as txtFile:# 根据逗号分隔符进行读取reader csv.reader(txtFile,delimiter,)# 跳过表头header next(reader)# 遍历记录forrowinreader:print(f要素记录{row})# 创建要素feature ogr.Feature(shpLayer.GetLayerDefn())# 根据图层字段写入属性feature.SetField(ID,str(row[0]))feature.SetField(Name,str(row[1]))feature.SetField(Longitude,float(row[2]))feature.SetField(Latitude,float(row[3]))feature.SetField(Population,str(row[4]))# 创建几何对象wkt fPOINT({float(row[2])} {float(row[3])})pointGeom ogr.CreateGeometryFromWkt(wkt)feature.SetGeometry(pointGeom)# 将要素添加到图层shpLayer.CreateFeature(feature)feature NoneCreateCpgFile2Encode(shpPath,encoding)# 释放数据资源shpDataSource None其中CreateCpgFile2Encode方法用于创建字符编码文件后缀名为.cpg。说明创建.cpg文件指定字符编码参数-shpPathShp文件路径-encodingShp文件字符编码def CreateCpgFile2Encode(shpPath,encoding):fileName os.path.splitext(shpPath)[0]cpgFile fileName .cpgwith open(cpgFile,w,encodingencoding) as f:f.write(encoding)print(f成功创建编码文件: {cpgFile})程序成功转换数据显示如下使用ArcMap打开显示结果如下

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询