示例#1
0
def getcircle(r):
    tmpcirc = []
    for y in range(int(-r), int(r)):
        tmpcirc.append([circle(y, r), y])
    ptmpcirc = Data(tmpcirc)
    ptmpcirc.set_option_colonsep("with", "l lt -0")
    return ptmpcirc
示例#2
0
def getarc(x0, y0, ang0, ang1, r, lt):
    tmparc = []
    for ang in range(int(min(ang0, ang1)), int(max(ang0, ang1) + 1)):
        radang = pi / 180. * float(ang)
        tmparc.append([x0 + r * cos(radang), y0 + r * sin(radang)])
    ptmparc = Data(tmparc)
    ptmparc.set_option_colonsep("with", "l ls %i" % (lt))
    radang = pi / 180. * (ang0 + ang1) / 2.
    labelpos = [x0 + r * 2. / 3. * cos(radang), y0 + r * 2. / 3. * sin(radang)]
    return ptmparc, labelpos
示例#3
0
    k=s.split()
    name2="/data/ivar/berger/Regensburg/2002/"+str(i*10)+"/axlv2_sumspeed_0"+str(i*10)+"-0"+str((i+1)*10)+".dat"
    f2=open(name2)
    s2=f2.readline()
    k2=s2.split()
    summe+=float(k[2])/(5.*24.)
    summe2+=float(k2[2])/(5.*24.)
    hist.append([float(i*10),float(k[2])/(5.*24.),float(k2[2])/(5.*24.)])
    hist2.append([float(i*10),float(k[2])/(5.*24.),float(k2[2])/(5.*24.)])
    f.close()
    f2.close()

#for i in range(len(hist)/2):
#    hist[i*2][1]+=hist[i*2+1][1]
#for i in range(len(hist)/2):
#    hist[i+len(hist)/2][1]+=0.

gphist=Data(hist)
gphist.set_option_colonsep("using", "1:2")
gphist.set_option_colonsep("title",  "'2005'")
gphist2=Data(hist2)
gphist2.set_option_colonsep("using", "1:3")
gphist2.set_option_colonsep("lt","3")
gphist2.set_option_colonsep("title",  "'2002'")

gp=Gnuplot()
gp.plot(gphist,gphist2)

print "summe2005 = ",summe
print "summe2002 = ",summe2
示例#4
0
            meancharge[elem].append([float(time),float(k[8])])
    elemfile.close()
listin.close()

"""
generate gnuplot data
"""

#erzeugt plotdaten
plotdens=[]
for ion in range(len(ionnames)):
    if (len(iondens[ion])>1):
        tmpplotdens=Data(iondens[ion])
    else:
        tmpplotdens=Data([[0.,0.]])
    tmpplotdens.set_option_colonsep("using", "1:2 ")
    tmpplotdens.set_option_colonsep("title",  "'%s density*10^7'" %(ionnames[ion]))
    tmpplotdens.set_option_colonsep("with",  "points")
    plotdens.append(tmpplotdens)
plotmaxdens=[]
for ion in range(len(ionnames)):
    if (len(ionmaxdens[ion])>1):
        tmpplotmaxdens=Data(ionmaxdens[ion])
    else:
        tmpplotmaxdens=Data([[0.,0.]])
    tmpplotmaxdens.set_option_colonsep("using", "1:2 ")
    tmpplotmaxdens.set_option_colonsep("title",  "'%s density*10^7'" %(ionnames[ion]))
    tmpplotmaxdens.set_option_colonsep("with",  "points")
    plotmaxdens.append(tmpplotmaxdens)
plotvelocity=[]
for ion in range(len(ionnames)):
示例#5
0
        alphanfft = []
        for i in range(N):
            alphanfft.append(alphan[i][1])
        psdnraw = fft(alphanfft)
        psdnges = []
        for i in range(len(psdnraw) / 2 + 1):
            psdnges.append([
                (float(i) / (float(N) * timeres)),
                2. * abs(psdnraw[i].imag) / N + 2. * abs(psdnraw[i].real) / N
            ])

        if (bin == 0):
            psdngessum = psdnges
        if (bin != 0):
            for i in range(len(psdngessum)):
                psdngessum[i][1] += psdnges[i][1]
    plotpsdngessum = Data(psdngessum)
    plotpsdngessum.set_option_colonsep("with", "lines")
    gp = Gnuplot()
    gp("set title '%f , gap = %i'" % (doy, gap))
    gp("set logscale x")
    gp("set logscale y")
    gp("set yrange[1e-5:0.1]")
    gp("set xrange[0.001:1.]")
    gp.plot(plotpsdngessum)
    gp.hardcopy("%f_%is_%i_%i.ps" % (doy, int(timeres), N, binning),
                color=True,
                fontsize=18)
    del gp
示例#6
0
    else:
        phi = pi - atan(mdata.magby[i][1] / mdata.magbx[i][1])
    # Ende: Winkel ausrechnen

    # Jedes binres-te Element neue bin anlegen und letzte normieren
    if (i % binres == 0):
        if (i > 0):
            mbin[len(mbin) - 1][1] /= binres
        mbin.append([mdata.time[i], phi])
    else:
        mbin[len(mbin) - 1][1] += phi
if (i % binres != 0):
    mbin[len(mbin) - 1][1] /= (i % binres)

plotdata = Data(mbin)
plotdata.set_option_colonsep("title", "'{/Symbol F}_B'")
mp.panel[mpi].adddata(plotdata)
mp.panel[mpi].adddata(
    Data([[timeframe[0], pi / 2 + parkerwinkel],
          [timeframe[1], pi / 2 + parkerwinkel]]))
mp.panel[mpi].adddata(
    Data([[timeframe[0], parkerwinkel], [timeframe[1], parkerwinkel]]))
mp.panel[mpi].adddata(
    Data([[timeframe[0], pi + parkerwinkel], [timeframe[1],
                                              pi + parkerwinkel]]))
mp.panel[mpi].setyrange(-2, 6)
mp.panel[mpi].setlogscale(0)
mp.panel[mpi].setylabel("B-Winkel")
mpi += 1
del plotdata
del mdata
示例#7
0
                     1.5 * sdata[ion][time][maxflux][7])
                        and (sdata[ion][time][step][7] <=
                             1.69 * sdata[ion][time][maxflux][7])):
                    tmpsumme += sdata[ion][time][step][12]
            if (sdata[ion][time][maxflux][12]):
                tailbulk = tmpsumme / sdata[ion][time][maxflux][12]
            else:
                tailbulk = 0.
        else:
            tailbulk = 0.
        tailbulkdisttmp.append([(279. + time * 5. * 0.00833), tailbulk])
    tailbulkdist.append(tailbulkdisttmp)
gptailbulkdist = []
for ion in range(len(sdata)):
    tmpgptailbulk = Data(tailbulkdist[ion])
    tmpgptailbulk.set_option_colonsep("using", "1:2")
    tmpgptailbulk.set_option_colonsep("title", "'%s'" % (ion_list[ion]))
    gptailbulkdist.append(tmpgptailbulk)

gp = Gnuplot()
gp("set autoscale")
gp("set yrange[0.00001:1.]")
gp("set logscale y")
gp("set xlabel 'DoY'")
gp("set ylabel 'tail/bulk ratio' ")

for ion in range(len(sdata)):
    if (first):
        gp.plot(gptailbulkdist[ion])
        first = 0
    else:
示例#8
0
    dcounts.append(counts)
    plotcounts = Data(counts)
    allfiles.append(plotcounts)
    f.close()

offs = 10
for step in range(dim):
    tmpcounts = 0.
    tmperrors = 0.
    for i in range(1):
        tmpcounts += dcounts[i + offs][step][1]
        tmperrors += dcounts[i + offs][step][2]**2
    sumcounts.append([dcounts[offs][step][0], tmpcounts, sqrt(tmperrors)])

plotsumcounts = Data(sumcounts)
plotsumcounts.set_option_colonsep("using", "1:2:3")
plotsumcounts.set_option_colonsep("with", "errorbars")

i = 18
j = 20
allfiles[i].set_option_colonsep("title", "'Data 18:00-19:00'")
allfiles[j].set_option_colonsep("title", "'Data 20:00-21:00'")
allfiles[i].set_option_colonsep("with", "errorbars")
allfiles[j].set_option_colonsep("with", "errorbars")
allfiles[i].set_option_colonsep("using", "1:2:3")
allfiles[j].set_option_colonsep("using", "1:2:3")
print "ionvel = ", ionvel
gp = Gnuplot()
gp("set log y")
#gp("set log x")
#gp("set xrange[250:400]")
示例#9
0
                    interval = int(data.countspec[ts][vs][0] / datah2.vel[ts] /
                                   intervalrange)
                    #print interval
                    if (interval < int(maxrange / intervalrange)):
                        datadenssum[i][interval] += data.countspec[ts][vs][1]

        for interval in range(len(datadenssum[i])):
            datadenssum[i][interval] /= len(data.countspec)
            if (datadenssum[i][interval] > 1.e-24):
                if (datadenssum[i][interval] < datamin[i]):
                    datamin[i] = datadenssum[i][interval]
                if (datadenssum[i][interval] > datamax[i]):
                    datamax[i] = datadenssum[i][interval]

        pdata = Data(zip(frange(0, maxrange, intervalrange), datadenssum[i]))
        pdata.set_option_colonsep("title", "'" + str(swstart) + "'")
        mp.panel[i].adddata(pdata)
        del pdata

    del datadenssum

#data = swicsprotondata(ionnames[i],jahr[jh][1],path)
#data.load()
#gp.plot(Data(data.countspec[0]))

for i in range(len(ionnames)):
    mp.panel[i].setyrange(datamin[i] * 0.9, datamax[i] * 1.1)
    mp.panel[i].setlogscale(1)
    mp.panel[i].setylabel(ionnames[i] + " counts per hour")

mp.plot()
示例#10
0
		hist[p,w,:,0] = linspace(0,(bincount-1)*binsize,bincount) + binsize/2
	# Ende: Geschwindigkeiten anfügen



mp = multiplot(plotcount+1,1)
mpi = 0
mp.setgv(1)
mp.setxlabel("Geschwindigkeitsbins")
mp.setxrange(200,bincount*binsize)

#Anfang: Panels plotten
for p in range(len(hist)):
	for w in range(len(marks)):
		plotdata = Data(hist[p,w,:,0:3])
		plotdata.set_option_colonsep("title","'"+title[p]+" "+marktitle[w]+"'")
		plotdata.set_option_colonsep("with","yerrorline")
		mp.panel[mpi].adddata(plotdata)
	mp.panel[mpi].setyrange(ranges[p][0],ranges[p][1])
	mp.panel[mpi].setlogscale(log[p])
	del plotdata
	mpi += 1
#Ende: Panels plotten

#Anfang: Counts plotten
plotdata = Data(zip(hist[0,0,:,0],hist[0,0,:,3]))
mp.panel[mpi].adddata(plotdata)
plotdata = Data(zip(hist[0,1,:,0],hist[0,1,:,3]))
mp.panel[mpi].adddata(plotdata)
mp.panel[mpi].setyrange(1,900)
mp.panel[mpi].setlogscale(1)
示例#11
0
onedaym = histogram(cleanmeanch, 85, 1, 20, 4)
onedaym2 = sig_histogram(cleanmeanch, onedaym, 4)
onedaym3 = []
for i in range(len(onedaym)):
    onedaym3.append([onedaym[i][0], onedaym[i][1], onedaym2[i][1]])
#for i in range(16):
#    nrsum=0
#    onedaymean=0.
#    for j in range(24):
#        if (fedata.meanch[i*24+j][1]>0. and fedata.meanch[i*24+j][1]<20.):
#            nrsum+=1
#            onedaymean+=fedata.meanch[i*24+j][1]
#    if (nrsum>0):
#        onedaym.append([90.5+float(i),onedaymean/nrsum])

ponedaym = Data(onedaym3)
ponedaym.set_option_colonsep("using", "1:2:3")
ponedaym.set_option_colonsep("with", "yerrorbars lw 3 pt 2")

gp = Gnuplot()
gp("set grid xtics mxtics noytics back lt -1 lt 0")
gp("set yrange[0:20]")
gp("set xrange[85:105]")
gp("set mxtics 5")
gp("set mytics 5")
gp("set title 'ACE/SWICS Maximum Likelihood PHA Analyse'")
gp("set ylabel 'Qm(Fe)'")
gp("set xlabel 'Doy 2001'")
gp.plot(ponedaym)
gp.hardcopy("meanchfe.ps", color="true")
示例#12
0
vax = vp[0][2] + vd[0][2]
vay = vp[0][3] + vd[0][3]
var = sqrt(vax**2 + vay**2)
radius[1] = var
vaang = asin(vay / var) * 180. / pi
#va=[[0,0,vd[0][2]+vp[0][2],vd[0][3]+vp[0][3]]]
va, valabel = getvec(0., 0., var, vaang)
vdsw, vdswlabel = getvec(radius[0], 50., radius[1] - radius[0], 0.)
vpsw, vpswlabel = getvec(0., 75., radius[0], 0.)
vasw, vaswlabel = getvec(0., 100., radius[1], 0.)
#vdrec,vdreclabel=getvec(radius[0],25.,radius[0]*cos((180-beta+alpha)*pi/180.)+sqrt(radius[0]**2*cos((180-beta+alpha)*pi/180.)**2+radius[1]**2-radius[0]**2),0.)
vdrec, vdreclabel = getvec(radius[0], 25., dv0, 0.)
vdrot, vdrotlabel = getvec(vp[0][2], vp[0][3], dv0, alpha)

pvp = Data(vp)
pvp.set_option_colonsep("with", "vectors size 7,25 filled ls 10")
pva = Data(va)
pva.set_option_colonsep("with", "vectors size 7,25 filled ls 11")
pvd = Data(vd)
pvd.set_option_colonsep("with", "vectors size 7,25 filled ls 12")
pvdsw = Data(vdsw)
pvdsw.set_option_colonsep("with", "vectors heads front size 5,90 ls 13")
pvdrec = Data(vdrec)
pvdrec.set_option_colonsep("with", "vectors heads front size 5,90ls 12")
pvpsw = Data(vpsw)
pvpsw.set_option_colonsep("with", "vectors heads front size 5,90 ls 10")
pvasw = Data(vasw)
pvasw.set_option_colonsep("with", "vectors heads front size 5,90 ls 11")
pvdrot = Data(vdrot)
pvdrot.set_option_colonsep("with", "vectors size 7,25 filled ls 17")
alphaarc, alphaarclabel = getarc(vp[0][2], vp[0][3], 180, 180 + int(alpha),
示例#13
0
for i in range(dim):
    tmpsum = 0.
    for j in range(len(fftdata) / 2 + 1):
        tmpsum += sin(
            float(j) / float(N) * 2 * pi * float(i)) * (fftdata[j].real) + cos(
                float(j) / float(N) * 2 * pi * float(i)) * (fftdata[j].imag)
#    tmpsum=tmpsum*2.
    for j in range(len(fftdata) / 2):
        tmpsum += sin(
            float(len(fftdata) - j - 1) / float(N) * 2 * pi *
            float(i)) * (fftdata[len(fftdata) - j - 1].real) + cos(
                float(len(fftdata) - j - 1) / float(N) * 2 * pi *
                float(i)) * (fftdata[len(fftdata) - j - 1].imag)
    tmpsum = tmpsum / dim
    sumdata2.append([float(i) / 2., tmpsum])

plotsum = Data(sumdata)
plotsum.set_option_colonsep("with", "line")
plotsum2 = Data(sumdata2)
plotsum2.set_option_colonsep("with", "line")

gp = Gnuplot()
gp("set logscale y")
#gp("set logscale x")
gp.plot(plotdata, plotdata2)
gp2 = Gnuplot()
#gp2("set logscale y")
gp2("set samples 12800")
gp2("set xrange[80:128]")
gp2.plot("(sin(x)+sin(2*x))", plotsum, plotsum2)
示例#14
0
            N2=len(autoc)
            for i in range(N2):
                autocfft.append(autoc[i][1])
            psdaraw=fft(autocfft)
            psdages=[]
            for i in range(len(psdaraw)/2+1):
                psdages.append([(float(i)/(float(N2)*timeres)),2.*abs(psdaraw[i].imag)/N2+2.*abs(psdaraw[i].real)/N2])

            if (bin==0):
                psdagessum=psdages
            if (bin!=0):
                for i in range(len(psdagessum)):
                    psdagessum[i][1]+=psdages[i][1]
    if (doautocorr):
        plotpsdagessum=Data(psdagessum)
        plotpsdagessum.set_option_colonsep("with", "lines")
        plotautoc=Data(autoc)
        plotautoc.set_option_colonsep("with", "lines")
    if (dofft):
        plotpsdngessum=Data(psdngessum)
        plotpsdngessum.set_option_colonsep("with", "lines")
        plotpsdmagbzges=Data(psdmagbzges)
        plotpsdmagbzges.set_option_colonsep("with", "lines")
        plotalphan=Data(alphan)
        plotalphan.set_option_colonsep("with", "lines")
        plotbeta=Data(beta)
        plotbeta.set_option_colonsep("with", "lines")
        plotpsdbetages=Data(psdbetages)
        plotpsdbetages.set_option_colonsep("with", "lines")

    if (dofft):
示例#15
0
    pspec[len(pspec) - 1].set_option_colonsep("with", "yerrorbars lw 3")
    pspec[len(pspec) - 1].set_option_colonsep("using", "1:2:3")
    i += 1

phist = []
i = 0
for spec in histarr:
    phist.append(Data(spec))
    phist[len(phist) - 1].set_option_colonsep("title",
                                              "'%s'" % (fedata[i].name))
    phist[len(phist) - 1].set_option_colonsep("with", "yerrorbars lw 3")
    phist[len(phist) - 1].set_option_colonsep("using", "1:2:3")
    i += 1

psumhist = Data(sumhist)
psumhist.set_option_colonsep("title", "'Fe'")
psumhist.set_option_colonsep("with", "yerrorbars lw 3")
psumhist.set_option_colonsep("using", "1:2:3")

gp = Gnuplot()
#gp("f(x)=3.e6*x**-5.7")
gp("set log yx")
gp("set yrange[0.1:1e5]")
gp("set xrange[.1:100.]")
gp("set format y '10^{%T}'")
gp("set xlabel 'keV/amu'")
gp("set ylabel 'N[#]'")
if (len(hedata.time) == 1):
    gp("set title '2007 DoY %.3f'" % (hedata.time[0]))
else:
    gp("set title '2007 DoY %.3f-%.3f'" %
示例#16
0
        tmpq=tmpq+(results[ion+42][interv][1]*(5.+float(ion)))
        sumfl=sumfl+(results[ion+42][interv][1])
    qtmp8.append([results[0][interv][0],(tmpq/sumfl)])
qges.append(qtmp1)
qges.append(qtmp2)
qges.append(qtmp3)
qges.append(qtmp4)
qges.append(qtmp5)
qges.append(qtmp6)
qges.append(qtmp7)
qges.append(qtmp8)

gpqges=[]
for ion in range(8):
    tmpgpq=Data(qges[ion])
    tmpgpq.set_option_colonsep("using", "1:2")
    tmpgpq.set_option_colonsep("title",  "'%s'" %(ion_list2[ion]))
    gpqges.append(tmpgpq)
    
#    qfe.append([results[0][interv][0],(tmpflux2/tmpflux)])

#gpqfe=Data(qfe)
#gpqfe.set_option_colonsep("using", "1:2")
#gpqfe.set_option_colonsep("title",  "'QFe'")


tmpgpsumme=Data(summe)
tmpgpsumme.set_option_colonsep("using", "1:2")
tmpgpsumme.set_option_colonsep("title",  "'O'")

示例#17
0
    histarr2.append(tmphist2)
    meandvvsvparr[i][2] = tmpsig
    meandvvsvparr[i][3] = (len(tmpval[j0:-j0 - 1]))

dvrmean = []
for ion in dvvsvparr:
    dvrmean.append([])
    for i in range(len(ion) - 20):
        dvrmean[-1].append(mean(ion[i:i + 20]))
magrmean = []
for i in range(len(magarr) - 20):
    magrmean.append(mean(magarr[i:i + 20]))

meanhevse = meandvvsvparr
pmeandvvsvparr = Data(meandvvsvparr)
pmeandvvsvparr.set_option_colonsep("using", "1:4:2")
"""
i=-1
for ion in meandvvsvparr:
    i+=1
    tmpsum=0.
    deltasum=0.
    nrtmpsum=0
    j=-1
    for val in ion:
        j+=1
        if (val[0]>0.01 and val[0]<0.4 and meandvvsvparr[-1][j][1]>0.):
            delta=val[2]/meandvvsvparr[-1][j][1]+val[1]/meandvvsvparr[-1][j][1]**2*meandvvsvparr[-1][j][2]
            tmpsum+=val[1]/meandvvsvparr[-1][j][1]
            deltasum+=delta**2
            nrtmpsum+=1.
示例#18
0
    daten[11, :, 1] += tmp[:]
    tmp = array(get_densratio(odata, pdata, mark[m]))
    daten[12, :, 1] += tmp[:]

    del mdata
    del pdata
    del he2data
    del o6data
    del o7data

if len(mark) > 0:
    daten[:, :, 1] /= len(mark)

for i in [1, 2, 10, 5, 3, 11, 12]:
    plotdata = Data(daten[i])
    plotdata.set_option_colonsep("title", "'" + title[i] + "'")
    if (log[i]):
        unten = 0.3 * min(daten[i, :24 * 8 - 3, 1])
        oben = 3. * max(daten[i, :24 * 8 - 3, 1])
    else:
        unten = min(daten[i, :24 * 8 - 3,
                          1]) - 0.3 * abs(min(daten[i, :24 * 8 - 3, 1]))
        oben = max(daten[i, :24 * 8 - 3,
                         1]) + 0.3 * abs(min(daten[i, :24 * 8 - 3, 1]))

    if (title[i] == "v_p"):
        unten = 250

    mp.panel[mpi].setyrange(unten, oben)
    mp.panel[mpi].adddata(plotdata)
    mp.panel[mpi].setlogscale(log[i])
示例#19
0
for i in range(len(points1)):
    pointsmat[i][i] = 1.
    xvalpoints[i] = points1[i][0]
    yvalpoints[i] = points1[i][1]
gpdata = GridData(et_mat_plot, xval, yval, binary=0)
gpdata.set_option_colonsep("with", "lines")
gppoints = GridData(pointsmat, xvalpoints, yvalpoints, binary=0)
#gppoints=Data(points1,binary=0)
gppoints.set_option_colonsep("with", "p pt 2 lt 5 ps 2.5")
#gppoints.set_option_colonsep("at", "bs")
gpxerrorp = Data(xerrorp)
gpxerrorm = Data(xerrorm)
gpyerrorp = Data(yerrorp)
gpyerrorm = Data(yerrorm)
#gpvectors.set_option_colonsep("using", "1:2:3:4")
gpxerrorp.set_option_colonsep("with", "vectors head filled lt 5 lw 2")
gpxerrorm.set_option_colonsep("with", "vectors head filled lt 5 lw 2")
gpyerrorp.set_option_colonsep("with", "vectors head filled lt 5 lw 2")
gpyerrorm.set_option_colonsep("with", "vectors head filled lt 5 lw 2")

#yrange=[6,40]
#xrange=[100,223]
yrange = [2, 20]
xrange = [200, 512]
#yrange=[0,127]
#xrange=[80,330]
for ion in range(len(ion_names)):
    labelx = ((points1[ion][0] - float(xrange[0])) /
              float(xrange[1] - xrange[0])) - 0.025
    labely = (1. - (points1[ion][1] - float(yrange[0])) /
              (yrange[1] - yrange[0])) - 0.04
示例#20
0
alpha = zeros([4, 4])
covar = zeros([4, 4])
ia = zeros([4], int)
ia[0] = ia[1] = 1
ia[2] = ia[3] = 1

x = range(-5, 6)
x = array(x)
y = zeros([11])
sig = zeros([11])
for i in range(len(x)):
    y[i] = a * x[i]**3 + b * x[i]**2 + c
    sig[i] = sqrt(abs(y[i]))
print x
print y
merit = 0.
merit = maxlifit(x, y, sig, p, ia, covar, alpha, merit, g)

data = []
for i in range(len(x)):
    data.append([x[i], y[i], sig[i]])

pdata = Data(data)
pdata.set_option_colonsep("using", "1:2:3")
pdata.set_option_colonsep("with", "yerrorbars")

gp = Gnuplot()
gp("f(x)=%f*x**3+%f*x**2+%f*x+%f" % (p[0], p[1], p[2], p[3]))
gp("g(x)=%f*x**2+%f*x+%f" % (p0[0], p0[1], p0[2]))
gp.plot(pdata, "f(x)")
示例#21
0
    s = f.readline()
    s = f.readline()
    for s in f:
        k = s.split()
        for ion in range(len(ion_names)):
            if (ion_names[ion] == k[2]):
                ionpos[ion].append([(float(k[3]) + 0.5) / 2.,
                                    (float(k[5]) + 0.5) / 2.])

f.close()

plotionpos = []
for ion in range(len(ionpos)):
    tmpion = Data(ionpos[ion])
    if (ion_names[ion] != "20Ne8+"):
        tmpion.set_option_colonsep("title", "'%s'" % (ion_names[ion]))
    else:
        tmpion.set_option_colonsep("title", "'Ne8+'")
    plotionpos.append(tmpion)

yrange = [0, 127]
xrange = [50, 300]
gp = Gnuplot()
gp("set mouse")
gp("set xlabel 'Time-of-Flight Channel'")
gp("set ylabel 'Energy Channel' ")
gp("set xrange[%i:%i]" % (xrange[0], xrange[1]))
gp("set yrange[%i:%i]" % (yrange[0], yrange[1]))

gp.plot(plotionpos[0])
for ion in range(len(ionpos) - 1):
示例#22
0
pvthhisttheovs.set_option_colonsep("title","'Model'")
pvthhisttheovs.set_option_colonsep("with","steps lt 3 lw 2")
pvthhisttheovs.set_option_colonsep("using","1:2")
"""

a = mag.getvals(["time", "phi"])
b = mag.getvals(["time", "theta"])
c = mag.getvals(["time", "phi"])
for i in range(len(c)):
    c[i, 1] = acos(cos(a[i, 1]) * cos(b[i, 1]))
#c[:,1]-=pi/2.
#c[:,1]=-c[:,1]
d = iondata.getvals(["time", "vel"])
d[:, 1] /= 100
pa = Data(a)
pa.set_option_colonsep("with", "l lt 1")
pb = Data(b)
pc = Data(c)
pc.set_option_colonsep("with", "l lt 3")
pd = Data(d)
pd.set_option_colonsep("with", "l lt 4")

denssw = iondata.getvals(["time", "dens"])
dens = swepam.getvals(["time", "dens"])
vel = iondata.getvals(["time", "vel"])
vels = swepam.getvals(["time", "vel"])
temp = iondata.getvals(["time", "temp"])
temps = swepam.getvals(["time", "temp"])
magb = mag.getvals(["time", "magb"])
prdbb = mag.getvals(["time", "prdbb"])
dbb = mag.getvals(["time", "dbb"])
示例#23
0
class error:
    "Class error : contains errordata\n\t name = array[steps][ions] ..."
    def __init__(self,filename):
        self.filename=filename
        self.name=[]
        self.ionname=""
        self.step=0
        self.counts=0.
        self.frac=0.
        self.error=0.
        self.fiterg=[]
        self.normerg=[]
        self.histogram=[]
#        self.gp=Gnuplot()

    """
    method : reads in maximum-likelihood-fitresults to generated data. the name of the file is in self.filename
    """
    def readerrordata(self):
        dim=200
        infile=open(self.filename)
        tmpfitergion1=[]
        tmpfitergion2=[]
        tmpnormergion1=[]
        tmpnormergion2=[]
        for step in range(dim):
            s=infile.readline()
            k=s.split()
            numions=int(k[5])
            numions=2
            s=infile.readline()
            for ion in range(numions):
                s=infile.readline()
                k=s.split()
                if (step==0):
                    self.name.append(k[0])
                if (ion==0):
                    tmpfitergion1.append(float(k[10]))
                    tmpnormergion1.append(float(k[11]))
                if (ion==1):
                    tmpfitergion2.append(float(k[10]))
                    tmpnormergion2.append(float(k[11]))
        self.fiterg.append(tmpfitergion1)
        self.fiterg.append(tmpfitergion2)
        self.normerg.append(tmpnormergion1)
        self.normerg.append(tmpnormergion2)
        print "load : ",self.filename
        
    """
    method : calculates error from already loaded maximum-likelihodd-fitresults (via readerrordata)
    gethistogram first makes a histogram out of the m-l-fitresults. afterwards getfitpara determines the parameters for the final fitting to the histogram. in the end the fit to the histogram is performed. 
    """
    def calcerror(self):
        gethistogram(self)
        self.getfitpara()
        self.geterror()
        
    """
    method :
    """
    def geterror(self):
        gp=Gnuplot()
#        gp("set yrange[0:1e20]")
        gp("a=%f" %(self.counts))
        print len(self.histogram[0])
        gp("b=5.")
        gp("c=200.")
        gp("f(x)=c/(sqrt(2.*pi)*b)*exp(-((x-a)**2/(2.*b**2)))")
        self.gphist=Data(self.histogram[0])
        self.gphist.set_option_colonsep("with","boxes")
        if (len(self.histogram[0])>3):
            gp("fit f(x) '"+self.gphist.filename+"' using 1:2 via a,b")
            gp("fit f(x) '"+self.gphist.filename+"' using 1:2 via b")
        else:
            gp("b=0.1")
#        gp.plot(self.gphist,"f(x)")
#        gp("pause 3")
        self.error=gp.eval("b")/self.counts
        print self.error
    
    """
    method :
    """
    def getfitpara(self):
        positions=[]
        for i in range(len(self.filename)):
            if (self.filename[i:i+1]=="_"):
                positions.append(i)
        print positions
        self.ionname=self.filename[positions[2]+1:positions[3]]
        self.step=int(self.filename[positions[3]+5:positions[4]])
        self.counts=float(self.filename[positions[4]+1:positions[5]])
        self.frac=float(self.filename[positions[5]+1:positions[6]])
        print self.ionname
        print self.step
        print self.counts
        print self.frac
        print self.name
示例#24
0
文件: cascade.py 项目: annefi/PUI-fun
class cascade:
    def __init__(self, B, power, index, eff, ions, vsw, valf):
        "B\t->\t float : magnetic field strength in nT\npower\t->\t float : scales the wavepower spectrum\nindex\t->\t float : spectral index of cascade\neff\t->\t float : efficiency for energy drain from cascade\nions\t->\t [nrions][ioname(str),ionmass(float,in amu),ioncharge(float,in e),iondens(float,in respect to protons)\nvsw\t->\t float : solar wind speed\nvalf\t->\t float : alfven speed"
        self.B = B * 1e-9
        self.power = power
        self.index = index
        self.eff = eff
        self.vsw = vsw
        self.valf = valf
        self.name = []
        self.dens = []
        self.mass = []
        self.mqarr = []
        self.charge = []
        self.sequence = []
        for ion in ions:
            self.name.append(ion[0])
            self.mass.append(ion[1])
            self.charge.append(ion[2])
            self.dens.append(ion[3])
            self.mqarr.append(ion[2] / ion[1])
            self.sequence.append(0)
        self.qm0 = 1.602176487e-19 / 1.66053886e-27
        self.warr = []
        self.dim = len(self.mqarr)

        self.get_sequence()
        self.build_warr()
        self.calc_casc()

    def set_index(self, a):
        self.index = a

    def set_B(self, a):
        self.B = a * 1e-9

    def set_efficiency(self, a):
        self.eff = a

    def build_warr(self):
        "calculates the resonance frequencies"
        for i in self.sequence:
            self.warr.append(-(self.mqarr[i] * self.qm0 * self.B) /
                             (1. - self.vsw / self.valf))

    def get_sequence(self):
        mqarr = []
        sequence = []
        for val in self.mqarr:
            mqarr.append(val)
        for i in range(self.dim):
            maxval = min(mqarr)
            maxpos = 0
            i = 0
            while (mqarr[i] != maxval):
                i += 1
            maxpos = i
            """    
            for i in range(self.dim):
                if (mqarr[i]==maxval):
                    maxpos=i
            """
            sequence.append(maxpos)
            newmqarr = []
            for i in range(self.dim):
                if (i != maxpos):
                    newmqarr.append(mqarr[i])
                else:
                    newmqarr.append(100.)
            mqarr = []
            for val in newmqarr:
                mqarr.append(val)
        self.sequence = sequence

    def calc_casc(self):
        Parr = [[.01, self.power]]
        dParr = [[.01, 0.]]
        for i in range(self.dim):
            Parr.append([self.warr[i], 0.])
            dParr.append([self.warr[i], 0.])
        Parr[0][1] = (self.power * Parr[0][0]**-self.index)
        dParr[0][1] = (self.power * Parr[0][0]**-self.index)
        #dParr[0][1]=0.
        Parr[1][1] = (self.power * Parr[1][0]**-self.index) - (
            self.power * Parr[1][0]**-self.index
        ) * self.dens[self.sequence[0]] * self.eff * self.charge[
            self.sequence[0]]**2 / self.mass[self.sequence[0]]
        dParr[1][1] = (self.power * Parr[1][0]**-self.index) * self.dens[
            self.sequence[0]] * self.eff * self.charge[
                self.sequence[0]]**2 / self.mass[self.sequence[0]]
        for i in range(self.dim - 1):
            P0 = (self.power * Parr[i + 2][0]**-self.index) - (
                (self.power * Parr[i + 1][0]**-self.index) - Parr[i + 1][1])
            dP = P0 * self.dens[self.sequence[i + 1]] * self.eff * self.charge[
                self.sequence[i + 1]]**2 / self.mass[self.sequence[i + 1]]
            print "P0,dP"
            print P0, dP
            if (dP < P0):
                Parr[i + 2][1] = P0 - dP
            else:
                Parr[i + 2][1] = 1.
                dP = P0
            dParr[i + 2][1] = dP
            if (i == 0):
                dParr[i + 2][1] = dP
            if (i == 1):
                dParr[i + 2][1] = dP
            if (i == 2):
                dParr[i + 2][1] = dP
        self.Parr = Parr
        self.dParr = dParr

        dParr2 = []
        dParr3 = []
        dVarr = []

        E0 = 0.
        ppos = 0
        hepos = 0
        for j in range(len(self.sequence)):
            if (self.name[self.sequence[j]] == "H1+"):
                ppos = j
            if (self.name[self.sequence[j]] == "He2+"):
                hepos = j
        for i in range(self.dim):
            pos = self.sequence[i]
            print "pos = ", i, self.sequence[i], pos
            print "p,hepos = ", ppos, hepos
            dParr2.append([
                dParr[i + 1][0], (dParr[i + 1][1] / self.dens[pos]) /
                (dParr[ppos + 1][1] / self.dens[self.sequence[ppos]])
            ])
            # dv/dvHe
            #a=sqrt((dParr[i+1][1]*2./self.dens[i]**2)/self.mass[i])*(self.charge[i]**1.5/self.mass[i])/(sqrt((dParr[self.dim-3][1]*2./self.dens[self.dim-4]**2)/self.mass[self.dim-4])*(self.charge[self.dim-4]**1.5/self.mass[self.dim-4]))

            a = sqrt(
                (dParr[i + 1][1] * 2. / self.dens[pos]**1.) / self.mass[pos]
            ) * (self.charge[pos]**1.5 / self.mass[pos]**1.) / (sqrt(
                (dParr[hepos + 1][1] * 2. / self.dens[self.sequence[hepos]]**
                 1.) / self.mass[self.sequence[hepos]]) * (
                     self.charge[self.sequence[hepos]]**1.5 /
                     self.mass[self.sequence[hepos]]**1.))
            # b = E/Ep
            b = (dParr[i + 1][1] / self.dens[pos]) / (
                dParr[ppos + 1][1] / self.dens[self.sequence[ppos]])

            print a, b
            #dParr3.append([self.mass[i]/self.charge[i],(a)*(self.charge[i]**1.5/self.mass[i])])
            dParr3.append([self.charge[pos] / self.mass[pos], b])
            dVarr.append([self.charge[pos] / self.mass[pos], a])
        pdParr = []
        pdVarr = []
        self.pdVarr = []
        self.pdParr = []
        for j in range(self.dim):
            for k in range(self.dim):
                if (self.name[self.sequence[k]] == self.name[j]):
                    pos = k
                    if (self.name[j] != "H1+"):
                        self.pdVarr.append(Data([dVarr[pos]]))
                    self.pdVarr[len(self.pdVarr) - 1].set_option_colonsep(
                        "with", "p pt %i lt 3" % (j + 1))
                    self.pdParr.append(Data([dParr3[pos]]))
                    if (self.name[j] == "H1+"):
                        self.pdParr[len(self.pdParr) - 1].set_option_colonsep(
                            "title", "'%s'" % ("H^{1+}"))
                    if (self.name[j] == "H1+"):
                        self.pdParr[len(self.pdVarr) - 1].set_option_colonsep(
                            "with", "p pt %i lt 1" % (j + 1))
                    else:
                        self.pdParr[len(self.pdVarr) - 1].set_option_colonsep(
                            "with", "p pt %i lt 3" % (j + 1))

        self.dParr2 = dParr2
        self.dParr3 = dParr3
        self.dVarr = dVarr

    def plot(self):

        self.gp = Gnuplot()
        #self.gp("set autoscale")
        self.gp("set size square")
        self.gp("set xrange[0.01:.1]")
        self.gp("set yrange[100.:1000.]")
        self.gp("set format xy '10^%T'")
        self.gp("set xlabel '{/Symbol w} [Hz]'")
        self.gp("set ylabel 'Wave Power [arb.]'")
        self.gp("set logscale xy")
        self.pParr = Data(self.Parr)
        self.pParr.set_option_colonsep("with", "lp")
        self.gp.plot(self.pParr)
        #self.gp.replot(Data(self.dParr2))
        #self.gp.replot(Data(self.dParr2))
        self.gp("a=%f" % (self.power))
        self.gp("k=%f" % (self.index))
        self.gp("f(x)=a*x**-k")
        self.gp("f2(x)=(a*.7)*x**-(k+.1)")
        self.gp("f3(x)=(a*1e-5)*x**-(k+4.)")
        #self.gp.replot("f(x) with l lt 3","f2(x) with l lt 4","f3(x) with l lt 5")
        self.gp("set term postscript color 18 lw 2 eps")
        self.gp.hardcopy("Pcascall.ps", color="true", fontsize=18)
        self.gp2 = Gnuplot()
        self.gp2("set logscale xy")
        self.gp2("set title 'theocasc dE'")
        #gp2("set yrange[1:1.1]")
        first = 1
        for j in range(self.dim):
            if (first == 1):
                self.gp2.plot(self.pdParr[j])
                first = 0
            else:
                self.gp2.replot(self.pdParr[j])
        self.gp3 = Gnuplot()
        self.gp3("set logscale xy")
        self.gp3("set title 'theocasc dV'")
        first = 1
        for j in range(self.dim):
            if (first == 1):
                self.gp3.plot(self.pdVarr[j])
                first = 0
            else:
                self.gp3.replot(self.pdVarr[j])
示例#25
0
    def mrqcof(self, deriv, plot):
        from numpy import array, zeros
        from Gnuplot import Data
        dim = len(self.yvals[0])
        dyda = zeros([self.ma, dim])
        tmpdv = []
        tmpvth = []
        self.chisq = 0.
        for j in range(self.ma):
            for k in range(self.ma):
                self.covar[j][k] = 0.
            self.da[j] = 0.
        for i in range(self.ndata):
            ymod = self.func(self.xvals[i], self.paratry, dyda, deriv, self.ia)
            if (plot == 1):
                tmpdv.append([i * 0.2, ymod[0]])
                tmpvth.append([i * 0.2, ymod[1]])
            sig2i = []
            for j in range(dim):
                if (self.sigvals[i][j] != 0.):
                    sig2i.append(1. / (self.sigvals[i][j]**2))
                else:
                    sig2i.append(1.)
            dy = []
            for j in range(dim):
                dy.append(self.yvals[i][j] - ymod[j])

            if (deriv == 1):
                j = 0
                for l in range(self.ma):
                    if (self.ia[l]):
                        wt = []
                        for n in range(dim):
                            wt.append(dyda[l][n] * sig2i[n])
                        k = 0
                        for m in range(l + 1):
                            if (self.ia[m]):
                                for n in range(dim):
                                    self.covar[j][k] += wt[n] * dyda[m][n]
                                k += 1
                        for n in range(dim):
                            self.da[j] += dy[n] * wt[n]
                        j += 1
            for n in range(dim):
                self.chisq += dy[n] * dy[n] * sig2i[n]
        for j in range(1, self.mfit):
            for k in range(j):
                self.covar[k][j] = self.covar[j][k]
        if (plot == 1):
            tmpdv.append([1.6, 0.0])
            tmpdvplot = Data(tmpdv)
            #            tmpdvplot.set_option_colonsep("title","'chisq=%.2f,bp=%.2f,pb=%.2f,vpara=%.2f,vperp=%.2f'"%(self.chisq,self.paratry[0],self.paratry[1],self.paratry[2],self.paratry[3]))
            tmpdvplot.set_option_colonsep("title", "'Model'")
            tmpdvplot.set_option_colonsep("with", "steps lt 3 lw 3")
            tmpvth.append([1.6, 0.0])
            tmpvthplot = Data(tmpvth)
            tmpvthplot.set_option_colonsep("title", "'Model'")
            tmpvthplot.set_option_colonsep("with", "steps lt 3 lw 3")
            self.pthdv.append(tmpdvplot)
            self.pthvth.append(tmpvthplot)
        del dyda
        return
示例#26
0
        k2=s2.split()
        aspang.append([time,float(k2[2])])
        s2=swicsdatain.readline()
        k2=s2.split()
        swicspspeed.append([time,float(k2[2])])
        swicsdatain.close()

plotaspang=Data(aspang)
plotswepamdata=Data(swepamdata)
plotswepampdata=Data(swepampdata)
plotswicsdata=Data(swicsdata)
plotswepamspeed=Data(swepamspeed)
plotswicsspeed=Data(swicsspeed)
plotswicspspeed=Data(swicspspeed)

plotswepamdata.set_option_colonsep("title", "'SWEPAM'")
plotswepamspeed.set_option_colonsep("with", "lines")
plotswicsdata.set_option_colonsep("with", "points ls 3")
plotswicsdata.set_option_colonsep("title", "'SWICS'")
plotswicsspeed.set_option_colonsep("with", "lines")
plotswicspspeed.set_option_colonsep("with", "lines")
plotaspang.set_option_colonsep("with", "lines")

gp=Gnuplot()
gp("set xrange[0:60]")
gp("set format y '10^{%T}'")
gp("set xlabel 'DoY 2007'")
gp("set ylabel 'He^{2+} Density [1cm^{-3}]'")
#gp("set yrange[0.01:1.]")
gp("set log y")
gp.plot(plotswepamdata,plotswicsdata,plotaspang)
示例#27
0
swepamt=[]
swepamd=[]
swepamr=[]
swepamin=open("Swepamd279-289y200516min.dat")
for s in swepamin:
    k=s.split()
    swepamv.append([float(k[0]),float(k[4])])
    swepamt.append([float(k[0]),float(k[2])])
    swepamd.append([float(k[0]),float(k[1])])
    swepamr.append([float(k[0]),float(k[3])])

plotswepamv=Data(swepamv)
plotswepamt=Data(swepamt)
plotswepamd=Data(swepamd)
plotswepamr=Data(swepamr)
plotswepamv.set_option_colonsep("title",  "'SWEPAM H1+'")
plotswepamt.set_option_colonsep("title",  "'SWEPAM H1+'")
plotswepamd.set_option_colonsep("title",  "'SWEPAM H1+'")
plotswepamr.set_option_colonsep("title",  "'SWEPAM He2+/H1+'")

pathl=open("pathlist2.in")
data=[]
print "readinding data"
for s in pathl:
    p=s.split()
    liste=open(p[0]+"list.in")
    s2=liste.readline()
    for s2 in liste:
        filen=s2.split()
        tmpdata=readres(p[0]+"res_"+filen[0])
        data.append(tmpdata)
示例#28
0
for ion in range(numberions):
    for step in range(dim):
        for val in range((diffrange[ion]*2)):
            if (fitval[ion][step]==hist[ion][val][0]):
                hist[ion][val][1]+=1
        for val in range((diffrangenorm[ion]*2)):
            if (normval[ion][step]==histnorm[ion][val][0]):
                histnorm[ion][val][1]+=1


        
gphist=[]
gphistnorm=[]
for ion in range(numberions):
    gphisttmp=Data(hist[ion])
    gphisttmp.set_option_colonsep("using", "1:2")
#    gphisttmp.set_option_colonsep("title",  "'fm0 %s rc:%f mw:%f sig:%f'" %(ion_names[ion],nomcounts[ion],mittelwert[ion],sigma[ion]))
    gphisttmp.set_option_colonsep("title",  "'%s (%i counts generated)'" %(ion_names[ion],nomcounts[ion]))
    gphisttmp.set_option_colonsep("with","boxes")
    gphist.append(gphisttmp)
for ion in range(numberions):
    gphisttmp=Data(histnorm[ion])
    gphisttmp.set_option_colonsep("using", "1:2")
#    gphisttmp.set_option_colonsep("title",  "'norm fm0 %s rc:%f mw:%f sig:%f'" %(ion_names[ion],nomcounts[ion],mwnorm[ion],signorm[ion]))
    gphisttmp.set_option_colonsep("title",  "'%s'" %(ion_names[ion]))
    gphisttmp.set_option_colonsep("with","boxes")
    gphistnorm.append(gphisttmp)

#load 2. erg-file

f=open("/home/ivar/berger/projects/ionpositions/test_analyse_data/erg_testdata30_1000_fm1.dat")
示例#29
0
        sumhist[i][3] = step / 2.

deg = pi / 180.

#corrarr=[1.,sin(.2*deg),sin(5.*deg),sin(90.*deg),0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.]
#for i in range(int(dim/step)):
#    sumhist[i][1]=sumhist[i][1]*corrarr[i]

# Plotobjekte werden erzeugt

fitspec = []
for val in epaspec[fi]:
    if (val[0] > fg):
        fitspec.append(val)
pfitspec = Data(fitspec)
pfitspec.set_option_colonsep("title", "'%s'" % (fedata[i].name))
pfitspec.set_option_colonsep("with", "xyerrorbars")
pfitspec.set_option_colonsep("using", "1:2:5:3")

i = 0
while (epaspec[fi][i][0] > fg):
    i += 1
i = i - 1
print "i = ", i
normval = []
xval = []
for j in range(i):
    if (epaspec[fi][i - j] != 0.):
        normval.append(epaspec[fi][i - j][1])
        xval.append(epaspec[fi][i - j][0])
astring = "("
示例#30
0
for i in range(len(dvzeros)):
    if sum(vivsvparr[i]) > 0.:
        dvzeros[i][1] /= (sum(vivsvparr[i]) + dvzeros[i][1])

xvals = []
yvals = []
for i in range(nrxbins):
    #xvals.append(float(i*vxbinwidth))
    xvals.append(10**(-3 + float(i * vxbinwidth)))
for i in range(nrybins):
    yvals.append(float(i * vybinwidth) + vyoffset)

pvivsvparr = GridData(vivsvparr, xvals, yvals, binary=0)
pdvzeros = Data(dvzeros)
pdvzeros.set_option_colonsep("with", "l lt -1")
xrange = [0., 3.]
#xrange=[300.,800.]
yrange = [0., 2.]
a = [[xrange[0], yrange[0], 1.], [xrange[1], yrange[1], 1.]]
pa = Data(a)
pa.set_option_colonsep("with", "l lt -1")
gp = Gnuplot()
gp("set pm3d at bs map explicit corners2color c1")
#gp("set pm3d map")
gp("set size square")
gp("set xrange[%f:%f]" % (xrange[0], xrange[1]))
gp("set yrange[%f:%f]" % (yrange[0], yrange[1]))
#gp("set logscale x")
gp("set palette model RGB functions gray<1.e-20 ? 1 : gray<0.5 ? gray*2 : 1 , gray<1.e-20 ? 1 : gray<0.5 ? gray*2 : 2-gray*2, gray <1.e-20 ? 1 : gray<0.5 ? 1-sqrt(gray*2) : 0"
   )