Пример #1
0
def oldstyle():
  outf=open("report_2.txt", "w")
  with open(os.environ["HOMEPATH"]+"\\Documents\\abrupt\\c_test\\x.x_08Jun",'r') as f:
    lines=f.readlines()
  for line in lines:
    #print line
    pos1=line.find('"')
    if pos1>=0:
      pos2=line.find('"',pos1+1)
      #print pos1,pos2
      fn=line[:pos1-1]
      #print fn+":"
      yset=eval(line[pos1:pos2+1])
      #print "YSET", yset
      _,yr,pre,post=line[pos2+1:].split()[:4]
     # print yr,pre,post
      dfn=fn[:-len('final.csv')-1]
      tfn=os.environ["HOMEPATH"]+"\\Documents\\abrupt\\c_test\\"+dfn
      #print fn, tfn 
      if dfn[:len("Global")]=="Global" or dfn[0] == 'r':
        print "do",tfn
        try:
          direc=glob.glob(os.environ["HOMEPATH"]+"\\Documents\\abrupt\\c_test\\"+fn[:-len('final.csv')-1]+'/*.trace')[0]
          bp=statbreaks.brkrpt(direc)
          #print bp.years()
          yrix=int(list(bp.years()).index(float(yr)))
          preix=int(list(bp.years()).index(float(pre)))
          postix=int(list(bp.years()).index(float(post)))
          #print bp.years()[preix:postix+1]
          ancova=doancova.ANCOVA(bp.years()[preix:postix+1], bp.ys()[preix:postix+1], bp.years()[yrix+1],Rpath='"C:\\Program Files\\R\\R-3.0.2\\bin\\Rscript.exe"')
          ancova.parseResult(ancova.results())
          print >>outf, "slope",line[:-1],":",ancova._ANCOVA__breakYear,ancova.firstSlope(),formatprobs(ancova.firstSlopeProb()), ancova.firstRsq(), ancova.secondSlope(),formatprobs(ancova.secondSlopeProb()),ancova.secondRsq(),ancova.shift(),formatprobs(ancova._ANCOVA__prDiffShift),":",
          if dfn[:len("Global")]=="Global":
            print >>outf, cmip3_info.matchfn(tfn),
          elif dfn[0] == 'r':
            print >>outf, cmip5_info.matchfn(tfn),
          print >>outf, formatprobs(ancova.changeOfTrendProb(),ancova._ANCOVA__prDiffShift),formatprobs(ancova.changeOfTrendProb()*ancova._ANCOVA__prDiffShift)
          
          #if 
        except Exception as e:
          fl=os.environ["HOMEPATH"]+"\\Documents\\abrupt\\c_test\\"+fn[:-len('final.csv')-1]+'/*.trace'
          print >>outf,"\n",line,"Error getting files",fl
          print "using ", fl
          #print glob.glob(fl)
          #raise Exception(str(e))
          pass
        
      #print direc,
  outf.close()  
  print "done" 
Пример #2
0
def newstyle(csvrepfn,outfn): #from csv files
  outf=open(outfn, "w")
  with open(csvrepfn,'r') as f:
    lines=f.readlines()
  for line in lines:
    #print line
    if line[:5] == '"Seq"':
      print >>outf,csvHeader+',":",'+cmip5_info.header+ancovaHeader
    else:
      if line.find("no breaks")>=0:
        nobreaks = True
      else:
        nobreaks = False
      words=line.split('"')
      
      try:
  #      nobreaks=False
        fn=os.path.basename(words[0].split(",")[1])
      except Exception as e:
        print "Oops", line, words, str(e)
        if line.find("no breaks")>=0:
          nobreaks = True
          pass
        else:
          raise e
      #print fn+":"
      if len(words) < 2:
        print "oops2" , line, words
      if not nobreaks:
        yset=eval(words[1])
        #print "YSET", yset
        yrss=words[2].split(',')[8:11]
        yr=str(yrss[0])
        pre=str(yrss[1])
        post=str(yrss[2])
        
       # print yr,pre,post
        dfn=fn[:-len('final.csv')-1]
        if dfn[:len("Global-temps")]=="Global-temps":
          dfn = "Global temps"+dfn[len("Global-temps"):]
        tfn=os.environ["HOMEPATH"]+"\\Documents\\abrupt\\c_test\\"+dfn
        #print fn, tfn 
        if dfn[:len("Global")]=="Global" or dfn[0] == 'r':
          print "do",tfn
          try:
            direc=glob.glob(os.environ["HOMEPATH"]+"\\Documents\\abrupt\\c_test\\"+dfn+'/*.trace')[0]
            bp=statbreaks.brkrpt(direc)
            #print bp.years()
            yrix=int(list(bp.years()).index(float(yr)))
            preix=int(list(bp.years()).index(float(pre)))
            postix=int(list(bp.years()).index(float(post)))
            #print bp.years()[preix:postix+1]
            ancova=doancova.ANCOVA(bp.years()[preix:postix+1], bp.ys()[preix:postix+1], bp.years()[yrix],Rpath='"C:\\Program Files\\R\\R-3.0.2\\bin\\Rscript.exe"')
            ancova.parseResult(ancova.results())
            print >>outf,line[:-1],',":"',
            if dfn[:len("Global")]=="Global":
              info=cmip3_info.matchfn(tfn)
              for inf in info:
                print >>outf, ",",inf,
            elif dfn[0] == 'r':
              info=cmip5_info.matchfn(tfn)
              for inf in info:
                print >>outf, ",",inf,
            print >>outf, ',":"',
            for inf in [
                ancova._ANCOVA__breakYear,
                ancova.firstSlope(),
                formatprobs(ancova.firstSlopeProb()), 
                ancova.firstRsq(),
                ancova.secondSlope(),
                formatprobs(ancova.secondSlopeProb()),
                ancova.secondRsq(),
                ancova.shift(),
                formatprobs(ancova._ANCOVA__prDiffShift),
                ":",
                formatprobs(ancova.changeOfTrendProb(), ancova._ANCOVA__prDiffShift),
                formatprobs(ancova.changeOfTrendProb()* ancova._ANCOVA__prDiffShift)
                ]:
              print >>outf,",",inf,
            print >>outf
            #if 
          except Exception as e:
            fl=os.environ["HOMEPATH"]+"\\Documents\\abrupt\\c_test\\"+fn[:-len('final.csv')-1]+'/*.trace'
            print >>outf,line[:-1],"Error getting files",fl
            print "using ", fl
            #print glob.glob(fl)
            #raise Exception(str(e))
            pass
            
          #print direc,
  outf.close()  
  print "done"