Project

General

Profile

Data format » History » Version 10

Anonymous, 03/05/2020 03:29 PM

1 1 Anonymous
h1. Data format
2
3 3 Anonymous
La fonction de lecture des données est la suivantes, pour un fichier:
4
5 1 Anonymous
<pre><code class="python">
6
def readFileADLINKCh0( filename, samplesPerFile, timeSerie_A ):
7
    fd = open(filename,'rb')
8
    
9
    dum = np.fromfile(fd, dtype = np.uint16)
10
11
    timeSerie_A[:] = dum[:]
12
    
13
    fd.close()
14
</code></pre>
15 3 Anonymous
16
On fait une boucle pour lire tous les fichiers et créer un grand vecteur:
17 1 Anonymous
18
<pre><code class="python">
19 9 Anonymous
firstFile = 0
20
nbFiles = 59
21
lastFile = firstFile + nbFiles - 1
22
firstBuffer = firstFile * buffersPerFile
23
24 8 Anonymous
scalingFactor = 2 / 65535 
25 1 Anonymous
offset = -32768
26 10 Anonymous
27 4 Anonymous
timeSerie_A = np.zeros( samplesPerFile )
28
adc_A = np.zeros( (nbFiles, samplesPerFile) )
29 1 Anonymous
lastBuffer = (nbFiles-1) * buffersPerFile + firstBuffer
30
for k in range( nbFiles ):
31
    
32
    # read the data
33
    nb = str( int( k * buffersPerFile + firstBuffer) )
34
    filename = data_dir + "/record" + nb + ".bin"
35
    readFileADLINKCh0( filename, samplesPerFile, timeSerie_A )
36
    
37
    print("k = {}, block = {} / {}".format(k, nb, lastBuffer))
38
    
39
    adc_A[ k, : ] = (timeSerie_A + offset) * scalingFactor
40
</code></pre>
41 2 Anonymous
42
Les données étant lues, on remet en forme le vecteur pour ne garder que le signal correspondant aux rampes montantes:
43
44
<pre><code class="python">
45
A_reshaped = adc_A.reshape(nbFiles * rampsPerFile, samplesPerRamp)
46
</code></pre>
47 5 Anonymous
48 7 Anonymous
*Note:* dans l'exemple *2019_07_12_14_12_21*, les paramètres sont les suivants:
49 5 Anonymous
50
<pre><code class="xml">
51
<?xml version="1.0" encoding="UTF-8"?>
52
<posarmc version="2.0">
53
    <posarV2>
54
        <rampsPerBuffer value="500" units="-"/>
55
        <bufferSize value="20000000" units="byte"/>
56
        <buffersPerFile value="2" units="byte"/>
57
        <rampsPerFile value="1000" units="-"/>
58
        <fileSize value="4e+7" units="byte"/>
59
        <samplingFrequency value="2e+7" units="Hz"/>
60
        <samplesPerRamp value="20000" units="-"/>
61
        <skipNSamples value="0" units="-"/>
62
        <rampPeriod value="1000" units="-"/>
63
        <startFrequency value="9800" units="-"/>
64
        <stopFrequency value="10100" units="-"/>
65
    </posarV2>
66
</posarmc>
67
</code></pre>