问题描述

现有某河道大断面测量数据,数据形式为 CAD 格式,如图所示。

需将其转换为文本格式,如下图。

实现方法

数据提取

思路

由于CAD图中的起点距高程数据无法直接导出,不利于数据格式转换。考虑采用 OCR文字识别 提取出各断面数据,并存储到 Excel 表格中。

方法

采用 QQ截图 的文字识别功能,对图片中的数据提取,校正后存储到 Excel 表格中。

数据格式转换

方法

由于断面数据较多,考虑使用 Python 自动处理,发挥 Python 在数据处理方面的优势。

实现

模块安装

安装 xlrd 模块以读取 Excel 数据,安装方法自行百度,不再赘述。

数据读取与输出

import xlrd #导入读取Excel数据模块
#读取数据
data = xlrd.open_workbook("桐庐河道地形.xlsx")
table = data.sheet_by_name("Sheet1")
#输出数据
fo = open("桐庐河道地形.txt", "w", encoding = "ANSI")
fo.write("河道地形\n")
fo.write("22\n")

定义变量

#定义全局变量
n = 1 #序号
flag = 1 #标志:断面数据中即为1,断面间隔为0

输出断面文字部分

    if flag:fo.write("\n{}    断面{}    {}    0.015\n".format(n, int(line), line))fo.write("不规则形  1  {}  ".format(int(table.cell_value(i, 1))))n = n + 1flag = 0

输出起点距高程对

if i != table.nrows - 1:if line != "":fo.write("{}  ".format(table.cell_value(i+1, 0)))else:pass

完整程序

import xlrd #导入读取Excel数据模块
#读取数据
data = xlrd.open_workbook("桐庐河道地形.xlsx")
table = data.sheet_by_name("Sheet1")
#输出数据
fo = open("桐庐河道地形.txt", "w", encoding = "ANSI")
fo.write("河道地形\n")
fo.write("22\n")#定义全局变量
n = 1 #序号
flag = 1 #标志:断面数据中即为1,断面间隔为0#主体程序
for i in range(table.nrows):line = table.cell_value(i, 0)#输出断面文字部分if flag:fo.write("\n{}    断面{}    {}    0.015\n".format(n, int(line), line))fo.write("不规则形  1  {}  ".format(int(table.cell_value(i, 1))))n = n + 1flag = 0#输出起点距高程对if i != table.nrows - 1:if line != "":fo.write("{}  ".format(table.cell_value(i+1, 0)))else:pass#如果遇到空格,则说明本断面数据已读取完毕,进入下一断面if line == "":flag = 1fo.close()

处理结果

数据文件及程序

请从附件下载。
请从附件下载。
请从附件下载。

重要事情说三遍。

【Python】03 河道横断面数据处理相关推荐

  1. python空间数据处理_基于Python语言的空间数据处理

    龙源期刊网 http://www.doczj.com/doc/7b0e0476172ded630a1cb662.html 基于Python语言的空间数据处理 作者:何丽娴甘淑陈应跃 来源:<价值 ...

  2. 基于Python长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物量估算与趋势分析等领域中的应用实践技术

    查看原文>>>基于Python长时间序列遥感数据处理及在全球变化.物候提取.植被变绿与固碳分析.生物量估算与趋势分析等领域中的应用实践 目录 专题一.长时序遥感产品在全球变化/植被变 ...

  3. 长时间序列遥感数据植被物候提取/遥感数据产品分析暨MODIS NDVILAI多年产品数据批处理分析/Python长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物量估算与趋势分析

    基于MATLAB长时间序列遥感数据植被物候提取与分析 1.本课程基于matlab语言 2.提供所有代码 3.以实践案例为课程内容主线,原理与操作相结合 4.根据讲解内容,布置作业,巩固所学内容及拓展在 ...

  4. python使用教程pandas-Python 数据处理库 pandas 入门教程基本操作

    pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库.本文是对它的一个入门教程. pandas提供了快速,灵活和富有表现力的数据结 ...

  5. python地理数据处理 下载_python-doc/将Python用于地理空间数据处理.md at master · zhuxinyizhizun/python-doc · GitHub...

    毫无疑问,Python是当今最流行,最通用的编程语言之一.这有很多种强有力的原因,但在我看来,最重要的是:开源定义,语法简单,包括电池的理念(batteries included philosophy ...

  6. 离散度计算公式 python_被多种离散化场景困扰?8种python技巧!让数据处理更简单...

    前言 python数据处理与分析学习过程中,需要有这样的一种意识,即元"为什么选择了python而不是其他?"既然选择了python,那么在实际应用中,它到底哪里不一样?大家说的方 ...

  7. sql和python的区别_数据处理简单对比:Excel,SQL,Python

    前言 无论是什么工具,做数据分析的时候一定会涉及到两类工作: 合并多个关联表 做数据透视表 这篇文章简单对比一下Excel.SQL和Python在这两类任务上的实现过程,从而对比其异同. 用到的数据表 ...

  8. 【Python】pandas 缺失数据处理大全(附代码)

    之前一直在分享pandas的一些骚操作:pandas骚操作,根据大家反映还不错,但是很多技巧都混在了一起,没有细致的分类,这样不利于查找,也不成体系. 利用闲暇之余将有关数据清洗.数据分析的一些技能再 ...

  9. 二十八、接了一单Python北京空气质量数据处理

    @Author :Runsen 这是接的一单Python数据分析的,文件我删了,不好意思 文章目录 北京空气质量数据处理 分析解决方法 代码 计算北京每年的PM2.5情况 计算北京每年1-12月的PM ...

最新文章

  1. 聊一聊Spring中的线程安全性
  2. pthread_testcancel和pthread_cancel函数的简单示例
  3. Spring bean 之 FactoryBean
  4. php 多个文件,PHP实现将多个文件中的内容合并为新文件的方法示例
  5. 被“轻视”的CV·AR的背后核心技术
  6. 介绍求解AX=b:可解性与解的结构
  7. 流与文件 java_java流与文件处理,请看代码:
  8. jquery中的 $(function(){})
  9. 通过在Global.asax文件中配置Application来统计的方法
  10. 试分别简述udp和tcp的特点_技术帖:污水处理中曝气设备的分类及特点小结
  11. Windows 64 位 mysql 5.7.20 安装教程
  12. 【被C折腾系列】用C调DIOCP编码客户端通信
  13. 第一次用AX2009正式版!
  14. 史诗级互联网电商系统的演进过程详解
  15. 曲线平滑算法 matlab,matlab学习之降噪平滑算法
  16. 鸿蒙 usb调试,usb调试助手
  17. BAS:天牛须搜索智能优化算法
  18. 在windows服务器部署mysql,局域网内操作
  19. java读取图片文字
  20. 辉芒微IO单片机FT60F11F-MRB

热门文章

  1. orleans remote call error
  2. 汽车车内CAN总线 网络安全分析及防御措施
  3. win10右下角声音符号红叉提示解决未安装任何音频输出设备
  4. Windows系统编译制作SpiderMonkey最新版mozjs-31.2.0版本
  5. 硕士论文答辩需要注意哪些问题?
  6. 修改网站地址栏小图标
  7. 龙套生涯:《鬼马双星》——许冠杰大战洪金宝
  8. 腾讯云网站备案咨询类解答:网站是否需要备案?
  9. 《图解HTTP》读感
  10. Android开发 之 LinearGradient与闪动文字效果