pro dianyunchuli
;-----1.芒果树a的圆心拟合-----
;COMPILE_OPT idl2
;envi, /restore_base_save_files
;envi_batch_init, log_file=‘芒果树a.txt’
;;开始设置路径,读取txt(n列,n行)
;txtname=‘E:\dianyunchuli\dianyunchuli\芒果树a.txt’
;if file_test(txtname)then begin
; nLines=file_lines(txtname) ;获取行
; tmp=’’
; ; 打开文件
; openr,lun,txtname,/get_lun
; while(~EOF(lun))do begin
; readf,lun,tmp ;获取第一行
; print,tmp
; ;help,tmp
; var=strsplit(tmp,/extract) ;拆分第一行获取列数
;
; rowNum=N_elements(var)
; vararr=fltarr(rowNum,nLines-1) ;定义数组(n,n-1)
; readf,lun,vararr
;
; vararr=[[var],[vararr]] ;重新组合数组(n,n-1)+第一行=(n,n)
; print,‘lon and lat =’,vararr
; help,var
; help,vararr
; endwhile
; ;平均值法
; X=mean(vararr[0,]) ;x平均值计算
; Y=mean(vararr[1,
]) ;y平均值计算
; print,‘平均值x,y’
; print,x,y
; ;最小二乘法
; X0=mean(vararr[0,]) ;x平均值计算
; Y0=mean(vararr[1,
]) ;y平均值计算
; Ui=vararr[0,]-X0 ;x与均值之差
; Vi=vararr[1,
]-Y0 ;y与均值之差
; Sumu2=total(Ui^2) ;平方总和
; Sumu3=total(Ui^3) ;立方总和
; Sumv2=total(Vi^2) ;平方总和
; Sumv3=total(Vi^3) ;立方总和
; Sumuv=total(Uivi) ;x差值乘y差值
; Sumu2v=total(Ui^2
Vi) ;x差值平方乘y差值
; Sumuv2=total(UiVi^2) ;x差值乘y差值平方
; ;带入公式
; Uc=(Sumu2v
Sumuv-Sumu3Sumv2-Sumuv2Sumv2+SumuvSumv3)/((2.0(Sumuv^2-Sumu2Sumv2)))
; Vc=((-1)
Sumu2Sumu2v+Sumu3Sumuv+SumuvSumuv2-Sumu2Sumv3)/(2.0*(Sumuv^2-Sumu2*Sumv2))
; ;均值加上改正数
; X=Uc+X0
; Y=Vc+Y0
; print,‘最小二乘法:x,y’
; print,X,Y
;end

;-----2.柱体4的圆心拟合-----
;COMPILE_OPT idl2
;envi, /restore_base_save_files
;envi_batch_init, log_file=‘柱体4.txt’
;;开始设置路径,读取txt(n列,n行)
;txtname=‘E:\dianyunchuli\dianyunchuli\柱体4.txt’
;if file_test(txtname)then begin
; nLines=file_lines(txtname) ;获取行
; tmp=’’
; ; 打开文件
; openr,lun,txtname,/get_lun
; while(~EOF(lun))do begin
; readf,lun,tmp ;获取第一行
; print,tmp
; ;help,tmp
; var=strsplit(tmp,/extract) ;拆分第一行获取列数
; rowNum=N_elements(var)
; vararr=fltarr(rowNum,nLines-1) ;定义数组(n,n-1)
; readf,lun,vararr
; vararr=[[var],[vararr]] ;重新组合数组(n,n-1)+第一行=(n,n)
; print,‘lon and lat =’,vararr
; help,var
; help,vararr
; endwhile
; void = reform(vararr[2,]) ;三维坐标点按z坐标的值从小到大排序
; sidx = sort(void)
; narr= vararr[
,[sidx]]
; print,narr
; Zmax=max(narr[2,]) ;z坐标最大值
; Zmin=min(narr[2,
]) ;z坐标最小值
; H=Zmax-Zmin ;计算圆柱的高度
; print,‘原圆柱Z坐标最大值最小值和高差’
; print,Zmax,Zmin,H ;用来大致确定需要分成小圆柱的个数
; print,‘各个小圆柱圆心坐标(最小二乘法):X,Y,Z’
; a=0
; while (a le 2220) do begin ;设置循环,行数有2253,循环到2250结束
; subnarr=narr[,0:a+30] ;每30个三维坐标点提取出一个子数组
; ;help,subnarr
; ;最小二乘法 ;每个子数组在循环中依次计算圆心坐标
; X0=mean(subnarr[0,
]) ;x平均值计算
; Y0=mean(subnarr[1,]) ;y平均值计算
; Ui=subnarr[0,
]-X0 ;x与均值之差
; Vi=subnarr[1,]-Y0 ;y与均值之差
; Sumu2=total(Ui^2) ;平方总和
; Sumu3=total(Ui^3) ;立方总和
; Sumv2=total(Vi^2) ;平方总和
; Sumv3=total(Vi^3) ;立方总和
; Sumuv=total(Ui
vi) ;x差值乘y差值
; Sumu2v=total(Ui^2Vi) ;x差值平方乘y差值
; Sumuv2=total(Ui
Vi^2) ;x差值乘y差值平方
; ;带入公式
; Uc=(Sumu2vSumuv-Sumu3Sumv2-Sumuv2Sumv2+SumuvSumv3)/((2.0*(Sumuv^2-Sumu2Sumv2)))
; Vc=((-1)
Sumu2Sumu2v+Sumu3Sumuv+SumuvSumuv2-Sumu2Sumv3)/(2.0*(Sumuv^2-Sumu2Sumv2))
; ;均值加上改正数
; X=Uc+X0
; Y=Vc+Y0
; Z=narr[2,a+15] ;每个小圆柱Z值的中数作为小圆柱的圆心Z值
; print,X,Y,Z
; a=a+30
; endwhile
;end
;
;-----3.l两个相交面求交线方程-----
COMPILE_OPT idl2
envi, /restore_base_save_files
envi_batch_init, log_file=‘两个面相交4.txt’
;开始设置路径,读取txt(n列,n行)
txtname=‘E:\dianyunchuli\dianyunchuli\两个面相交4.txt’
if file_test(txtname)then begin
nLines=file_lines(txtname) ;获取行
tmp=’’
; 打开文件
openr,lun,txtname,/get_lun
while(~EOF(lun))do begin
readf,lun,tmp ;获取第一行
print,tmp
;help,tmp
var=strsplit(tmp,/extract) ;拆分第一行获取列数
rowNum=N_elements(var)
vararr=fltarr(rowNum,nLines-1) ;定义数组(n,n-1)
readf,lun,vararr
vararr=[[var],[vararr]] ;重新组合数组(n,n-1)+第一行=(n,n)
print,‘lon and lat =’,vararr
help,var
help,vararr
endwhile
void = reform(vararr[2,
]) ;三维坐标点按z坐标的值从小到大排序
sidx = sort(void)
narr= vararr[,[sidx]]
print,narr
Ymin=min(narr[1,
]) ;Y坐标最小值
print,Ymin
; narr[1,i]=Ymin
; a=narr[*,i]

end
end

IDL编程实现拟合树的圆心代码相关推荐

  1. 树的数据结构代码_如何以无代码方式学习树数据结构

    树的数据结构代码 The tree data structure can form some of the most useful and complex data structures in all ...

  2. java转换ip地址格式转换_Java编程IP地址和数字相互转换代码示例

    最近才知道,将ip地址转换成十进制.八进制.十六进制同样可以访问网站. IP转为数字(第二种算法.用左移.按位或实现.效率更高.): public long ipToLong(String ipAdd ...

  3. 响应式编程笔记(二):代码编写

    2019独角兽企业重金招聘Python工程师标准>>> 响应式编程笔记(二):代码编写 博客分类: 架构 原文:Notes on Reactive Programming Part ...

  4. java事件绑定,Java编程GUI中的事件绑定代码示例

    程序绑定的概念: 绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来.对java来说,绑定分为静态绑定和动态绑定:或者叫做前期绑定和后期绑定 静态绑定: 在程序执行前方法已经被绑定,此时由编译 ...

  5. 《Python游戏趣味编程》标准IDE运行游戏代码的配置方法

    首先,用Pip安装pygame.pygame zero两个库: pip install pygame pip install pygame zero 第2章在编程猫海龟编辑器下的代码如下: impor ...

  6. C++ Primer Plus课后编程练习第6章参考代码

    (C++ Primer Plus课后编程练习第6章参考代码) 声明: 作者入门小白,将学习过程中的代码做一些分享,仅供大家参考,欢迎大家交流指正.全部编译运行过,水平有限,不喜勿喷. 环境: Wind ...

  7. java布尔矩阵程序_Java编程实现邻接矩阵表示稠密图代码示例

    我们知道,要表示结点,我们可以用一个一维数组来表示,然而对于结点和结点之间的关系,则无法简单地用一维数组来表示了,我们可以用二维数组来表示,也就是一个矩阵形式的表示方法. 我们假设A是这个二维数组,那 ...

  8. 计算机编程课要不要学,学完编程课还是不会写代码,问题到底出在哪?

    作为一名青椒,这几年在大学的教学工作做下来,发现无论是计算机专业的学生,还是把编程作为公修课的其他专业学生,很多人内心都有一个灵魂拷问--为什么我认真听课,认真看书书,几个月甚至一年下来但还是写不好代 ...

  9. [书目20160623]编程匠艺——编写卓越的代码

    本文转自:http://blog.chinaunix.net/uid-13164110-id-3410985.html 编程匠艺--编写卓越的代码  [美]Pete Goodliffe(皮特.古德利弗 ...

  10. 哈夫曼树构造以及代码实现

    哈夫曼树构造以及代码实现 什么是哈夫曼树 理解哈夫曼树 哈夫曼树的构造 哈夫曼树构造-代码实现 什么是哈夫曼树 构造一颗二叉树,该树的带权路径长度达到最小,称为最优二叉树,也称为哈夫曼树(Huffma ...

最新文章

  1. WSDL、SOAP、UDDI
  2. Homography matrix(单应性矩阵)在广告投放中的实践
  3. 微信小程序 文字居中
  4. JavaScript发布订阅者模式
  5. openharmony编译报错ubuntu20.04按照官方文档,hb set报错为OHOS ERROR] Invalid vendor path: /home/openharmony/vendor
  6. Android—OkHttp同步异步请求过程源码分析与拦截器
  7. .NET MVC CSRF/XSRF 漏洞
  8. 一款纯css3实现的超炫动画背画特效
  9. qt同时连接oracle和mysql_QT连接Oracle和Mysql的详细步骤,已成功~!
  10. ajax点击事件无法触发,解决jQuery Ajax动态新增节点无法触发点击事件的问题_婳祎_前端开发者...
  11. mysql 查看索引 命令_MySQL命令篇之库、表、索引、用户、视图及SELECT查询
  12. 《PostgreSQL服务器编程》一一1.8 程序设计最佳实践
  13. selenium测试(Java)-- 显式等待(九)
  14. Linux find并移动mv 14天前的文件
  15. 【ANSYS命令流】定义单元类型与实常数
  16. 计算机桌面底边出现库如何去掉,Win7电脑桌面图标有蓝底如何去掉?
  17. oracle 时间毫秒数,计算Oracle中两个时间戳之差(以毫秒为单位)
  18. 小程序开发之 wx.getUserInfo获取用户信息方案介绍
  19. adb命令之:手机与电脑文件之间的粘贴复制
  20. win10下设置超清晰壁纸

热门文章

  1. 实战:基于服务端开发和前后端分离开发区别
  2. C#:获得本机IP地址
  3. 实战Swiper:利用Swiper制作手机全屏相册
  4. 杨奇龙 mysql 分区_MySQL Group Replication 入坑指北 | By杨奇龙
  5. dedecms 会员发布的信息后台未审核,前台显示审核修改
  6. C++之explicit构造函数
  7. 从信号转换角度研究血压(波形)预测的相关论文
  8. weblogic部署war冲突解决记录
  9. HDU-1863-畅通工程
  10. 【aspnetcore】模拟中间件处理请求的管道