@@ -3507,6 +3507,9 class AMISRReader(ProcessingUnit): | |||||
3507 | self.frequency_h5file = None |
|
3507 | self.frequency_h5file = None | |
3508 |
|
3508 | |||
3509 |
|
3509 | |||
|
3510 | self.__firstFile = True | |||
|
3511 | self.buffer_radactime = None | |||
|
3512 | ||||
3510 | def __createObjByDefault(self): |
|
3513 | def __createObjByDefault(self): | |
3511 |
|
3514 | |||
3512 | dataObj = AMISR() |
|
3515 | dataObj = AMISR() | |
@@ -3651,7 +3654,8 class AMISRReader(ProcessingUnit): | |||||
3651 | self.radacHeaderObj = RadacHeader(self.amisrFilePointer) |
|
3654 | self.radacHeaderObj = RadacHeader(self.amisrFilePointer) | |
3652 |
|
3655 | |||
3653 | #update values from experiment cfg file |
|
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 | self.radacHeaderObj.nbeams = self.nbeamcodes_fromfile |
|
3659 | self.radacHeaderObj.nbeams = self.nbeamcodes_fromfile | |
3656 | self.radacHeaderObj.npulses = self.npulsesint_fromfile |
|
3660 | self.radacHeaderObj.npulses = self.npulsesint_fromfile | |
3657 | self.radacHeaderObj.nsamples = self.ngates_fromfile |
|
3661 | self.radacHeaderObj.nsamples = self.ngates_fromfile | |
@@ -3718,6 +3722,15 class AMISRReader(ProcessingUnit): | |||||
3718 |
|
3722 | |||
3719 | self.status = 1 |
|
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 | def __setNextFile(self): |
|
3734 | def __setNextFile(self): | |
3722 |
|
3735 | |||
3723 | newFile = self.__setNextFileOffline() |
|
3736 | newFile = self.__setNextFileOffline() | |
@@ -3726,6 +3739,11 class AMISRReader(ProcessingUnit): | |||||
3726 | return 0 |
|
3739 | return 0 | |
3727 |
|
3740 | |||
3728 | self.__readHeader() |
|
3741 | self.__readHeader() | |
|
3742 | ||||
|
3743 | if self.__firstFile: | |||
|
3744 | self.__setIdsAndArrays() | |||
|
3745 | self.__firstFile = False | |||
|
3746 | ||||
3729 | self.__getBeamCode() |
|
3747 | self.__getBeamCode() | |
3730 | self.readDataBlock() |
|
3748 | self.readDataBlock() | |
3731 |
|
3749 | |||
@@ -3798,37 +3816,39 class AMISRReader(ProcessingUnit): | |||||
3798 | def readSamples_version1(self,idrecord): |
|
3816 | def readSamples_version1(self,idrecord): | |
3799 | #estas tres primeras lineas solo se deben ejecutar una vez |
|
3817 | #estas tres primeras lineas solo se deben ejecutar una vez | |
3800 | if self.flagIsNewFile: |
|
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 | #reading dataset |
|
3819 | #reading dataset | |
3806 | self.dataset = self.__readDataSet() |
|
3820 | self.dataset = self.__readDataSet() | |
|
3821 | self.flagIsNewFile = 0 | |||
3807 |
|
3822 | |||
3808 | if idrecord == 0: |
|
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]): |
|
3827 | self.dataByFrame[selectorById,:,:] = self.dataset[0, self.idpulse_range2,:,:] | |
3811 | #falta agregar una condicion para datos discontinuos |
|
3828 | ||
3812 | #por defecto une los datos del record anterior |
|
3829 | self.radacTimeByFrame[selectorById] = self.radacHeaderObj.radacTime[0, self.idpulse_range2] | |
3813 | self.dataByFrame[self.idpulse_range2, :, :] = self.dataset[idrecord, self.idpulse_range2, :, :] |
|
3830 | ||
3814 | #timepulse |
|
3831 | selectorById = self.radacHeaderObj.pulseCount[0,self.idpulse_range1] | |
3815 | self.radacTimeByFrame[self.idpulse_range2] = self.radacHeaderObj.radacTime[idrecord, self.idpulse_range2] |
|
3832 | ||
3816 | else: |
|
3833 | self.radacTimeByFrame[selectorById] = self.buffer_radactime[selectorById] | |
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] |
|
|||
3820 |
|
3834 | |||
3821 | datablock = self.__setDataBlock() |
|
3835 | datablock = self.__setDataBlock() | |
3822 |
|
3836 | |||
3823 | return datablock |
|
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, :, :] |
|
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 | |
3826 |
self.dataByFrame[sel |
|
3844 | self.dataByFrame[selectorById,:,:] = self.dataset[idrecord, self.idpulse_range2, :, :] | |
3827 | datablock = self.__setDataBlock() |
|
3845 | self.radacTimeByFrame[selectorById] = self.radacHeaderObj.radacTime[idrecord, self.idpulse_range2] | |
3828 | self.flagIsNewFile = 0 |
|
|||
3829 |
|
||||
3830 | self.dataByFrame[self.idpulse_range1, :, :] = self.dataset[idrecord, self.idpulse_range1, :, :] |
|
|||
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 | return datablock |
|
3853 | return datablock | |
3834 |
|
3854 | |||
@@ -3852,8 +3872,8 class AMISRReader(ProcessingUnit): | |||||
3852 |
|
3872 | |||
3853 | def readDataBlock(self): |
|
3873 | def readDataBlock(self): | |
3854 |
|
3874 | |||
|
3875 | self.datablock = self.readSamples_version1(self.idrecord_count) | |||
3855 | #self.datablock = self.readSamples(self.idrecord_count) |
|
3876 | #self.datablock = self.readSamples(self.idrecord_count) | |
3856 | self.datablock = self.readSamples(self.idrecord_count) |
|
|||
3857 | #print 'record:', self.idrecord_count |
|
3877 | #print 'record:', self.idrecord_count | |
3858 |
|
3878 | |||
3859 | self.idrecord_count += 1 |
|
3879 | self.idrecord_count += 1 | |
@@ -3905,9 +3925,7 class AMISRReader(ProcessingUnit): | |||||
3905 |
|
3925 | |||
3906 | if self.__hasNotDataInBuffer(): |
|
3926 | if self.__hasNotDataInBuffer(): | |
3907 | self.readNextBlock() |
|
3927 | self.readNextBlock() | |
3908 | # if not( self.readNextBlock() ): |
|
3928 | ||
3909 | # return 0 |
|
|||
3910 | # self.getFirstHeader() |
|
|||
3911 |
|
3929 | |||
3912 | if self.datablock == None: # setear esta condicion cuando no hayan datos por leers |
|
3930 | if self.datablock == None: # setear esta condicion cuando no hayan datos por leers | |
3913 | self.dataOut.flagNoData = True |
|
3931 | self.dataOut.flagNoData = True |
General Comments 0
You need to be logged in to leave comments.
Login now