Exemplo n.º 1
0
def bperp_btemp_master_slave(drsFiles=None):
    from dateutil import parser

    mresfiles = []
    sresfiles = []
    iresfiles = []
    for f in drsFiles:
        d = adore.drs2dict(f)
        mresfiles.append(d['general']['m_resfile'].strip())
        sresfiles.append(d['general']['s_resfile'].strip())
        iresfiles.append(d['general']['i_resfile'].strip())

    bperp = []
    btemp = []
    master = []
    slave = []
    for f in N.r_[0:len(mresfiles)]:
        mobj = adore.dict2obj(adore.res2dict(mresfiles[f]))
        sobj = adore.dict2obj(adore.res2dict(sresfiles[f]))
        ires = adore.res2dict(iresfiles[f])
        iobj = adore.dict2obj(ires)
        master.append(parser.parse(mobj.readfiles.First_pixel_azimuth_time))
        slave.append(parser.parse(sobj.readfiles.First_pixel_azimuth_time))
        bperp.append(iobj.coarse_orbits.Bperp)
        btemp.append(iobj.coarse_orbits.Btemp)
    return bperp, btemp, master, slave
Exemplo n.º 2
0
def bperp_btemp_master_slave(drsFiles=None):
    from dateutil import parser
    
    mresfiles=[]
    sresfiles=[]
    iresfiles=[]
    for f in drsFiles:
        d=adore.drs2dict(f);
        mresfiles.append(d['general']['m_resfile'].strip());
        sresfiles.append(d['general']['s_resfile'].strip());
        iresfiles.append(d['general']['i_resfile'].strip());
    
    bperp=[]
    btemp=[]
    master=[]
    slave=[]
    for f in N.r_[0:len(mresfiles)]:
        mobj=adore.dict2obj(adore.res2dict(mresfiles[f]))
        sobj=adore.dict2obj(adore.res2dict(sresfiles[f]))
        ires=adore.res2dict(iresfiles[f])
        iobj=adore.dict2obj(ires)
        master.append( parser.parse(mobj.readfiles.First_pixel_azimuth_time) )
        slave.append( parser.parse(sobj.readfiles.First_pixel_azimuth_time) )
        bperp.append( iobj.coarse_orbits.Bperp )
        btemp.append( iobj.coarse_orbits.Btemp )
    return bperp, btemp, master, slave        
Exemplo n.º 3
0
def main(argv=None):
    if argv is None:
        argv = sys.argv
    drsfile = argv[1]
    try:
        ct = float(argv[2])
    except:
        ct = 0.0
    if drsfile is not None:
        d = adore.drs2dict(drsfile)
        mresfile = d['general']['m_resfile'].strip()
        sresfile = d['general']['s_resfile'].strip()
        iresfile = d['general']['i_resfile'].strip()

    iobj = adore.dict2obj(adore.res2dict(iresfile))
    mobj = adore.dict2obj(adore.res2dict(mresfile))
    sobj = adore.dict2obj(adore.res2dict(sresfile))
    A = iobj.fine_coreg.results
    #ires['fine_coreg']['results'];
    A = A[A[:, 5] > ct, :]

    #figure
    pylab.figure()
    pylab.title('Range: Fine Correlation - Coregistration Polynomial')
    rg = adore.basic.rescale(
        A[:, 2], [-2, 2], arrlim=[mobj.crop.First_pixel, mobj.crop.Last_pixel])
    az = adore.basic.rescale(
        A[:, 1], [-2, 2], arrlim=[mobj.crop.First_line, mobj.crop.Last_line])
    pixelOffset = adore.polyval(rg, az,
                                iobj.comp_coregpm.Estimated_coefficientsP)
    lineOffset = adore.polyval(rg, az,
                               iobj.comp_coregpm.Estimated_coefficientsL)
    Q = pylab.quiver(A[:, 2], A[:, 1], A[:, 4] - pixelOffset,
                     A[:, 3] - lineOffset, A[:, 5])
    azStd = round(pylab.np.std(A[:, 3] - lineOffset))
    rgStd = round(pylab.np.std(A[:, 4] - pixelOffset))
    qk = pylab.quiverkey(Q,
                         0.33,
                         0.92,
                         azStd, ('%d [px az]' % (azStd)),
                         labelpos='W',
                         fontproperties={'weight': 'bold'})
    qk = pylab.quiverkey(Q,
                         0.66,
                         0.92,
                         rgStd, ('%d [px rg]' % (rgStd)),
                         labelpos='W',
                         fontproperties={'weight': 'bold'})
    pylab.colorbar()
    pylab.show()
Exemplo n.º 4
0
def main(argv=None):
    if argv is None:
        argv = sys.argv
    iresfile = argv[1]
    try:
        ct = float(argv[2])
    except:
        ct = 0.0
    ires = adore.res2dict(iresfile)
    A = ires['fine_coreg']['results']
    A = A[A[:, 5] > ct, :]
    az = int(ires['fine_coreg']['Initial offsets'].split(',')[0])
    rg = int(ires['fine_coreg']['Initial offsets'].split(',')[1])
    #figure1
    pylab.figure()
    pylab.title('Fine Correlation Results')
    pylab.quiver(A[:, 2], A[:, 1], A[:, 4], A[:, 3], A[:, 5])
    pylab.colorbar()
    #figure2

    pylab.figure()
    pylab.title('Fine Correlation Deviations')
    pylab.quiver(A[:, 2], A[:, 1], A[:, 4] - rg, A[:, 3] - az, A[:, 5])
    pylab.colorbar()
    pylab.show()
Exemplo n.º 5
0
def main(argv=None):
  if argv is None:
    argv=sys.argv
  iresfile=argv[1];
  try:
    ct=float(argv[2]);
  except:
    ct=0.0
  ires=adore.res2dict(iresfile);
  A=ires['fine_coreg']['results'];
  A=A[A[:,5]>ct,:]
  az=int(ires['fine_coreg']['Initial offsets'].split(',')[0]);
  rg=int(ires['fine_coreg']['Initial offsets'].split(',')[1]);
#figure1
  pylab.figure()
  pylab.title('Fine Correlation Results')
  pylab.quiver(A[:,2], A[:,1], A[:,4], A[:,3], A[:,5]);
  pylab.colorbar()
#figure2

  pylab.figure()
  pylab.title('Fine Correlation Deviations')
  pylab.quiver(A[:,2], A[:,1], A[:,4]-rg, A[:,3]-az, A[:,5]);
  pylab.colorbar()
  pylab.show()
Exemplo n.º 6
0
def main(argv=None):
    if argv is None:
        argv = sys.argv
    iresfile = argv[1]
    try:
        ct = float(argv[2])
    except:
        ct = 0.0
    ires = adore.res2dict(iresfile)
    A = ires['fine_coreg']['results']
    A = A[A[:, 5] > ct, :]
    az = int(ires['fine_coreg']['Initial offsets'].split(',')[0])
    rg = int(ires['fine_coreg']['Initial offsets'].split(',')[1])
    #figure1
    pylab.figure()
    pylab.title('Fine Correlation Results')
    Q = pylab.quiver(A[:, 2], A[:, 1], A[:, 4], A[:, 3], A[:, 5])
    azAvg = round(pylab.np.mean(A[:, 3]))
    rgAvg = round(pylab.np.mean(A[:, 4]))
    qk = pylab.quiverkey(Q,
                         0.33,
                         0.92,
                         azAvg, ('%d [px az]' % (azAvg)),
                         labelpos='W',
                         fontproperties={'weight': 'bold'})
    qk = pylab.quiverkey(Q,
                         0.66,
                         0.92,
                         rgAvg, ('%d [px rg]' % (rgAvg)),
                         labelpos='W',
                         fontproperties={'weight': 'bold'})
    pylab.colorbar()

    #figure2
    pylab.figure()
    pylab.title('Fine Correlation Deviations')
    pylab.quiver(A[:, 2], A[:, 1], A[:, 4] - rg, A[:, 3] - az, A[:, 5])
    Q = pylab.quiver(A[:, 2], A[:, 1], A[:, 4] - rg, A[:, 3] - az, A[:, 5])
    azStd = round(pylab.np.std(A[:, 3] - az))
    rgStd = round(pylab.np.std(A[:, 4] - rg))
    qk = pylab.quiverkey(Q,
                         0.33,
                         0.92,
                         azStd, ('%d [px az]' % (azStd)),
                         labelpos='W',
                         fontproperties={'weight': 'bold'})
    qk = pylab.quiverkey(Q,
                         0.66,
                         0.92,
                         rgStd, ('%d [px rg]' % (rgStd)),
                         labelpos='W',
                         fontproperties={'weight': 'bold'})
    pylab.colorbar()
    pylab.show()
Exemplo n.º 7
0
def bperp_btemp(drsFiles):
    from dateutil import parser

    mresfiles = []
    sresfiles = []
    iresfiles = []
    for f in drsFiles:
        d = adore.drs2dict(f)
        mresfiles.append(d['general']['m_resfile'].strip())
        sresfiles.append(d['general']['s_resfile'].strip())
        iresfiles.append(d['general']['i_resfile'].strip())

    bperp = []
    btemp = []
    for f in N.r_[0:len(mresfiles)]:
        mobj = adore.dict2obj(adore.res2dict(mresfiles[f]))
        sobj = adore.dict2obj(adore.res2dict(sresfiles[f]))
        ires = adore.res2dict(iresfiles[f])
        iobj = adore.dict2obj(ires)
        bperp.append(iobj.coarse_orbits.Bperp)
        btemp.append(iobj.coarse_orbits.Btemp)
    return bperp, btemp
Exemplo n.º 8
0
def bperp_btemp(drsFiles):
    from dateutil import parser
    
    mresfiles=[]
    sresfiles=[]
    iresfiles=[]
    for f in drsFiles:
        d=adore.drs2dict(f);
        mresfiles.append(d['general']['m_resfile'].strip());
        sresfiles.append(d['general']['s_resfile'].strip());
        iresfiles.append(d['general']['i_resfile'].strip());
    
    bperp=[]
    btemp=[]
    for f in N.r_[0:len(mresfiles)]:
        mobj=adore.dict2obj(adore.res2dict(mresfiles[f]))
        sobj=adore.dict2obj(adore.res2dict(sresfiles[f]))
        ires=adore.res2dict(iresfiles[f])
        iobj=adore.dict2obj(ires)
        bperp.append( iobj.coarse_orbits.Bperp )
        btemp.append( iobj.coarse_orbits.Btemp )
    return bperp, btemp        
Exemplo n.º 9
0
def main(argv=None):
    if argv is None:
        argv = sys.argv
    iresfile = argv[1]
    ires = adore.res2dict(iresfile)
    A = ires['coarse_correl']['results']
    az = ires['coarse_correl']['Coarse_correlation_translation_lines']
    rg = ires['coarse_correl']['Coarse_correlation_translation_pixels']
    #figure1
    pylab.figure()
    pylab.title('Coarse Correlation Results')
    Q = pylab.quiver(A[:, 2], A[:, 1], A[:, 5], A[:, 4], A[:, 3])
    azAvg = round(pylab.np.mean(A[:, 3]))
    rgAvg = round(pylab.np.mean(A[:, 4]))
    qk = pylab.quiverkey(Q,
                         0.33,
                         0.92,
                         azAvg, ('%d [px az]' % (azAvg)),
                         labelpos='W',
                         fontproperties={'weight': 'bold'})
    qk = pylab.quiverkey(Q,
                         0.66,
                         0.92,
                         rgAvg, ('%d [px rg]' % (rgAvg)),
                         labelpos='W',
                         fontproperties={'weight': 'bold'})
    pylab.colorbar()

    #figure2
    pylab.figure()
    pylab.title('Coarse Correlation Deviations')
    Q = pylab.quiver(A[:, 2], A[:, 1], A[:, 5] - rg, A[:, 4] - az, A[:, 3])
    azStd = round(pylab.np.std(A[:, 3] - az))
    rgStd = round(pylab.np.std(A[:, 4] - rg))
    qk = pylab.quiverkey(Q,
                         0.33,
                         0.92,
                         azStd, ('%d [px az]' % (azStd)),
                         labelpos='W',
                         fontproperties={'weight': 'bold'})
    qk = pylab.quiverkey(Q,
                         0.66,
                         0.92,
                         rgStd, ('%d [px rg]' % (rgStd)),
                         labelpos='W',
                         fontproperties={'weight': 'bold'})

    pylab.colorbar()
    pylab.show()
Exemplo n.º 10
0
def average_coherence_adore(iresfiles=None, drsFiles=None):
    """ avg_coherence=average_coherence_adore(iresfiles=None, drsFiles=None):
    """
    from dateutil import parser

    if drsFiles is not None:
        iresfiles = []
        for f in drsFiles:
            d = adore.drs2dict(f)
            iresfiles.append(d['general']['i_resfile'].strip())

    coh = []
    for f in N.r_[0:len(iresfiles)]:
        ires = adore.res2dict(iresfiles[f])
        iobj = adore.dict2obj(ires)
        coh.append(adore.getProduct(ires, 'coherence'))
    coh = N.rollaxis(N.dstack(coh), 2, 0)
    return coh.mean(0)
Exemplo n.º 11
0
def average_coherence_adore(iresfiles=None, drsFiles=None):
    """ avg_coherence=average_coherence_adore(iresfiles=None, drsFiles=None):
    """
    from dateutil import parser
    
    if drsFiles is not None:
        iresfiles=[]
        for f in drsFiles:
            d=adore.drs2dict(f);
            iresfiles.append(d['general']['i_resfile'].strip());
    
    coh=[]
    for f in N.r_[0:len(iresfiles)]:
        ires=adore.res2dict(iresfiles[f])
        iobj=adore.dict2obj(ires)
        coh.append(  adore.getProduct(ires,'coherence') );
    coh=N.rollaxis(N.dstack(coh),2,0)
    return coh.mean(0);
Exemplo n.º 12
0
def main(argv=None):
    if argv is None:
        argv = sys.argv
    iresfile = argv[1]
    ires = adore.res2dict(iresfile)
    A = ires['coarse_correl']['results']
    az = ires['coarse_correl']['Coarse_correlation_translation_lines']
    rg = ires['coarse_correl']['Coarse_correlation_translation_pixels']
    #figure1
    pylab.figure()
    pylab.title('Coarse Correlation Results')
    pylab.quiver(A[:, 2], A[:, 1], A[:, 5], A[:, 4], A[:, 3])
    pylab.colorbar()
    #figure2

    pylab.figure()
    pylab.title('Coarse Correlation Deviations')
    pylab.quiver(A[:, 2], A[:, 1], A[:, 5] - rg, A[:, 4] - az, A[:, 3])
    pylab.colorbar()
    pylab.show()
Exemplo n.º 13
0
def main(argv=None):
  if argv is None:
    argv=sys.argv
  iresfile=argv[1];
  ires=adore.res2dict(iresfile);
  A=ires['coarse_correl']['results'];
  az=ires['coarse_correl']['Coarse_correlation_translation_lines'];
  rg=ires['coarse_correl']['Coarse_correlation_translation_pixels'];
#figure1
  pylab.figure()
  pylab.title('Coarse Correlation Results')
  pylab.quiver(A[:,2], A[:,1], A[:,5], A[:,4], A[:,3]);
  pylab.colorbar()
#figure2

  pylab.figure()
  pylab.title('Coarse Correlation Deviations')
  pylab.quiver(A[:,2], A[:,1], A[:,5]-rg, A[:,4]-az, A[:,3]);
  pylab.colorbar()
  pylab.show()
Exemplo n.º 14
0
def estimate_overlap(baselinesFolder, buffers=[200, 200], masterRes=None):
    """estimate_overlap(baselinesFolder, buffers[az_buf, rg_buf])
       az_buf=200
       rg_buf=200
       ex:
       baselinesFolder=setobj.adore.baselinesfolder.strip('"')
       estimate_overlap(baselinesFolder, [400,400])
    """
    import glob
    if masterRes is not None:
        mobj = adore.dict2obj(adore.res2dict(masterRes))

    ifiles = glob.glob(baselinesFolder + '/*_*.res')
    i12s = []  #interferogram objects list
    master = []  #master names list
    slave = []  #slave names list
    lines = []  #list of translation lines (az)
    pixels = []  #list of translation pixels (rg)
    for f in ifiles:
        d = adore.res2dict(f)  #dictionary
        #i12s.append(adore.dict2obj(d))
        iobj = adore.dict2obj(d)
        master.append(os.path.splitext(os.path.basename(f))[0].split('_')[0])
        slave.append(os.path.splitext(os.path.basename(f))[0].split('_')[1])
        lines.append(iobj.coarse_orbits.Coarse_orbits_translation_lines)
        pixels.append(iobj.coarse_orbits.Coarse_orbits_translation_pixels)

    K = len(ifiles)  #number of interferograms
    allDates = master + slave  #merge master and slave lists
    allDates = N.sort(list(set(allDates)))
    I = len(allDates)
    #Number of images (dates)
    A = N.zeros([K + 1, I])

    if masterRes is None:
        masterScene = 0
    else:
        masterScene = os.path.splitext(os.path.basename(masterRes))[0]
        masterScene = (allDates == masterScene)

    for k in xrange(K):
        A[k, :] = (allDates == master[k]) * -1 + (allDates == slave[k]) * 1
    A[-1, masterScene] = 1
    l = N.dot(N.linalg.pinv(A), lines + [0])  #merge zero to the end of list
    p = N.dot(N.linalg.pinv(A), pixels + [0])  #merge zero to the end of list

    neg_line_off = min(l[l < 0])  #negative line offset
    pos_line_off = max(l[l > 0])  #positive line offset
    neg_pix_off = min(p[p < 0])  #negative px offset
    pos_pix_off = max(p[p > 0])  #positive px offset

    if masterRes is not None:
        return -1
#        if lo > 0:
#            lmin=0
#            if mobj.process_control.oversample == 1:
#                lmax=mobj.oversample.Last_line-lo/mobj.oversample.Multilookfactor_azimuth_direction
#            else:
#                lmax=mobj.crop.Last_line-lo
#        else:
#            if mobj.process_control.oversample == 1:
#                lmin=mobj.oversample.First_line-l0/mobj.oversample.Multilookfactor_azimuth_direction
#                lmax=mobj.oversample.Last_line
#            else:
#                lmin=mobj.crop.First_line-l0
#                lmax=mobj.crop.Last_line
#        if po > 0:
#            pmin=0
#            if mobj.process_control.oversample == 1:
#                pmax=mobj.oversample.Last_pixel-po/mobj.oversample.Multilookfactor_range_direction
#            else:
#                pmax=mobj.crop.Last_line-po
#        else:
#            if mobj.process_control.oversample == 1:
#                pmin=mobj.oversample.First_pixel-p0/mobj.oversample.Multilookfactor_range_direction
#                pmax=mobj.oversample.Last_pixel
#            else:
#                lmin=mobj.crop.First_pixel-p0
#                lmax=mobj.crop.Last_pixel
#        return [mobj.crop.First_line+lo, po]
    else:
        return [neg_line_off, pos_line_off, neg_pix_off, pos_pix_off]
Exemplo n.º 15
0
def estimate_overlap(baselinesFolder,buffers=[200,200], masterRes=None):
    """estimate_overlap(baselinesFolder, buffers[az_buf, rg_buf])
       az_buf=200
       rg_buf=200
       ex:
       baselinesFolder=setobj.adore.baselinesfolder.strip('"')
       estimate_overlap(baselinesFolder, [400,400])
    """
    import glob
    if masterRes is not None:
        mobj=adore.dict2obj(adore.res2dict( masterRes ))
    
    ifiles=glob.glob(baselinesFolder+'/*_*.res')
    i12s=[]    #interferogram objects list
    master=[]  #master names list
    slave=[]   #slave names list
    lines=[]   #list of translation lines (az)
    pixels=[]  #list of translation pixels (rg)
    for f in ifiles:
        d=adore.res2dict(f) #dictionary
        #i12s.append(adore.dict2obj(d))
        iobj=adore.dict2obj(d)
        master.append(os.path.splitext(os.path.basename(f))[0].split('_')[0])
        slave.append(os.path.splitext(os.path.basename(f))[0].split('_')[1])
        lines.append(iobj.coarse_orbits.Coarse_orbits_translation_lines)
        pixels.append(iobj.coarse_orbits.Coarse_orbits_translation_pixels)
        
    K=len(ifiles)            #number of interferograms
    allDates=master + slave  #merge master and slave lists
    allDates=N.sort(list(set(allDates)));
    I=len(allDates); #Number of images (dates)
    A=N.zeros([K+1,I]);
    
    if masterRes is None:
        masterScene=0
    else:
        masterScene=os.path.splitext(os.path.basename(masterRes))[0]
        masterScene=(allDates==masterScene)    

    for k in xrange(K):
        A[k,:]=(allDates==master[k])*-1+(allDates==slave[k])*1; 
    A[-1,masterScene]=1
    l=N.dot(N.linalg.pinv(A),lines+[0]) #merge zero to the end of list
    p=N.dot(N.linalg.pinv(A),pixels+[0]) #merge zero to the end of list

    neg_line_off=min(l[l<0])             #negative line offset
    pos_line_off=max(l[l>0])             #positive line offset
    neg_pix_off=min(p[p<0])             #negative px offset
    pos_pix_off=max(p[p>0])             #positive px offset

    if masterRes is not None:
        return -1
#        if lo > 0:
#            lmin=0
#            if mobj.process_control.oversample == 1:
#                lmax=mobj.oversample.Last_line-lo/mobj.oversample.Multilookfactor_azimuth_direction            
#            else:
#                lmax=mobj.crop.Last_line-lo                        
#        else:
#            if mobj.process_control.oversample == 1:
#                lmin=mobj.oversample.First_line-l0/mobj.oversample.Multilookfactor_azimuth_direction
#                lmax=mobj.oversample.Last_line
#            else:
#                lmin=mobj.crop.First_line-l0
#                lmax=mobj.crop.Last_line
#        if po > 0:
#            pmin=0
#            if mobj.process_control.oversample == 1:
#                pmax=mobj.oversample.Last_pixel-po/mobj.oversample.Multilookfactor_range_direction            
#            else:
#                pmax=mobj.crop.Last_line-po                        
#        else:
#            if mobj.process_control.oversample == 1:
#                pmin=mobj.oversample.First_pixel-p0/mobj.oversample.Multilookfactor_range_direction
#                pmax=mobj.oversample.Last_pixel
#            else:
#                lmin=mobj.crop.First_pixel-p0
#                lmax=mobj.crop.Last_pixel
#        return [mobj.crop.First_line+lo, po]              
    else:
        return [neg_line_off, pos_line_off, neg_pix_off, pos_pix_off]    
def main(argv=None):
    A = adore.Object()
    if argv is None:
        argv = sys.argv
    iresfile = argv[1]
    try:
        mode = argv[2]
        product = argv[3]
    except:
        product = 'geocoding'
        mode = 'p'
    ires = adore.res2dict(iresfile)
    iobj = adore.dict2obj(ires)
    lat = adore.getProduct(iobj.geocoding,
                           filename=iobj.geocoding.Data_output_file_lamda)
    lon = adore.getProduct(iobj.geocoding,
                           filename=iobj.geocoding.Data_output_file_phi)
    if product == 'geocoding':
        hei = adore.getProduct(iobj.geocoding,
                               filename=iobj.geocoding.Data_output_file_hei)
    else:
        #check if includes colon:
        if ":" in product:
            filename = product.split(':')[1]
            product = product.split(':')[0]
        else:
            filename = None
        #hei is actually any data at this point...
        hei = adore.getProduct(ires, product, filename=filename)

    #d0 is longitude, d1 is latitude
    d0, d1 = numpy.meshgrid(numpy.linspace(lat.min(), lat.max(), lon.shape[1]),
                            numpy.linspace(lon.min(), lon.max(), lon.shape[0]))
    if lat[0, 0] > 0:  #northern hemisphere
        if d1[0, 0] < d1[-1, 0]:
            d1 = numpy.flipud(d1)

    hei_gridded = interpolate.griddata((lon.ravel(), lat.ravel()),
                                       hei.ravel(), (d1, d0),
                                       method='linear')

    #set-up basemap
    print('Please wait... Generating map\n')
    m = Basemap(llcrnrlon=d0.min(),
                llcrnrlat=d1.min(),
                urcrnrlon=d0.max(),
                urcrnrlat=d1.max(),
                resolution='f',
                area_thresh=1.,
                projection='cyl')
    if 'complex' in ires[product][
            'Data_output_format']:  #any(numpy.iscomplex(hei_gridded)):
        if mode == 'p':
            m.imshow(numpy.angle(hei_gridded),
                     interpolation='nearest',
                     origin='upper')
        else:
            m.imshow(10 * numpy.log10(abs(hei_gridded)),
                     interpolation='nearest',
                     origin='upper')
            pl.gray()
    else:
        m.imshow(hei_gridded, interpolation='nearest', origin='upper')
    m.drawcoastlines(color='w', linewidth=0.8)
    m.drawmapboundary()  # draw a line around the map region
    m.drawrivers()
    m.drawparallels(numpy.arange(int(d1.min()), int(d1.max()), 1),
                    linewidth=0.2,
                    labels=[1, 0, 0, 0])
    m.drawmeridians(numpy.arange(int(d0.min()), int(d0.max()), 1),
                    linewidth=0.2,
                    labels=[0, 0, 0, 1])

    #MAYAVI TAKES TOO LONG
    #  #visualize points
    #  pts =mlab.points3d(lon.ravel(), lat.ravel(), hei.ravel(), hei.ravel(), scale_mode='none', scale_factor=0.2)
    #  #create the mesh
    #  mesh=mlab.pipeline.delaunay2d(pts)
    #  #visualize the mesh
    #  surf=mlab.pipeline.surf(mesh)
    #
    #  mlab.show()

    #do not quit the program until enter
    print "Press ENTER to quit."
    pl.ginput(n=10000, timeout=0, mouse_add=3, mouse_pop=1)
Exemplo n.º 17
0
def main(argv=None):
  A=adore.Object()
  if argv is None:
    argv=sys.argv
  iresfile=argv[1];
  try:
    mode=argv[2];
    product=argv[3];
  except:
    product='geocoding'
    mode='p';
  ires=adore.res2dict(iresfile);
  iobj=adore.dict2obj(ires);  
  lat=adore.getProduct(iobj.geocoding, filename=iobj.geocoding.Data_output_file_lamda)
  lon=adore.getProduct(iobj.geocoding, filename=iobj.geocoding.Data_output_file_phi)
  if product=='geocoding':
    hei=adore.getProduct(iobj.geocoding, filename=iobj.geocoding.Data_output_file_hei)
  else:
    #check if includes colon:
    if ":" in product:
      filename=product.split(':')[1]
      product=product.split(':')[0]  
    else:
      filename=None  
    #hei is actually any data at this point...   
    hei=adore.getProduct(ires, product, filename=filename)

  #d0 is longitude, d1 is latitude
  d0,d1=numpy.meshgrid(numpy.linspace(lat.min(),lat.max(), lon.shape[1]), 
    numpy.linspace(lon.min(), lon.max(), lon.shape[0]))  
  if lat[0,0] > 0: #northern hemisphere
    if d1[0,0]<d1[-1,0]:
      d1=numpy.flipud(d1)
  
  hei_gridded = interpolate.griddata((lon.ravel(),lat.ravel()), hei.ravel(), (d1, d0), method='linear')
  
  #set-up basemap
  print ('Please wait... Generating map\n')
  m = Basemap(llcrnrlon=d0.min(), llcrnrlat=d1.min(), urcrnrlon=d0.max(), urcrnrlat=d1.max(), 
    resolution='f', area_thresh=1., projection='cyl')
  if 'complex' in ires[product]['Data_output_format']:#any(numpy.iscomplex(hei_gridded)):
    if mode=='p':
      m.imshow(numpy.angle(hei_gridded), interpolation='nearest', origin='upper')
    else:
      m.imshow(10*numpy.log10(abs(hei_gridded)), interpolation='nearest', origin='upper')
      pl.gray();
  else:
    m.imshow(hei_gridded, interpolation='nearest', origin='upper')
  m.drawcoastlines(color='w',linewidth=0.8)
  m.drawmapboundary() # draw a line around the map region
  m.drawrivers() 
  m.drawparallels(numpy.arange(int(d1.min()), int(d1.max()), 1),linewidth=0.2,labels=[1,0,0,0])  
  m.drawmeridians(numpy.arange(int(d0.min()), int(d0.max()), 1),linewidth=0.2,labels=[0,0,0,1])  
  
#MAYAVI TAKES TOO LONG  
#  #visualize points
#  pts =mlab.points3d(lon.ravel(), lat.ravel(), hei.ravel(), hei.ravel(), scale_mode='none', scale_factor=0.2)
#  #create the mesh
#  mesh=mlab.pipeline.delaunay2d(pts)
#  #visualize the mesh
#  surf=mlab.pipeline.surf(mesh)
#  
#  mlab.show()

  #do not quit the program until enter
  print "Press ENTER to quit."
  pl.ginput(n=10000, timeout=0, mouse_add=3, mouse_pop=1)