遥感建模与开发_实习指导书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实习一 IDL使用环境
一、实习目的
熟悉IDL的界面并掌握IDL平台的基本操作。
二、原理与方法
无
三、实习仪器与数据
无
四、实习步骤
1、熟悉IDL的界面
2、尝试IDL命令行的工作方式
在命令行输入下面命令:
IDL> read,deg
IDL> radian=deg*!pi/180
IDL> print,radian
3、尝试过程和函数的工作方式,建立、保存和运行过程/函数过程:
Pro test
Read,deg
radian=deg*!pi/180
print,radian
end
函数:
function test,deg
radian=deg*!pi/180
return,radian
end
4、完成实习报告
要求包括实习目的、ENVI编程环境的基本构成、对IDL命令行、过程和函数这3种编程形式的初步认识,最好有自己初次接触ENVI软件的使用感受。
实习二 IDL基本命令
一、实习目的
掌握IDL的基本编程技巧,掌握过程和函数的编写,练习课程中讲授的基本编程知识。
二、原理与方法
无
三、实习仪器与数据
无
四、实习步骤
1、创建各种变量,并利用help函数跟踪变量类型和大小
IDL> a=1
IDL> help,a
IDL> b=3
IDL> help,b
IDL> b=-1.3
IDL> help,b
IDL> b=2e-2
IDL> help,b
IDL> c='I am a student~'
IDL> help,c
2、创建数组,
IDL> arr=[1,2,3,4]
IDL> help,arr
IDL> print,arr
IDL> arr=[[1,2,3],[4,5,6]]
IDL> help,arr
IDL> print,arr
3、创建各种表达式:数值型表达式、字符型表达式、关系型表达式等
IDL> a=2
IDL> b=3
IDL> c=3.2
IDL> print,a*2+b
IDL> print,c^2
IDL> print,9 mod 2
IDL> print,'i '+'am '+'a student'
IDL> help,a gt b
4、If语句
编程计算下面的公式并输出y的值。
pro test
x=3
if x ge 0 then begin
y=9+5*x^2
endif else begin
y=9-5*x^2
endelse
print,'y=',y
end
5、for语句
输出*的图形,最顶层为1个*,最底层为10个*,依次递增。
pro test
for i=0,9 do begin
arr=replicate('*',i+1) ;创建i+1个元素值都为”*”的一维数组
print,arr
endfor
end
6、while语句
输出*的图形,最顶层为1个*,最底层为10个*,依次递增。
pro test
while i le 9 do begin
arr=replicate('*',i+1)
print,arr
i++
endwhile
end
7、编写过程,将角度转为弧度
Pro test
deg=180
radian=deg*!pi/360
print,radian
end
8、编写函数,将角度转为弧度
function test,deg
radian=deg*!pi/360
return,radian
end
IDL> print,test(180)
1.57080
9、完成实习报告
要求包括实习目的、各种变量、数组与表达式的创建,控制语句IF、FOR、WHILE、函数和过程的基本形式。
实习三 IDL数组及运算
一、实习目的
学习IDL数组的定义、格式、下标操作,数组的基本运算,包括最值、均值、方差等,数组的查询定位操作,以及数组的重排列。
二、原理与方法
无
三、实习仪器与数据
无
四、实习步骤
1、利用函数创建数组
IDL> arr1=intarr(6)
IDL> print,arr1
IDL> arr2=indgen(6)
IDL> print,arr2
IDL> arr=indgen(2,2)
IDL> print,arr
IDL> arr=replicate(3.2,2,3)
IDL> print,arr
IDL> arr1=make_array(3,2,/byte)
IDL> arr1=make_array(3,2,/byte,/index)
IDL> print,arr1
IDL> arr1=make_array(3,2,value=12L)
IDL> print,arr1
IDL> sz=size(arr)
IDL> arr1=make_array(size=sz)
2、数组的下标操作
IDL> arr=indgen(6)
IDL> print,arr[2]
IDL> index=[2,4]
IDL> print,arr[index]
IDL> print,arr[2:4]
IDL> print,arr[*]
IDL> print,arr[3:*]
IDL> i=2
IDL> print,arr[i:i+2]
3、数组的性质,包括数组大小、类型、最大最小值、均值、方差、标准差和总和
IDL> arr=fltarr(10,20)
IDL> print,size(arr)
IDL> print,size(arr,/dimensions)
IDL> print,size(arr,/type)
IDL> print,size(arr,/n_elements)
IDL> arr=[1,3,4.2,6,-2.3,3.2]
IDL> print,max(arr),min(arr)
IDL> print,mean(arr),variance(arr),stddev(arr)
IDL> print,total(arr)
4、数组元素的定位,where函数
IDL> arr=findgen(10)