Example #1
0
 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()
Example #2
0
    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