Data format » History » Revision 15
Revision 14 (Anonymous, 03/05/2020 03:34 PM) → Revision 15/21 (Anonymous, 03/05/2020 03:41 PM)
h1. Data format La fonction de lecture d'un fichier de données est la suivante: <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: <pre><code class="python"> A_reshaped = adc_A.reshape(nbFiles * rampsPerFile, samplesPerRamp) </code></pre> Ensuite, signal et on ne garde que la partie du 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>