Ejemplo n.º 1
0
def correlationStack(inps, acquisitionDates, stackReferenceDate,
                     secondaryDates, safe_dict, pairs, updateStack):

    i = slcStack(inps, acquisitionDates, stackReferenceDate, secondaryDates,
                 safe_dict, updateStack)

    # default value of virtual_merge
    virtual_merge = 'True' if not inps.virtualMerge else inps.virtualMerge

    i += 1
    runObj = run()
    runObj.configure(inps,
                     'run_{:02d}_merge_reference_secondary_slc'.format(i))
    runObj.mergeReference(stackReferenceDate, virtual=virtual_merge)
    runObj.mergeSecondarySLC(secondaryDates, virtual=virtual_merge)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_merge_burst_igram'.format(i))
    runObj.burstIgram_mergeBurst(acquisitionDates, safe_dict, pairs)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_filter_coherence'.format(i))
    runObj.filter_coherence(pairs)
    runObj.finalize()

    return i
Ejemplo n.º 2
0
def interferogramIonoStack(inps, acquisitionDates, stackMasterDate, slaveDates,
                           pairs):

    # raise exception for ALOS-1 if --fbd2fbs was used
    run_unpack_file = os.path.join(inps.workDir, 'run_unPackALOS')
    if os.path.isfile(run_unpack_file):
        with open(run_unpack_file, 'r') as f:
            lines = f.readlines()
        if any('fbd2fbs' in line for line in lines):
            msg = 'ALOS-1 FBD mode data exists with fbd2fbs enabled, which is not applicable for ionosphere workflow'
            msg += '\nsolution: restart from prepRawALOS.py WITHOUT --dual2single/--fbd2fbs option.'
            raise ValueError(msg)

    # an interferogram stack with ionosphere correction.
    # coregistration is with geometry + const offset + rubbersheeting

    i = slcStack(inps,
                 acquisitionDates,
                 stackMasterDate,
                 slaveDates,
                 pairs,
                 splitFlag=True,
                 rubberSheet=True)

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_igram")
    config_prefix = 'config_igram_'
    low_or_high = "/"
    runObj.igrams_network(pairs, acquisitionDates, stackMasterDate,
                          low_or_high, config_prefix)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_igramLowBand")
    config_prefix = 'config_igramLowBand_'
    low_or_high = "/LowBand/"
    runObj.igrams_network(pairs, acquisitionDates, stackMasterDate,
                          low_or_high, config_prefix)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_igramHighBand")
    config_prefix = 'config_igramHighBand_'
    low_or_high = "/HighBand/"
    runObj.igrams_network(pairs, acquisitionDates, stackMasterDate,
                          low_or_high, config_prefix)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_iono")
    config_prefix = 'config_iono_'
    lowBand = '/LowBand/'
    highBand = '/HighBand/'
    runObj.dispersive_nonDispersive(pairs, acquisitionDates, stackMasterDate,
                                    lowBand, highBand, config_prefix)
    runObj.finalize()
Ejemplo n.º 3
0
def correlationStack(inps, acquisitionDates, stackReferenceDate,
                     secondaryDates, safe_dict, pairs, updateStack):

    #############################
    i = slcStack(inps, acquisitionDates, stackReferenceDate, secondaryDates,
                 safe_dict, updateStack)

    i += 1
    runObj = run()
    runObj.configure(inps,
                     'run_{:02d}_merge_reference_secondary_slc'.format(i))
    runObj.mergeReference(stackReferenceDate, virtual='True')
    runObj.mergeSecondarySLC(secondaryDates, virtual='True')
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_merge_burst_igram'.format(i))
    runObj.burstIgram_mergeBurst(acquisitionDates, safe_dict, pairs)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_filter_coherence'.format(i))
    runObj.filter_coherence(pairs)
    runObj.finalize()
Ejemplo n.º 4
0
def interferogramStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe_dict, pairs, updateStack):

    i = slcStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe_dict, updateStack)

    i+=1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_merge_master_slave_slc")
    runObj.mergeMaster(stackMasterDate, virtual = 'True')
    runObj.mergeSlaveSLC(slaveDates, virtual = 'True')
    runObj.finalize()

    i+=1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_merge_burst_igram") 
    runObj.burstIgram_mergeBurst(acquisitionDates, safe_dict, pairs)
    runObj.finalize()

    i+=1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_filter_coherence")
    runObj.filter_coherence(pairs)
    runObj.finalize()

    i+=1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_unwrap")
    runObj.unwrap(pairs)
    runObj.finalize()
Ejemplo n.º 5
0
def interferogramStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe_dict, pairs, updateStack):

    i = slcStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe_dict, updateStack)

    i+=1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_merge_master_slave_slc'.format(i))
    runObj.mergeMaster(stackMasterDate, virtual = 'True')
    runObj.mergeSlaveSLC(slaveDates, virtual = 'True')
    runObj.finalize()

    i+=1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_generate_burst_igram'.format(i))
    runObj.generate_burstIgram(acquisitionDates, safe_dict, pairs)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_merge_burst_igram'.format(i))
    runObj.igram_mergeBurst(acquisitionDates, safe_dict, pairs)
    runObj.finalize()

    i+=1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_filter_coherence'.format(i))
    runObj.filter_coherence(pairs)
    runObj.finalize()

    i+=1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_unwrap'.format(i))
    runObj.unwrap(pairs)
    runObj.finalize()
Ejemplo n.º 6
0
def ionosphereStack(inps, dateListIon, stackReferenceDate,
                    pairs_same_starting_ranges_update,
                    pairs_diff_starting_ranges_update, safe_dict, i):

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_subband_and_resamp'.format(i))
    runObj.subband_and_resamp(dateListIon, stackReferenceDate)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_generateIgram_ion'.format(i))
    runObj.generateIgram_ion(
        pairs_same_starting_ranges_update + pairs_diff_starting_ranges_update,
        stackReferenceDate)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_mergeBurstsIon'.format(i))
    runObj.mergeBurstsIon(pairs_same_starting_ranges_update,
                          pairs_diff_starting_ranges_update)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_unwrap_ion'.format(i))
    runObj.unwrap_ion(pairs_same_starting_ranges_update,
                      pairs_diff_starting_ranges_update)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_look_ion'.format(i))
    runObj.look_ion(pairs_same_starting_ranges_update,
                    pairs_diff_starting_ranges_update)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_computeIon'.format(i))
    runObj.computeIon(pairs_same_starting_ranges_update,
                      pairs_diff_starting_ranges_update, safe_dict)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_filtIon'.format(i))
    runObj.filtIon(pairs_same_starting_ranges_update +
                   pairs_diff_starting_ranges_update)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_invertIon'.format(i))
    runObj.invertIon()
    runObj.finalize()

    return i
Ejemplo n.º 7
0
def interferogramIonoStack(inps, acquisitionDates, stackMasterDate, slaveDates,
                           pairs):

    # an interferogram stack with ionosphere correction.
    # coregistration is with geometry + const offset + rubbersheeting

    i = slcStack(inps,
                 acquisitionDates,
                 stackMasterDate,
                 slaveDates,
                 pairs,
                 splitFlag=True,
                 rubberSheet=True)

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_igram")
    config_prefix = 'config_igram_'
    low_or_high = "/"
    runObj.igrams_network(pairs, acquisitionDates, stackMasterDate,
                          low_or_high, config_prefix)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_igramLowBand")
    config_prefix = 'config_igramLowBand_'
    low_or_high = "/LowBand/"
    runObj.igrams_network(pairs, acquisitionDates, stackMasterDate,
                          low_or_high, config_prefix)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_igramHighBand")
    config_prefix = 'config_igramHighBand_'
    low_or_high = "/HighBand/"
    runObj.igrams_network(pairs, acquisitionDates, stackMasterDate,
                          low_or_high, config_prefix)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_iono")
    config_prefix = 'config_iono_'
    lowBand = '/LowBand/'
    highBand = '/HighBand/'
    runObj.dispersive_nonDispersive(pairs, acquisitionDates, stackMasterDate,
                                    lowBand, highBand, config_prefix)
    runObj.finalize()
Ejemplo n.º 8
0
def offsetStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe_dict, pairs, updateStack):

    i = slcStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe_dict, updateStack)

    i+=1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_merge_master_slave_slc")
    runObj.mergeMaster(stackMasterDate, virtual = 'False')
    runObj.mergeSlaveSLC(slaveDates, virtual = 'False')
    runObj.finalize()

    i+=1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_dense_offsets")
    runObj.denseOffsets(pairs)        
    runObj.finalize()
Ejemplo n.º 9
0
def slcSimple(inps, acquisitionDates, safe_dict, mergeSLC=False):
    #############################
    i = 0
    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i))
    runObj.unpackSLC(acquisitionDates, safe_dict)
    runObj.finalize()

    if mergeSLC:
        i += 1
        runObj = run()
        runObj.configure(inps, 'run_' + str(i))
        runObj.mergeSLC(acquisitionDates, virtual='False')
        runObj.finalize()

    return i
Ejemplo n.º 10
0
def offsetStack(inps, acquisitionDates, stackReferenceDate, secondaryDates,
                safe_dict, pairs, updateStack):

    i = slcStack(inps, acquisitionDates, stackReferenceDate, secondaryDates,
                 safe_dict, updateStack)

    i += 1
    runObj = run()
    runObj.configure(inps,
                     'run_{:02d}_merge_reference_secondary_slc'.format(i))
    runObj.mergeReference(stackReferenceDate, virtual='False')
    runObj.mergeSecondarySLC(secondaryDates, virtual='False')
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_dense_offsets'.format(i))
    runObj.denseOffsets(pairs)
    runObj.finalize()
Ejemplo n.º 11
0
def interferogramStack(inps, acquisitionDates, stackReferenceDate, secondaryDates, pairs):
    # an interferogram stack without ionosphere correction.
    # coregistration is with geometry + const offset

    i = slcStack(inps, acquisitionDates, stackReferenceDate, secondaryDates, pairs, splitFlag=False, rubberSheet=False)

    i+=1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_igram'.format(i))
    config_prefix = 'config_igram_'
    low_or_high = "/"
    runObj.igrams_network(pairs, acquisitionDates, stackReferenceDate, low_or_high, config_prefix)
    runObj.finalize()
    return
Ejemplo n.º 12
0
def offsetStack(inps, acquisitionDates, stackReferenceDate, secondaryDates,
                safe_dict, pairs, updateStack):

    i = slcStack(inps, acquisitionDates, stackReferenceDate, secondaryDates,
                 safe_dict, updateStack)

    # default value of virtual_merge
    virtual_merge = 'False' if not inps.virtualMerge else inps.virtualMerge

    i += 1
    runObj = run()
    runObj.configure(inps,
                     'run_{:02d}_merge_reference_secondary_slc'.format(i))
    runObj.mergeReference(stackReferenceDate, virtual=virtual_merge)
    runObj.mergeSecondarySLC(secondaryDates, virtual=virtual_merge)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_dense_offsets'.format(i))
    runObj.denseOffsets(pairs)
    runObj.finalize()

    return i
Ejemplo n.º 13
0
def correlationStack(inps, acquisitionDates, stackMasterDate, slaveDates,
                     safe_dict, pairs, updateStack):

    #############################
    i = slcStack(inps, acquisitionDates, stackMasterDate, slaveDates,
                 safe_dict, updateStack)

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_merge_master")
    runObj.mergeMaster(stackMasterDate, virtual='False')
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_merge_burst_igram")
    runObj.burstIgram_mergeBurst(acquisitionDates, safe_dict, pairs)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_filter_coherence")
    runObj.filter_coherence(pairs)
    runObj.finalize()
Ejemplo n.º 14
0
def interferogramStack(inps, acquisitionDates, stackMasterDate, slaveDates,
                       pairs):
    # an interferogram stack without ionosphere correction.
    # coregistration is with geometry + const offset

    i = slcStack(inps,
                 acquisitionDates,
                 stackMasterDate,
                 slaveDates,
                 pairs,
                 splitFlag=False,
                 rubberSheet=False)

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_igram")
    config_prefix = 'config_igram_'
    low_or_high = "/"
    runObj.igrams_network(pairs, acquisitionDates, stackMasterDate,
                          low_or_high, config_prefix)
    runObj.finalize()
Ejemplo n.º 15
0
def slcStack(inps,
             acquisitionDates,
             stackMasterDate,
             slaveDates,
             pairs,
             splitFlag=False,
             rubberSheet=False):
    # A coregistered stack of SLCs
    i = 0

    if inps.bbox:
        i += 1
        runObj = run()
        runObj.configure(inps, 'run_' + str(i) + "_crop")
        config_prefix = "config_crop_"
        runObj.crop(acquisitionDates,
                    config_prefix,
                    native=not inps.zerodop,
                    israw=not inps.nofocus)
        runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_master")
    config_prefix = "config_master_"
    runObj.master_focus_split_geometry(stackMasterDate,
                                       config_prefix,
                                       split=splitFlag,
                                       focus=not inps.nofocus,
                                       native=not inps.zerodop)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_focus_split")
    config_prefix = "config_focus_split"
    runObj.slaves_focus_split(slaveDates,
                              config_prefix,
                              split=splitFlag,
                              focus=not inps.nofocus,
                              native=not inps.zerodop)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_geo2rdr_coarseResamp")
    config_prefix = "config_geo2rdr_coarseResamp_"
    runObj.slaves_geo2rdr_resampleSlc(stackMasterDate,
                                      slaveDates,
                                      config_prefix,
                                      native=(not inps.nofocus)
                                      or (not inps.zerodop))
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_refineSlaveTiming")
    config_prefix = 'config_refineSlaveTiming_'
    runObj.refineSlaveTiming_Network(pairs, stackMasterDate, slaveDates,
                                     config_prefix)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_invertMisreg")
    runObj.invertMisregPoly()
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_fineResamp")
    config_prefix = 'config_fineResamp_'
    runObj.slaves_fine_resampleSlc(stackMasterDate,
                                   slaveDates,
                                   config_prefix,
                                   split=splitFlag)
    runObj.finalize()

    if rubberSheet:
        i += 1
        runObj = run()
        runObj.configure(inps, 'run_' + str(i) + "_denseOffset")
        config_prefix = 'config_denseOffset_'
        runObj.denseOffsets_Network(pairs, stackMasterDate, slaveDates,
                                    config_prefix)
        runObj.finalize()

        i += 1
        runObj = run()
        runObj.configure(inps, 'run_' + str(i) + "_invertDenseOffsets")
        runObj.invertDenseOffsets()
        runObj.finalize()

        i += 1
        runObj = run()
        runObj.configure(inps, 'run_' + str(i) + "_resampleOffset")
        config_prefix = 'config_resampOffsets_'
        runObj.resampleOffset(slaveDates, config_prefix)
        runObj.finalize()

        i += 1
        runObj = run()
        runObj.configure(inps, 'run_' + str(i) + "_replaceOffsets")
        runObj.replaceOffsets(slaveDates)
        runObj.finalize()

        i += 1
        runObj = run()
        runObj.configure(inps, 'run_' + str(i) + "_fineResamp")
        config_prefix = 'config_fineResamp_'
        runObj.slaves_fine_resampleSlc(stackMasterDate,
                                       slaveDates,
                                       config_prefix,
                                       split=splitFlag)
        runObj.finalize()

    # adding the baseline grid generation
    i += 1
    config_prefix = 'config_baselinegrid_'
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_grid_baseline")
    runObj.gridBaseline(stackMasterDate, slaveDates, config_prefix)
    runObj.finalize()

    return i
Ejemplo n.º 16
0
def slcStack(inps, acquisitionDates, stackMasterDate, slaveDates, safe_dict, updateStack, mergeSLC=False):
    #############################
    i=0

    if not updateStack:
        i += 1
        runObj = run()
        runObj.configure(inps, 'run_' + str(i) + "_unpack_topo_master")
        runObj.unpackStackMasterSLC(safe_dict)
        runObj.finalize()

    i+=1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_unpack_slave_slc")
    runObj.unpackSlavesSLC(stackMasterDate, slaveDates, safe_dict)
    runObj.finalize()
   
    i+=1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_average_baseline")
    runObj.averageBaseline(stackMasterDate, slaveDates)
    runObj.finalize()

    if inps.coregistration in ['NESD', 'nesd']:
        if not updateStack:
            i+=1
            runObj = run()
            runObj.configure(inps, 'run_' + str(i) + "_extract_burst_overlaps")
            runObj.extractOverlaps()
            runObj.finalize()

        i+=1
        runObj = run()
        runObj.configure(inps, 'run_' + str(i) + "_overlap_geo2rdr_resample")
        runObj.overlap_geo2rdr_resample(slaveDates)
        runObj.finalize()

        i+=1
        runObj = run()
        runObj.configure(inps, 'run_' + str(i) + "_pairs_misreg")
        if updateStack:
            runObj.pairs_misregistration(slaveDates, safe_dict)
        else:
            runObj.pairs_misregistration(acquisitionDates, safe_dict)
        runObj.finalize()

        i+=1
        runObj = run()
        runObj.configure(inps, 'run_' + str(i) + "_timeseries_misreg")
        runObj.timeseries_misregistration()
        runObj.finalize()

    i+=1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_geo2rdr_resample")
    runObj.geo2rdr_resample(slaveDates)
    runObj.finalize()

    i+=1
    runObj = run()
    runObj.configure(inps, 'run_' + str(i) + "_extract_stack_valid_region")
    runObj.extractStackValidRegion()
    runObj.finalize()

    if mergeSLC:
        i+=1
        runObj = run()
        runObj.configure(inps, 'run_' + str(i) + "_merge")
        runObj.mergeMaster(stackMasterDate, virtual = 'False')
        runObj.mergeSlaveSLC(slaveDates, virtual = 'False')
        runObj.finalize()        
    
        i+=1
        runObj = run()
        runObj.configure(inps, 'run_' + str(i) + "_grid_baseline")
        runObj.gridBaseline(stackMasterDate, slaveDates)
        runObj.finalize()


    return i
Ejemplo n.º 17
0
def slcStack(inps,
             acquisitionDates,
             stackReferenceDate,
             secondaryDates,
             safe_dict,
             updateStack,
             mergeSLC=False):
    #############################
    i = 0

    if not updateStack:
        i += 1
        runObj = run()
        runObj.configure(inps, 'run_{:02d}_unpack_topo_reference'.format(i))
        runObj.unpackStackReferenceSLC(safe_dict)
        runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_unpack_secondary_slc'.format(i))
    runObj.unpackSecondarysSLC(stackReferenceDate, secondaryDates, safe_dict)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_average_baseline'.format(i))
    runObj.averageBaseline(stackReferenceDate, secondaryDates)
    runObj.finalize()

    if inps.coregistration in ['NESD', 'nesd']:
        if not updateStack:
            i += 1
            runObj = run()
            runObj.configure(inps,
                             'run_{:02d}_extract_burst_overlaps'.format(i))
            runObj.extractOverlaps()
            runObj.finalize()

        i += 1
        runObj = run()
        runObj.configure(inps, 'run_{:02d}_overlap_geo2rdr'.format(i))
        runObj.geo2rdr_offset(secondaryDates)
        runObj.finalize()

        i += 1
        runObj = run()
        runObj.configure(inps, 'run_{:02d}_overlap_resample'.format(i))
        runObj.resample_with_carrier(secondaryDates)
        runObj.finalize()

        i += 1
        runObj = run()
        runObj.configure(inps, 'run_{:02d}_pairs_misreg'.format(i))
        if updateStack:
            runObj.pairs_misregistration(secondaryDates, safe_dict)
        else:
            runObj.pairs_misregistration(acquisitionDates, safe_dict)
        runObj.finalize()

        i += 1
        runObj = run()
        runObj.configure(inps, 'run_{:02d}_timeseries_misreg'.format(i))
        runObj.timeseries_misregistration()
        runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_fullBurst_geo2rdr'.format(i))
    runObj.geo2rdr_offset(secondaryDates, fullBurst='True')
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_fullBurst_resample'.format(i))
    runObj.resample_with_carrier(secondaryDates, fullBurst='True')
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_extract_stack_valid_region'.format(i))
    runObj.extractStackValidRegion()
    runObj.finalize()

    if mergeSLC:
        i += 1
        runObj = run()
        runObj.configure(inps,
                         'run_{:02d}_merge_reference_secondary_slc'.format(i))
        runObj.mergeReference(stackReferenceDate, virtual='False')
        runObj.mergeSecondarySLC(secondaryDates, virtual='False')
        runObj.finalize()

        i += 1
        runObj = run()
        runObj.configure(inps, 'run_{:02d}_grid_baseline'.format(i))
        runObj.gridBaseline(stackReferenceDate, secondaryDates)
        runObj.finalize()

    return i
Ejemplo n.º 18
0
def slcStack(inps,
             acquisitionDates,
             stackReferenceDate,
             secondaryDates,
             pairs,
             splitFlag=False,
             rubberSheet=False):
    # A coregistered stack of SLCs
    i = 0

    if inps.bbox:
        i += 1
        runObj = run()
        runObj.configure(inps, 'run_{:02d}_crop'.format(i))
        config_prefix = "config_crop_"
        runObj.crop(acquisitionDates,
                    config_prefix,
                    native=not inps.zerodop,
                    israw=not inps.nofocus)
        runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_reference'.format(i))
    config_prefix = "config_reference_"
    runObj.reference_focus_split_geometry(stackReferenceDate,
                                          config_prefix,
                                          split=splitFlag,
                                          focus=not inps.nofocus,
                                          native=not inps.zerodop)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_focus_split'.format(i))
    config_prefix = "config_focus_split"
    runObj.secondarys_focus_split(secondaryDates,
                                  config_prefix,
                                  split=splitFlag,
                                  focus=not inps.nofocus,
                                  native=not inps.zerodop)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_geo2rdr_coarseResamp'.format(i))
    config_prefix = "config_geo2rdr_coarseResamp_"
    runObj.secondarys_geo2rdr_resampleSlc(stackReferenceDate,
                                          secondaryDates,
                                          config_prefix,
                                          native=(not inps.nofocus)
                                          or (not inps.zerodop))
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_refineSecondaryTiming'.format(i))
    config_prefix = 'config_refineSecondaryTiming_'
    runObj.refineSecondaryTiming_Network(pairs, stackReferenceDate,
                                         secondaryDates, config_prefix)
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_invertMisreg'.format(i))
    runObj.invertMisregPoly()
    runObj.finalize()

    i += 1
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_fineResamp'.format(i))
    config_prefix = 'config_fineResamp_'
    runObj.secondarys_fine_resampleSlc(stackReferenceDate,
                                       secondaryDates,
                                       config_prefix,
                                       split=splitFlag)
    runObj.finalize()

    if rubberSheet:
        i += 1
        runObj = run()
        runObj.configure(inps, 'run_{:02d}_denseOffset'.format(i))
        config_prefix = 'config_denseOffset_'
        runObj.denseOffsets_Network(pairs, stackReferenceDate, secondaryDates,
                                    config_prefix)
        runObj.finalize()

        i += 1
        runObj = run()
        runObj.configure(inps, 'run_{:02d}_invertDenseOffsets'.format(i))
        runObj.invertDenseOffsets()
        runObj.finalize()

        i += 1
        runObj = run()
        runObj.configure(inps, 'run_{:02d}_resampleOffset'.format(i))
        config_prefix = 'config_resampOffsets_'
        runObj.resampleOffset(secondaryDates, config_prefix)
        runObj.finalize()

        i += 1
        runObj = run()
        runObj.configure(inps, 'run_{:02d}_replaceOffsets'.format(i))
        runObj.replaceOffsets(secondaryDates)
        runObj.finalize()

        i += 1
        runObj = run()
        runObj.configure(inps, 'run_{:02d}_fineResamp'.format(i))
        config_prefix = 'config_fineResamp_'
        runObj.secondarys_fine_resampleSlc(stackReferenceDate,
                                           secondaryDates,
                                           config_prefix,
                                           split=splitFlag)
        runObj.finalize()

    # adding the baseline grid generation
    i += 1
    config_prefix = 'config_baselinegrid_'
    runObj = run()
    runObj.configure(inps, 'run_{:02d}_grid_baseline'.format(i))
    runObj.gridBaseline(stackReferenceDate, secondaryDates, config_prefix)
    runObj.finalize()

    return i