【PythonGIS】Python实现批量导出面矢量要素(单个多面矢量->多个单面矢量)

news2024/11/29 2:36:28

        可怜的我周六还在工作,已经很久没更新过博客了,今天正好有空就和大家分享一下。今天给大家带来的是使用Python将包含多个面要素/线要素的矢量批量导出单个要素的矢量,即一个要素一个矢量文件。之前写过多个矢量文件合并成一个矢量文件的博文,大家如果感兴趣可以看下:【Python&GIS】基于Python批量合并矢量数据。

原创作者:RS迷途小书童

博客地址:https://blog.csdn.net/m0_56729804?type=blog

1.环境配置

        之前发过很多文章都没有提到过环境配置,因为直接默认大家会使用Python了,今天这个博文加这个模块主要是因为我们使用的Python2.7!很多小伙伴已经反应过来了,Python2.7正是ArcGIS的环境。今天我们使用ArcMap自带的arcpy库实现批量导出面矢量要素。

        针对这个环境也不多说,你只要安装了ArcGIS就会有Python2.7,只要在Pycharm中将Python2.7的解释器加入到环境中即可。

2.完整代码

        代码比较简单,我这里就不做过多的介绍了。代码中有详细的注释。变量就3个,第一个是arcpy的工作空间(没啥用),第二个就是想要拆分的矢量文件目录,第三个是输出矢量文件的文件夹。程序默认是通过FID去批量导出,也可以自己修改。

# -*- coding: utf-8 -*-
"""
@Time : 2024/3/18 17:37
@Auth : RS迷途小书童
@File :Vector Features For Shps.py
@IDE :PyCharm
@Purpose:矢量数据按要素批量导出shp
@Web:博客地址:https://blog.csdn.net/m0_56729804
"""
import os
import arcpy
from arcpy import env


def Save_shps(work_path, shp, shps_path):
    env.workspace = work_path  # 工作空间
    with arcpy.da.SearchCursor(shp, ["SHAPE@", 'FID'],) as cursor:
        # query = """"AREA" > 0"""  # 满足的输出文件的条件,没有的话可以不要
        # SHAPE@指代单个要素,FID是一个字段,query是条件
        for row in cursor:
            out_name = str(row[1]) + '.shp'  # 输出文件名
            arcpy.FeatureClassToFeatureClass_conversion(row[0], shps_path, out_name)


if __name__ == "__main__":
    work = "G:/彭俊喜/"  # 工作空间
    shp_file = r"G:\彭俊喜/88.shp"
    out_path = r"Z:\彭俊喜/"
    Save_shps(work, shp_file, out_path)

3.总结

        arcpy这个库可以说是非常的强大,它就是ArcMap,ArcMap就是它,只要是ArcMap能实现的操作它都可以实现。但是由于它的环境是Python2.7,所以有一定的局限性只能对地理数据自动化处理,无法和现在的一些新库相融合。这也是为什么我很少分享arcpy代码的原因,我平时宁愿直接用ArcMap,也懒得去编arcpy的代码。

        本文章主要是分享个人在学习Python过程中写过的一些代码。有些部分借鉴了前人以及官网的教程,如有侵权请联系作者删除,大家有问题可以随时留言交流,博主会及时回复。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1556299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++STL详解(二)】——string类模拟实现

目录 前言 一、接口总览 二、默认成员函数 1.构造函数 2.拷贝构造 写法一:传统写法 写法二:现代写法(复用构造函数) 3.赋值构造 写法一:传统写法 写法二:现代写法(复用拷贝构造) 4.析构函数 三、…

武汉星起航:引领跨境电商新纪元,助力卖家实现全球业务飞跃

在全球化的时代背景下,越来越多的中国卖家正选择跨境电商作为他们拓展国际市场的重要途径。然而,对于许多新手卖家而言,如何进入海外市场、如何运营店铺、如何推广产品,都是一道道难以逾越的难题。在这个关键时刻,武汉…

智慧公厕:改变城市生活的革命性基础设施

在现代城市的高品质生活要求背景下,公共厕所成为了不可或缺的基础设施。然而,传统的公厕在服务质量、管理效率方面存在一定的问题。为了提供更好的公厕服务,智慧公厕应运而生。通过智能化的管理模式,智慧公厕实现了公厕使用与管理…

【并发编程】线程的基础概念

一、基础概念 1.1 进程与线程A 什么是进程? 进程是指运行中的程序。 比如我们使用钉钉,浏览器,需要启动这个程序,操作系统会给这个程序分配一定的资源(占用内存资源)。 什么线程? 线程是CP…

【Java八股面试系列】数据库(总结市面所有数据库知识点)

文章目录 索引索引是什么聚簇&非聚簇索引索引的实现方式HashBTree(多路平衡二叉树)两种实现方式区别 引申红黑树红黑树和AVL树的区别最大堆和最小堆 索引的优劣优点劣势 索引的使用索引失效的时候 事务特性事务并发问题隔离级别 锁锁的分类行锁表锁意…

udpflood是一种什么攻击,如何防御?

一、定义 UDPFlood攻击是一种利用UDP协议进行的拒绝服务(DoS)攻击,攻击者通过发送大量的UDP数据包来占用目标系统的网络带宽和资源,从而使系统无法正常响应合法用户的请求。 二、攻击方式 1. UDP协议特点: UDP协议是一…

【详解】运算放大器工作原理及其在信号处理中的核心作用

什么是运算放大器 运算放大器(简称“运放”)是一种放大倍数非常高的电路单元。在实际电路中,它常常与反馈网络一起组成一定的功能模块。它是一种带有特殊耦合电路和反馈的放大器。输出信号可以是输入信号的加法、减法、微分和积分等数学运算…

最大连续子序列和求值

文章预览: 题目算法遍历枚举代码如下 优化版本代码如下 陈越姥姥题目代码 题目 最大连续子序列求和,什么是连续最大子序列,先简单来说一个数组int a[]{-9,1,-10,2,3,4,-2,5,6,-2,-3}; 那它的连续最大子序列是2,3,4,-2,5,6 是18,就…

首页HF粗排模型优化

[work rus_env]$ pwd /home/work/xx/du-rus/offline-tools/du_rus/rus_env [work rus_env]$ python buildenv_rus.py 5a0e771e938a486df3b8b3e1cde1a39c2006882d 5f3241963a3e39a8e1eae05d7075fc5b9278a7c7 打开日志级别 [workxx conf]$ vim /home/work/xx/du-rus/du_rus_…

线程中的核心操作

线程中的核心操作 1:start()2:中断(终止)一个线程2.1:自己定义线程结束的代码2.1.1 存在的问题 2.2:使用Thread提供的interrupt()方法和isInterrupted()2.2.1 继续执行2.2.2 立即结束2.2.3 打印异常信息,再立即结束2.2.1 继续执行 22三级目录 1:start() start() 真正的创建线程…

LeetCode Python - 80. 删除有序数组中的重复项 II

目录 题目描述解法运行结果 题目描述 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O…

奔赴智慧医院建设浪潮,迈瑞创新产品亮相中国医学装备大会

3月28日,第32届中国医学装备大会暨2024医学装备展览会在重庆顺利开展。迈瑞医疗以“助力医院高质量发展,共建智慧医院生态”为主题参展,多款核心零部件、创新产品及智慧医疗生态集体亮相。 满足需求,推动智慧医院建设提速 迈瑞医疗…

天下三分明月夜,独有快慢指针法(链表面试题篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…

什么是CVE? CVE漏洞应该如何防护?

CVE(Common Vulnerabilities and Exposures)的全称是公共漏洞和暴露,是公开披露的网络安全漏洞列表。IT人员、安全研究人员查阅CVE获取漏洞的详细信息,进而根据漏洞评分确定漏洞解决的优先级。 在CVE中,每个漏洞按CVE-…

Type-C一分二快充线智能分配方案

随着移动设备的普及和快充技术的迅猛发展,Type-C接口已成为众多手机、平板和笔记本电脑的标配。然而,在日常使用中,我们经常会遇到需要同时为多个设备充电的情况。这时,Type-C一分二快充线就显得尤为重要。为了更好地满足用户的充…

CSS之动画

一,动画的制作 实现盒子绕圈走 二, 动画的常用属性 三,动画简写属性 前面两个属性一定要写,第三个linear是指匀速的意思(默认是ease)

Day26 手撕各种集合底层源码(一)

Day26 手撕各种集合底层源码(一) 一、手撕ArrayList底层源码 1、概念: ArrayList的底层实现是基于数组的动态扩容结构。 2、思路: 1.研究继承关系 2.研究属性 3.理解创建集合的过程 – 构造方法的底层原理 4.研究添加元素的过程…

【Linux】图文详解Xshell远程连接服务器:以Amazon EC2 VPS为例

文章目录 问题描述解决方案Q&A 问题描述 本地cmd或powershell使用ssh -i “your.pem” user_nameip_address是可以登录Amazon EC2云服务器的。 然而,当使用XShell以SSH加载PEM文件方式登录亚马逊EC2云服务器,一直出现输入密码的问题,如…

FPGA亚稳态学习总结

首先是组合逻辑电路考虑的是竞争冒险,冒险会产生毛刺。重点研究如何去毛刺 时序逻辑电路考虑的是时序不满足会产生的亚稳态问题:如何考量时序满不满足呢?根据不同的场景又有不同的说法。 时序分析的两组基本概念 建立时间与保持时间 1.在…

使用Node.js常用命令提高开发效率

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,广泛用于构建服务器端应用程序和命令行工具。Node.js提供了丰富的命令和工具,可以帮助开发者更高效地开发应用程序。在日常开发中,除了Node.js本身的核心功能外,npm&#x…