Project

General

Profile

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>