def getState(self): self.geoWidth = geozero.getGeoWidth_Py() self.geoLength = geozero.getGeoLength_Py() self.minimumGeoLatitude = geozero.getMinimumGeoLatitude_Py() self.minimumGeoLongitude = geozero.getMinimumGeoLongitude_Py() self.maximumGeoLatitude = geozero.getMaximumGeoLatitude_Py() self.maximumGeoLongitude = geozero.getMaximumGeoLongitude_Py()
def geocode(self, demImage=None, inputImage=None, method=None): self.activateInputPorts() if demImage is not None: self.demImage = demImage if inputImage is not None: self.inputImage = inputImage if method is not None: self.method = method if self.orbit is None: raise Exception('No orbit provided for geocoding') self.setDefaults() self.createImages() self.setState() #this inits the image in the c++ bindings if not self.inputImage.dataType.upper().count('FLOAT'): self.inputImage.setCaster('read', 'FLOAT') self.inputImage.createImage() self.demImage.setCaster('read', 'FLOAT') self.demImage.createImage() demAccessor = self.demImage.getImagePointer() inputAccessor = self.inputImage.getImagePointer() complexFlag = self.inputImage.dataType.upper().startswith('C') nBands = self.inputImage.getBands() cOrbit = self.orbit.exportToC(reference=self.sensingStart) geozero.setOrbit_Py(cOrbit) #####Output cropped DEM for first band inband = 0 outband = 0 geozero.geozero_Py(demAccessor, inputAccessor, self.demCropAccessor, self.geoAccessor, inband, outband, int(complexFlag), int(self.interp_methods[self.method])) #####Supress cropped DEM output for other bands for kk in range(1, nBands): self.demImage.rewind() self.inputImage.rewind() self.demCropImage.rewind() self.geoImage.rewind() inband = kk outband = kk demCropAcc = 0 geozero.geozero_Py(demAccessor, inputAccessor, demCropAcc, self.geoAccessor, inband, outband, int(complexFlag), int(self.interp_methods[self.method])) combinedlibmodule.freeCOrbit(cOrbit) self.getState() self.demImage.finalizeImage() self.inputImage.finalizeImage() self.destroyImages() self.geoImage.setWidth(geozero.getGeoWidth_Py()) self.geoImage.trueDataType = self.geoImage.getDataType() # self.geoImage.description = "DEM-flattened interferogram orthorectified to an equi-angular latitude, longitude grid" self.geoImage.coord2.coordDescription = 'Latitude' self.geoImage.coord2.coordUnits = 'degree' self.geoImage.coord2.coordStart = self.maximumGeoLatitude self.geoImage.coord2.coordDelta = self.deltaLatitude self.geoImage.coord1.coordDescription = 'Longitude' self.geoImage.coord1.coordUnits = 'degree' self.geoImage.coord1.coordStart = self.minimumGeoLongitude self.geoImage.coord1.coordDelta = self.deltaLongitude descr = self.inputImage.getDescription() if descr not in [None, '']: self.geoImage.addDescription(descr) self.geoImage.renderHdr() return None