Beispiel #1
0
        sFileDst = "_" + sCountryDepCode + "-" + sCountryName + "-border_allAreas.geojson"
    else:
        sFileDst = sCountryDepCode + "-" + sCountryName + "-border_" + sName + ".geojson"
    bpaTools.writeJsonFile(sDestPath + sFileDst, oMainFeature)

    if iIdx==-1:
        if oArea["geometry"]["type"]=="MultiPolygon":
            iIdx=0
            for oArea in oArea["geometry"]["coordinates"]:
                createGeoJsonFile(sFileSrc, sCountryName, sCountryCode, sCountryIsoCode, sCountryDepCode, oArea, iIdx)
                iIdx+=1
    return


if __name__ == '__main__':
    oLog = bpaTools.Logger(appId, logFile)
    oLog.resetFile()           #Clean du log si demandé

    sPathSrc = inpPath + "borders/ec.europa.eu/"
    #sFileSrc = "CNTR_RG_60M_2020_4326.geojson"       #Small resolution map
    sFileSrc = "CNTR_RG_01M_2020_4326.geojson"       #Hight resolution map
    oLog.info("Loading file: " + sFileSrc, outConsole=True)

    oSrcJson:dict = bpaTools.readJsonFile(sPathSrc + sFileSrc)
    oFeatures = oSrcJson["features"]
    for oCountry in oFeatures:
        sCountryName    = oCountry["properties"]["NAME_ENGL"]
        sCountryName = str(sCountryName).replace(" ","-")
        sCountryCode    = oCountry["properties"]["CNTR_ID"]
        sCountryIsoCode = oCountry["properties"]["ISO3_CODE"]
        oLog.info("Country: ({0}) {1} - {2}".format(sCountryIsoCode, sCountryCode, sCountryName) , outConsole=False)
Beispiel #2
0
    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
        if aixmCtrl.execParser(oOpts):  #Execution des traitements
            print()
Beispiel #3
0
    #### 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()
Beispiel #4
0
            geojson.append({
                "type": "Feature",
                "properties": {
                    "name": "Complex object"
                },
                "geometry": g
            })

        return geojson


if __name__ == '__main__':

    class MainTst:
        def __init__(self, oLog, outPath):
            self.oLog = oLog
            self.sOutPath = outPath
            self.sOutHeadFile = "tst_"
            self.sEncoding = "utf-8"
            self.oAixm = {}
            self.Draft = False

    appName = "Aixm2jsonTst"
    appPath = bpaTools.getFilePath(__file__)  #or your app path
    outPath = appPath + "../../out/"
    logFile = outPath + "_" + appName + ".log"
    oLog = bpaTools.Logger(appName, logFile, "", "", isSilent=False)
    oMain = MainTst(oLog, outPath)
    oTst = Aixm2jsonTst(oMain)
    oTst.testAll()
Beispiel #5
0
###  Context applicatif  ####
appName                 = bpaTools.getFileName(__file__)
appPath                 = bpaTools.getFilePath(__file__)
appVersion              = "1.0.0"
appId                   = appName + " v" + appVersion
outPath                 = appPath + "../../output/"
inPath                  = appPath + "../../input/"
logFile                 = outPath + "_" + appName + ".log"

###  Environnement applicatif  ###
poaffOutPath            = outPath + poaffCst.cstPoaffOutPath


if __name__ == '__main__':
    oLog = bpaTools.Logger(appId, logFile, poaffCst.callingContext, poaffCst.linkContext, isSilent=False)                                                   #Clean du log si demandé
    oLog.resetFile()

    sHeadFileDate:str      = "{0}_".format(bpaTools.getDateNow())
    #sSrcFile = inPath + "BPa/French-LTA/20201214_airspaces-freeflight-gpsWithTopo-geoFrench.txt"
    sSrcFile = inPath + "BPa/French-LTA/20210103_LTA-gpsWithTopo-geoFrench.txt"
    sDstFile = inPath + "BPa/French-LTA/"+ sHeadFileDate + "LTA-FrenchSurfaceS_BPa.txt"

    oAsCat:AsCatalog = airspacesCatalog.AsCatalog(oLog)             #Catalogue de zone vide
    oOpArea = OpenairArea(oLog, oAsCat, False)                      #Gestion des zones
    oOpArea.parseFile(sSrcFile, "BPa-French-LTA")                   #Analyse du contenu Openair

    oZone:OpenairZone = None      #Zone
    #for sUId, oZone in oOpArea.oOpenair.items():
    #    oLog.info("(sUId={0}) {1} - {2}".format(sUId, oZone.sClass, oZone.sName), outConsole=False)
Beispiel #6
0
                )  #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

    print()
    oLog.Report()
    iPostErr = oLog.CptCritical + oLog.CptError  #Nombre d'erreurs en post-traitements
    if iPostErr > 0: