Below is an annotated version of the script binary_read_demo.jnl
! !binary_read_demo.jnl (4/99) *js* ! !Description: Demonstration of v5.0 binary read capabilities !Usage: yes? GO binary_read_demo ! !Create temporary file consisting of REAL*4 values 0:47 !and create sample grid for this file ! def sym file sDemoPermutedBinaryTest.dat sp rm -f ($file) !-> sp rm -f sDemoPermutedBinaryTest.dat list/i=1:48/form=stream/file=($file) i-1 !-> list/i=1:48/form=stream/file=sDemoPermutedBinaryTest.dat i-1 LISTing to file sDemoPermutedBinaryTest.dat canc data/all def axis/x=1:1:1 xax def axis/y=1:2:1 yax def axis/z=1:3:1 zax def axis/t=1:4:1 tax def grid/x=xax/y=yax/z=zax/t=tax mygrid ! !Now load the file in "normal order." The first variable (num) should !contain the values 0:23, and the second variable will contain the !values 24:47 !
file/format=stream/var=num,num1/grid=mygrid ($file) !-> SET DATA/EZ/format=stream/var=num,num1/grid=mygrid sDemoPermutedBinaryTest.dat list num NUM X: 1 DATA SET: ./sDemoPermutedBinaryTest.dat 1 2 1 2 ---- L:1 T: 1 1 / 1: 0.00 1.00 2 / 2: 2.00 3.00 3 / 3: 4.00 5.00 ---- L:2 T: 2 1 / 1: 6.00 7.00 2 / 2: 8.00 9.00 3 / 3: 10.00 11.00 ---- L:3 T: 3 1 / 1: 12.00 13.00 2 / 2: 14.00 15.00 3 / 3: 16.00 17.00 ---- L:4 T: 4 1 / 1: 18.00 19.00 2 / 2: 20.00 21.00 3 / 3: 22.00 23.00 list num1 NUM1 X: 1 DATA SET: ./sDemoPermutedBinaryTest.dat 1 2 1 2 ---- L:1 T: 1 1 / 1: 24.00 25.00 2 / 2: 26.00 27.00 3 / 3: 28.00 29.00 ---- L:2 T: 2 1 / 1: 30.00 31.00 2 / 2: 32.00 33.00 3 / 3: 34.00 35.00 ---- L:3 T: 3 1 / 1: 36.00 37.00 2 / 2: 38.00 39.00 3 / 3: 40.00 41.00 ---- L:4 T: 4 1 / 1: 42.00 43.00 2 / 2: 44.00 45.00 3 / 3: 46.00 47.00 |
file/format=stream/var=num,num1/grid=mygrid/order=tzyx ($file) !-> SET DATA/EZ/format=stream/var=num,num1/grid=mygrid/order=tzyx sDemoPermutedBinaryTest.dat list num NUM X: 1 DATA SET: ./sDemoPermutedBinaryTest.dat 1 2 1 2 ---- L:1 T: 1 1 / 1: 0.00 12.00 2 / 2: 4.00 16.00 3 / 3: 8.00 20.00 ---- L:2 T: 2 1 / 1: 1.00 13.00 2 / 2: 5.00 17.00 3 / 3: 9.00 21.00 ---- L:3 T: 3 1 / 1: 2.00 14.00 2 / 2: 6.00 18.00 3 / 3: 10.00 22.00 ---- L:4 T: 4 1 / 1: 3.00 15.00 2 / 2: 7.00 19.00 3 / 3: 11.00 23.00 list num1 NUM1 X: 1 DATA SET: ./sDemoPermutedBinaryTest.dat 1 2 1 2 ---- L:1 T: 1 1 / 1: 24.00 36.00 2 / 2: 28.00 40.00 3 / 3: 32.00 44.00 ---- L:2 T: 2 1 / 1: 25.00 37.00 2 / 2: 29.00 41.00 3 / 3: 33.00 45.00 ---- L:3 T: 3 1 / 1: 26.00 38.00 2 / 2: 30.00 42.00 3 / 3: 34.00 46.00 ---- L:4 T: 4 1 / 1: 27.00 39.00 2 / 2: 31.00 43.00 3 / 3: 35.00 47.00 |
file/format=stream/var=num,num1/grid=mygrid/order=vxyzt ($file) !-> SET DATA/EZ/format=stream/var=num,num1/grid=mygrid/order=vxyzt sDemoPermutedBinaryTest.dat list num NUM X: 1 DATA SET: ./sDemoPermutedBinaryTest.dat 1 2 1 2 ---- L:1 T: 1 1 / 1: 0.00 2.00 2 / 2: 4.00 6.00 3 / 3: 8.00 10.00 ---- L:2 T: 2 1 / 1: 12.00 14.00 2 / 2: 16.00 18.00 3 / 3: 20.00 22.00 ---- L:3 T: 3 1 / 1: 24.00 26.00 2 / 2: 28.00 30.00 3 / 3: 32.00 34.00 ---- L:4 T: 4 1 / 1: 36.00 38.00 2 / 2: 40.00 42.00 3 / 3: 44.00 46.00 list num1 NUM1 X: 1 DATA SET: ./sDemoPermutedBinaryTest.dat 1 2 1 2 ---- L:1 T: 1 1 / 1: 1.00 3.00 2 / 2: 5.00 7.00 3 / 3: 9.00 11.00 ---- L:2 T: 2 1 / 1: 13.00 15.00 2 / 2: 17.00 19.00 3 / 3: 21.00 23.00 ---- L:3 T: 3 1 / 1: 25.00 27.00 2 / 2: 29.00 31.00 3 / 3: 33.00 35.00 ---- L:4 T: 4 1 / 1: 37.00 39.00 2 / 2: 41.00 43.00 3 / 3: 45.00 47.00 |
def sym isbig ($BYTEORDER%|BIG>TRUE|*>FALSE%) !-> def sym isbig TRUE if ($isbig) then def sym file int.dat else def sym file intSwapped.dat !-> if TRUE then def sym file int.dat else def sym file intSwapped.dat |
file/format=stream/var=num,num1/grid=mygrid/type=i4 ($file) !-> SET DATA/EZ/format=stream/var=num,num1/grid=mygrid/type=i4 int.dat list num NUM X: 1 DATA SET: ./int.dat 1 2 1 2 ---- L:1 T: 1 1 / 1: 0.00 1.00 2 / 2: 2.00 3.00 3 / 3: 4.00 5.00 ---- L:2 T: 2 1 / 1: 6.00 7.00 2 / 2: 8.00 9.00 3 / 3: 10.00 11.00 ---- L:3 T: 3 1 / 1: 12.00 13.00 2 / 2: 14.00 15.00 3 / 3: 16.00 17.00 ---- L:4 T: 4 1 / 1: 18.00 19.00 2 / 2: 20.00 21.00 3 / 3: 22.00 23.00 list num1 NUM1 X: 1 DATA SET: ./int.dat 1 2 1 2 ---- L:1 T: 1 1 / 1: 24.00 25.00 2 / 2: 26.00 27.00 3 / 3: 28.00 29.00 ---- L:2 T: 2 1 / 1: 30.00 31.00 2 / 2: 32.00 33.00 3 / 3: 34.00 35.00 ---- L:3 T: 3 1 / 1: 36.00 37.00 2 / 2: 38.00 39.00 3 / 3: 40.00 41.00 ---- L:4 T: 4 1 / 1: 42.00 43.00 2 / 2: 44.00 45.00 3 / 3: 46.00 47.00 |
file/format=stream/var=num,num1/grid=mygrid/type=i2 ($file) !-> SET DATA/EZ/format=stream/var=num,num1/grid=mygrid/type=i2 short.dat list num NUM X: 1 DATA SET: ./short.dat 1 2 1 2 ---- L:1 T: 1 1 / 1: 0.00 1.00 2 / 2: 2.00 3.00 3 / 3: 4.00 5.00 ---- L:2 T: 2 1 / 1: 6.00 7.00 2 / 2: 8.00 9.00 3 / 3: 10.00 11.00 ---- L:3 T: 3 1 / 1: 12.00 13.00 2 / 2: 14.00 15.00 3 / 3: 16.00 17.00 ---- L:4 T: 4 1 / 1: 18.00 19.00 2 / 2: 20.00 21.00 3 / 3: 22.00 23.00 list num1 NUM1 X: 1 DATA SET: ./short.dat 1 2 1 2 ---- L:1 T: 1 1 / 1: 24.00 25.00 2 / 2: 26.00 27.00 3 / 3: 28.00 29.00 ---- L:2 T: 2 1 / 1: 30.00 31.00 2 / 2: 32.00 33.00 3 / 3: 34.00 35.00 ---- L:3 T: 3 1 / 1: 36.00 37.00 2 / 2: 38.00 39.00 3 / 3: 40.00 41.00 ---- L:4 T: 4 1 / 1: 42.00 43.00 2 / 2: 44.00 45.00 3 / 3: 46.00 47.00 |
file/format=stream/var=num,num1/grid=mygrid/type=i2,r8 ($file) !-> SET DATA/EZ/format=stream/var=num,num1/grid=mygrid/type=i2,r8 mixed.dat list num NUM X: 1 DATA SET: ./mixed.dat 1 2 1 2 ---- L:1 T: 1 1 / 1: 0.00 1.00 2 / 2: 2.00 3.00 3 / 3: 4.00 5.00 ---- L:2 T: 2 1 / 1: 6.00 7.00 2 / 2: 8.00 9.00 3 / 3: 10.00 11.00 ---- L:3 T: 3 1 / 1: 12.00 13.00 2 / 2: 14.00 15.00 3 / 3: 16.00 17.00 ---- L:4 T: 4 1 / 1: 18.00 19.00 2 / 2: 20.00 21.00 3 / 3: 22.00 23.00 list num1 NUM1 X: 1 DATA SET: ./mixed.dat 1 2 1 2 ---- L:1 T: 1 1 / 1: 24.00 25.00 2 / 2: 26.00 27.00 3 / 3: 28.00 29.00 ---- L:2 T: 2 1 / 1: 30.00 31.00 2 / 2: 32.00 33.00 3 / 3: 34.00 35.00 ---- L:3 T: 3 1 / 1: 36.00 37.00 2 / 2: 38.00 39.00 3 / 3: 40.00 41.00 ---- L:4 T: 4 1 / 1: 42.00 43.00 2 / 2: 44.00 45.00 3 / 3: 46.00 47.00 |
oar.pmel.contact_ferret@noaa.gov