def polyFitSegmentTest(date): order = 2 timeNormal = 100000000000 # timeFile = unicode('C:\Users\Levit\Experiment Data\德令哈测试\\20171226\零基线实验\\20171227015305-tdc2_4_filterN_coindence_filtered_250-350s.txt' , 'utf8') timeFile = unicode( 'C:\Users\Levit\Experiment Data\双站数据\\20180121\\result\\synCoincidence-124-216--17-1-Coin-紫台WGS84-atm-factor-haiji_laser改正_filtered.txt', 'utf8') timeList = fileToList.fileToList(timeFile) xa = [] ya = [] # for i in range(len(timeList)): # xa.append(timeList[i][0]-timeList[i][4]) # # ya.append((timeList[i][0] - timeList[i][1])) # ya.append([(timeList[i][2])/1000000000000.0]) # xa, ya, timeList, fitList, residual = filter.fitFilter( timeList, 2500 / 1000000000000.0, 1, 2) # fileToList.listToFile(timeList,timeFile[:-4] + '_filtered.txt') # xa,ya,fitList, residual = polyFitSegment(xa, ya, 1, 0.1) # xa, ya, filteredList, residual=filter.thresholdFilter(xa,ya,residual,timeList,0,0.000000002) xa, ya, fitList, residual = polyFitSegment(xa, ya, order, 1000) # xa, ya, filteredList, residual = filter.thresholdFilter(xa, ya, residual, timeList, 0, 0.0000001) # residual=[] # for item in timeList: # # residual.append([(item[0]-item[1])/1000000000000.0]) # residual.append([(item[2] ) / 1000000000000.0]) print numpy.std(residual, ddof=1) xa, residual = filter.normalByTime(timeList, residual, timeNormal) fileToList.listToFileLong( residual, timeFile[:-4] + '_residual-%s-0.1s-ps.txt' % order) # fileToList.listToFile(filteredList,timeFile[:-4]+'_filtered.txt') fig = plt.figure() ax1 = fig.add_subplot(111) # ax2= fig.add_subplot(212) for i, item in enumerate(xa): xa[i] = item / 1000000000000.0 # fitList[i][0]=fitList[i][0]*1000000000000.0 # ya[i]=[timeList[i][3]] residual[i][0] = residual[i][0] * 1000000000000 # print '%s\t%s'%(xa[i],residual[i][0]) ax1.plot(xa, residual, color='g', linestyle='-', marker='*') # xa, ya = filter.normalByTime(timeList, ya, timeNormal) # ax1.plot(xa, ya, color='g', linestyle='-', marker='') ax1.xaxis.grid(True, which='major') #x坐标轴的网格使用主刻度 ax1.yaxis.grid(True, which='major') #y坐标轴的网格使用次刻度show() ax1.set_ylabel('Difference(Residual after %s order fitting) (ps)' % order, fontsize=20) ax1.set_xlabel('Time (s)', fontsize=20) ax1.set_title('Time Compare', fontsize=24) # ax2.plot(xa,ya,color='m',linestyle='',marker='.') # ax2.plot(xa, fitList, color='g', linestyle='-', marker='') # ax.legend() plt.show()
def BKCSmoothTest(): paraFile = unicode( 'C:\Users\Levit\Experiment Data\阿里数据\\170829\\20170830031232_fineParse_1064_245-445_coincidence_0320_match_parameters_30_filtered.txt', encoding='utf-8') smoothNum = 30 saveFile = paraFile[:-4] + '_Smooth%s.txt' % smoothNum paraList = fileToList.fileToList(paraFile) smoothList = BKCSmooth(paraList, 80, 2, 50) fileToList.listToFileLong(smoothList, saveFile)
def timeAnalysis(datafile): timeList = fileToList.fileToList(dataFile) length = len(timeList) sum = 0.0 for i in range(length): sum += timeList[i][1] averTime = sum / length for i in range(length): timeList[i][1] = (timeList[i][1] - averTime) / 1000000000000.0 fileToList.listToFileLong(timeList, dataFile[:-4] + '_residual.txt')
def leastsqToSecTest(): timeFile = unicode( 'E:\Experiment Data\时频传输数据处理\双站数据处理\\3.2\\result\\synCoincidenceEM_0422_eff5_3.2_residual_segment_dotfilter0422.txt', 'utf8') timeList = fileToList.fileToList(timeFile) tau = 10000000000 R = leastsqToSec(timeList, tau, 1) #R = interSec(R) #print R fileToList.listToFileLong( R, timeFile[:-4] + '_%smilliSec0422.txt' % (tau / 1000000000))
def filterbyfitTest(): segment = 100 order = 2 windows = 180 rangeFile = unicode( 'C:\Users\Levit\Experiment Data\阿里数据\\170829\\20170830031232_fineParse_1064_245-445_coincidence_0320_match_parameters_30.txt', encoding='utf-8') rangeList = fileToList.fileToList(rangeFile) saveFile = rangeFile[:-4] + '_filtered.txt' filteredList = filterbyfit(rangeList, segment, order, windows, 2) fileToList.listToFileLong(filteredList, saveFile)
def twoLocalTDCDataProcess(dataFile1,dataFile2,fineTimeFile1,fineTimeFile2,order,tau): channel1=int(fineTimeFile1[-8]) channel2=int(fineTimeFile2[-8]) saveFile1 = dataFile1[:-4] + '_channel%s.txt'%channel1 dataList1 = TDCDataConvert.TDCDataParse(dataFile1, fineTimeFile1, 8, str(40+channel1-1)) saveFile2 = dataFile2[:-4] + '_channel%s.txt' % channel2 dataList2 = TDCDataConvert.TDCDataParse(dataFile2, fineTimeFile2, 8, str(40+channel2-1)) fileToList.listToFile(dataList1, saveFile1) fileToList.listToFile(dataList2, saveFile2) num1=len(dataList1) num2=len(dataList2) if num1!=num2: print 'data lenght is not equal!' return 0 xa=[] xb=[] ya=[] for i in range(num1): xa.append(dataList1[i][0]) xb.append([dataList1[i][0]]) ya.append(dataList1[i][0]-dataList2[i][0]) xa, ya, fitList, residual =fitting.polyFitSegment(xa, ya, order, 10000) del xa[:] del fitList[:] xOneSec, residualOneSec = filter.normalByTime(xb, residual, 1000000000000) fileToList.listToFileLong(residualOneSec, saveFile1[:-4] + '-%s_residual-%s-1s-ps.txt'%(channel2,order)) xTau,residualTau=filter.normalByTime(xb, residual, tau) residualFile=saveFile1[:-4] + '-%s_residual-%s-%.3fs-ps.txt' % (channel2, order,tau/1000000000000.0) fileToList.listToFileLong(residualTau, residualFile) fig = plt.figure() ax1 = fig.add_subplot(111) for i,item in enumerate(xOneSec): xOneSec[i]=item/1000000000000.0 residualOneSec[i][0]=residualOneSec[i][0]*1000000000000 ax1.plot(xOneSec,residualOneSec, color='g', linestyle='-', marker='*') ax1.xaxis.grid(True, which='major') # x坐标轴的网格使用主刻度 ax1.yaxis.grid(True, which='major') # y坐标轴的网格使用次刻度show() plt.show() tdevFile = residualFile[:-4] + '_TDEV.txt' tdev = varianceStatistics.TDEV(residualTau, tau/1000000000000.0) fileToList.listToFileFloat(tdev, tdevFile) print 'TDEV calculation finished!' fig = plt.figure() dataPlot.logPlotAx(tdev, fig, 'r','--','s', '11.25 tdev') dataFile1 = unicode( 'C:\Users\Levit\Experiment Data\Rakon晶振测试数据\两TDC测试\\20171114200130-tdc2-13-2k-500s-3_residual-1-0.01s-ps_TDEV.txt', 'utf8') List1 = fileToList.fileToList(dataFile1) dataPlot.logPlotAx(List1, fig, 'g', '--', 'o', '11.14') plt.show()
def aysnLaserBKCTest(): matchFile = unicode( 'C:\Users\Levit\Experiment Data\阿里数据\\170829\\20170830031232_fineParse_1064_245-445_coincidence_0320_match.txt', encoding='utf-8') groGPSFile = unicode( 'C:\Users\Levit\Experiment Data\阿里数据\\170829\\20170830031232_fineParse_GPS.txt', encoding='utf-8') satGPSFile = unicode( 'C:\Users\Levit\Experiment Data\阿里数据\\170829\\0829AliSatellite_channel_5_GPS.txt', encoding='utf-8') groGPSList = fileToList.fileToList(groGPSFile) satGPSList = fileToList.fileToList(satGPSFile) smoothNum = 30 saveFile = matchFile[:-4] + '_parameters_%s.txt' % smoothNum matchList = fileToList.fileToList(matchFile) parameterList = aysnLaserBKC(matchList, 240, smoothNum, groGPSList, satGPSList) fileToList.listToFileLong(parameterList, saveFile)
def fitting_segment(startTime,endTime,coindenceFile): coindenceList=fileToList.fileToList(coindenceFile) second=1000000000000.0 tau=100000000000 order=2 num = len(coindenceList) xa = [] xb = [] ya = [] for i in range(num): if coindenceList[i][0]/second>=startTime and coindenceList[i][0]/second<endTime: xa.append(coindenceList[i][0]) ya.append(coindenceList[i][2]) # xa, ya, coindenceList, fitList, residual = filter.fitFilter(coindenceList, 2000 / 1000000000000.0, 2, 1) xa, ya, fitList, residual = fitting.polyFitSegment(xa, ya, order, 10000) for i in range(len(xa)): xb.append([xa[i]]) xOneSec, residualOneSec = filter.normalByTime(xb, residual, second) del xa[:] del fitList[:] del coindenceList[:] fileToList.listToFileLong(residualOneSec, coindenceFile[:-4] + '_%s-%s-1s-ps.txt' % (startTime, endTime)) xTau, residualTau = filter.normalByTime(xb, residual, tau) residualFile = coindenceFile[:-4] + '_%s-%s-%.3fs-ps.txt' % (startTime, endTime, tau / 1000000000000.0) fileToList.listToFileLong(residualTau, residualFile) fig = plt.figure() ax1 = fig.add_subplot(111) for i, item in enumerate(xOneSec): xOneSec[i] = item / 1000000000000.0 residualOneSec[i][0] = residualOneSec[i][0] * 1000000000000 ax1.plot(xOneSec, residualOneSec, color='g', linestyle='-', marker='*') ax1.xaxis.grid(True, which='major') # x坐标轴的网格使用主刻度 ax1.yaxis.grid(True, which='major') # y坐标轴的网格使用次刻度show() plt.show() tdevFile = residualFile[:-4] + '_TDEV.txt' tdev = varianceStatistics.TDEV(residualTau, tau / 1000000000000.0) fileToList.listToFileFloat(tdev, tdevFile) print 'TDEV calculation finished!' tdevName='TDEV %s-%s second'%(startTime,endTime) fig = plt.figure() dataPlot.logPlotAx(tdev, fig, 'r', '--', 's', tdevName) plt.show()
def calculateGPS(groundDataFile1,groundDataFile2,GPSDistance1,GPSDistance2,coinfile): freq,window,threshold=10000000, 30, 1000000 startSec, endSec, gpsShift=100,200,-19 dataFile1,gpsTime1,synTime1=dataPreprocessing.getFileNime(groundDataFile1) dataPreprocessing.classifyData(dataFile1,gpsTime1,synTime1) dataFile2,gpsTime2,synTime2=dataPreprocessing.getFileNime(groundDataFile2) dataPreprocessing.classifyData(dataFile2,gpsTime2,synTime2) gpsDelList=orbitDelayGps.gpsDisDelayEasyMode(GPSDistance1,GPSDistance2) synTimeList1=fileToList.fileToList(synTime1) synTimeList2=fileToList.fileToList(synTime2) gpsTimeList1=fileToList.fileToList(gpsTime1) gpsTimeList2=fileToList.fileToList(gpsTime2) # synTimeList1=filter.freqFilter(synTimeList1,freq,window,threshold) # synTimeList2=filter.freqFilter(synTimeList2,freq,window,threshold) coincidenceList=timeDataCoincidence.timeCoincidenceEasyMode(synTimeList1,synTimeList2,gpsDelList,gpsTimeList1,gpsTimeList2,startSec,endSec,coinfile,gpsShift) analysisList=timeAnalysis.adjacentAnalysis(coincidenceList,coinfile) resultList=timeAnalysis.leastsqToSec(analysisList,100000000000) #resultList=timeAnalysis.interSec(resultList) #print resultList fileToList.listToFileLong(resultList,coinfile[:-4]+'_result_100milliSec.txt')
def rangefilterTest(): segment = 400 order = 3 windows = 0.15 rangeFile = unicode( 'C:\Users\Levit\Experiment Data\阿里数据\\170829\\20170830031232_fineParse_1064_245-445_coincidence_0320_match_parameters_30_filtered_Smooth30.txt', encoding='utf-8') rangeList = fileToList.fileToList(rangeFile) newList = [] count = 0 for item in rangeList: count += 1 if count == 1: # newList.append([item[1]/1000000000000.0,item[1]-item[0]-240000000000000]) newList.append([item[0], item[1]]) count = 0 # print newList[-1] print 'newList finished' saveFile = rangeFile[:-4] + '_%s_%s_residual_dis_1.txt' % (segment, order) # saveFile = rangeFile[:-4] + '_filtered.txt' filteredList, residualList = rangefilter(newList, segment, order, windows, 1) fileToList.listToFileLong(residualList, saveFile)
def asynLaserRangingTest(): matchFile = unicode( 'C:\Users\Levit\Experiment Data\阿里数据\\170829\\20170830031232_fineParse_1064_245-445_coincidence_0320_match.txt', encoding='utf-8') atmFile = unicode('C:\Users\Levit\Experiment Data\阿里数据\\170829\\俯仰角.txt', encoding='utf-8') saveFile = matchFile[:-4] + '_ranging_Degnan_K_detSat_S100-1.txt' saveResiFile = saveFile[:-4] + '_residual.txt' saveRedFile = saveFile[:-4] + '_Sec.txt' matchList = fileToList.fileToList(matchFile) atmList = fileToList.fileToList(atmFile) rangingList, residualList = asynLaserRanging(matchList, 240) # for timeshift in range(0,1,5): # timeshift=0.001*timeshift # saveRedFile = matchFile[:-4] + '_rangingSec_NoIte-%s.txt'%timeshift # reduceList=reduceSec(rangingList,5,timeshift,4,5) # atmCorrect(reduceList,atmList) # fileToList.listToFile(reduceList, saveRedFile) reduceList = reduceSec(rangingList, 20, 0, 1, 3, 5) atmCorrect(reduceList, atmList) fileToList.listToFile(reduceList, saveRedFile) # atmCorrect(rangingList, atmList) fileToList.listToFileLong(residualList, saveResiFile) fileToList.listToFileLong(rangingList, saveFile)
def nearMatchTest(): groCoinFile = unicode( 'C:\Users\Levit\Experiment Data\阿里数据\\170919\\20170920032416_fineParse_1_1064_10-220_coincidence_new.txt', encoding='utf-8') satCoinFile = unicode( 'C:\Users\Levit\Experiment Data\阿里数据\\170919\\20170920032416_fineParse_2_532_filtered_reflectFiltered_10-220_coincidence_new.txt', encoding='utf-8') groList = fileToList.fileToList(groCoinFile) satList = fileToList.fileToList(satCoinFile) saveFile = groCoinFile[:-4] + '_nearMatch.txt' result = nearMatch(groList, satList, 5, 90000000) reduceVList = reduceSec(result, 30, 0, 1) reduceKList = reduceSec(result, 30, 0, 2) fileToList.listToFileLong(result, saveFile) fileToList.listToFileLong(reduceVList, saveFile[:-4] + '_VSec.txt') fileToList.listToFileLong(reduceKList, saveFile[:-4] + '_KSec.txt')
def twoLightTDCDataProcess(channel1,channel2,delay,window,dataFile1,dataFile2,fineTimeFile1,fineTimeFile2,order,tau,tdevName,tdevComp,tdevCompFile): saveFile1 = dataFile1[:-4] + '_channel_%s.txt'%channel1 dataList1 = TDCDataConvert.TDCDataParse(dataFile1, fineTimeFile1, 8, str(40+channel1-1)) fileToList.listToFile(dataList1, saveFile1) dataList1_filter=filter.freqFilter(dataList1,10000200,6,300000) dataList1_filterN=filter.reflectNoiseFilter(dataList1_filter,1000000,0) fileToList.listToFile(dataList1_filterN, saveFile1[:-4]+'_filterN.txt') saveFile2 = dataFile2[:-4] + '_channel_%s.txt' % channel2 dataList2 = TDCDataConvert.TDCDataParse(dataFile2, fineTimeFile2, 8, str(40+channel2 - 1)) fileToList.listToFile(dataList2, saveFile2) dataList2_filter = filter.freqFilter(dataList2, 10000200, 6, 300000) dataList2_filterN = filter.reflectNoiseFilter(dataList2_filter, 1000000, 0) TDCTest.countBySec(dataList2) TDCTest.countBySec(dataList1) TDCTest.countBySec(dataList2_filterN) TDCTest.countBySec(dataList1_filterN) fileToList.listToFile(dataList2_filterN, saveFile2[:-4] + '_filterN.txt') saveCoinFile = dataFile1[:-4] + '_%s_filterN_coindence.txt'%channel1 coindenceList,averSecCount=TDCTest.coindenceTest(dataList1_filterN, dataList2_filterN, delay, window, saveCoinFile) tdevName=tdevName+' %s'%averSecCount del dataList1,dataList1_filter,dataList1_filterN del dataList2,dataList2_filter,dataList2_filterN num=len(coindenceList) xa = [] xb = [] ya = [] for i in range(num): xa.append(coindenceList[i][0]) ya.append(coindenceList[i][2]) xa, ya, coindenceList, fitList, residual = filter.fitFilter(coindenceList, 2000 / 1000000000000.0, 2, 1) xa, ya, fitList, residual = fitting.polyFitSegment(xa, ya, order, 10000) fileToList.listToFile(coindenceList,saveCoinFile[:-4]+'_filtered.txt') for i in range(len(xa)): xb.append([xa[i]]) xOneSec, residualOneSec = filter.normalByTime(xb, residual, 1000000000000) del xa[:] del fitList[:] del coindenceList[:] fileToList.listToFileLong(residualOneSec, saveFile1[:-4] + '-%s_residual-%s-1s-ps.txt' % (channel2, order)) xTau, residualTau = filter.normalByTime(xb, residual, tau) residualFile = saveFile1[:-4] + '-%s_residual-%s-%.3fs-ps.txt' % (channel2, order, tau / 1000000000000.0) fileToList.listToFileLong(residualTau, residualFile) fig = plt.figure() ax1 = fig.add_subplot(111) for i, item in enumerate(xOneSec): xOneSec[i] = item / 1000000000000.0 residualOneSec[i][0] = residualOneSec[i][0] * 1000000000000 ax1.plot(xOneSec, residualOneSec, color='g', linestyle='-', marker='*') ax1.xaxis.grid(True, which='major') # x坐标轴的网格使用主刻度 ax1.yaxis.grid(True, which='major') # y坐标轴的网格使用次刻度show() plt.show() tdevFile = residualFile[:-4] + '_TDEV.txt' tdev = varianceStatistics.TDEV(residualTau, tau / 1000000000000.0) fileToList.listToFileFloat(tdev, tdevFile) print 'TDEV calculation finished!' fig = plt.figure() dataPlot.logPlotAx(tdev, fig, 'r', '--', 's', tdevName) List1 = fileToList.fileToList(tdevCompFile) dataPlot.logPlotAx(List1, fig, 'g', '--', 'o', tdevComp) plt.show()