@@ -3507,6 +3507,9 class AMISRReader(ProcessingUnit): | |||
|
3507 | 3507 | self.frequency_h5file = None |
|
3508 | 3508 | |
|
3509 | 3509 | |
|
3510 | self.__firstFile = True | |
|
3511 | self.buffer_radactime = None | |
|
3512 | ||
|
3510 | 3513 | def __createObjByDefault(self): |
|
3511 | 3514 | |
|
3512 | 3515 | dataObj = AMISR() |
@@ -3651,7 +3654,8 class AMISRReader(ProcessingUnit): | |||
|
3651 | 3654 | self.radacHeaderObj = RadacHeader(self.amisrFilePointer) |
|
3652 | 3655 | |
|
3653 | 3656 | #update values from experiment cfg file |
|
3654 | self.radacHeaderObj.nrecords = self.recordsperfile_fromfile | |
|
3657 | if self.radacHeaderObj.nrecords == self.recordsperfile_fromfile: | |
|
3658 | self.radacHeaderObj.nrecords = self.recordsperfile_fromfile | |
|
3655 | 3659 | self.radacHeaderObj.nbeams = self.nbeamcodes_fromfile |
|
3656 | 3660 | self.radacHeaderObj.npulses = self.npulsesint_fromfile |
|
3657 | 3661 | self.radacHeaderObj.nsamples = self.ngates_fromfile |
@@ -3718,6 +3722,15 class AMISRReader(ProcessingUnit): | |||
|
3718 | 3722 | |
|
3719 | 3723 | self.status = 1 |
|
3720 | 3724 | |
|
3725 | def __setIdsAndArrays(self): | |
|
3726 | self.dataByFrame = self.__setDataByFrame() | |
|
3727 | self.beamCodeByFrame = self.amisrFilePointer.get('Raw11/Data/RadacHeader/BeamCode').value[0, :] | |
|
3728 | self.readRanges() | |
|
3729 | self.idpulse_range1, self.idpulse_range2 = self.radacHeaderObj.getIndexRangeToPulse(0) | |
|
3730 | self.radacTimeByFrame = numpy.zeros(self.radacHeaderObj.npulses) | |
|
3731 | self.buffer_radactime = numpy.zeros_like(self.radacTimeByFrame) | |
|
3732 | ||
|
3733 | ||
|
3721 | 3734 | def __setNextFile(self): |
|
3722 | 3735 | |
|
3723 | 3736 | newFile = self.__setNextFileOffline() |
@@ -3726,6 +3739,11 class AMISRReader(ProcessingUnit): | |||
|
3726 | 3739 | return 0 |
|
3727 | 3740 | |
|
3728 | 3741 | self.__readHeader() |
|
3742 | ||
|
3743 | if self.__firstFile: | |
|
3744 | self.__setIdsAndArrays() | |
|
3745 | self.__firstFile = False | |
|
3746 | ||
|
3729 | 3747 | self.__getBeamCode() |
|
3730 | 3748 | self.readDataBlock() |
|
3731 | 3749 | |
@@ -3798,37 +3816,39 class AMISRReader(ProcessingUnit): | |||
|
3798 | 3816 | def readSamples_version1(self,idrecord): |
|
3799 | 3817 | #estas tres primeras lineas solo se deben ejecutar una vez |
|
3800 | 3818 | if self.flagIsNewFile: |
|
3801 | self.idpulse_range1, self.idpulse_range2 = self.radacHeaderObj.getIndexRangeToPulse(0) | |
|
3802 | self.dataByFrame = self.__setDataByFrame() | |
|
3803 | self.beamCodeByFrame = self.readBeamCode(idrecord, self.idpulse_range1, self.idpulse_range2) | |
|
3804 | self.radacTimeByFrame = self.readRadacTime(idrecord, self.idpulse_range1, self.idpulse_range2) | |
|
3805 | 3819 | #reading dataset |
|
3806 | self.dataset = self.__readDataSet() | |
|
3820 | self.dataset = self.__readDataSet() | |
|
3821 | self.flagIsNewFile = 0 | |
|
3807 | 3822 | |
|
3808 | 3823 | if idrecord == 0: |
|
3824 | #if self.buffer_last_record == None: | |
|
3825 | selectorById = self.radacHeaderObj.pulseCount[0,self.idpulse_range2] | |
|
3809 | 3826 | |
|
3810 | if len(numpy.where(self.dataByFrame!=0.0)[0]) or len(numpy.where(self.dataByFrame!=0.0)[1]) or len(numpy.where(self.dataByFrame!=0.0)[2]): | |
|
3811 | #falta agregar una condicion para datos discontinuos | |
|
3812 | #por defecto une los datos del record anterior | |
|
3813 | self.dataByFrame[self.idpulse_range2, :, :] = self.dataset[idrecord, self.idpulse_range2, :, :] | |
|
3814 | #timepulse | |
|
3815 | self.radacTimeByFrame[self.idpulse_range2] = self.radacHeaderObj.radacTime[idrecord, self.idpulse_range2] | |
|
3816 | else: | |
|
3817 | self.dataByFrame[self.idpulse_range1, :, :] = self.dataset[idrecord, self.idpulse_range1, :, :] | |
|
3818 | ||
|
3819 | self.radacTimeByFrame[self.idpulse_range1] = self.radacHeaderObj.radacTime[idrecord, self.idpulse_range1] | |
|
3827 | self.dataByFrame[selectorById,:,:] = self.dataset[0, self.idpulse_range2,:,:] | |
|
3828 | ||
|
3829 | self.radacTimeByFrame[selectorById] = self.radacHeaderObj.radacTime[0, self.idpulse_range2] | |
|
3830 | ||
|
3831 | selectorById = self.radacHeaderObj.pulseCount[0,self.idpulse_range1] | |
|
3832 | ||
|
3833 | self.radacTimeByFrame[selectorById] = self.buffer_radactime[selectorById] | |
|
3820 | 3834 | |
|
3821 | 3835 | datablock = self.__setDataBlock() |
|
3822 | 3836 | |
|
3823 | 3837 | return datablock |
|
3838 | ||
|
3839 | selectorById = self.radacHeaderObj.pulseCount[idrecord-1,self.idpulse_range1] | |
|
3840 | self.dataByFrame[selectorById,:,:] = self.dataset[idrecord-1, self.idpulse_range1, :, :] | |
|
3841 | self.radacTimeByFrame[selectorById] = self.radacHeaderObj.radacTime[idrecord-1, self.idpulse_range1] | |
|
3824 | 3842 | |
|
3825 | self.dataByFrame[self.idpulse_range1, :, :] = self.dataset[idrecord - 1,self.idpulse_range1, :, :] | |
|
3826 |
self.dataByFrame[sel |
|
|
3827 | datablock = self.__setDataBlock() | |
|
3828 | self.flagIsNewFile = 0 | |
|
3829 | ||
|
3830 | self.dataByFrame[self.idpulse_range1, :, :] = self.dataset[idrecord, self.idpulse_range1, :, :] | |
|
3843 | selectorById = self.radacHeaderObj.pulseCount[idrecord,self.idpulse_range2]#data incompleta ultimo archivo de carpeta, verifica el record real segun la dimension del arreglo de datos | |
|
3844 | self.dataByFrame[selectorById,:,:] = self.dataset[idrecord, self.idpulse_range2, :, :] | |
|
3845 | self.radacTimeByFrame[selectorById] = self.radacHeaderObj.radacTime[idrecord, self.idpulse_range2] | |
|
3831 | 3846 | |
|
3847 | datablock = self.__setDataBlock() | |
|
3848 | ||
|
3849 | selectorById = self.radacHeaderObj.pulseCount[idrecord,self.idpulse_range1] | |
|
3850 | self.dataByFrame[selectorById,:,:] = self.dataset[idrecord, self.idpulse_range1, :, :] | |
|
3851 | self.buffer_radactime[selectorById] = self.radacHeaderObj.radacTime[idrecord, self.idpulse_range1] | |
|
3832 | 3852 | |
|
3833 | 3853 | return datablock |
|
3834 | 3854 | |
@@ -3852,8 +3872,8 class AMISRReader(ProcessingUnit): | |||
|
3852 | 3872 | |
|
3853 | 3873 | def readDataBlock(self): |
|
3854 | 3874 | |
|
3875 | self.datablock = self.readSamples_version1(self.idrecord_count) | |
|
3855 | 3876 | #self.datablock = self.readSamples(self.idrecord_count) |
|
3856 | self.datablock = self.readSamples(self.idrecord_count) | |
|
3857 | 3877 | #print 'record:', self.idrecord_count |
|
3858 | 3878 | |
|
3859 | 3879 | self.idrecord_count += 1 |
@@ -3905,9 +3925,7 class AMISRReader(ProcessingUnit): | |||
|
3905 | 3925 | |
|
3906 | 3926 | if self.__hasNotDataInBuffer(): |
|
3907 | 3927 | self.readNextBlock() |
|
3908 | # if not( self.readNextBlock() ): | |
|
3909 | # return 0 | |
|
3910 | # self.getFirstHeader() | |
|
3928 | ||
|
3911 | 3929 | |
|
3912 | 3930 | if self.datablock == None: # setear esta condicion cuando no hayan datos por leers |
|
3913 | 3931 | self.dataOut.flagNoData = True |
General Comments 0
You need to be logged in to leave comments.
Login now