-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdbie_bin2sav.pro
executable file
·73 lines (63 loc) · 2.26 KB
/
dbie_bin2sav.pro
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
pro dbie_bin2sav
; +
; NAME
; DBIE_BIN2SAV
; PURPOSE:
; Convert the result of extrapolation to IDL sav file
; SAMPLE CALLS:
; IDL> dbie_make_boundary
; OUTPUTS:
; an IDL sav file containing the boundary magnetic field and the extrapolated 3-Dimension vector magteic field.
; HISTORY:
; 2014-12-12 - Sijie Yu (sjyu@nao.cas.cn or sijie.yu@njit.edu)
path_results = './results/'
filename = file_search(path_results+'mag.????????_??????_???x???_001t???_TAI.bin')
ndx = double(strmid(filename[0],strpos(filename[0],'x')-3,3))
ndy = double(strmid(filename[0],strpos(filename[0],'x')+1,3))
ndz = double(strmid(filename[0],strpos(filename[0],'_TAI')-3,3))+1
bx0 = fltarr(ndx,ndy,ndz)
by0 = fltarr(ndx,ndy,ndz)
bz0 = fltarr(ndx,ndy,ndz)
;filename = file_search(path_results+'mag.720s_CEA.20110215_010000_300x300_001t099_TAI.bin')
nxnynz = long(ndx)*long(ndy)*long(ndz-1)
date = STRMID(filename, 38, 8, /REVERSE_OFFSET)
time = STRMID(filename, 29, 6, /REVERSE_OFFSET)
FOR nn = 0, n_elements(filename)-1 DO BEGIN
ind_h = where(date eq date[nn] and time eq time[nn])
file_b = './boundary_data/boundary.'+date[nn]+'_'+time[nn]+'_TAI.bin'
dummyfeld=fltarr(3L*ndx*ndy)
Openr,1,file_b
readu,1, dummyfeld
close,1
dummyfeld = reform(dummyfeld,ndx,ndy,3)
bx0[*,*,0] = dummyfeld[*,*,0]
by0[*,*,0] = dummyfeld[*,*,1]
bz0[*,*,0] = dummyfeld[*,*,2]
FOR j = 0,N_ELEMENTS(ind_h)-1 DO BEGIN
height_start = long(STRMID(filename[ind_h[j]], 14, 3, /REVERSE_OFFSET))
height_end = long(STRMID(filename[ind_h[j]], 10, 3, /REVERSE_OFFSET))
nz = height_end-height_start+1
; ind = indgen(nz)*3
dummyfeld = fltarr(long(ndx)*long(ndy)*nz*3)
Openr,1,filename[ind_h[j]]
readu,1, dummyfeld
close,1
dummyfeld = reform(dummyfeld,ndx,ndy,3,nz)
FOR ii = 0,nz-1 DO BEGIN
bx0[*,*,height_start+ii] = dummyfeld[*,*,0,ii]
by0[*,*,height_start+ii] = dummyfeld[*,*,1,ii]
bz0[*,*,height_start+ii] = dummyfeld[*,*,2,ii]
ENDFOR
ENDFOR
print,filename[nn] + ' is readed'
bx = bx0
by = by0
bz = bz0
if ~file_test('./output/') $
then file_mkdir,'./output/'
savfile = './output/b3d.'+date[nn]+'_'+time[nn]+'.sav'
save,filename=savfile,bx,by,bz,/VERBOSE
print,'3D magnetic field saved to '+savfile
; stop
ENDFOR
END