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 parseFile(sKey: str, oFile: dict) -> bool: oLog.info(aixmParserId + " --> parseFile() by aixmReader.AixmControler()", outConsole=True) bpaTools.createFolder( oFile[poaffCst.cstSpOutPath]) #Init dossier de sortie aixmCtrl = aixmReader.AixmControler(oFile[poaffCst.cstSpSrcFile], oFile[poaffCst.cstSpOutPath], sKey, oLog) #Init controler ret = aixmCtrl.execParser(oOpts, catalogConstruct) #Execution des traitements return ret
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
" 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 if aixmCtrl.execParser(oOpts): #Execution des traitements print() oLog.Report() else: syntaxe() oLog.closeFile()
#### poaf - Specifique test for bigData #### #srcFile = "../../poaff/input/SIA/20200813-20200909_aixm4.5_SIA-FR.xml" #srcFile = "../../poaff/input/EuCtrl/20200618_aixm4.5_Eurocontrol-FR.xml" #srcFile = "../../poaff/input/EuCtrl/20201105_aixm4.5_Eurocontrol-Euro_BPa.xml" #aArgv = [appName, srcFile, "-Fall", aixmReader.CONST.typeAIRSPACES, aixmReader.CONST.optVFR, aixmReader.CONST.optFreeFlight] #### Ajout de l'option d'appel pour la gestion du Log #### aArgv += [aixmReader.CONST.optCleanLog ] #Mode classique avec log et afficages sur console système #aArgv += [aixmReader.CONST.optSilent] #Mode silencieux sans utilisation du fichier log et sans retour d'affichage #### Préparation d'appel #### oOpts = bpaTools.getCommandLineOptions(aArgv) #Arguments en dictionnaire oLog = bpaTools.Logger(appId, logFile, callingContext, linkContext, isSilent=bool(aixmReader.CONST.optSilent in oOpts)) if aixmReader.CONST.optCleanLog in oOpts: oLog.resetFile() #Clean du log si demandé oLog.writeCommandLine(aArgv) #Trace le contexte d'execution aixmCtrl = aixmReader.AixmControler(srcFile, outPath, "", oLog=oLog) #Init controler if aixmCtrl.execParser(oOpts): #Execution des traitements print() if oLog.CptCritical or oLog.CptError: print("/!\ Processing Error(s)") oLog.Report() oLog.closeFile()