批量将csv转换成shp

2023-10-27

转载:https://blog.csdn.net/u012131430/article/details/90105857

根据自己的需求,对代码进行适当修改,并可以实现。

输入数据:一个文件夹下所有csv数据。
输出数据:一个文件夹下shp文件。

具体代码:

import arcpy
from arcpy import env
import glob
import os
import arcgisscripting

gp=arcgisscripting.create()

spatial_ref=arcpy.SpatialReference(4326)

env.workspace = r'存放csv数据的文件夹'

pathout = r'输出shp的文件夹'


x_corrods = 'lon'

y_corrods = 'lat'

h_te_best_fit = 'h_te_best_fit'


try:
    for file1 in arcpy.ListFiles("*.csv"):
        print file1
    

        info = os.path.basename(file1).split('.')[0]

        intable = file1

        outlayer = info

        print'outlayer',outlayer


        gp.MakeXYEventLayer_management(intable,x_corrods,y_corrods,outlayer,spatial_ref,h_te_best_fit)
        print'MakeXYEventLayer over'

        gp.FeatureClassToShapefile_conversion(outlayer,pathout)
        print'ToShapefile over'

except:
    print gp.GetMessages()



更新20220606
上面代码适用于将少量参数转换,如果想csv中所有变量都转换为shp,可以采用下面的代码。
代码来源:csv2shp by python

import  arcpy
import os
def csv2shp(csv_file, field_x, field_y, shape_file):
    """
    Convert a CSV file with x/y fields into a Shapefile
    """
    table_view = 'csv_file_as_view'
    layer = 'xy_event_layer'
    arcpy.MakeTableView_management(csv_file,table_view)
    arcpy.MakeXYEventLayer_management(table_view,field_x,field_y,layer)
    arcpy.CopyFeatures_management(layer, shape_file)
    arcpy.Delete_management(table_view)
    arcpy.Delete_management(layer)


if __name__ == '__main__':

    input_files = [
        r'D:\1.csv',
        r'D:\2.csv'
    ]
    output_location = r'D:\shp'
    field_x = 'lon_20'
    field_y = 'lat_20'

    for input_file in input_files:
        
        output_file = os.path.join(output_location, os.path.splitext(os.path.basename(input_file))[0] + '.shp')
        print "Create %s" % output_file
        csv2shp(input_file, field_x, field_y, output_file)

print('done!')

如果想批量转换,可以对代码进行修改:


import  arcpy
import os
def csv2shp(csv_file, field_x, field_y, shape_file):
    """
    Convert a CSV file with x/y fields into a Shapefile
    """
    table_view = 'csv_file_as_view'
    layer = 'xy_event_layer'
    arcpy.MakeTableView_management(csv_file,table_view)
    arcpy.MakeXYEventLayer_management(table_view,field_x,field_y,layer)
    arcpy.CopyFeatures_management(layer, shape_file)
    arcpy.Delete_management(table_view)
    arcpy.Delete_management(layer)


if __name__ == '__main__':

    input_files = os.listdir(r'D:\1')
    output_location = r'D:\shp'
    field_x = 'lon_20'
    field_y = 'lat_20'

    for input_file in input_files:
        filename = os.path.splitext(input_file)
        output_file = os.path.join(output_location,filename[0] + '.shp')
        print "Create %s" % output_file
        csv2shp(r'D:\1\\'+input_file, field_x, field_y, output_file)

print('done!')

报错及处理:
1.ExecuteError: Failed to execute. Parameters are not valid. ERROR 000732
报错原因:数据集不存在或不受支持。
出现这类错误最主要的原因就是路径格式不规范:
• 文件夹名称拼写错误
• 使用了反斜杠而不是正斜杠
• 路径名称中有空格
报错的代码: input_files = os.listdir('D:\1')
修改后的代码: input_files = os.listdir(r'D:\1')添加了r

2.AttributeError: 'list' object has no attribute 'replace'
报错原因:list对象没有replace方法,str对象才有,在list对象上调用replace当然会报AttributeError。
解决方法:str(),将list转换成str。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

批量将csv转换成shp 的相关文章

随机推荐

  • 第十三届蓝桥杯大赛软件赛省赛 Python 大学 C 组

    试题 A 排列字母 本题总分 5 分 问题描述 小蓝要把一个字符串中的字母按其在字母表中的顺序排列 例如 LANQIAO 排列后为 AAILNOQ 又如 GOODGOODSTUDYDAYDAYUP 排列后为 AADDDDDGGOOOOPST
  • 拥抱ChatGPT,开启结对咨询模式!

    ChatGPT刮起了一阵旋风 ChatGPT到底能做什么 做到什么程度 真的会让咨询顾问失业吗 带着这样的疑问 我费尽周折 注册了ChatGPT账号 我先从一个大众化的话题开启了与ChatGPT的对话 如何提高软件开发的质量 如果是我回答这
  • 网页文字复制的几种方法

    1 开启网页阅读模式 这种方法适用于Microsoft Edge浏览器中 它有网页阅读功能可以使用 在网址的最前面加上 read 就会进入网页阅读界面 然后选中文字就可以直接进行复制了 2 直接拖拽 一种简单直接的方法 不用进行任何其他操作
  • 如何在服务器上跑python程序

    购买服务器 首先你需要一个服务器 阿里云云翼计划有一个9 9云服务器ECS服务 你怎么买我不管 反正你最后给我搞到一个云服务器 购买的配置界面 由于阿里云现在限量购买 所以这里只是截个图说明而已 主要说明一点公共镜像选择ubuntu14 0
  • 【软件测试】理论知识基础第一章

    前言 骗取自己的救赎 直到和染尘斑驳的玫瑰一起坠入深渊 软件测试 理论知识基础第一章 一 认识软件测试 1 什么是软件测试 二 常见的测试分类 1 阶段划分 2 代码可见度划分 3 扩展 总结 三 模型 1 质量模型 2 W模型 四 软件测
  • Webservice接口的生成及调用

    最近项目上要对接一个Webservice形式的接口 因为以前一直没有对接过这种类型的 所以这次专门查了一些资料学习下 一 Webservice的简单介绍 WebService是一种跨编程语言和跨操作系统平台的远程调用技术 它通过标准通信协议
  • AAA协议tacacs认证简单实验

    实验名称 AAA的tacacs验证 实验目的 在AAA认证服务器上认证客户端telnet登陆路由器 实验拓扑图 主要实验步骤 Router上的配置 Router gt en Router conf t Router config inter
  • 内存超频时序怎么调_超频技术之内存“时序”重要参数设置解说

    超频技术之内存 时序 重要参数设置解说 来源 华强电子网 作者 华仔 浏览 432 时间 2017 05 10 21 48 标签 摘要 相信大多数超频帖子里都会提到内存时序调整 也就是我们经常看到的5 5 5 15 1T 4 5 4 12
  • python爬虫requests源码链家_Python 爬虫 链家二手房(自行输入城市爬取)

    因同事想在沈阳买房 对比分析沈阳各区的房价 让我帮忙爬取一下链家网相关数据 然后打 算记下笔记 用于总结学到的东西 用到的东西 一 爬虫需要会什么 学习东西 首先你要知道它是干嘛的 爬虫 顾名思义就是爬取你所看到的网页内容 小说 新闻 信息
  • 当可变形注意力机制引入Vision Transformer

    GiantPandaCV导语 通过在Transformer基础上引入Deformable CNN中的可变性能力 在降低模型参数量的同时提升获取大感受野的能力 文内附代码解读 引言 Transformer由于其更大的感受野能够让其拥有更强的模
  • 你的键盘多久没测试过了?看看有没有失灵

    键盘是电脑外置设备中易损坏的一种 也是必不可少的电脑配件 特别是程序员每天都需要频繁地使用键盘 键盘常会出现故障 例如失灵或某些字母 数字无法正常输入 这样既浪费时间又令人烦恼 为此 我们在这里提供一个在线测试工具 方便您测试键盘按键是否正
  • 疫情期间科研记录(1)——异步电机矢量控制

    2020年二月至三月 受疫情影响 居家隔离 受毕业以及找工作压力 居家而未敢忘科研 两个月成果如下 在此期间 参考大量文献和往上的代码 基本完善了开题时硕士毕业论文的电机控制系统概念 实现了基于概念的仿真模型 记此文档以备忘 异步电机矢量控
  • 【ARIMA-WOA-LSTM】合差分自回归移动平均方法-鲸鱼优化-长短期记忆神经网络研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 1 1 ARIMA模型 1 2 鲸鱼优化算法 1 3 LSTM 模型 2 运行结果 3 参考文献 4 Py
  • js数组对象取出指定元素相同的对象组成新数组

    要处理的数组 name 小明 age 18 address 天上 name 小红 age 19 address 地里 name 小明 age 20 address 叙利亚 name 小明 age 5 address 娘胎 想处理成 name
  • C++编译知识笔记(二)——Linux ELF文件解析

    目录 一 ELF格式概述 二 常见段及对应用途 三 目标文件内容解析 3 1 代码段 text 3 2 只读数据段 rodata 3 3 数据段 data 3 4 bss段 3 5 重定位表 Reloacation Table 相关段 re
  • Flink简单教学4-编程模型

    编程模型 此章编程模型是重点 理解Flink是如何工作的 虽然不涉及代码但非常有必要花时间阅读 2 4 节为重点 1 层次抽象 Levels of Abstraction 从底向上 抽象程都由低到高 以下说明了解以下即可 最低层次的抽象仅仅
  • 献给初学iOS的小盆友们------微博app项目开发之一项目初始化

    献给初学iOS的小盆友们 微博app项目开发之一 项目初始化 本人自学iOS也有七八个月了 不敢说学到很深入了 但也算入了门 此次微博app项目参考了传智播客培训教材 主要学习内容有架构思想 封装思想 代码重构 业务逻辑等内容 项目涵盖面广
  • 关于解决java环境配置好jdk但是在cmd中输入java等指令无反应的问题

    这是一个初学者经常犯的错误 在我们使用cmd窗口编译运行java文件时 有时候可以运行指令 但是环境变量就是一个很玄学的东西 可能你上午还在用cmd但是下午就不能用了 我这里有一种最简单的最容易理解和排除的方法 适用于你非常确定电脑上已经安
  • 十分钟弄懂最快的APP自动化工具uiautomator2(入门到精通)

    目录 导读 前言 一 介绍 二 环境部署 三 编写百度贴吧首页脚本 四 uiautomator2和appium运行速度比较 前言 相信很多使用appium做过APP自动化的人都深有感触 appium运行慢 时间长 uiautomatorvi
  • 批量将csv转换成shp

    转载 https blog csdn net u012131430 article details 90105857 根据自己的需求 对代码进行适当修改 并可以实现 输入数据 一个文件夹下所有csv数据 输出数据 一个文件夹下shp文件 具