Exemplo n.º 1
0
    for _slat,_slon,_elat,_elon in zip(slat,slon,elat,elon):
        print "plotting profile %d"%cnt
        ndist, nd, values = plot_2d(field,_slat,_slon,_elat,_elon,pdepth,new=True)
        lbl1,lbl2 = anot[cnt-1]
        fstr = cStringIO.StringIO()
        for dist,depth,vs in zip(ndist,nd,values):
            fstr.write("%f %f %f\n"%(dist,depth,vs))
        sclx = 18.*ndist.max()/xscale
        scly = yscale
        scl = 'X%fc/%fc'%(sclx,scly)
        print scl
        rng = '%f/%f/%f/%f'%(ndist.min(),ndist.max(),nd.min(),nd.max())
        grdws = gmt.tempfilename('ws.grd')
        grdgd = gmt.tempfilename('grdgd.cpt')
        gmt.xyz2grd(G=grdws,R=rng,I='50./1.',out_discard=True,in_string=fstr.getvalue())
        gmt.grdgradient(grdws,G=grdgd,out_discard=True,A='180',N='e0.8')
        if cnt == 1:
            gmt.grdimage(grdws,I=grdgd,R=True,J=scl,C=cptws,
                         B='a500f100:Distance [km]:/a20f10:Depth [km]:WSne',X='1c',Y='3c')
        else:
            gmt.grdimage(grdws,I=grdgd,R=True,J=scl,C=cptws,
                         B='a500f100:Distance [km]:/a20f10:Depth [km]:WSne',Y='%fc'%(scly+2.5))
        txtstr1 = """%f %f 12 0 1 LB %s"""%(0.0,8.,lbl1)
        txtstr2 = """%f %f 12 0 1 RB %s"""%(ndist.max(),8.,lbl2)
        gmt.pstext(R=True,J=True,G='0/0/0',N=True,in_string=txtstr1)
        gmt.pstext(R=True,J=True,G='0/0/0',N=True,in_string=txtstr2)
        cnt += 1
    gmt.save(foutprofiles)

  
    #test(field)