def makeAixm2Openair(sSrcPath: str, sSrcFile: str, sDstPath: str, sDstFile: str) -> None: aArgs = [ appName, aixmReader.CONST.frmtOPENAIR, aixmReader.CONST.typeAIRSPACES, aixmReader.CONST.optALL, aixmReader.CONST.optCleanLog ] aArgs += [ aixmReader.CONST.optOpenairDigitOptimize + "=" + str(poaffCst.cstOpenairDigitOptimize) ] if mOpenairEpsilonReduce != -1: aArgs += [ aixmReader.CONST.optEpsilonReduce + "=" + str(mOpenairEpsilonReduce) ] else: aArgs += [ aixmReader.CONST.optEpsilonReduce + "=" + str(poaffCst.cstOpenairEpsilonReduce) ] oOpts = bpaTools.getCommandLineOptions(aArgs) aixmCtrl = aixmReader.AixmControler(sSrcPath + sSrcFile, sDstPath, "", oLog) #Init controler aixmCtrl.bOpenairOptimizePoint = True #False-->'46:23:57 N 006:06:20 E' or True-->'46:23:57N 6:6:2E' #aixmCtrl.bOpenairOptimizeArc = False #--> Ne pas optimiser l'Arc car l'alignement du 1er point de l'arc de cercle ne coincide souvent pas avec le point théorique du départ de l'arc !? aixmCtrl.execParser(oOpts) #Execution des traitements renameFile(sDstPath, "airspaces-all-gpsWithTopo.txt", sDstPath, sDstFile) return
def makeAixm2Geojson(sSrcPath: str, sSrcFile: str, sDstPath: str, sDstFile: str) -> None: aArgs = [ appName, aixmReader.CONST.frmtGEOJSON, aixmReader.CONST.typeAIRSPACES, aixmReader.CONST.optALL, aixmReader.CONST.optCleanLog ] aArgs += [ aixmReader.CONST.optEpsilonReduce + "=" + str(poaffCst.cstGeojsonEpsilonReduce) ] oOpts = bpaTools.getCommandLineOptions(aArgs) aixmCtrl = aixmReader.AixmControler(sSrcPath + sSrcFile, sDstPath, "", oLog) #Init controler aixmCtrl.execParser(oOpts) #Execution des traitements renameFile(sDstPath, "airspaces-all.geojson", sDstPath, sDstFile) return
aixmReader.CONST.optEpsilonReduce + "=0.001 " + aixmReader.CONST.optCleanLog) print("") print(" Resources") print( " GeoJSON test format: http://geojson.tools/ -or- http://geojson.io" ) print( " OpenAir test format: http://xcglobe.com/cloudapi/browser -or- http://cunimb.net/openair2map.php" ) return if __name__ == '__main__': ### Context d'excecution oOpts = bpaTools.getCommandLineOptions( sys.argv) #Arguments en dictionnaire oLog = bpaTools.Logger(___AppId___, __LogFile__, isSilent=bool(aixmReader.CONST.optSilent in oOpts)) if len(sys.argv) < 2 or (aixmReader.CONST.optHelp in oOpts): syntaxe() #Aide en ligne oLog.closeFile() else: if aixmReader.CONST.optCleanLog in oOpts: oLog.resetFile() #Clean du log oLog.writeCommandLine(sys.argv) #Trace le contexte d'execution sSrcFile = sys.argv[1] #Nom de fichier aixmCtrl = aixmReader.AixmControler( sSrcFile, __OutPath__, oLog=oLog) #Controler de traitements
oFile) #Forcer mise à jour des référentiels d'altitudes parseFile( sKey, oFile ) #Regénération des fichiers après maj des référentiels return if __name__ == '__main__': sCallingContext = None bpaTools.createFolder(outPath) #Initialisation bpaTools.createFolder(poaffOutPath) #Initialisation bpaTools.createFolder(poaffOutPath + poaffCst.cstReferentialPath) #Initialisation oOpts = bpaTools.getCommandLineOptions(aArgs) #Arguments en dictionnaire oLog = bpaTools.Logger(appId, logFile, poaffCst.callingContext, poaffCst.linkContext, debugLevel=debugLevel, isSilent=bool(aixmReader.CONST.optSilent in oOpts)) if aixmReader.CONST.optCleanLog in oOpts: oLog.resetFile() #Clean du log si demandé #--------- creation des fichiers unitaires ---------- if aixmPaserConstruct: poaffGenerateFiles() #Creation des fichiers poaffMergeFiles() #Consolidation des fichiers makeKmlFiles() #Sortie du ficher en KMLs