예제 #1
0
 def __init__(self, oCtrl):
     bpaTools.initEvent(__file__, oCtrl.oLog)
     self.oCtrl = oCtrl
     self.oCtrl.oLog.info("Tests de génération Geojson", outConsole=True)
     #self.oAixmTools:aixm2json.Aixm2json4_5 = aixm2json.Aixm2json4_5(oCtrl)
     self.oAixmTools: AixmTools = aixmReader.AixmTools(oCtrl)
     return
예제 #2
0
 def __init__(self, oCtrl):
     bpaTools.initEvent(__file__, oCtrl.oLog)
     self.oCtrl = oCtrl
     self.oAixm2json = aixm2json.Aixm2json4_5(oCtrl)
     print()
     self.oCtrl.oLog.info("Tests de génération Geojson", outConsole=True)
     return
예제 #3
0
 def __init__(self, oCtrl) -> None:
     bpaTools.initEvent(__file__, oCtrl.oLog)
     self.oCtrl = oCtrl
     self.oAirspacesCatalog = None
     self.geoBorders = None  #Geographic borders dictionary
     self.geoAirspaces = None  #Geographic airspaces dictionary
     return
예제 #4
0
 def __init__(self, oCtrl=None, openType='xml'):
     bpaTools.initEvent(__file__, oCtrl.oLog)
     self.oCtrl = oCtrl                  #Référence du contrôleur appelant
     self.openType = openType            #openType in ["xml"(default) or "lxml"(html solution, with lowercase elements)]
     self.doc:BeautifulSoup = None
     self.root:BeautifulSoup = None
     self.OpenFile()
     return
예제 #5
0
 def __init__(self, oCtrl) -> None:
     bpaTools.initEvent(__file__, oCtrl.oLog)
     self.oCtrl = oCtrl
     self.oAirspacesCatalog = None
     self.geoBorders = None  #Geographic borders dictionary
     self.geoAirspaces = None  #Geographic airspaces dictionary
     self.epsilonReduce: float = -1  #Default value=0 for no-doubling with no-compression, =0.0001 for good compression
     return
예제 #6
0
 def __init__(self, oCtrl):
     if oCtrl: bpaTools.initEvent(__file__, oCtrl.oLog)
     self.oCtrl = oCtrl
     #self.pLocal = Proj("epsg:2154")         # EPSG:2154 = RGF93 / Lambert-93 - Projected coordinate system for France) :: Deprecated format --> Proj(init="epsg:2154")
     self.pWGS = Proj(
         "epsg:4326"
     )  # EPSG:4326 = WGS84 / Geodetic coordinate system for World  :: Deprecated format --> Proj(init="epsg:4326")
     return
예제 #7
0
 def __init__(self, oCtrl):
     if oCtrl:  bpaTools.initEvent(__file__, oCtrl.oLog)
     self.oCtrl = oCtrl
     #self.pLocal = Proj("epsg:2154")         # EPSG:2154 = RGF93 / Lambert-93 - Projected coordinate system for France) :: Deprecated format --> Proj(init="epsg:2154")
     self.pWGS = Proj("epsg:4326")            # EPSG:4326 = WGS84 / Geodetic coordinate system for World  :: Deprecated format --> Proj(init="epsg:4326")
     self.bSrcFileIsSIAorEur:bool = False
     if self.oCtrl:
         self.bSrcFileIsSIAorEur = bool(self.oCtrl.oAixm.srcOrigin.lower() in ["sia-france","ead-sdo"])     #Fichier source issu du SIA ou d'Eurocontrol
     return
예제 #8
0
파일: xmlSIA.py 프로젝트: BPascal-91/poaff
 def __init__(self, oLog):
     bpaTools.initEvent(__file__, oLog)
     self.oLog = oLog
     self.sKeyFile:str = None
     self.doc:BeautifulSoup = None
     self.root:BeautifulSoup = None
     self.situation:BeautifulSoup = None
     self.oFrequecies:dict = {}
     return
예제 #9
0
 def __init__(self, oLog: bpaTools.Logger, oAsCat: AsCatalog,
              partialConstruct: bool) -> None:
     bpaTools.initEvent(__file__, oLog)
     self.oLog: bpaTools.Logger = oLog  #Log file
     self.oAsCat: AsCatalog = oAsCat  #Catalogue des zones
     self.oIdxGeoJSON: dict = {}  #Index de construction GeoJSON
     self.oGlobalGeoJSON: dict = {}  #Liste globale des zones
     self.oOutGeoJSON: dict = {}  #Sortie finale GeoJSON
     self.oGeoRefArea = geoRefArea.GeoRefArea(partialConstruct)
     return
예제 #10
0
 def __init__(self, oCtrl) -> None:
     bpaTools.initEvent(__file__, oCtrl.oLog)
     self.oCtrl = oCtrl
     self.oAirspacesCatalog = None
     self.geoBorders = None  #Geographic borders dictionary
     self.geoAirspaces = None  #Geographic airspaces dictionary
     self.openairDigitOptimize: int = -1  #Parameter for optimize output geometry coordinates (default=-1 no-optimize)
     self.epsilonReduce: float = -1  #Default value=-1 for no-compression
     self.sOutFrmt = "D:M:S.ssX" if self.oCtrl.bOpenairOptimizePoint else "DD:MM:SS.ssX"
     return
예제 #11
0
 def __init__(self, oLog: bpaTools.Logger, oAsCat: AsCatalog,
              partialConstruct: bool) -> None:
     bpaTools.initEvent(__file__, oLog)
     self.oLog: bpaTools.Logger = oLog  #Log file
     self.oAsCat: AsCatalog = oAsCat  #Catalogue des zones
     self.oGlobalOpenair: dict = {}  #Liste globale des zones
     self.oOpenair: dict = {}  #Liste temporaire des zones
     self.oZone: OpenairZone = None  #Zone active
     self.oGeoRefArea = geoRefArea.GeoRefArea(partialConstruct)
     self.newZone()
     return
예제 #12
0
 def __init__(self, oLog=None, oGeo: dict = None) -> None:
     self.oLog = None
     if oLog:
         bpaTools.initEvent(__file__, oLog)
         self.oLog: bpaTools.Logger = oLog  #Log file
     self.oKmlTmp: dict = {}
     self.oKml: bpaTools.Xml = None
     self.oKmlDoc = None
     self.oGeo: dict = None
     if oGeo:
         self.oGeo: dict = oGeo
     return
예제 #13
0
 def __init__(self, oLog=None, oGeo: dict = None) -> None:
     self.oLog: bpaTools.Logger = None
     if oLog:
         bpaTools.initEvent(__file__, oLog)
         self.oLog = oLog
     self.iDecimal = 3
     self.oInpGeo: dict = None  #GeoJSON input data
     self.oOutGeo: dict = None  #GeoJSON output data
     if oGeo:
         self.setGeo(oGeo)
         self.truncateGeojsonFeature()
     return
예제 #14
0
 def __init__(self, sLogName:str, sLogFile:str, sContext="", sLink=None, isDebug:bool=False, isSilent:bool=False)-> None:
     bpaTools.initEvent(__file__, isSilent=isSilent)
     #print(self.__class__.__name__, self.__class__.__module__, self.__class__.__dir__)
     self.sLogName = sLogName
     self.sLogFile = sLogFile
     self.sContext = sContext
     self.sLink = sLink
     self.log = None
     self.isSilent = isSilent    # Set as 'True' for Silent mode (no log-file, no system-message, but log-report is available ;-)
     self.isDebug = isDebug      # Set as 'True' for write the debug-messages in the log-file
     if not self.isSilent:
         msg = self.getMediumName()
         print(msg + "\n" + ("-" * len(msg)))
     self.__initFile__()
     return
    def __init__(self, oLog, srcPath, refPath, headFileName=""):
        bpaTools.initEvent(__file__, oLog)
        self.oLog = oLog
        self.refPath = refPath
        self.srcPath = srcPath
        self.headFileName = headFileName

        self.elevation_data = srtm.get_data()

        self.sHead = "headerFile"
        self.sProp = "properties"
        self.sGeom = "geometry"
        self.sCoor = "coordinates"
        self.sRefe = "referential"
        self.sFeat = "features"

        self.sUnknownGroundHeightFileName = self.headFileName + "refUnknownGroundHeight.json"
        self.sGroundHeightFileName = self.headFileName + "refGroundEstimatedHeight"
        self.sGroundHeightFileNameJson = self.sGroundHeightFileName + ".json"
        self.sGroundHeightFileNameGeoj = self.sGroundHeightFileName + ".geojson"
        return
예제 #16
0
    def __init__(self, sSrcFile, sOutPath, sOutHeadFile="", oLog=None):
        bpaTools.initEvent(__file__, oLog)
        self.srcFile = sSrcFile  #Source file
        self.sOutPath = sOutPath  #Destination folder
        self.sOutHeadFile = sOutHeadFile  #File name header for outputs files
        if sOutHeadFile != "":
            self.sOutHeadFile += "@"
        self.oLog = oLog  #Log file

        self.oAixm = None  #Lecteur xml du fichier source
        self.oAixmTools = None  #Utilitaire pour geojson
        self.sEncoding = "utf-8"  #Encoding du fichier source
        self.__ALL = False  #Generation de toutes zones cartographie IFR+VFR
        self.__IFR = False  #Generation spécifique pour cartographie IFR (au dessus de FL115)
        self.__VFR = False  #Generation spécifique pour cartographie VFR (en dessous FL115)
        self.__FreeFlight = False  #Generation spécifique pour le Vol Libre avec différents filtrages (E, F, G...)
        self.__Draft = False  #Limitation du nombre de segmentation des arcs et cercles en geojson
        self.__MakePoints4map = False  #Construction de points complémentaires pour mise au point de la sorties geojson

        self.digit4roundArc = 6  #Précision du nombre de digit pour les arrondis des Arcs/Cercles
        self.digit4roundPoint = self.digit4roundArc  #Précision du nombre de digit pour les arrondis des Points
        return
예제 #17
0
 def __init__(self,
              sLogName: str,
              sLogFile: str,
              sContext="",
              sLink=None,
              debugLevel: int = 0,
              isSilent: bool = False) -> None:
     bpaTools.initEvent(__file__, isSilent=isSilent)
     #print(self.__class__.__name__, self.__class__.__module__, self.__class__.__dir__)
     self.startTime = datetime.datetime.now()
     self.sLogName: str = sLogName
     self.sLogFile: str = sLogFile
     self.sContext: str = sContext
     self.sLink: str = sLink
     self.log: logging.Logger = None
     self.isSilent: bool = isSilent  # set 'True' for silent mode (no log-file, no system-message, but log-report is available ;-)
     self.debugLevel: int = debugLevel  # set level value for write the debug-messages in the log-file. Default=0 NoneExit; -1=allExit ; 1 to n for set level [9 for initEvent())]
     if not self.isSilent:
         msg = self.getMediumName()
         print(msg + "\n" + ("-" * len(msg)))
     self.__initFile__()
     return
예제 #18
0
    def __init__(self, sSrcFile, sOutPath, sOutHeadFile="", oLog=None):
        bpaTools.initEvent(__file__, oLog)
        self.srcFile: str = sSrcFile  #Source file
        self.sOutPath: str = sOutPath  #Destination folder
        self.sOutHeadFile: str = sOutHeadFile  #File name header for outputs files
        if sOutHeadFile != "":
            self.sOutHeadFile += "@"
        self.oLog: bpaTools.Logger = oLog  #Log file
        self.oAixm = None  #Lecteur xml du fichier source
        self.oAixmTools = None  #Utilitaire pour geojson
        self.sEncoding: str = "utf-8"  #Encoding du fichier source
        self.__ALL: bool = False  #Generation de toutes zones cartographie IFR+VFR
        self.__IFR: bool = False  #Generation spécifique pour cartographie IFR (au dessus de FL115)
        self.__VFR: false = False  #Generation spécifique pour cartographie VFR (en dessous FL115)
        self.__FreeFlight: bool = False  #Generation spécifique pour le Vol Libre avec différents filtrages (E, F, G...)
        self.__Draft: bool = False  #Limitation du nombre de segmentation des arcs et cercles en geojson
        self.__MakePoints4map: bool = False  #Construction de points complémentaires pour mise au point de la sorties geojson

        self.bOpenairOptimizeArc: bool = False  #Openair - 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 !? - Optimisation des sorties d'Arc en Openair (suppression des Point de début et de Fin d'arc (DP) en doublon avec la description de l'arc)
        self.bOpenairOptimizePoint: bool = True  #Openair - Optimisation des sorties des Points (DP). Exp src="DP 46:03:04.000 N 000:31:01.1200 W" optimize="DP 46:3:4N 0:31:1.12W"
        self.geojsonDigitOptimize: int = 6  #parameter for optimize output geometry coordinates (default=6 digits)
        self.openairDigitOptimize: int = -1  #parameter for optimize output geometry coordinates (default=-1 no-optimize)
        self.epsilonReduce: float = -1  #parameter for Ramer-Douglas-Peucker Algorithm (https://github.com/fhirschmann/rdp) (default=-1 no-optimize)
        return