版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
郭洋天文與空間科學(xué)學(xué)院IDL可視化分析基礎(chǔ)4.輸入和輸出4.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出4.2
ASCII碼與二進(jìn)制格式4.3
圖像格式4.4
科學(xué)數(shù)據(jù)格式內(nèi)容基于《IDL程序設(shè)計——數(shù)據(jù)可視化與ENVI二次開發(fā)》,董彥卿,高等教育出版社,20124.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出標(biāo)準(zhǔn)輸入是鍵盤輸入,標(biāo)準(zhǔn)輸出是輸出到屏幕。1)輸入與輸出函數(shù):函數(shù)作用Print標(biāo)準(zhǔn)輸出寫出格式化數(shù)據(jù)Read標(biāo)準(zhǔn)輸入讀入格式化數(shù)據(jù)Reads從字符串中讀取格式化數(shù)據(jù)4.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出2)在標(biāo)準(zhǔn)輸入、輸出時,可以對格式進(jìn)行自由控制,即通過調(diào)用格式化控制符:[n]FC[+][-][width]來實現(xiàn):字段含義n代表格式控制符的重復(fù)次數(shù),默認(rèn)為1次FCFormat
Codes:格式控制符,詳見例子及下表+在輸出的數(shù)字前加“+”,僅對數(shù)字格式化輸出有效-控制輸出為左對齊,默認(rèn)右對齊width控制輸出數(shù)字或字符的寬度4.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出IDL>
print,format='(3I6)',[0,10,20]0
10
20IDL>
print,format='(I+6)',[-10,0,10]-10+0+10IDL>
print,format='(I-6)',[-10,0,10]-10010IDL>;格式符寬度與字符串寬不符,字符串短則右對齊輸出,長則截斷IDL>
print,format='(a4)',['abcdef','ab']abcdab4.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出IDL>;格式符寬度與數(shù)字長度不符,數(shù)字短則右對齊輸出,長則輸出為“*”IDL>
print,format='(I3)',[12,123,1234]12123***IDL>;格式輸出數(shù)字時前加0,數(shù)字短則左側(cè)自動補0IDL>print,format='(I03)',[12,123,1234]012123***IDL>;格式符寬度為0則依照原始格式輸出IDL>
print,format='(I0)',[12,123,1234]1212312344.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出格式化控制符是精確控制輸出格式的符號,如控制輸出字符個數(shù)、位置、浮點數(shù)小數(shù)點位置等格式。IDL中的格式化控制符見下表4.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出格式代碼含義a字符及字符串的格式化輸入輸出:若沒有有效的變量,則終止輸入輸出$不輸出換行符,這樣可實現(xiàn)多次輸出為一行F,
D,
E,G用于浮點數(shù)的輸入輸出B,
I,
O,
Z整數(shù)輸入輸出的進(jìn)制轉(zhuǎn)換,B:二進(jìn)制;I:十進(jìn)制;O:八進(jìn)制;Z:16進(jìn)制Q讀取獲得當(dāng)前行的字符數(shù)字符串和H用引用字符或H直接輸出字符T變量輸出的絕對位置TL從當(dāng)前位置向左(后)移動TR從當(dāng)前位置向右(前)移動C()用于輸出日期數(shù)據(jù)(Julian
data格式,/格式,時間格式)C
printf-Style提供C語言風(fēng)格的格式化輸出/換行輸出4.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出IDL>;a用來控制字符輸出IDL>
print,format='(a3)','0123456'012IDL>
print,format='(a10)','0123456'0123456IDL>;":"控制分割符號的輸出,默認(rèn)是空格
IDL>arr=indgen(6)IDL>
print,format='(6I)',arr0
1
2
3
45IDL>
print,format='(6(I,:,","))',arr0,
1,
2,
3,4,5IDL>
print,format='(6(I,:,"$"))',arr0$
1$
2$
3$4$54.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出;lun邏輯設(shè)備號IDL>;'$'抑制換行符,則輸出后不換行
IDL>str1='abc'IDL>
str2
='def'IDL>
openw,lun,‘demo.txt’,/get_lunIDL>
printf,lun,str1
&
printf,lun,str2IDL>
free_lun,lun;demo.txt文件的內(nèi)容為
abcdefIDL>
openw,lun,'demo.txt',/get_lunIDL>
printf,lun,format='($,a)',str1
&
printf,lun,str2IDL>
free_lun,lun;demo.txt文件內(nèi)容為
abcdef4.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出IDL>;讀取某一行字符時,可以通過Q關(guān)鍵字獲得當(dāng)前行的字符數(shù)IDL>
read,charnumber,format='(q)':
abcdefghIDL>
print,charnumber8.00000IDL>;'.\test.txt'文件中包含一行字符‘123’IDL>openr,lun,'.\test.txt',/get_lunIDL>readf,lun,curlun,format='(q)'
IDL>free_lun,lunIDL>
print,curlun3.000004.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出IDL>;如需輸出其它字符,有直接輸出或H格式字符兩種方法
IDL>var=8IDL>
print,format='("value:",I0)',varvalue:8IDL>
print,format='(6HValue:,I0)',varValue:8IDL>;絕對位置輸出時用T格式化符IDL>
print,format='("ab",T6,"cd")ab
cdIDL>
print,format='("ab",T2,"cd")'acdIDL>;空格輸出用nX,其中n是空格個數(shù)
IDL>print,format='("ab","cd","ef")abcdefIDL>
print,format='("ab",2X,"cd",4X,"ef")ab
cd
ef4.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出IDL>;把字符從當(dāng)前位置向左移動用TlIDL>
print,format='("ab","cd","ef")'abcdefIDL>
print,format='("ab","cd",TL2,"ef")abefIDL>
print,format='("ab","cd",TL3,"ef")aefdIDL>;把字符從當(dāng)前位置向右移動用TrIDL>
print,format='("ab","cd","ef")'abcdefIDL>
print,format='("ab",Tr2,"cd","ef")'ab
cdefIDL>
print,format='("ab",Tr2,"cd",Tr4,"ef")'ab
cd
ef4.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出3)浮點數(shù)格式符[n]F[+][-][w][.d][n]D[+][-][w][.d][n]E[+][-][w][.d][n]G[+][-][w][.d]F是以定點計數(shù)法輸出浮點型(單、雙精度)數(shù)值D和F功能一樣,主要是兼容FORTRAN語言習(xí)慣
E以指數(shù)形式(科學(xué)格式)輸出G根據(jù)數(shù)據(jù)大小自動選擇E或者F格式IDL默認(rèn)字符寬度和精度類型w字符跨度d小數(shù)點精度E指數(shù)位數(shù)Float、Complex1573(非Windows為2)Double25163(非Windows為2)其它25163(非Windows為2)4.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出IDL>;F/D格式符IDL> var
=
10.0
&
print,var10.0000IDL>
print,var,format='(f)'10.0000000IDL>
print,var,format='(f10.3)'10.000IDL>
print,var,format='(f4.3)'****4.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出IDL>;E格式符IDL>
print,var,format='(e11.4)'1.0000e+001IDL>;G格式符IDL>
print,var,format='(g11.4)'10.00IDL>
var
=1000000.0IDL>
print,var,format='(g11.4)'1.000e+0064.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出4)進(jìn)制轉(zhuǎn)換二進(jìn)制八進(jìn)制[n]B[-][w][.m][n]I[+][-][w][.m]
十進(jìn)制[n]O[-][w][.m][n]Z[-][w][.m]十六進(jìn)制4.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出IDL>;B輸出二進(jìn)制數(shù)IDL>
var
=
22IDL>
print,var,format='(B)'10110IDL>;I輸出十進(jìn)制數(shù)IDL>
var=1000
&
print,var,format='(I)'1000IDL>
var=1000
&
print,var,format='(I4)'10004.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出IDL>;O輸出八進(jìn)制數(shù)IDL>
var=7
&
print,var,format='(O)'7IDL>
var=8
&
print,var,format='(O)'10IDL>;Z輸出十六進(jìn)制數(shù)IDL>
var=9
&
print,var,format='(Z)'9IDL>
var=10
&print,var,format='(Z)'A4.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出5)使用C()進(jìn)行日期與時間輸出IDL>;輸出當(dāng)前日期,默認(rèn)為地方時
IDL>print,systime()Fri
Jul
04
20:20:34
2014IDL>
print,systime(/utc)Fri
Jul
04
12:21:01
2014IDL>;輸出秒制當(dāng)前日期,自1970年1月1日起算
IDL>print,systime(1)1.4044765e+009IDL>;輸出儒略日IDL>
print,systime(/julian)2456843.34.輸入和輸出4.1
標(biāo)準(zhǔn)輸入與輸出IDL>;設(shè)置變量為當(dāng)前時間IDL>
curtime=systime(/julian)IDL>;以默認(rèn)格式輸出當(dāng)前時間IDL>
print,curtime,format='(c())'Fri
Jul
04
20:30:22
2014IDL>;輸出年月日IDL>
print,curtime,format='(c(CYI,"-",CMOI,"-",CDI))'2014-
7-4IDL>;輸出時分秒IDL>
print,curtime,format='(c(CHI,":",CMI,":",CSI))'20:30:224.輸入和輸出4.2
ASCII碼與二進(jìn)制格式1)打開文件在IDL中,讀寫ASCII碼與二進(jìn)制文件時,先將一個邏輯設(shè)備號(LUN)與文件進(jìn)行關(guān)聯(lián),然后對設(shè)備邏輯號進(jìn)行讀、寫或更新等操作。LUN范圍為-2~128,其中1~99可以由用戶任意指定;100~128由IDL內(nèi)部進(jìn)行管理;其它值為專用設(shè)備號。例如,0是常規(guī)標(biāo)準(zhǔn)輸入,一般是鍵盤。以下是功能一樣的命令I(lǐng)DL>
read,x:
0IDL>
read,0,x004.輸入和輸出4.2
ASCII碼與二進(jìn)制格式1)打開文件-1是常規(guī)標(biāo)準(zhǔn)輸出,一般是屏幕,以下命令的功能也是一樣的IDL>
print,x0.000000IDL>
printf,-1,x0.000000-2是錯誤流,一般是屏幕4.輸入和輸出4.2
ASCII碼與二進(jìn)制格式常用文件操作函數(shù)函數(shù)名稱功能Close關(guān)閉一個文件Dialog_pickfile對話框方式選擇文件Eof()檢測是否到文件末File_basename獲取不包含目錄部分的文件名Free_lun釋放一個邏輯設(shè)備號并關(guān)閉文件fstat返回一個已打開文件的信息Openr打開文件,只能進(jìn)行讀操作Openw新建文件,可以進(jìn)行讀、寫操作Openu打開文件,可以對內(nèi)容進(jìn)行更新4.輸入和輸出4.2
ASCII碼與二進(jìn)制格式2)ASCII碼文件讀寫IDL使用Readf函數(shù)從ASCII碼(文本或有格式)文件中讀出數(shù)據(jù);使用Printf函數(shù)將數(shù)據(jù)寫出到文件。讀寫方法分為自由讀寫和格式化讀寫兩種。自由讀寫適用于元素間由逗號或空白分割的文件;格式化讀寫適用于元素按照特定格式排列的文件。4.輸入和輸出4.2
ASCII碼與二進(jìn)制格式例如,讀取文件“asciiFile.txt”,內(nèi)容如下:244Column
1:
Band
NumberColumn
2:
X:1Y:1--21.0000000.1079942.0000000.0270353.0000000.0859754.0000000.0219424.輸入和輸出4.2
ASCII碼與二進(jìn)制格式pro
read_afasciifile
=
dialog_pickfile(title='Pick
file',
$filter='*.txt',path='.\')openr,lun,asciifile,/get_lunif
(lun
eq
-1)then
beginvoid
=
dialog_message('fileerror!',/error)returnendiftmp=''
;逐行讀取,并在控制臺輸出while(~eof(lun))
do
beginreadf,lun,tmpprint,tmpendwhilefree_lun,lunend4.輸入和輸出4.2
ASCII碼與二進(jìn)制格式pro
read_af1asciifile
=
dialog_pickfile(title='Pick
file',
$filter='*.txt',path='.\')openr,lun,asciifile,/get_luntmp=intarr(3)
;基于數(shù)據(jù)類型讀取
str=strarr(2)data=fltarr(2,4)openr,lun,asciifile,/get_lunreadf,lun,tmpreadf,lun,strreadf,lun,datahelp,tmp,str,datafree_lun,lunend4.輸入和輸出4.2
ASCII碼與二進(jìn)制格式字符串讀取:Reads函數(shù)IDL>;字符串包含行數(shù)、列數(shù)和日期IDL>str1
=
'10
24500
12
June1996'IDL>column
=
0IDL>row
=
0IDL>date
=
''IDL>reads,str1,column,row,dateIDL>print,column10IDL>print,row24500IDL>
print,date12
June
19964.輸入和輸出4.2
ASCII碼與二進(jìn)制格式3)二進(jìn)制文件讀寫二進(jìn)制文件中的數(shù)據(jù)按照二進(jìn)制字節(jié)方式直接存儲在文件中,它比ASCII碼文件要小得多,更適用于存儲大數(shù)據(jù)。IDL讀寫二進(jìn)制數(shù)據(jù)是利用Readu函數(shù)和Writeu函數(shù)。例如,新建一個二進(jìn)制文件并寫入一個整型數(shù)組:IDL>
openw,lun,'.\binary.dat',/get_lunIDL>
writeu,lun,indgen(4,5)IDL>
free_lun,lun4.輸入和輸出4.2
ASCII碼與二進(jìn)制格式3)二進(jìn)制文件讀寫用Readu函數(shù)讀取:IDL>
openr,lun,'.\binary.dat',/get_lunIDL>
arr
=intarr(4,5)IDL>
readu,lun,arrIDL>
free_lun,lunIDL>
print,arr0123456789101112131415161718194.輸入和輸出4.3
圖像格式IDL自帶了豐富的圖像文件格式讀、寫以及圖像查詢函數(shù)文件格式讀寫圖像查詢BMPRead_bmpWrite_bmpQuery_bmpGIFRead_gifWrite_gifQuery_gifJPEGRead_jpegWrite_jpegQuery_jpegPICTRead_pictWrite_pictQuery_pictPBM/PPMRead_ppmWrite_ppmQuery_ppmPNGRead_pngWrite_pngQuery_pngPostScript無PS或打印設(shè)備無4.輸入和輸出4.3
圖像格式JPEG是與平臺無關(guān)的一種圖像格式,它應(yīng)用廣泛,支持各種級別的壓縮,但要注意壓縮會損失圖像的質(zhì)量。IDL>
jpegfile
=
'.\gaotie.jpg'IDL>
result
=query_image(jpegfile,infor,supported_read=supportinfor,type=type)%
Compiled
module:
QUERY_IMAGE.%
Loaded
DLM:
JPEG.IDL>;輸出查詢結(jié)果,1表示文件是IDL支持的圖像類型
IDL>print,result14.輸入和輸出4.3
圖像格式IDL>;查看文件信息結(jié)構(gòu)體,包含維數(shù)、行列數(shù)、索引、像素類型和圖像類型等信息IDL>
help,infor,/structure**
Structure
<3d88050>,
7
tags,
length=48,data
length=40,
refs=1:3Array[2]0011CHANNELSDIMENSIONSHAS_PALETTEIMAGE_INDEXNUM_IMAGESPIXEL_TYPETYPELONGLONGINTLONGLONGINTSTRING'JPEG'4.輸入和輸出4.3
圖像格式IDL>;輸出IDL支持讀取的文件類型
IDL>print,supportinforBMP
GIF
JPEG
PNG
PPM
SRF
TIFF
DICOMJPEG2000IDL>;輸出當(dāng)前文件類型
IDL>print,typeJPEGIDL>;用Query_jpeg函數(shù)查詢當(dāng)前JPEG文件IDL>
result
=query_jpeg(jpegfile,infor)IDL>;輸出查詢結(jié)果1,表示該文件是IDL支持的JPEG格式
IDL>print,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遙感影像分類算法-第1篇-洞察分析
- 塑料廢棄物回收利用-洞察分析
- 陳家祠研學(xué)課程設(shè)計
- 消費者文化在廣告設(shè)計中的應(yīng)用-洞察分析
- 稀土壓延材料結(jié)構(gòu)分析-洞察分析
- 咽后壁膿腫臨床診斷指標(biāo)研究-洞察分析
- 網(wǎng)絡(luò)游戲與教育心理學(xué)的關(guān)聯(lián)性研究-洞察分析
- 語音習(xí)得關(guān)鍵期探討-洞察分析
- 托班幼兒氣球課程設(shè)計
- 課程游戲化課程設(shè)計能力
- 銀行會計主管年度工作總結(jié)2024(30篇)
- 教師招聘(教育理論基礎(chǔ))考試題庫(含答案)
- 2024年秋季學(xué)期學(xué)校辦公室工作總結(jié)
- 上海市12校2025屆高三第一次模擬考試英語試卷含解析
- 三年級數(shù)學(xué)(上)計算題專項練習(xí)附答案集錦
- 長亭送別完整版本
- 《鐵路軌道維護(hù)》課件-更換道岔尖軌作業(yè)
- 股份代持協(xié)議書簡版wps
- 職業(yè)學(xué)校視頻監(jiān)控存儲系統(tǒng)解決方案
- 《銷售心理學(xué)培訓(xùn)》課件
- 2024年安徽省公務(wù)員錄用考試《行測》真題及解析
評論
0/150
提交評論