def createValidationResult(requestParams, gcps, gcpstargetSrs, LOGGER): """ Function creates a process image and creates a temporary wms. :type requestParams: dict :type gcps: List.<gdal.GCP> :type georefTargetSRS: int :type LOGGER: logging.LOGGER :return: str :raise: vkviewer.python.georef.georeferenceexceptions.ParameterException """ LOGGER.debug('Process georeference result ...') tmpFile = os.path.join(GEOREFERENCE_MAPFILE_FOLDER,requestParams['mapObj'].apsdateiname+"::"+str(uuid.uuid4())+".tif") destPath = None if requestParams['georeference']['algorithm'] == 'affine': destPath = rectifyImageAffine(requestParams['mapObj'].originalimage, tmpFile, [], gcps, gcpstargetSrs, LOGGER) elif requestParams['georeference']['algorithm'] == 'polynom': destPath = rectifyPolynomWithVRT(requestParams['mapObj'].originalimage, tmpFile, gcps, gcpstargetSrs, LOGGER, TMP_DIR) elif requestParams['georeference']['algorithm'] == 'tps': destPath = rectifyTpsWithVrt(requestParams['mapObj'].originalimage, tmpFile, gcps, gcpstargetSrs, LOGGER, TMP_DIR) else: raise ParameterException('Transformation algorithm - %s - is not supported yet.'%requestParams['georeference']['algorithm']) LOGGER.debug('Create temporary mapfile ...') wmsUrl = createMapfile(requestParams['mapObj'].apsdateiname, destPath, gcpstargetSrs, GEOREFERENCE_MAPFILE_TEMPLATE, GEOREFERENCE_MAPFILE_FOLDER, GEOREFERENCE_MAPFILE_DEFAULT_PARAMS) LOGGER.debug('Calculate extent ...') dataset = gdal.Open(destPath, GA_ReadOnly) extent = getBoundsFromDataset(dataset) LOGGER.debug('Deliver results.') return {'wmsUrl':wmsUrl,'layerId':requestParams['mapObj'].apsdateiname, 'extent': extent}
def testRectifyPolynomWithVRTForAKWithoutClip(self): destPath = os.path.join(self.dir, 'test-ak-rectified-polynom1-withoutclip-vrt.tif') file = os.path.join(self.dir,'test-ak.jpg') srs = 4314 gcps = [ gdal.GCP(13.322571166912697, 50.869534359847236, 0, 5473, 6079), gdal.GCP(13.346566162286086, 50.91926655702792, 0, 5670, 5589), gdal.GCP(13.53735995082988, 50.802610870942374, 0, 7020, 6807), gdal.GCP(13.667546305614797, 50.89755275702876, 0, 7812, 5913), gdal.GCP(13.741126714401176, 51.05625639529854, 0, 8338, 4161), gdal.GCP(13.681169234684086, 51.1685499300691, 0, 7942, 2791), gdal.GCP(13.47756543137287, 51.16569220735402, 0, 6609, 2882), gdal.GCP(13.300067220165836, 51.06061124738151, 0, 5102, 4096), gdal.GCP(13.310932518222272, 51.19680951127774, 0, 5295, 2447), gdal.GCP(12.921352950966174, 50.83419856543994, 0, 2536, 6561), gdal.GCP(12.983108161200633, 50.984707383627985, 0, 3048, 5009), gdal.GCP(12.973153769483801, 51.099562229978154, 0, 3091, 3676), gdal.GCP(13.119775225375355, 51.12445831286638, 0, 4017, 3228), gdal.GCP(13.124513229340627, 50.97154471762153, 0, 4037, 4961), ] response = rectifyPolynomWithVRT(file, destPath, gcps, srs, self.logger, self.dir, None, order=1) print '=====================' print 'Test if testRectifyPolynomWithVRTForAKWithoutClip ...' print 'Response: %s'%response print '=====================' self.assertEqual(response, destPath, "Response is not equal to %s"%destPath)
def createValidationResult(requestParams, gcps, gcpstargetSrs, LOGGER): """ Function creates a process image and creates a temporary wms. :type requestParams: dict :type gcps: List.<gdal.GCP> :type georefTargetSRS: int :type LOGGER: logging.LOGGER :return: str :raise: vkviewer.python.georef.georeferenceexceptions.ParameterException """ LOGGER.debug("Process georeference result ...") tmpFile = os.path.join( GEOREFERENCE_MAPFILE_FOLDER, requestParams["mapObj"].apsdateiname + "::" + str(uuid.uuid4()) + ".tif" ) destPath = None if requestParams["georeference"]["algorithm"] == "affine": destPath = rectifyImageAffine(requestParams["mapObj"].originalimage, tmpFile, [], gcps, gcpstargetSrs, LOGGER) elif requestParams["georeference"]["algorithm"] == "polynom": destPath = rectifyPolynomWithVRT( requestParams["mapObj"].originalimage, tmpFile, gcps, gcpstargetSrs, LOGGER, TMP_DIR ) elif requestParams["georeference"]["algorithm"] == "tps": destPath = rectifyTpsWithVrt( requestParams["mapObj"].originalimage, tmpFile, gcps, gcpstargetSrs, LOGGER, TMP_DIR ) else: raise ParameterException( "Transformation algorithm - %s - is not supported yet." % requestParams["georeference"]["algorithm"] ) LOGGER.debug("Create temporary mapfile ...") wmsUrl = createMapfile( requestParams["mapObj"].apsdateiname, destPath, gcpstargetSrs, GEOREFERENCE_MAPFILE_TEMPLATE, GEOREFERENCE_MAPFILE_FOLDER, GEOREFERENCE_MAPFILE_DEFAULT_PARAMS, ) LOGGER.debug("Calculate extent ...") dataset = gdal.Open(destPath, GA_ReadOnly) extent = getBoundsFromDataset(dataset) LOGGER.debug("Deliver results.") return {"wmsUrl": wmsUrl, "layerId": requestParams["mapObj"].apsdateiname, "extent": extent}