Esempio n. 1
0
def main(iargs=None):
    inps = cmd_line_parse(iargs)

    print('single track!')
    inps.startDate, inps.endDate = multitrack_utilities.find_start_end_date(
        os.getcwd(), inps)

    # set output dir
    inps.outdir = multitrack_utilities.set_outdir(inps, 'geodmod')
    print(inps)

    if str.find(inps.file, 'ifgramStack') != -1:
        process_ifgramStack(inps)
    elif str.find(inps.file, 'velocity') != -1:
        process_geocode(inps)
        process_velocity(inps)
    elif str.find(inps.file, 'timeseries') != -1:
        process_geocode(inps)
        process_timeseries(inps)
    else:
        process_HDFEOS(inps)
    # rename *.rsc1 to *.rsc
    outfile = multitrack_utilities.seperate_str_byspace(['srtm.dem' + '.rsc'])
    write_rsc_file(
        inps, outfile,
        multitrack_utilities.seperate_str_byspace(['srtm.dem' + '.rsc1']))
    os.remove(outfile)
    print('rename *.rsc1 to *.rsc')
    os.rename(
        multitrack_utilities.seperate_str_byspace(['srtm.dem' + '.rsc1']),
        outfile)
    # generate dem.jpeg
    dem_jpeg('srtm.dem')
Esempio n. 2
0
def process_ifgramStack(inps):
    """process ifgramStack.h5 file"""
    if os.path.exists("".join(inps.outdir)) == False:
        os.makedirs("".join(inps.outdir))

    #ifgramStack file
    atr_asc = ['./inputs/' + inps.file]
    cmd_args = [
        atr_asc, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep,
        '--outdir', "".join(inps.outdir)
    ]
    print("geocode.py", cmd_args)
    args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    mintpy.geocode.main(args_str.split())

    #save dataset of unw
    os.chdir("".join(inps.outdir))
    filename, extension = multitrack_utilities.seprate_filename_extension(
        "".join(atr_asc))[1:3]

    cmd_args = [
        'geo_' + filename + extension,
        "".join(['unwrapPhase-', inps.startDate, '_', inps.endDate])
    ]
    print("save_roipac.py", cmd_args)
    asct_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    os.system(
        multitrack_utilities.seperate_str_byspace(
            ['save_roipac.py', asct_str.split()]))
Esempio n. 3
0
def process_geocode(inps):
    """process temporalCoherence.h5 and geometryRadar.h5 file"""
    # process cor and dem dataset
    if os.path.exists("".join(inps.outdir)) == False:
        os.makedirs("".join(inps.outdir))

    demname = 'geometryRadar.h5'
    if not os.path.isfile(demname):
        demname_f = './inputs/geometryRadar.h5'
    else:
        demname_f = 'geometryRadar.h5'
    cmd_args = [
        demname_f, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep,
        '--outdir', "".join(inps.outdir)
    ]
    print("geocode.py", cmd_args)
    args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    mintpy.geocode.main(args_str.split())

    if inps.mask_file:
        cmd_args = [
            inps.mask_file, '-b', inps.SNWE, '-y', inps.latStep, '-x',
            inps.lonStep, '--outdir', "".join(inps.outdir)
        ]
        print("geocode.py", cmd_args)
        args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
        mintpy.geocode.main(args_str.split())
Esempio n. 4
0
def process_timeseries(inps):
    """geocode timeseries**.h5 file and get the deformation field of two time periods"""
    atr_asc = inps.file

    #unw file
    cmd_args = [
        atr_asc, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep,
        '--outdir', "".join(inps.outdir)
    ]
    print("geocode.py", cmd_args)
    args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    mintpy.geocode.main(args_str.split())

    #save dataset of unw
    os.chdir("".join(inps.outdir))
    filename, extension = multitrack_utilities.seprate_filename_extension(
        "".join(atr_asc))[1:3]

    cmd_args = [
        'geo_' + filename + extension,
        "".join([inps.startDate, '_', inps.endDate])
    ]
    print("save_roipac.py", cmd_args)
    asct_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    os.system(
        multitrack_utilities.seperate_str_byspace(
            ['save_roipac.py', asct_str.split()]))
Esempio n. 5
0
def calculate_horzvert_displacement(inps, outdir):
    """generate horizontal and vertical displacment data"""
    os.chdir(outdir)

    datafiles = []
    key1 = 'geo_'
    for file in os.listdir(outdir):
        if os.path.splitext(file)[1] == '.unw':
            if str.find(file, key1) != -1:
                datafiles.append(file)
    if inps.azimuth != 'None':
        if inps.outname[0] != 'None':
            cmd_args = [
                datafiles[0], datafiles[1], '--az', inps.azimuth, '-o',
                inps.outname
            ]
        else:
            cmd_args = [datafiles[0], datafiles[1], '--az', inps.azimuth]
    else:
        if inps.outname[0] != 'None':
            cmd_args = [datafiles[0], datafiles[1], '-o', inps.outname]
        else:
            cmd_args = [datafiles[0], datafiles[1]]
    print("asc_desc2horz_vert.py", cmd_args)
    args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    os.system(
        multitrack_utilities.seperate_str_byspace(
            ['asc_desc2horz_vert.py',
             args_str.split()]))
    return
Esempio n. 6
0
def process_HDFEOS(inps):
    """process S1*.h5 file"""

    atr_asc = inps.file

    #save dataset of unw and geometry
    filename, extension = multitrack_utilities.seprate_filename_extension(
        "".join(atr_asc))[1:3]
    cmd_args = [
        filename + extension,
        "".join(['displacement-', inps.startDate, '_', inps.endDate]), '-o',
        "".join(['geo_', inps.startDate, '_', inps.endDate, '.unw'])
    ]
    print("save_roipac.py", cmd_args)
    asct_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    os.system(
        multitrack_utilities.seperate_str_byspace(
            ['save_roipac.py', asct_str.split()]))

    #mv
    if os.path.exists(inps.outdir) == False:
        os.makedirs(inps.outdir)
    else:
        shutil.rmtree(inps.outdir)
        os.makedirs(inps.outdir)
    key1 = 'geo_'
    for file in os.listdir(os.getcwd()):
        if str.find(file, key1) != -1:
            shutil.move(file, inps.outdir)
Esempio n. 7
0
def calculate_hozrvert_velocity(atr_asc, outdir, inps):
    """generate horizontal and vertical velocity data"""
    os.chdir("".join(outdir))

    folders = multitrack_utilities.find_folder_horzvert('Sen', outdir)
    print(folders)
    file1 = outdir + folders[0] + '/' + atr_asc
    print(file1)
    file2 = outdir + folders[1] + '/' + atr_asc
    print(file2)

    outname = ['vel_horizontal.h5', 'vel_vertical.h5']
    if inps.azimuth != 'None':
        cmd_args = [file1, file2, '--az', inps.azimuth, '-o', outname]
    else:
        cmd_args = [file1, file2, '-o', outname]
    print("asc_desc2horz_vert.py", cmd_args)
    args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    os.system(
        multitrack_utilities.seperate_str_byspace(
            ['asc_desc2horz_vert.py',
             args_str.split()]))

    for folder in folders:
        delete_dir = outdir + folder + '/'
        shutil.rmtree(delete_dir)
Esempio n. 8
0
def process_velocity(inps, track, startDate, endDate, outdir, tmpdir):
    """process velocity.h5 file"""
    if os.path.exists("".join(tmpdir)) == False:
        os.makedirs("".join(tmpdir))

    atr_asc = "".join([str(inps.DataType) + '.h5'])

    # mask
    if inps.maskfile and inps.maskfile != 'None':
        cmd_args = [atr_asc, '-m', inps.maskfile]
        print('mask.py', cmd_args)
        args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
        os.system(
            multitrack_utilities.seperate_str_byspace(
                ['mask.py', args_str.split()]))
        atr_asc = multitrack_utilities.seprate_filename_extension(
            atr_asc)[1] + '_msk.h5'
        print(atr_asc)
    #geocode velocity file
    cmd_args = [
        atr_asc, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep,
        '--outdir', "".join(tmpdir)
    ]
    print("geocode.py", cmd_args)
    args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    mintpy.geocode.main(args_str.split())

    # save dataset of unw
    os.chdir("".join(tmpdir))
    print('save unw file')
    atr_asc = 'geo_' + atr_asc
    velocity_displacement(atr_asc, startDate, endDate)

    copy_file('geo', 'unw', outdir)
    return atr_asc
Esempio n. 9
0
def process_HDFEOS(inps, track, startDate, endDate, outdir, tmpdir):
    """process S1*.h5 file"""

    atr_asc = multitrack_utilities.find_HDFEOS_fullname("".join(
        [os.getenv('SCRATCHDIR') + '/' + track + '/mintpy/']))

    #save dataset of unw
    filename, extension = multitrack_utilities.seprate_filename_extension(
        "".join(atr_asc))[1:3]
    cmd_args = [
        filename + extension,
        "".join(['displacement-', startDate, '_', endDate]), '-o',
        "".join(['geo_', startDate, '_', endDate, '.unw'])
    ]
    print("save_roipac.py", cmd_args)
    args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    os.system(
        multitrack_utilities.seperate_str_byspace(
            ['save_roipac.py', args_str.split()]))

    # mv
    if os.path.exists(tmpdir) == False:
        os.makedirs(tmpdir)
    else:
        shutil.rmtree(tmpdir)
        os.makedirs(tmpdir)
    key1 = 'geo_'
    for file in os.listdir(os.getcwd()):
        if str.find(file, key1) != -1:
            shutil.move(file, tmpdir)

    copy_file('geo', 'unw', outdir)
    shutil.rmtree(tmpdir)
Esempio n. 10
0
def process_ifgramStack(inps, track, startDate, endDate, outdir, tmpdir):
    """process ifgramStack.h5 file"""
    if os.path.exists("".join(tmpdir)) == False:
        os.makedirs("".join(tmpdir))

    atr_asc = ['./inputs/' + str(inps.DataType) + '.h5']
    # mask
    if inps.maskfile and inps.maskfile != 'None':
        date_msk1 = re.split(r'[_.]', str(inps.maskfile))[0]
        date_msk1f = multitrack_utilities.find_nearest_date(
            os.getcwd(), str(date_msk1))
        date_msk2 = re.split(r'[_.]', str(inps.maskfile))[1]
        date_msk2f = multitrack_utilities.find_nearest_date(
            os.getcwd(), str(date_msk2))
        maskfile = date_msk1f + '_' + date_msk2f + '.cor'
        cmd_args = [atr_asc, '-m', maskfile]
        print('mask.py', cmd_args)
        args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
        os.system(
            multitrack_utilities.seperate_str_byspace(
                ['mask.py', args_str.split()]))
        atr_asc = './inputs/' + multitrack_utilities.seprate_filename_extension(
            "".join(atr_asc))[1] + '_msk.h5'

    #geocode ifgramStack file

    cmd_args = [
        atr_asc, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep,
        '--outdir', "".join(tmpdir)
    ]
    print("geocode.py", cmd_args)
    args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    mintpy.geocode.main(args_str.split())

    #save dataset of unw
    os.chdir("".join(tmpdir))
    filename, extension = multitrack_utilities.seprate_filename_extension(
        "".join(atr_asc))[1:3]
    cmd_args = [
        'geo_' + filename + extension,
        "".join(['unwrapPhase-', startDate, '_', endDate])
    ]
    print("save_roipac.py", cmd_args)
    args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    os.system(
        multitrack_utilities.seperate_str_byspace(
            ['save_roipac.py', args_str.split()]))

    copy_file('geo', 'unw', outdir)
    shutil.rmtree(tmpdir)
Esempio n. 11
0
def geodmod(inpsdict):
    """prepare data for geodmod software"""
    if inpsdict['mimtpy.geodmod'] == 'yes':
        Dataset = inpsdict['mimtpy.geodmod.DataSet']
        Dataset = list(tuple([i for i in Dataset.split(',')]))
        for dataset in Dataset:
            print(
                '\n***********************Start processing {} dataset***********************'
                .format(dataset))
            # go to dataset_dir
            dataset_dir = os.path.abspath(
                os.path.join(os.getenv('SCRATCHDIR'), dataset, 'mintpy'))
            if not os.path.isdir(dataset_dir):
                raise Exception('Error! No such dir : {}'.format(dataset_dir))
            print('\nGo to project dir:', dataset_dir)
            os.chdir(dataset_dir)

            # create geodmod dir
            software = 'geodmod'
            outdir = os.path.abspath(os.path.join(dataset_dir, software))
            if not os.path.isdir(outdir):
                os.makedirs(outdir)

            # find the HDFEOS file name
            HDFEOS_file = mu.find_HDFEOS_fullname(dataset_dir)
            print('\nThe HDFEOS file is {}'.format(HDFEOS_file))
            atr = readfile.read_attribute(HDFEOS_file)

            # get the startdate and enddate
            startDate, endDate = mu.find_start_end_date(
                dataset_dir, inpsdict['mimtpy.geodmod.startDate'],
                inpsdict['mimtpy.geodmod.endDate'])
            if startDate == 'None':
                startDate = atr['START_DATE']
            if endDate == 'None':
                endDate = atr['END_DATE']

            # go to geodmod dir
            print('\nGo to geodmod dir:', outdir)
            os.chdir(outdir)

            # generate parameter list for HDFEOS_to_geotiff.py
            if inpsdict['mimtpy.geodmod.SNWE'] == 'None':
                scp_args = [
                    '../' + HDFEOS_file, '-s', startDate, '-e', endDate
                ]
            else:
                SNWE = inpsdict['mimtpy.geodmod.SNWE']
                SNWE = list(tuple([float(i) for i in SNWE.split(',')]))
                scp_args = [
                    '../' + HDFEOS_file, '-s', startDate, '-e', endDate,
                    '--bbox', SNWE
                ]

            scp_args = mu.seperate_str_byspace(scp_args)
            # run save_geodmod.py
            print('save_geodmod.py', scp_args)
            mimtpy.save_geodmod.main(scp_args.split())
    else:
        print('\nSkip geodmod step')
Esempio n. 12
0
def main(iargs=None):
    inps = cmd_line_parse(iargs)

    print('--------------------------------------------------\n')

    if inps.e_ramp:
        print('subtract forward model data from observed data')
        ramp_file, ramp_noise_file = calculate_ramp_noise(inps)

        print('--------------------------------------------------\n')
        print('calculate residual data with estimating ramps')
        calculate_residual(inps, ramp_noise_file, ramp_file)

    else:
        print('calculate residual data without estimating ramp')
        observed_file = inps.Obs_file[0]
        mask_file = inps.mask[0]
        residual_file = inps.Model_file[0][:-3] + '_residual_noramp.h5'
        model_file = inps.Model_file[0]
        scp_args = [
            observed_file, model_file, '-o', residual_file, '--outdir',
            inps.outdir[0]
        ]
        scp_args = mu.seperate_str_byspace(scp_args)

        print('subtract_h5.py', scp_args)
        mimtpy.subtract_h5.main(scp_args.split())

    print('finish!')
Esempio n. 13
0
def main(iargs=None):
    inps = cmd_line_parse(iargs)
    print(inps)
    # process HDFEOS data
    process_HDFEOS(inps)

    # rename *.rsc1 to *.rsc
    outfile = mu.seperate_str_byspace(['srtm.dem' + '.rsc'])
    write_rsc_file(inps, outfile,
                   mu.seperate_str_byspace(['srtm.dem' + '.rsc1']))
    os.remove(outfile)
    print('rename *.rsc1 to *.rsc')
    os.rename(mu.seperate_str_byspace(['srtm.dem' + '.rsc1']), outfile)

    # generate dem.jpeg
    dem_jpeg('srtm.dem')
Esempio n. 14
0
def process_saveroi(inps):
    #save_roipac
    cmd_args = [
        'geo_temporalCoherence.h5', '-o',
        "".join(['geo_', inps.startDate, '_', inps.endDate, '.cor'])
    ]
    print("save_roipac.py", cmd_args)
    asct_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    os.system(
        multitrack_utilities.seperate_str_byspace(
            ['save_roipac.py', asct_str.split()]))

    cmd_args = ['geo_geometryRadar.h5', 'height', '-o', 'srtm.dem']
    print("save_roipac.py", cmd_args)
    asct_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    os.system(
        multitrack_utilities.seperate_str_byspace(
            ['save_roipac.py', asct_str.split()]))
Esempio n. 15
0
def process_timeseries(inps, track, startDate, endDate, outdir, tmpdir):
    """geocode timeseries**.h5 file and get the deformation field of two time periods"""
    if os.path.exists("".join(tmpdir)) == False:
        os.makedirs("".join(tmpdir))

    atr_asc = multitrack_utilities.find_timeseries_horzvert("".join(
        [os.getenv('SCRATCHDIR') + '/' + track + '/mintpy/']))

    # mask
    if inps.maskfile and inps.maskfile != 'None':
        cmd_args = [atr_asc, '-m', inps.maskfile]
        print('mask.py', cmd_args)
        args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
        os.system(
            multitrack_utilities.seperate_str_byspace(
                ['mask.py', args_str.split()]))
        atr_asc = multitrack_utilities.seprate_filename_extension(
            atr_asc)[1] + '_msk.h5'

    #geocode timeseries file
    cmd_args = [
        atr_asc, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep,
        '--outdir', tmpdir
    ]
    print("geocode.py", cmd_args)
    args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    mintpy.geocode.main(args_str.split())

    #save dataset of unw
    os.chdir("".join(tmpdir))
    filename, extension = multitrack_utilities.seprate_filename_extension(
        "".join(atr_asc))[1:3]
    cmd_args = [
        'geo_' + filename + extension, "".join([startDate, '_', endDate])
    ]
    print("save_roipac.py", cmd_args)
    args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    os.system(
        multitrack_utilities.seperate_str_byspace(
            ['save_roipac.py', args_str.split()]))

    copy_file('geo', 'unw', outdir)
    shutil.rmtree(tmpdir)
Esempio n. 16
0
def process_velocity(inps):
    """process velocity.h5 file"""
    atr_asc = inps.file
   
    #velocity file
    cmd_args = [atr_asc, '-b',inps.SNWE, '-y',inps.latStep, '-x',inps.lonStep, '--outdir',"".join(inps.outdir)]
    print("geocode.py", cmd_args)
    args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    mintpy.geocode.main(args_str.split())
    
    os.chdir("".join(inps.outdir))
    print('save unw file')
    multitrack_utilities.velo_disp(inps)
Esempio n. 17
0
def process_HDFEOS(inps):
    """process *.he5 file"""
    atr_asc = inps.file

    #save dataset of unw cor and dem
    filename, extension = multitrack_utilities.seprate_filename_extension(
        "".join(atr_asc))[1:3]
    cmd_args = [
        filename + extension,
        "".join(['displacement-', inps.startDate, '_', inps.endDate]), '-o',
        "".join(['geo_', inps.startDate, '_', inps.endDate, '.unw'])
    ]
    print("save_roipac.py", cmd_args)
    asct_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    os.system(
        multitrack_utilities.seperate_str_byspace(
            ['save_roipac.py', asct_str.split()]))

    cmd_args = [
        filename + extension, 'temporalCoherence', '-o',
        "".join(['geo_', inps.startDate, '_', inps.endDate, '.cor'])
    ]
    print("save_roipac.py", cmd_args)
    asct_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    completion_status = os.system(
        multitrack_utilities.seperate_str_byspace(
            ['save_roipac.py', asct_str.split()]))

    cmd_args = [filename + extension, 'height', '-o', 'srtm.dem']
    print("save_roipac.py", cmd_args)
    asct_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    os.system(
        multitrack_utilities.seperate_str_byspace(
            ['save_roipac.py', asct_str.split()]))

    # mv
    if os.path.exists(inps.outdir) == False:
        os.makedirs(inps.outdir)
    else:
        shutil.rmtree(inps.outdir)
        os.makedirs(inps.outdir)
    key1 = 'geo_'
    key2 = 'srtm'
    for file in os.listdir(os.getcwd()):
        if str.find(file, key1) != -1 or str.find(file, key2) != -1:
            shutil.move(file, inps.outdir)
    os.chdir("".join(inps.outdir))

    multitrack_utilities.delete_tmpgeo(inps.outdir, 'geo_', '.h5')
Esempio n. 18
0
def calculate_ramp_noise(inps):
    """subtract forward model data from observed data"""
    observed_file = inps.Obs_file[0]
    mask_file = inps.mask[0]
    ramp_type = inps.surface_type
    ramp_file = inps.ramp_file[0]
    ramp_noise_file = inps.output[0]
    model_file = inps.Model_file[0]

    scp_args = [
        observed_file, model_file, '-o', ramp_noise_file, '--ramp', '-s',
        ramp_type, '-m', mask_file, '--ramp_file', ramp_file, '--outdir',
        inps.outdir[0]
    ]
    scp_args = mu.seperate_str_byspace(scp_args)

    print('subtract_h5.py', scp_args)
    print('ramp_noise file is: %s' % ramp_noise_file)
    print('estimated ramp file is: %s' % ramp_file)
    mimtpy.subtract_h5.main(scp_args.split())

    return ramp_file, ramp_noise_file
Esempio n. 19
0
def process_HDFEOS(inps):
    """process *.he5 file"""
    atr_asc = inps.file

    #save dataset of unw cor and dem
    filename, extension = mu.seprate_filename_extension("".join(atr_asc))[1:3]
    output_unw = "".join(['geo_', inps.startDate, '_', inps.endDate, '.unw'])
    cmd_args = [
        '../' + filename + extension,
        "".join(['displacement-', inps.startDate, '_',
                 inps.endDate]), '-o', output_unw
    ]
    print("save_roipac.py", cmd_args)
    asct_str = mu.seperate_str_byspace(cmd_args)
    os.system(mu.seperate_str_byspace(['save_roipac.py', asct_str.split()]))

    output_cor = "".join(['geo_', inps.startDate, '_', inps.endDate, '.cor'])
    cmd_args = [
        '../' + filename + extension, 'temporalCoherence', '-o', output_cor
    ]
    print("save_roipac.py", cmd_args)
    asct_str = mu.seperate_str_byspace(cmd_args)
    completion_status = os.system(
        mu.seperate_str_byspace(['save_roipac.py',
                                 asct_str.split()]))

    output_dem = 'srtm.dem'
    cmd_args = ['../' + filename + extension, 'height', '-o', output_dem]
    print("save_roipac.py", cmd_args)
    asct_str = mu.seperate_str_byspace(cmd_args)
    os.system(mu.seperate_str_byspace(['save_roipac.py', asct_str.split()]))

    mask_filter(inps, output_unw)
    mask_filter(inps, output_cor)
    #mask_filter(inps,output_dem)

    if inps.SNWE:
        print('Subset data based on bbox')
        subset_data_based_bbox(inps, output_unw)
        subset_data_based_bbox(inps, output_cor)
        subset_data_based_bbox(inps, output_dem)
Esempio n. 20
0
def horzvert(inps):
    """generate horzontal and vertical files."""
    # get ascending data and descending data
    dataset_asc = inps.DataSet[0]
    dataset_des = inps.DataSet[1]

    # get ascending and descending data name
    file_asc = os.path.split(dataset_asc)[1].split('.')[0]
    file_des = os.path.split(dataset_des)[1].split('.')[0]

    # output dir
    outdir = inps.outdir[0]

    # judge whether we should change the reference point
    refpoi_lalo = inps.ref_poi
    if refpoi_lalo:
        refpoi_lat = refpoi_lalo[0]
        refpoi_lon = refpoi_lalo[1]

        print('\nchanging ascending and descending data reference point')
        # change ascending data refpoi
        completion_status = os.system(
            mu.seperate_str_byspace([
                'reference_point.py', dataset_asc, '-l', refpoi_lat, '-L',
                refpoi_lon
            ]))
        if completion_status == 1:
            raise Exception('error when runing reference_point.py for %s' %
                            dataset_asc)
        asc_data, asc_atr = readfile.read(dataset_asc)
        asc_atr['REF_LAT'] = refpoi_lat
        asc_atr['REF_LON'] = refpoi_lon
        writefile.write(asc_data, out_file=dataset_asc, metadata=asc_atr)
        # change descending data refpoi
        completion_status = os.system(
            mu.seperate_str_byspace([
                'reference_point.py', dataset_des, '-l', refpoi_lat, '-L',
                refpoi_lon
            ]))
        if completion_status == 1:
            raise Exception('error when runing reference_point.py for %s' %
                            dataset_des)
        des_data, des_atr = readfile.read(dataset_des)
        des_atr['REF_LAT'] = refpoi_lat
        des_atr['REF_LON'] = refpoi_lon
        writefile.write(des_data, out_file=dataset_des, metadata=des_atr)

    print('\ngo to the output dir {}'.format(outdir))
    os.chdir(outdir)

    # spatial range in lat/lon format
    SNWE = inps.SNWE

    # subset ascending and descending to the same spatial region
    print('\nsubset ascending data')
    sub_file_asc = 'subset_' + file_asc + '.h5'
    print(
        mu.seperate_str_byspace([
            'subset.py', dataset_asc, '-l', SNWE[0:2], '-L', SNWE[2:4], '-o',
            sub_file_asc
        ]))
    completion_status = os.system(
        mu.seperate_str_byspace([
            'subset.py', dataset_asc, '-l', SNWE[0:2], '-L', SNWE[2:4], '-o',
            sub_file_asc
        ]))
    if completion_status == 1:
        raise Exception('error when subset ascending data!')

    print('\nsubset descending data')
    sub_file_des = 'subset_' + file_des + '.h5'
    print(
        mu.seperate_str_byspace([
            'subset.py', dataset_des, '-l', SNWE[0:2], '-L', SNWE[2:4], '-o',
            sub_file_des
        ]))
    completion_status = os.system(
        mu.seperate_str_byspace([
            'subset.py', dataset_des, '-l', SNWE[0:2], '-L', SNWE[2:4], '-o',
            sub_file_des
        ]))
    if completion_status == 1:
        raise Exception('error when subset descending data!')

    # resolve ascending and descending to horz and vert data.
    azimuth = inps.azimuth
    outname = inps.outname
    horz_name = outname[0]
    vert_name = outname[1]

    print('\n runing asc_desc2horz_vert.py')
    print(
        mu.seperate_str_byspace([
            'asc_desc2horz_vert.py', sub_file_asc, sub_file_des, '--az',
            str(azimuth), '-o', horz_name, vert_name
        ]))
    completion_status = os.system(
        mu.seperate_str_byspace([
            'asc_desc2horz_vert.py', sub_file_asc, sub_file_des, '--az',
            str(azimuth), '-o', horz_name, vert_name
        ]))
    if completion_status == 1:
        raise Exception('error when running asc_desc2horz_vert.py!')

    # run H5UNW_to_geotiff.py
    # horizontal data
    scp_args2 = [
        horz_name, '--outdir', outdir, '--output',
        horz_name.split('.')[0] + '.tiff'
    ]
    scp_args2 = mu.seperate_str_byspace(scp_args2)
    print('\nH5UNW_to_geotiff.py', scp_args2)
    mimtpy.H5UNW_to_geotiff.main(scp_args2.split())

    # vertical data
    scp_args2 = [
        vert_name, '--outdir', outdir, '--output',
        vert_name.split('.')[0] + '.tiff'
    ]
    scp_args2 = mu.seperate_str_byspace(scp_args2)
    print('\nH5UNW_to_geotiff.py', scp_args2)
    mimtpy.H5UNW_to_geotiff.main(scp_args2.split())

    return
Esempio n. 21
0
def extract_data(inps, dataset, outdir):
    """extract data from HDFEOS file based on the given attribute"""
    # read HDFEOS file
    # metadata
    atr = readfile.read_attribute("".join(inps.input_HDFEOS))

    attr = "".join(inps.attribute)
    # read 2d data
    if attr == 'displacement' or attr == 'velocity':
        if inps.date == None:
            date1 = atr['START_DATE']
            date2 = atr['END_DATE']
            #raise Exception("ERROR! Date for displacement must be given!")
        else:
            # date1 and date2
            if '_' in "".join(inps.date):
                date1, date2 = ptime.yyyymmdd("".join(inps.date).split('_'))
            else:
                date1 = atr['START_DATE']
                date2 = ptime.yyyymmdd("".join(inps.date))
            #date12 = '{}_{}'.format(date1, date2)
        if attr == 'displacement':
            # read / prepare data
            slice_list = readfile.get_slice_list("".join(inps.input_HDFEOS))
            # read/prepare data
            dname = 'displacement'
            slice_name1 = view.search_dataset_input(
                slice_list, '{}-{}'.format(dname, date1))[0][0]
            slice_name2 = view.search_dataset_input(
                slice_list, '{}-{}'.format(dname, date2))[0][1]
            data = readfile.read("".join(inps.input_HDFEOS),
                                 datasetName=slice_name2)[0]
            data -= readfile.read("".join(inps.input_HDFEOS),
                                  datasetName=slice_name1)[0]
            data_name = '{}_{}_{}'.format(attr, date1, date2)
            if inps.mask:
                print("mask file")
                maskfile = readfile.read(
                    "".join(inps.input_HDFEOS),
                    datasetName='/HDFEOS/GRIDS/timeseries/quality/mask')[0]
                data[maskfile == 0] = np.nan
            outfile = outdir + '/' + data_name + '.h5'
            atr['FILE_TYPE'] = '.unw'
            writefile.write(data, out_file=outfile, metadata=atr)
            #print('converting range to phase')
            #data *= range2phase
            #if inps.ref_yx:
            #    data -= data[inps.ref_yx[0], inps.ref_yx[1]]
        elif attr == 'velocity':
            maskfile = readfile.read(
                "".join(inps.input_HDFEOS),
                datasetName='/HDFEOS/GRIDS/timeseries/quality/mask')[0]
            dname = 'displacement'
            data_timeseries = readfile.read("".join(inps.input_HDFEOS),
                                            datasetName=dataset + dname)[0]
            if inps.mask:
                print("mask file")
                data_timeseries[:, maskfile == 0] = np.nan
            bperp_date = h5py.File("".join(inps.input_HDFEOS), 'r')
            data_bperp = bperp_date[(dataset + 'bperp')]
            data_date = bperp_date[(dataset + 'date')]
            ts_data_name = 'timeseries_ERA_demErr.h5'
            outfile = outdir + '/' + ts_data_name
            # write to HDF5 file
            dsDict = dict()
            dsDict['bperp'] = data_bperp
            dsDict['date'] = data_date
            dsDict['timeseries'] = data_timeseries
            atr['FILE_TYPE'] = attr
            writefile.write(dsDict, out_file=outfile, metadata=atr)
            # run timeseries2velocity.py
            output_vel = 'velocity_' + date1 + '_' + date2 + '.h5'
            data_name = output_vel.split('.')[0]
            os.chdir(outdir)
            completion_status = os.system(
                multitrack_utilities.seperate_str_byspace([
                    'timeseries2velocity.py', outfile, '--start-date', date1,
                    '--end-date', date2, '--exclude', '../exclude_date.txt',
                    '--output', output_vel
                ]))
            if completion_status == 1:
                raise Exception('error when generate velocity!')
            data_vel, vel_atr = readfile.read(output_vel,
                                              datasetName='velocity')
            data = data_vel
            if inps.mask:
                print("mask file")
                data[~maskfile] = np.nan
            writefile.write(data, out_file=output_vel, metadata=vel_atr)

            os.chdir('../')
    else:
        data = readfile.read("".join(inps.input_HDFEOS),
                             datasetName=dataset + attr)[0]
        outfile = outdir + '/' + attr + '.h5'
        data_name = attr
        atr['FILE_TYPE'] = attr
        if inps.mask:
            print("mask file")
            maskfile = readfile.read(
                "".join(inps.input_HDFEOS),
                datasetName='/HDFEOS/GRIDS/timeseries/quality/mask')[0]
            data[maskfile == 0] = np.nan
        writefile.write(data, out_file=outfile, metadata=atr)
    # mask data
    #if inps.mask:
    #    print("mask file")
    #    maskfile = readfile.read("".join(inps.input_HDFEOS),datasetName='/HDFEOS/GRIDS/timeseries/quality/mask')[0]
    #    data[maskfile == 0] = np.nan

    return data, data_name, atr
Esempio n. 22
0
def horzvert(inpsdict):
    """generate horzontal and vertical files."""
    if inpsdict['mimtpy.horzvert'] == 'yes':
        Dataset = inpsdict['mimtpy.horzvert.DataSet']
        Dataset = list(tuple([i for i in Dataset.split(',')]))

        asc_data = Dataset[0]
        asc_dir = os.path.abspath(
            os.path.join(os.getenv('SCRATCHDIR'), asc_data, 'mintpy'))
        if not os.path.isdir(asc_dir):
            raise Exception('Error! No such dir : {}'.format(asc_dir))

        des_data = Dataset[1]
        des_dir = os.path.abspath(
            os.path.join(os.getenv('SCRATCHDIR'), des_data, 'mintpy'))
        if not os.path.isdir(des_dir):
            raise Exception('Error! No such dir : {}'.format(des_dir))

        # create workdir
        workdir = inpsdict['mimtpy.horzvert.outdir']
        print('\nthe work dir is {}.\n '.format(workdir))

        files = inpsdict['mimtpy.horzvert.dataname']
        files = list(tuple([i for i in files.split(',')]))
        file_asc = files[0]
        file_des = files[1]

        file_type = file_asc.split('_')[0]
        # out put dir
        outdir = os.path.abspath(os.path.join(workdir, file_type)) + '/'
        if not os.path.isdir(outdir):
            os.makedirs(outdir)
        print('\nthe output dir is %s .\n' % outdir)

        # go to output dir
        os.chdir(outdir)

        # get the input ascending and descending dir+name
        file_asc_data = asc_dir + '/' + file_type + '/' + file_asc + '.h5'
        file_des_data = des_dir + '/' + file_type + '/' + file_des + '.h5'

        # reference point
        refpoi_lalo = inpsdict['mimtpy.horzvert.referencepoint']
        if refpoi_lalo != 'None':
            refpoi_lalo = list(tuple(i for i in refpoi_lalo.split(',')))

        # spatial range in lat/lon format
        SNWE = inpsdict['mimtpy.horzvert.SNWE']
        SNWE = list(tuple(float(i) for i in SNWE.split(',')))

        # resolve ascending and descending to horz and vert data.
        azimuth = inpsdict['mimtpy.horzvert.azimuth']
        outname = inpsdict['mimtpy.horzvert.outname']
        if outname != 'None':
            outname = list(tuple(i for i in outname.split(',')))

        if refpoi_lalo != 'None' and azimuth != 'None' and outname != 'None':
            scp_args2 = [
                file_asc_data, file_des_data, '--bbox', SNWE,
                '--reference_point', refpoi_lalo, '--azimuth', azimuth,
                '--outname', outname, '--outdir', outdir
            ]
        elif refpoi_lalo != 'None' and azimuth != 'None' and outname == 'None':
            scp_args2 = [
                file_asc_data, file_des_data, '--bbox', SNWE,
                '--reference_point', refpoi_lalo, '--azimuth', azimuth,
                '--outdir', outdir
            ]
        elif refpoi_lalo != 'None' and azimuth == 'None' and outname != 'None':
            scp_args2 = [
                file_asc_data, file_des_data, '--bbox', SNWE,
                '--reference_point', refpoi_lalo, '--outname', outname,
                '--outdir', outdir
            ]
        elif refpoi_lalo != 'None' and azimuth == 'None' and outname == 'None':
            scp_args2 = [
                file_asc_data, file_des_data, '--bbox', SNWE,
                '--reference_point', refpoi_lalo, '--outdir', outdir
            ]
        elif refpoi_lalo == 'None' and azimuth != 'None' and outname != 'None':
            scp_args2 = [
                file_asc_data, file_des_data, '--bbox', SNWE, '--azimuth',
                azimuth, '--outname', outname, '--outdir', outdir
            ]
        elif refpoi_lalo == 'None' and azimuth != 'None' and outname == 'None':
            scp_args2 = [
                file_asc_data, file_des_data, '--bbox', SNWE, '--azimuth',
                azimuth, '--outdir', outdir
            ]
        elif refpoi_lalo == 'None' and azimuth == 'None' and outname != 'None':
            scp_args2 = [
                file_asc_data, file_des_data, '--bbox', SNWE, '--outname',
                outname, '--outdir', outdir
            ]
        elif refpoi_lalo == 'None' and azimuth == 'None' and outname == 'None':
            scp_args2 = [
                file_asc_data, file_des_data, '--bbox', SNWE, '--outdir',
                outdir
            ]
        scp_args2 = mu.seperate_str_byspace(scp_args2)
        print('\ngenerate_horzvert.py', scp_args2)
        mimtpy.generate_horzvert.main(scp_args2.split())
    else:
        print('\nSkip horzvert step')

    return
Esempio n. 23
0
def plot(inpsdict):
    """plot."""
    if inpsdict['mimtpy.plot'] == 'yes':
        print('Start ploting data')
        plot_type = inpsdict['mimtpy.plot.type']
        if plot_type == 'velocity' or plot_type == 'displacement':
            Dataset = inpsdict['mimtpy.velcumu.DataSet']
            Dataset = list(tuple([i for i in Dataset.split(',')]))
            for dataset in Dataset:
                # go to dataset_dir
                dataset_dir = os.path.abspath(
                    os.path.join(os.getenv('SCRATCHDIR'), dataset, 'mintpy'))
                if not os.path.isdir(dataset_dir):
                    raise Exception(
                        'Error! No such dir : {}'.format(dataset_dir))
                os.chdir(dataset_dir)
                # go to data to be plotted dir
                plot_dir = os.path.abspath(os.path.join(
                    dataset_dir, plot_type)) + '/'
                if not os.path.isdir(plot_dir):
                    raise Exception('Error! No such dir : {}'.format(plot_dir))
                print('plotting {} data in {} dir'.format(plot_type, plot_dir))

                print('Go to %s.\n' % plot_dir)
                os.chdir(plot_dir)

                # plot data
                Vfiles = []
                path_list = os.listdir(plot_dir)
                for Vfile in path_list:
                    Vfiles.append(Vfile)
                Vfiles.sort()

                for Vfile in Vfiles:
                    if Vfile.find(plot_type) >= 0 and Vfile.find('.tiff') > 0:
                        filename = Vfile
                        outfile = filename.split('.')[0]
                        shpdir = inpsdict['mimtpy.plot.shpdir']
                        if shpdir != 'no':
                            faults = inpsdict['mimtpy.plot.fault']
                            faults = list(tuple(i for i in faults.split(',')))
                            fcolor = inpsdict['mimtpy.plot.fcolor']
                            fcolor = list(tuple(i for i in fcolor.split(',')))
                            fstyle = inpsdict['mimtpy.plot.fstyle']
                            fstyle = list(tuple(i for i in fstyle.split(',')))
                            refpoi = inpsdict['mimtpy.plot.refpoi']
                            scp_args = [
                                filename, '--shpdir', shpdir, '--fault',
                                faults, '--fcolor', fcolor, '--fstyle', fstyle,
                                '--refpoi', refpoi, '--outfile', outfile,
                                '--outdir', plot_dir
                            ]
                        else:
                            scp_args = [
                                filename, '--outfile', outfile, '--outdir',
                                plot_dir
                            ]

                        scp_args = mu.seperate_str_byspace(scp_args)
                        # run plot_geotiff.py
                        print(
                            '\n*********************ploting %s file********************'
                            % Vfile)
                        print('plot_geotiff.py', scp_args)
                        mimtpy.plot_geotiff.main(scp_args.split())
    else:
        print('\nSkip plot process')

    return
Esempio n. 24
0
def velcumu(inpsdict):
    """generate velocity.h5 and velocity.tiff file or generate cumudisp_date1_date2.h5 and cumudisp_date1_date2_tiff."""
    if inpsdict['mimtpy.velcumu'] == 'yes':
        Dataset = inpsdict['mimtpy.velcumu.DataSet']
        Dataset = list(tuple([i for i in Dataset.split(',')]))
        for dataset in Dataset:
            print(
                '\n***********************Start processing {} dataset***********************'
                .format(dataset))
            # go to dataset_dir
            dataset_dir = os.path.abspath(
                os.path.join(os.getenv('SCRATCHDIR'), dataset, 'mintpy'))
            if not os.path.isdir(dataset_dir):
                raise Exception('Error! No such dir : {}'.format(dataset_dir))
            os.chdir(dataset_dir)
            print('\nGo to project dir:', dataset_dir)

            # create velocity or cumulative dir
            filetype = inpsdict['mimtpy.velcumu.type']
            outdir = os.path.abspath(os.path.join(dataset_dir, filetype))
            if not os.path.isdir(outdir):
                os.makedirs(outdir)
            print('\nthe output dir for {} is {}.\n'.format(filetype, outdir))

            # find the HDFEOS file name
            HDFEOS_file = mu.find_HDFEOS_fullname(dataset_dir)
            print('\nThe HDFEOS file is {}'.format(HDFEOS_file))
            atr = readfile.read_attribute(HDFEOS_file)

            # get the startdate and enddate
            startDate, endDate = mu.find_start_end_date(
                dataset_dir, inpsdict['mimtpy.velcumu.startDate'],
                inpsdict['mimtpy.velcumu.endDate'])
            if startDate == 'None':
                startDate = atr['START_DATE']
            if endDate == 'None':
                endDate = atr['END_DATE']

            # generate parameter list for HDFEOS_to_geotiff.py
            if inpsdict['mimtpy.velcumu.SNWE'] == 'None':
                if inpsdict['mimtpy.velcumu.mask'] == 'y':
                    scp_args = [
                        HDFEOS_file, filetype, '--date',
                        startDate + '_' + endDate, '--mask', '--outdir', outdir
                    ]
                else:
                    scp_args = [
                        HDFEOS_file, filetype, '--date',
                        startDate + '_' + endDate, '--outdir', outdir
                    ]
            else:
                SNWE = inpsdict['mimtpy.velcumu.SNWE']
                SNWE = list(tuple([float(i) for i in SNWE.split(',')]))
                if inpsdict['mimtpy.velcumu.mask'] == 'y':
                    scp_args = [
                        HDFEOS_file, filetype, '--date',
                        startDate + '_' + endDate, '--mask', '--bbox', SNWE,
                        '--outdir', outdir
                    ]
                else:
                    scp_args = [
                        HDFEOS_file, filetype, '--date',
                        startDate + '_' + endDate, '--bbox', SNWE, '--outdir',
                        outdir
                    ]

            scp_args = mu.seperate_str_byspace(scp_args)
            # run HDFEOS_to_geotiff.py
            print('HDFEOS_to_geotiff.py', scp_args)
            mimtpy.HDFEOS_to_geotiff.main(scp_args.split())
    else:
        print('\nSkip velcumu process')

    return
Esempio n. 25
0
def multitrack_run_software(inpsdict, folders, inps):
    """run save_geodmod/gbis for each track"""
    for project in folders:
        os.chdir("".join(
            [os.getenv('SCRATCHDIR') + '/' + project + '/mintpy/']))
        if inpsdict['DataType'] == 'HDFEOS':
            datafile = multitrack_utilities.find_HDFEOS_fullname("".join(
                [os.getenv('SCRATCHDIR') + '/' + project + '/mintpy/']))
        elif inpsdict['DataType'] == 'timeseries':
            datafile = multitrack_utilities.find_timeseries("".join(
                [os.getenv('SCRATCHDIR') + '/' + project + '/mintpy/']))
        elif inpsdict['DataType'] == 'ifgramStack':
            datafile = "".join([str(inpsdict['DataType']) + '.h5'])
        elif inpsdict['DataType'] == 'velocity':
            datafile = "".join([str(inpsdict['DataType']) + '.h5'])

        if inps.outdir == os.getenv('SCRATCHDIR'):
            inpsdict['outdir'] = inps.outdir + '/' + project + '/mintpy'
        else:
            inpsdict['outdir'] = inps.outdir + '/' + project

        if inps.ModelSoftware == 'geodmod':
            print(
                multitrack_utilities.seperate_str_byspace([
                    'save_geodmod.py', datafile, '-b', inpsdict['SNWE'], '-y',
                    inpsdict['latStep'], '-x', inpsdict['lonStep'], '-s',
                    inpsdict['startDate'], '-e', inpsdict['endDate'],
                    '-outdir', inpsdict['outdir']
                ]))
            completion_status = os.system(
                multitrack_utilities.seperate_str_byspace([
                    'save_geodmod.py', datafile, '-b', inpsdict['SNWE'], '-y',
                    inpsdict['latStep'], '-x', inpsdict['lonStep'], '-s',
                    inpsdict['startDate'], '-e', inpsdict['endDate'],
                    '-outdir', inpsdict['outdir']
                ]))
            if completion_status == 1:
                print('error when runing save_geodmod.py')
                exit(0)
        elif inps.ModelSoftware == 'gbis':
            if inpsdict['ref_lalo'][0] == 'None':
                if inpsdict['mask_file'] == 'None':
                    print('here!')
                    print(
                        multitrack_utilities.seperate_str_byspace([
                            'save_gbis_mimt.py', datafile, '-b',
                            inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x',
                            inpsdict['lonStep'], '-s', inpsdict['startDate'],
                            '-e', inpsdict['endDate'], '-outdir',
                            inpsdict['outdir']
                        ]))
                    completion_status = os.system(
                        multitrack_utilities.seperate_str_byspace([
                            'save_gbis_mimt.py', datafile, '-b',
                            inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x',
                            inpsdict['lonStep'], '-s', inpsdict['startDate'],
                            '-e', inpsdict['endDate'], '-outdir',
                            inpsdict['outdir']
                        ]))
                    if completion_status == 1:
                        raise Exception('error when runing save_gbis.py')
                else:
                    print(
                        multitrack_utilities.seperate_str_byspace([
                            'save_gbis_mimt.py', datafile, '-b',
                            inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x',
                            inpsdict['lonStep'], '-s', inpsdict['startDate'],
                            '-e', inpsdict['endDate'], '-m',
                            inpsdict['mask_file'], '-outdir',
                            inpsdict['outdir']
                        ]))
                    completion_status = os.system(
                        multitrack_utilities.seperate_str_byspace([
                            'save_gbis_mimt.py', datafile, '-b',
                            inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x',
                            inpsdict['lonStep'], '-s', inpsdict['startDate'],
                            '-e', inpsdict['endDate'], '-m',
                            inpsdict['mask_file'], '-outdir',
                            inpsdict['outdir']
                        ]))
                    if completion_status == 1:
                        raise Exception('error when runing save_gbis.py')
            else:
                if inpsdict['mask_file'] == 'None':
                    print(
                        multitrack_utilities.seperate_str_byspace([
                            'save_gbis_mimt.py', datafile, '-b',
                            inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x',
                            inpsdict['lonStep'], '-s', inpsdict['startDate'],
                            '-e', inpsdict['endDate'], '--ref-lalo',
                            inpsdict['ref_lalo'], '-outdir', inpsdict['outdir']
                        ]))
                    completion_status = os.system(
                        multitrack_utilities.seperate_str_byspace([
                            'save_gbis_mimt.py', datafile, '-b',
                            inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x',
                            inpsdict['lonStep'], '-s', inpsdict['startDate'],
                            '-e', inpsdict['endDate'], '--ref-lalo',
                            inpsdict['ref_lalo'], '-outdir', inpsdict['outdir']
                        ]))
                    if completion_status == 1:
                        raise Exception('error when runing save_gbis.py')
                else:
                    print(
                        multitrack_utilities.seperate_str_byspace([
                            'save_gbis_mimt.py', datafile, '-b',
                            inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x',
                            inpsdict['lonStep'], '-s', inpsdict['startDate'],
                            '-e', inpsdict['endDate'], '-m',
                            inpsdict['mask_file'], '--ref-lalo',
                            inpsdict['ref_lalo'], '-outdir', inpsdict['outdir']
                        ]))
                    completion_status = os.system(
                        multitrack_utilities.seperate_str_byspace([
                            'save_gbis_mimt.py', datafile, '-b',
                            inpsdict['SNWE'], '-y', inpsdict['latStep'], '-x',
                            inpsdict['lonStep'], '-s', inpsdict['startDate'],
                            '-e', inpsdict['endDate'], '-m',
                            inpsdict['mask_file'], '--ref-lalo',
                            inpsdict['ref_lalo'], '-outdir', inpsdict['outdir']
                        ]))
                    if completion_status == 1:
                        raise Exception('error when runing save_gbis.py')
Esempio n. 26
0
def plot(inpsdict):
    """plot."""
    if inpsdict['mimtpy.plot'] == 'yes':
        print('Start ploting data')
        plot_type = inpsdict['mimtpy.plot.type']
        if plot_type == 'velocity' or plot_type == 'displacement':
            Dataset = inpsdict['mimtpy.velcumu.DataSet']
            Dataset = list(tuple([i for i in Dataset.split(',')]))
            for dataset in Dataset:
                # go to dataset_dir
                dataset_dir = os.path.abspath(
                    os.path.join(os.getenv('SCRATCHDIR'), dataset, 'mintpy'))
                if not os.path.isdir(dataset_dir):
                    raise Exception(
                        'Error! No such dir : {}'.format(dataset_dir))
                os.chdir(dataset_dir)
                # go to data to be plotted dir
                plot_dir = os.path.abspath(os.path.join(
                    dataset_dir, plot_type)) + '/'
                if not os.path.isdir(plot_dir):
                    raise Exception('Error! No such dir : {}'.format(plot_dir))
                print('plotting {} data in {} dir'.format(plot_type, plot_dir))
                #elif plot_type == 'horzvert':
                #    plot_dir = inpsdict['mimtpy.horzvert.outdir']
                #elif plot_type == 'coneatenation':
                #    plot_dir = inpsdict['mimtpy.coneatenation.outdir']

                print('Go to %s.\n' % plot_dir)
                os.chdir(plot_dir)

                # plot data
                Vfiles = []
                path_list = os.listdir(plot_dir)
                for Vfile in path_list:
                    Vfiles.append(Vfile)
                Vfiles.sort()

                for Vfile in Vfiles:
                    if Vfile.find(plot_type) >= 0 and Vfile.find('.tiff') > 0:
                        filename = Vfile
                        fault = inpsdict['mimtpy.plot.fault']
                        refpoi = inpsdict['mimtpy.plot.refpoi']
                        vlim = inpsdict['mimtpy.plot.vlim']
                        outfile = filename.split('.')[0]
                        if vlim == 'None':
                            scp_args = [
                                filename, '--fault', fault, '--refpoi', refpoi,
                                '--outfile', outfile, '--outdir', plot_dir
                            ]
                        else:
                            vlim = list(
                                tuple([float(i) for i in vlim.split(',')]))
                            scp_args = [
                                filename, '--fault', fault, '--refpoi', refpoi,
                                '--vlim', vlim, '--outfile', outfile,
                                '--outdir', plot_dir
                            ]

                        scp_args = mu.seperate_str_byspace(scp_args)
                        # run plot_geotiff.py
                        print(
                            '\n*********************ploting %s file********************'
                            % Vfile)
                        print('plot_geotiff.py', scp_args)
                        mimtpy.plot_geotiff.main(scp_args.split())
    else:
        print('\nSkip plot process')

    return
Esempio n. 27
0
def concatenation(inpsdict):
    """concatenation adjencant tracks."""
    if inpsdict['mimtpy.concatenation'] == 'yes':
        Dataset = inpsdict['mimtpy.concatenation.DataSet']
        Dataset = list(tuple([i for i in Dataset.split(',')]))

        project_master = Dataset[0]
        promaster_dir = os.path.abspath(
            os.path.join(os.getenv('SCRATCHDIR'), project_master, 'mintpy'))
        if not os.path.isdir(promaster_dir):
            raise Exception('Error! No such dir : {}'.format(promaster_dir))

        project_slave = Dataset[1]
        proslave_dir = os.path.abspath(
            os.path.join(os.getenv('SCRATCHDIR'), project_slave, 'mintpy'))
        if not os.path.isdir(proslave_dir):
            raise Exception('Error! No such dir : {}'.format(proslave_dir))

        # create workdir
        workdir = inpsdict['mimtpy.concatenation.outdir']
        if not os.path.isdir(workdir):
            os.makedirs(workdir)
        print('\nthe work dir is {}.\n'.format(workdir))

        # run track_offset.py
        # file type
        files = inpsdict['mimtpy.concatenation.dataname']
        files = list(tuple([i for i in files.split(',')]))
        file_master = files[0]
        file_slave = files[1]

        file_type = file_master.split('_')[0]
        # out put dir
        outdir = os.path.abspath(os.path.join(workdir, file_type)) + '/'
        if not os.path.isdir(outdir):
            os.makedirs(outdir)
        print('the output dir is %s .\n' % outdir)

        #track_offset.py option
        rewrite_opt = inpsdict['mimtpy.concatenation.rewrite']
        mosaic_opt = inpsdict['mimtpy.concatenation.mosaic']

        # file_dir
        fmaster_dir = os.path.abspath(os.path.join(promaster_dir,
                                                   file_type)) + '/'
        if not os.path.isdir(fmaster_dir):
            raise Exception('Error! No such dir : {}'.format(fmaster_dir))

        fslave_dir = os.path.abspath(os.path.join(proslave_dir,
                                                  file_type)) + '/'
        if not os.path.isdir(fslave_dir):
            raise Exception('Error! No such dir : {}'.format(fslave_dir))

        # master and slave data name
        Dmaster = fmaster_dir + file_master + '.h5'
        Dslave = fslave_dir + file_slave + '.h5'

        # mosaic file name
        if inpsdict['mimtpy.concatenation.outname'] != 'None':
            outname = inpsdict['mimtpy.concatenation.outname']
        else:
            outname = file_master + '_mosaic'

        if rewrite_opt == 'y':
            if mosaic_opt == 'y':
                scp_args = [
                    Dmaster, Dslave, '--rewrite_slave', '--mosaic', '--output',
                    outname, '--outdir', outdir
                ]
            elif mosaic_opt == 'n':
                scp_args = [
                    Dmaster, Dslave, '--rewrite_slave', '--output', outname,
                    '--outdir', outdir
                ]
        elif rewrite_opt == 'n':
            if mosaic_opt == 'y':
                scp_args = [
                    Dmaster, Dslave, '--mosaic', '--output', outname,
                    '--outdir', outdir
                ]
            elif mosaic_opt == 'n':
                scp_args = [
                    Dmaster, Dslave, '--output', outname, '--outdir', outdir
                ]
        scp_args = mu.seperate_str_byspace(scp_args)

        # run track_offset.py
        print('track_offset.py', scp_args)
        mimtpy.track_offset.main(scp_args.split())

        # run H5UNW_to_geotiff.py
        # mosaic data
        Dmosaic = outdir + outname + '.h5'
        scp_args2 = [
            Dmosaic, '--outdir', outdir, '--output', outname + '.tiff'
        ]
        scp_args2 = mu.seperate_str_byspace(scp_args2)

        print('\nH5UNW_to_geotiff.py', scp_args2)
        mimtpy.H5UNW_to_geotiff.main(scp_args2.split())
    else:
        print('\nSkip concatenation process')
    return
Esempio n. 28
0
def horzvert(inpsdict):
    """generate horzontal and vertical files."""
    if inpsdict['mimtpy.horzvert'] == 'yes':
        Dataset = inpsdict['mimtpy.horzvert.DataSet']
        Dataset = list(tuple([i for i in Dataset.split(',')]))

        asc_data = Dataset[0]
        asc_dir = os.path.abspath(
            os.path.join(os.getenv('SCRATCHDIR'), asc_data, 'mintpy'))
        if not os.path.isdir(asc_dir):
            raise Exception('Error! No such dir : {}'.format(asc_dir))

        des_data = Dataset[1]
        des_dir = os.path.abspath(
            os.path.join(os.getenv('SCRATCHDIR'), des_data, 'mintpy'))
        if not os.path.isdir(des_dir):
            raise Exception('Error! No such dir : {}'.format(des_dir))

        # create workdir
        workdir = inpsdict['mimtpy.horzvert.outdir']
        print('\nthe work dir is {}.\n '.format(workdir))

        files = inpsdict['mimtpy.horzvert.dataname']
        files = list(tuple([i for i in files.split(',')]))
        file_asc = files[0]
        file_des = files[1]

        file_type = file_asc.split('_')[0]
        # out put dir
        outdir = os.path.abspath(os.path.join(workdir, file_type)) + '/'
        if not os.path.isdir(outdir):
            os.makedirs(outdir)
        print('\nthe output dir is %s .\n' % outdir)

        # get the input ascending and descending dir+name
        file_asc_data = asc_dir + '/' + file_type + '/' + file_asc + '.h5'
        file_des_data = des_dir + '/' + file_type + '/' + file_des + '.h5'

        # judge whether we should change the reference point
        refpoi_lalo = inpsdict['mimtpy.horzvert.referencepoint']
        if refpoi_lalo != 'None':
            refpoi_lalo = list(tuple(float(i) for i in refpoi_lalo.split(',')))
            refpoi_lat = refpoi_lalo[0]
            refpoi_lon = refpoi_lalo[1]

            print('\nchanging ascending and descending data reference point')
            # change ascending data refpoi
            completion_status = os.system(
                mu.seperate_str_byspace([
                    'reference_point.py', file_asc_data, '-l', refpoi_lat,
                    '-L', refpoi_lon
                ]))
            if completion_status == 1:
                raise Exception('error when runing reference_point.py for %s' %
                                file_asc_data)
            asc_data, asc_atr = readfile.read(file_asc_data)
            asc_atr['REF_LAT'] = refpoi_lat
            asc_atr['REF_LON'] = refpoi_lon
            writefile.write(asc_data, out_file=file_asc_data, metadata=asc_atr)
            # change descending data refpoi
            completion_status = os.system(
                mu.seperate_str_byspace([
                    'reference_point.py', file_des_data, '-l', refpoi_lat,
                    '-L', refpoi_lon
                ]))
            if completion_status == 1:
                raise Exception('error when runing reference_point.py for %s' %
                                file_des_data)
            des_data, des_atr = readfile.read(file_des_data)
            des_atr['REF_LAT'] = refpoi_lat
            des_atr['REF_LON'] = refpoi_lon
            writefile.write(des_data, out_file=file_des_data, metadata=des_atr)

        print('\ngo to the output dir {}'.format(outdir))
        os.chdir(outdir)

        # spatial range in lat/lon format
        SNWE = inpsdict['mimtpy.horzvert.SNWE']
        SNWE = list(tuple(float(i) for i in SNWE.split(',')))

        # subset ascending and descending to the same spatial region
        print('\nsubset ascending data')
        sub_file_asc = 'subset_' + file_asc + '.h5'
        file_asc_data = asc_dir + '/' + file_type + '/' + file_asc + '.h5'
        print(
            mu.seperate_str_byspace([
                'subset.py', file_asc_data, '-l', SNWE[0:2], '-L', SNWE[2:4],
                '-o', sub_file_asc
            ]))
        completion_status = os.system(
            mu.seperate_str_byspace([
                'subset.py', file_asc_data, '-l', SNWE[0:2], '-L', SNWE[2:4],
                '-o', sub_file_asc
            ]))
        if completion_status == 1:
            raise Exception('error when subset ascending data!')

        print('\nsubset descending data')
        sub_file_des = 'subset_' + file_des + '.h5'
        file_des_data = des_dir + '/' + file_type + '/' + file_des + '.h5'
        print(
            mu.seperate_str_byspace([
                'subset.py', file_des_data, '-l', SNWE[0:2], '-L', SNWE[2:4],
                '-o', sub_file_des
            ]))
        completion_status = os.system(
            mu.seperate_str_byspace([
                'subset.py', file_des_data, '-l', SNWE[0:2], '-L', SNWE[2:4],
                '-o', sub_file_des
            ]))
        if completion_status == 1:
            raise Exception('error when subset descending data!')

        # resolve ascending and descending to horz and vert data.
        azimuth = inpsdict['mimtpy.horzvert.azimuth']
        outname = inpsdict['mimtpy.horzvert.outname']
        if outname == 'None':
            horz_name = file_type + '_horz.h5'
            vert_name = file_type + '_vert.h5'
        else:
            outname = list(tuple(i for i in outname.split(',')))
            horz_name = file_type + outname[0]
            vert_name = file_type + outname[1]
        if azimuth == 'None':
            print(
                mu.seperate_str_byspace([
                    'asc_desc2horz_vert.py', sub_file_asc, sub_file_des, '-o',
                    horz_name, vert_name
                ]))
            completion_status = os.system(
                mu.seperate_str_byspace([
                    'asc_desc2horz_vert.py', sub_file_asc, sub_file_des, '-o',
                    horz_name, vert_name
                ]))
            if completion_status == 1:
                raise Exception('error when running asc_desc2horz_vert.py!')
        else:
            print(
                os.system(
                    mu.seperate_str_byspace([
                        'asc_desc2horz_vert.py', sub_file_asc, sub_file_des,
                        '--az', azimuth, '-o', horz_name, vert_name
                    ])))
            completion_status = os.system(
                mu.seperate_str_byspace([
                    'asc_desc2horz_vert.py', sub_file_asc, sub_file_des,
                    '--az', azimuth, '-o', horz_name, vert_name
                ]))
            if completion_status == 1:
                raise Exception('error when running asc_desc2horz_vert.py!')

        # run H5UNW_to_geotiff.py
        # horizontal data
        scp_args2 = [
            horz_name, '--outdir', outdir, '--output',
            horz_name.split('.')[0] + '.tiff'
        ]
        scp_args2 = mu.seperate_str_byspace(scp_args2)
        print('\nH5UNW_to_geotiff.py', scp_args2)
        mimtpy.H5UNW_to_geotiff.main(scp_args2.split())

        # vertical data
        scp_args2 = [
            vert_name, '--outdir', outdir, '--output',
            vert_name.split('.')[0] + '.tiff'
        ]
        scp_args2 = mu.seperate_str_byspace(scp_args2)
        print('\nH5UNW_to_geotiff.py', scp_args2)
        mimtpy.H5UNW_to_geotiff.main(scp_args2.split())

    else:
        print('\nSkip horzvert step')

    return
Esempio n. 29
0
def process_ifgramStack(inps):
    """process ifgramStack.h5 file"""
    if os.path.exists("".join(inps.outdir)) == False:
        os.makedirs("".join(inps.outdir))

    # dem file
    demname = 'geometryRadar.h5'
    if not os.path.isfile(demname):
        demname_f = './inputs/geometryRadar.h5'
    else:
        demname_f = 'geometryRadar.h5'
    cmd_args = [
        demname_f, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep,
        '--outdir', "".join(inps.outdir)
    ]
    print("geocode.py", cmd_args)
    args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    mintpy.geocode.main(args_str.split())

    #ifgramStack file
    atr_asc = ['./inputs/' + inps.file]
    cmd_args = [
        atr_asc, '-b', inps.SNWE, '-y', inps.latStep, '-x', inps.lonStep,
        '--outdir', "".join(inps.outdir)
    ]
    print("geocode.py", cmd_args)
    args_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    mintpy.geocode.main(args_str.split())

    #save dataset of unw cor and dem
    os.chdir("".join(inps.outdir))
    filename, extension = multitrack_utilities.seprate_filename_extension(
        "".join(atr_asc))[1:3]

    cmd_args = [
        'geo_' + filename + extension,
        "".join(['unwrapPhase-', inps.startDate, '_', inps.endDate])
    ]
    print("save_roipac.py", cmd_args)
    asct_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    os.system(
        multitrack_utilities.seperate_str_byspace(
            ['save_roipac.py', asct_str.split()]))

    cmd_args = [
        'geo_' + filename + extension,
        "".join(['coherence-', inps.startDate, '_', inps.endDate])
    ]
    print("save_roipac.py", cmd_args)
    asct_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    completion_status = os.system(
        multitrack_utilities.seperate_str_byspace(
            ['save_roipac.py', asct_str.split()]))

    cmd_args = ['geo_geometryRadar.h5', 'height', '-o', 'srtm.dem']
    print("save_roipac.py", cmd_args)
    asct_str = multitrack_utilities.seperate_str_byspace(cmd_args)
    os.system(
        multitrack_utilities.seperate_str_byspace(
            ['save_roipac.py', asct_str.split()]))

    multitrack_utilities.delete_tmpgeo(inps.outdir, 'geo_', '.h5')