企业网站建设步骤是什么在网站制作完成后网站建设
2026/4/18 16:33:05 网站建设 项目流程
企业网站建设步骤是什么,在网站制作完成后网站建设,营业执照查询系统,最好的企业网站源码前言 ❝ 矢量数据作为数据处理的半壁江山#xff0c;在日常工作中涉及到多种操作#xff0c;矢量数据合并也是一项常用操作#xff0c;该功能涉及到两个及以上的数据源在几何对象与属性对象之间的合并操作。在之前的文章中讲了如何使用GDAL或者ogr2ogr工具将txt以及csv文本数…前言❝矢量数据作为数据处理的半壁江山在日常工作中涉及到多种操作矢量数据合并也是一项常用操作该功能涉及到两个及以上的数据源在几何对象与属性对象之间的合并操作。在之前的文章中讲了如何使用GDAL或者ogr2ogr工具将txt以及csv文本数据转换为Shp格式本篇教程在之前一系列文章的基础上讲解如何使用GDAL 实现矢量合并。GDAL 简介GDAL 下载安装GDAL 开发起步GDAL 实现 GIS 数据读取转换全如果你还没有看过建议从以上内容开始。1. 开发环境本文使用如下开发环境以供参考。时间2025年系统Windows 11Python3.11.7GDAL3.11.12.Union合并方法矢量图层Layer对象上具有一个方法Union可用于数据裁剪。该方法接收合并图层和结果图层两个必填参数剩下三个可选参数最后返回一个整型值。说明GDAL 矢量合并参数-unionLayer用于裁剪的矢量图层-resultLayer生成结果数据图层def Union(unionLayer,resultLayer):3. 矢量图层合并老规矩定义一个图层合并方法LayerUnion用于数据合并该方法接收如下三个参数。说明GDAL 图层合并操作参数-sourcePath 源文件Shp数据路径-unionPath用于合并的Shp数据路径-resultPath用于存放合并结果的数据路径def LayerUnion(sourcePath,unionPath,resultPath):然后添加数据驱动只不过在添加数据驱动前使用checkFilePath方法检查文件路径是否存在之后判断数据驱动是否正常。# 检查文件是否存在checkFilePath(sourcePath)checkFilePath(unionPath)checkFilePath(resultPath)# 添加数据驱动shpDriver ogr.GetDriverByName(ESRI Shapefile)# 检查数据驱动是否正常checkDriver(shpDriver)在打开Shp数据源时传递第二个可选参数该参数为布尔类型将其值设置为True意为以可写模式打开数据源。以可写模式打开数据源# 获取数据源# sourceDs shpDriver.Open(sourcePath)# unionDs shpDriver.Open(unionPath)sourceDs shpDriver.Open(sourcePath,True)clipDs shpDriver.Open(unionPath,True)以源数据图层sourceLayer属性结构创建结果图层获取源图层空间参考以及几何数据类型信息并创建结果图层属性字段。# 获取图层sourceLayer sourceDs.GetLayer(0)srs sourceLayer.GetSpatialRef()geomType sourceLayer.GetGeomType()unionLayer unionDs.GetLayer(0)# 创建输出数据源resultDs shpDriver.CreateDataSource(resultPath)# 根据源数据结构创建输出图层resultLayer resultDs.CreateLayer(resultLayer,srs,geomType)# 添加数据结构featureDefn sourceLayer.GetLayerDefn()fieldCount featureDefn.GetFieldCount()# 创建要素# resultFeature ogr.Feature(featureDefn)# 添加字段复制源图层字段定义foriinrange(fieldCount):fieldDefn featureDefn.GetFieldDefn(i)resultLayer.CreateField(fieldDefn)在源数据图层上调用方法Union进行图层合并返回值为一个整型数值。合并完成后关闭所有数据源并返回结果。print(f~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~图层合并开始~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)图层裁剪result sourceLayer.Union(unionLayer,resultLayer,[],GetProgress,GetData)print(f裁剪结果{result})# 关闭数据源sourceDs unionDs resultDs Noneprint(f~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~图层合并结束~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)returnresultGetProgress为获取裁剪进度函数。说明定义进度获取函数参数-complete完成度0.0-1.0-message进度消息-userData用户数据def GetProgress(complete,message,userData):print(f进度{complete * 100:.1f}% - {message})# 返回1表示继续处理返回0表示取消return1GetData为获取裁剪数据函数。def GetData(data):print(裁剪数据)数据合并信息输出如下。裁剪数据在ArcGIS中显示如下。4. 注意事项在windows开发环境中同时安装GDAL与PostGIS其中投影库PROJ的环境变量指向PostGIS的安装路径在运行GDAL程序时涉及到要素、几何与投影操作时会导致异常。具体意思为GDAL不支持PostGIS插件中的投影库版本需要更换投影库或者升级版本。RuntimeError: PROJ: proj_identify: D:Program FilesPostgreSQL13sharecontribpostgis-3.5projproj.db contains DATABASE.LAYOUT.VERSION.MINOR 2 whereas a number 5 is expected. It comes from another PROJ installation.解决办法为修改PROJ的环境变量到GDAL支持的版本或者在GDAL程序开头添加以下代码os.environ[PROJ_LIB] rD:\Programs\Python\Python311\Libsite-packages\osgeo\data\proj

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

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

立即咨询