有同学找我帮忙完成一下需求:

实现点云数据的三维坐标球面坐标互转。

通过浏览器找到相关概念,通过python撸代码实现了功能,代码还有很多改进空间,多包涵!

下面简单介绍一下基本概念:

三维直角坐标系&球面坐标系

三维直角坐标系是一种利用直角坐标(x,y,z)来表示一个点 P 在三维空间的位置的三维正交坐标系。

球坐标系是一种利用球坐标(r,θ,φ)来表示一个点 P 在三维空间的位置的三维正交坐标系。

三维空间下直角坐标&球面坐标的相互转换

直角坐标转球坐标

球坐标转直角坐标

基于python的坐标转换实现

三维坐标转球面def xyz2Spherical(x,y,z):r=np.sqrt(pow(x,2)+pow(y,2)+pow(z,2))theta=math.atan(np.sqrt(pow(x,2)+pow(y,2))/z)beta=math.atan(y/x)return float(r),theta,beta

球面转三维坐标def Spherical2xyz(r,theta,beta):x= r*math.sin(theta)*math.cos(beta)y=r*math.sin(theta)*math.sin(beta)z=r*math.cos(theta)return x,y,z

完整代码实现如下:import mathimport numpy as npimport pandas as pd#三维坐标转球面def xyz2Spherical(x,y,z):r=np.sqrt(pow(x,2)+pow(y,2)+pow(z,2))theta=math.atan(np.sqrt(pow(x,2)+pow(y,2))/z)beta=math.atan(y/x)return float(r),theta,beta#球面转三维坐标def Spherical2xyz(r,theta,beta):x= r*math.sin(theta)*math.cos(beta)y=r*math.sin(theta)*math.sin(beta)z=r*math.cos(theta)return x,y,z#读取文件def loadData(fileName):pointData=[]with open(fileName) as txtData:lines=txtData.readlines()for line in lines:lineData=line.strip().split(",")floatLine=list(map(float,lineData))pointData.append(floatLine)return pointDatadef xyz(pointData):x=[]y=[]z=[]for i in range(len(pointData)):x.append(pointData[i][:1])y.append(pointData[i][1:2])z.append(pointData[i][2:3])return np.array(x),np.array(y),np.array(z)if __name__ == "__main__":pointData=loadData("D:\\Users\\Desktop\\2.txt")x=xyz(pointData)[-3]y=xyz(pointData)[-2]z=xyz(pointData)[-1]for i in range(len(x)):c=xyz2Spherical(x[i],y[i],z[i])f= open("D:\\Users\\Desktop\\pointData_conert.txt","a+")f.writelines(str(c)+"\n")f.close()

最终输出pointData_convert.txt文件,就可以导入ArcGIS 或QGIS里进行后续分析可视化工作了。

(球面转三维坐标没有使用,同样直接调用函数Spherical2xyz)

另外,之前有盆友留言因为长时间没更新,没有及时回复抱歉!

最后,代码没有时间review,还有改进空间提高I/O速度!

python处理千万级数据_python实现千万级+点云数据三维坐标球面坐标互转相关推荐

  1. 如何用python批量下载数据_Python批量下载地理空间数据云数据!Python无所不能!...

    模拟登录 这里要用到两个包:requests和json.requests使用前得先安装:pip install requests. In [3]: 进群:548377875 即可获取数十套PDF哦! ...

  2. 万国数据:“为了全方位保障混合云数据中心的安全,我们连猫都养了十只。”...

    "互联网+"时代背景下各大企业都在忙着互联网转型,企业用户出于安全和业务灵活性的考虑,更愿意将数据存放在私有云中,但是同时又希望可以获得公有云的计算资源和稳定性,在这种情况下,将公 ...

  3. ROS:bag数据包内容提取——雷达点云数据和imu数据

    通常在利用ros采集传感器数据时,我们会得到一个包含多个传感器数据的bag数据包,下面将会介绍从bag数据包提取雷达点云数据和imu数据的方法. 系统版本:Ubuntu20.04 ROS版本:Noet ...

  4. python输出键值列表_Python 键值分组或分区数据

    Python 使用键值分组或者分区数据,对分组后的数据做何种归约是没有限制的.数据中可能包含一些自变量或者因变量.可以通过自变量对数据进行分区,然后计算每个分区的各项汇总值,包括最大值.最小值.平均值 ...

  5. python爬虫教材推荐 豆瓣_Python爬虫爬取豆瓣书籍数据

    炎热的夏天,酷暑难挡,难免会心烦意燥,睡前随手拿起枕边看过很多遍的「平凡的世界」.看书,会让躁动的心瞬间安静下来. 生活不能等待别人来安排,要自己去争取和奋斗:而不论其结果是喜是悲,但可以慰藉的是,你 ...

  6. python处理行情数据_Python获取股票历史、实时数据与更新到数据库

    要做量化投资,数据是基础,正所谓"巧妇难为无米之炊" 在免费数据方面,各大网站的财经板块其实已提供相应的api,如新浪.雅虎.搜狐...可以通过urlopen相应格式的网址获取数据 ...

  7. python覆盖数据库重复数据_Python操作MySQL数据库,插入重复数据

    sql = "INSERT INTO test_c(id,name,sex)values(%s,%s,%s)" param = (1,'AJ','MAN') n = cursor. ...

  8. python 大智慧股票行情数据_Python获取股票历史数据和收盘数据的代码实现

    各种股票软件,例如通达信.同花顺.大智慧,都可以实时查看股票价格和走势,做一些简单的选股和定量分析,但是如果你想做更复杂的分析,例如回归分析.关联分析等就有点捉襟见肘,所以最好能够获取股票历史及实时数 ...

  9. matlab点云数据dem,一种基于点云数据的DEM生成方法

    第38卷 第5期 2015年 5月 测绘 与空 间地理信 息 GEOMATICS& SPATIAL INFoRMATIoN TECHNOLOGY Vo1.38.No.5 May.,2015 一 ...

  10. python 千万级数据处理_Python实现 ! 千万级别数据处理

    今天分享一个数据清洗小技巧,可以让你在遇到百万.千万级别数据的时候游刃有余.先来说说问题的背景 现在有一个 csv 格式的数据集,大概 2千万条 左右的样子,存储的是用户的网络交互数据,其中电话号码作 ...

最新文章

  1. Linux必学的网络操作命令
  2. 自定义栈-pop-push-min-时间复杂度都为O(1)
  3. python培训学费多少钱-深圳龙华新区python编程培训机构,从哪几方面选择好学校...
  4. sql查询两张表的并集union和union all
  5. 数据库的事务隔离技术 之 MVCC
  6. 配置防盗链、 访问控制Directory 、访问控制FilesMatch
  7. Codeforces 845 C. Two TVs 思路:简单贪心算法
  8. SVD分解.潜语义分析.PythonCode
  9. 【Visual C++】游戏开发笔记四十 浅墨DirectX教程之八 绘制真实质感的三维世界:光照与材质专场...
  10. mysql 端口 telnet 不通_3306端口不通,不一定是网络的问题
  11. Unity MeshBaker 合并网格和材质
  12. 抽奖啦!量子位原创T恤任性送,夏天就要酷酷的
  13. WIN7 VS2010下配置 CGAL-4.7
  14. chromebook开发php,玩转chromebook
  15. 从零开始一起学习SLAM | 相机成像模型
  16. MAC硬盘空间减少的隐藏杀手,VM到底是什么?
  17. QGIS无人机数据分析教程
  18. 配置管理的目标和主要活动
  19. 微擎弹出确认授权获取用户头像
  20. Beego-HelloWorld

热门文章

  1. 基于python的异方差检验_【Python】统计科学之讲讲异方差的检验
  2. 肠道菌群失调是II型糖尿病和炎症性肠病的标志物
  3. sqlite3:深入理解sqlite3_stmt 机制
  4. 五分钟学会PowerDesigner创建概念数据模型
  5. MySQL中的alter table命令的基本使用方法及提速优化
  6. Elasticsearch系列——(1.2)倒排索引 的实现
  7. C语言编程练习---2021山东理工大学ACM 实验一J---X题解
  8. 华为自研OS操作系统,今秋是否真的会面市?
  9. python像数常用函数_八卦象数疗法常见配方
  10. 计算机网卡接口,5.8.1 计算机网卡(1)