Data format » History » Revision 6
Revision 5 (Anonymous, 03/05/2020 03:26 PM) → Revision 6/21 (Anonymous, 03/05/2020 03:26 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 un grand vecteur: <pre><code class="python"> 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 le vecteur pour ne garder que le signal correspondant aux rampes montantes: <pre><code class="python"> A_reshaped = adc_A.reshape(nbFiles * rampsPerFile, samplesPerRamp) </code></pre> NB: dans l'exemple *2019_07_12_14_12_21*, 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>