(Arcgis)python geopandas库分割shp属性表特定内容,批量导出shp文件

2024-05-13 12:20

本文主要是介绍(Arcgis)python geopandas库分割shp属性表特定内容,批量导出shp文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、两个文件。实现目标:从1个shp文件,根据属性表内容提取成200个shp文件,文件名取自txt文本内容

shp文件(要素1-200.shp):打开属性表前14项相同,后200项不相同。
————任务目标:需要输出200个shp(属性表前14项相同,循环后200项单独提取出1项)
txt文本(numbered.txt)内容:
1 要素1
2 要素2
... ...(总共200行)
import geopandas as gpd# 文件路径
file_path = r"D:\要素\要素1-200.shp"
species_names_file = r"D:\numbered.txt"# 读取要素名称
species_dict = {}
with open(species_names_file, 'r', encoding='utf-8') as file:for line in file:if line.strip():number, name = line.strip().split(maxsplit=1)species_dict[int(number)] = f"{number} {name}"  # 存储编号和名称,包括空格# 读取shapefile
data = gpd.read_file(file_path)# 确定几何列的名称
geometry_column = data.geometry.name# 获取前14个基础要素的列名
base_columns = data.columns[:14].tolist()
if geometry_column not in base_columns:base_columns.append(geometry_column)  # 确保几何列被包括# 循环处理每个要素
for i in range(1, 200):  # 物种编号从1到200species_column = f'要素{i}'  # 构建要素列名if species_column in data.columns:# 选择基础要素和当前要素的列,确保包括几何列selected_columns = base_columns + [species_column]selected_data = data[selected_columns]# 使用包括编号和名称的字符串作为文件名if i in species_dict:filename = species_dict[i]  # 从字典中获取包含编号和名称的字符串new_file_path = fr"D:\要素\{filename}.shp"else:filename = f"{i} 要素_selected"  # 如果编号不存在于字典中,使用默认名称new_file_path = fr"D:\要素\{filename}.shp"# 导出到新的shapefile,使用UTF-8编码selected_data.to_file(new_file_path, encoding='utf-8')print(f"{filename}的数据已成功导出到 {new_file_path}")

二、最后每个要素需要放在单独的文件夹中,文件夹名命名为文件名

文件名                 文件夹名
1 要素1.shp            1 要素1
2 要素2.shp            2 要素2
......
import os
import shutil# 包含 shapefile 文件的目录
source_dir = r"D:\要素\要素1-200"# 遍历源目录中的所有文件
for filename in os.listdir(source_dir):if filename.endswith(".shp"):  # 检查文件是否为 shapefile# 去掉文件扩展名得到基本名称base_name = os.path.splitext(filename)[0]# 使用基本名称创建新的目录路径new_dir = os.path.join(source_dir, base_name)# 如果目录不存在则创建目录if not os.path.exists(new_dir):os.makedirs(new_dir)# 移动 shapefile 及其关联文件for ext in ['.shp', '.shx', '.dbf', '.prj', '.cpg', '.sbn', '.sbx', '.qix', '.fbn', '.fbx', '.ain', '.aih', '.ixs', '.mxs', '.atx']:old_file = os.path.join(source_dir, f"{base_name}{ext}")if os.path.exists(old_file):shutil.move(old_file, new_dir)print(f"已将 {filename} 及其关联文件移动到 {new_dir}")

这篇关于(Arcgis)python geopandas库分割shp属性表特定内容,批量导出shp文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/985686

相关文章

详解如何通过Python批量转换图片为PDF

《详解如何通过Python批量转换图片为PDF》:本文主要介绍如何基于Python+Tkinter开发的图片批量转PDF工具,可以支持批量添加图片,拖拽等操作,感兴趣的小伙伴可以参考一下... 目录1. 概述2. 功能亮点2.1 主要功能2.2 界面设计3. 使用指南3.1 运行环境3.2 使用步骤4. 核

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

CSS will-change 属性示例详解

《CSSwill-change属性示例详解》will-change是一个CSS属性,用于告诉浏览器某个元素在未来可能会发生哪些变化,本文给大家介绍CSSwill-change属性详解,感... will-change 是一个 css 属性,用于告诉浏览器某个元素在未来可能会发生哪些变化。这可以帮助浏览器优化

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown