def estimateOffsetField(reference, secondary, inps=None): ''' Estimate offset field between burst and simamp. ''' ###Loading the secondary image object sim = isceobj.createSlcImage() sim.load(secondary+'.xml') sim.setAccessMode('READ') sim.createImage() ###Loading the reference image object sar = isceobj.createSlcImage() sar.load(reference + '.xml') sar.setAccessMode('READ') sar.createImage() width = sar.getWidth() length = sar.getLength() objOffset = DenseAmpcor(name='dense') objOffset.configure() # objOffset.numberThreads = 6 objOffset.setWindowSizeWidth(inps.winwidth) objOffset.setWindowSizeHeight(inps.winhgt) objOffset.setSearchWindowSizeWidth(inps.srcwidth) objOffset.setSearchWindowSizeHeight(inps.srchgt) objOffset.skipSampleAcross = inps.skipwidth objOffset.skipSampleDown = inps.skiphgt objOffset.margin = inps.margin objOffset.oversamplingFactor = inps.oversample objOffset.setAcrossGrossOffset(inps.rgshift) objOffset.setDownGrossOffset(inps.azshift) objOffset.setFirstPRF(1.0) objOffset.setSecondPRF(1.0) if sar.dataType.startswith('C'): objOffset.setImageDataType1('mag') else: objOffset.setImageDataType1('real') if sim.dataType.startswith('C'): objOffset.setImageDataType2('mag') else: objOffset.setImageDataType2('real') objOffset.offsetImageName = inps.outprefix + '.bil' objOffset.snrImageName = inps.outprefix +'_snr.bil' objOffset.denseampcor(sar, sim) sar.finalizeImage() sim.finalizeImage() return objOffset
def estimateOffsetField(master, slave, denseOffsetFileName, ww=64, wh=64, sw=20, shh=20, kw=32, kh=32): ''' Estimate offset field between burst and simamp. ''' ###Loading the slave image object sim = isceobj.createSlcImage() sim.load(slave+'.xml') sim.setAccessMode('READ') sim.createImage() ###Loading the master image object sar = isceobj.createSlcImage() sar.load(master + '.xml') sar.setAccessMode('READ') sar.createImage() width = sar.getWidth() length = sar.getLength() objOffset = DenseAmpcor(name='dense') objOffset.configure() # objOffset.numberThreads = 6 objOffset.setWindowSizeWidth(ww) #inps.winwidth) objOffset.setWindowSizeHeight(wh) #inps.winhgt) objOffset.setSearchWindowSizeWidth(sw) #inps.srcwidth) objOffset.setSearchWindowSizeHeight(shh) #inps.srchgt) objOffset.skipSampleAcross = kw #inps.skipwidth objOffset.skipSampleDown = kh #inps.skiphgt objOffset.margin = 50 #inps.margin objOffset.oversamplingFactor = 32 #inps.oversample objOffset.setAcrossGrossOffset(0) #inps.rgshift) objOffset.setDownGrossOffset(0) #inps.azshift) objOffset.setFirstPRF(1.0) objOffset.setSecondPRF(1.0) if sar.dataType.startswith('C'): objOffset.setImageDataType1('mag') else: objOffset.setImageDataType1('real') if sim.dataType.startswith('C'): objOffset.setImageDataType2('mag') else: objOffset.setImageDataType2('real') objOffset.offsetImageName = denseOffsetFileName + '.bil' objOffset.snrImageName = denseOffsetFileName +'_snr.bil' objOffset.denseampcor(sar, sim) sar.finalizeImage() sim.finalizeImage() return (objOffset.locationDown[0][0], objOffset.locationAcross[0][0])