Data format » History » Revision 11
Revision 10 (Anonymous, 03/05/2020 03:29 PM) → Revision 11/21 (Anonymous, 03/05/2020 03:32 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: un grand vecteur: <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) ) lastBuffer = (nbFiles-1) * buffersPerFile + firstBuffer 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 le vecteur pour ne garde garder que le signal correspondant aux rampes montantes: <pre><code class="python"> A_reshaped = adc_A.reshape(nbFiles * rampsPerFile, samplesPerRamp) A_rampUp = A_reshaped[:, 0:samplesPerDownRamp] </code></pre> *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>