示例#1
0
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()
示例#2
0
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')
示例#4
0
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))
示例#5
0
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)
示例#6
0
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()
示例#7
0
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)
示例#8
0
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()
示例#9
0
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')
示例#10
0
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)
示例#11
0
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)
示例#12
0
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')
示例#13
0
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()