Data format » History » Revision 13
Revision 12 (Anonymous, 03/05/2020 03:33 PM) → Revision 13/21 (Anonymous, 03/05/2020 03:34 PM)
h1. Data format
La fonction de lecture des données est la suivantes, pour un fichier:
<pre><code class="python">
def readFileADLINKCh0( filename, samplesPerFile, timeSerie_A ):
fd = open(filename,'rb')
dum = np.fromfile(fd, dtype = np.uint16)
timeSerie_A[:] = dum[:]
fd.close()
</code></pre>
On fait une boucle pour lire tous les fichiers et créer une matrice contenant une ligne par fichier:
<pre><code class="python">
firstFile = 0
nbFiles = 59
lastFile = firstFile + nbFiles - 1
firstBuffer = firstFile * buffersPerFile
lastBuffer = (nbFiles-1) * buffersPerFile + firstBuffer
scalingFactor = 2 / 65535
offset = -32768
timeSerie_A = np.zeros( samplesPerFile )
adc_A = np.zeros( (nbFiles, samplesPerFile) )
for k in range( nbFiles ):
# read the data
nb = str( int( k * buffersPerFile + firstBuffer) )
filename = data_dir + "/record" + nb + ".bin"
readFileADLINKCh0( filename, samplesPerFile, timeSerie_A )
print("k = {}, block = {} / {}".format(k, nb, lastBuffer))
adc_A[ k, : ] = (timeSerie_A + offset) * scalingFactor
</code></pre>
Les données étant lues, on remet en forme la matrice, une ligne par période de signal et on ne garde que le signal correspondant aux rampes montantes:
<pre><code class="python">
A_reshaped = adc_A.reshape(nbFiles * rampsPerFile, samplesPerRamp)
samplesPerDownRamp = int(samplesPerRamp/2)
A_rampUp = A_reshaped[:, 0:samplesPerDownRamp]
</code></pre>
On obtient ainsi une matrice contenant toutes les rampes montantes.
*Note:* dans l'exemple *2019_07_12_14_12_21*, les paramètres sont les suivants:
<pre><code class="xml">
<?xml version="1.0" encoding="UTF-8"?>
<posarmc version="2.0">
<posarV2>
<rampsPerBuffer value="500" units="-"/>
<bufferSize value="20000000" units="byte"/>
<buffersPerFile value="2" units="byte"/>
<rampsPerFile value="1000" units="-"/>
<fileSize value="4e+7" units="byte"/>
<samplingFrequency value="2e+7" units="Hz"/>
<samplesPerRamp value="20000" units="-"/>
<skipNSamples value="0" units="-"/>
<rampPeriod value="1000" units="-"/>
<startFrequency value="9800" units="-"/>
<stopFrequency value="10100" units="-"/>
</posarV2>
</posarmc>
</code></pre>