首页 > 编程语言 >【Python&GIS】Python实现批量导出面矢量要素(单个多面矢量->多个单面矢量)

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

时间:2024-03-30 12:12:35浏览次数:39  
标签:shp GIS 批量 Python 矢量 path arcpy

        可怜的我周六还在工作,已经很久没更新过博客了,今天正好有空就和大家分享一下。今天给大家带来的是使用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过程中写过的一些代码。有些部分借鉴了前人以及官网的教程,如有侵权请联系作者删除,大家有问题可以随时留言交流,博主会及时回复。

标签:shp,GIS,批量,Python,矢量,path,arcpy
From: https://www.cnblogs.com/RSran/p/18105315

相关文章

  • 学python用什么软件好?python开发工具推荐?
    学python用什么软件好?对于python开发者来说,在互联网上有很多可用的开发工具,但对于初学者不知道哪个python开发工具比较好,找到一个合适的python开发工具是很难的,需要花费很多的时间精力。所以,今天php中文网就为初学者推荐十款好用的python开发工具。Python开发软件可根据其......
  • 初学者怎么学习Python?Python学习从什么开始?
    学习Python,可以先从Python爬虫开始哈首选,爬虫并不是网上传言的那样,动不动就面向铁窗编程等,正规的爬虫还是相当有市场的!!!而Python作为入门简易的语言,语法也相当简洁,用来入门爬虫再好不过了!学习Python爬虫需要一定的计划和步骤,以下是一个简单的学习计划:学习Python基础知......
  • Python判断语句
    (一)布尔类型和比较运算符1.布尔类型的字面量:True表示真(是、肯定)、False表示(否、否定)2.定义变量存储布尔类型数据:变量名称=布尔类型字面量3.比较运算符:布尔类型的数据,不仅可以通过定义得到,也可以通过比较运算符进行内容比较得到。运算符:“==”、“!=”(是否不相等)、“>”......
  • Python实现反爬虫
    环境Python3.12安装fastapipipinstall"fastapi[all]"代码fromfastapiimportFastAPI,Responsefromfastapi.responsesimportFileResponseapp=FastAPI()@app.get('/')defindex():resp=FileResponse('data.gz')res......
  • hatch python 现代项目管理工具
    hatchpython现代项目管理工具,以下是一些简单试用安装clibrewinstallhatch一些推荐配置这样我们的venv直接在执行目录中,比较方便使用hatchconfigsetdirs.env.virtual.hatch简单项目clihatchnewdalongdemo......
  • Python环境下一种改进小波分解方法-用于多分量信号的分解
    小波通俗的讲就是一种振幅表现为在正负之间震荡的波形。小波变换在基于短时傅立叶变换的前提下,又加入了其所没有的可随频率变化的“时间-频率”窗口,其能对时间、频率进行局部化分析,并且对待处理信号通过多尺度处理使其表现为时-频细分的特点,是一种能突出信号时频特点以及细节的......
  • Python环境下基于机器学习的空压机故障识别(出口阀泄漏等)
    Python环境下基于机器学习(多层感知机,决策树,随机森林,高斯过程,AdaBoost,朴素贝叶斯)的压缩机故障识别(出口阀泄漏,止逆阀泄露,轴承损伤,惯性轮损伤,活塞损伤,皮带损伤等)。空压机是一种经典的动力设备,也被誉为企业产品生产的"生命气源",,广泛应用于制药工业、爆破采煤、矿上通风、风动实......
  • Python的浅拷贝与深拷贝
    浅拷贝#第一种In[1]:x=[1,2,3]In[2]:y=x.copy()In[3]:x[1]=1In[4]:xOut[4]:[1,1,3]In[5]:yOut[5]:[1,2,3]#第二种In[6]:x=[1,2,3]In[7]:y=x[:]In[8]:x[1]=1In[9]:xOut[9]:[1,1,3]In[10]:yOut[10]:[1,2,3]......
  • Python之curd增删改查
    增append增加In[1]:hero=['1','2']In[2]:hero.append('3')In[3]:heroOut[3]:['1','2','3']extend多个增加In[3]:heroOut[3]:['1','2','3']In[4]:hero.......
  • Python之def函数
    注:函数的内容称为函数体,函数体是多条python语句组成的简单的一个print函数In[25]:defmyfunc():...:foriinrange(3):...:print("煤煤是小乖猫")...:#效果In[26]:myfunc()煤煤是小乖猫煤煤是小乖猫煤煤是小乖猫传入参数In[27]......