Exemplo n.º 1
0
 def smethod_0(binaryReader_0, byte_0):
     if not isinstance(binaryReader_0, QDataStream):
         return
     position = Position()
     fato = Fato()
     if (byte_0 != 1):
         raise Messages.ERR_INVALID_FILE_FORMAT
         # throw new Exception(Messages.ERR_INVALID_FILE_FORMAT)
     fato.name = binaryReader_0.readQString()
     fato.des1 = binaryReader_0.readQString()
     fato.des2 = binaryReader_0.readQString()
     fato.safetyAreaWidth = binaryReader_0.readDouble()
     fato.safetyAreaStart = binaryReader_0.readDouble()
     fato.safetyAreaEnd = binaryReader_0.readDouble()
     num = binaryReader_0.readInt()
     for i in range(num):
         positionType = binaryReader_0.readInt()
         flag = binaryReader_0.readBool()
         if (binaryReader_0.readBool()):
             position = Position(
                 positionType, None, None, None,
                 Altitude(binaryReader_0.readDouble()),
                 Degrees.smethod_1(binaryReader_0.readDouble()),
                 Degrees.smethod_5(binaryReader_0.readDouble())) if (
                     not flag) else Position(
                         positionType, None, binaryReader_0.readDouble(),
                         binaryReader_0.readDouble(),
                         Altitude(binaryReader_0.readDouble()))
             if (i >= 3):
                 fato.Add(position)
             else:
                 fato[i] = position
     return fato
    def calcRadiusArea3(self):
        try:
            pdg = 0.0
            try:
                pdg = float(self.parametersPanel.txtPdg.text())
            except:
                pass

            dist1 = math.fabs((Altitude(
                float(self.parametersPanel.txtTurningAltitude.text()),
                AltitudeUnits.FT).Metres - Altitude(
                    float(self.parametersPanel.txtNextSegmentAltitude.text()),
                    AltitudeUnits.FT).Metres) / (3.3 / 100.0))
            dist2 = math.fabs((
                Altitude(float(self.parametersPanel.txtTurningAltitude.text()),
                         AltitudeUnits.FT).Metres -
                float(self.parametersPanel.pnlDer.txtAltitudeM.text()) - 5.0) /
                              (pdg / 100.0))
            # print dist1, dist2
            self.parametersPanel.txtRadius.setText(str(round(dist1 + dist2,
                                                             4)))
            self.parametersPanel.txtRadiusFt.setText(
                str(round(Unit.ConvertMeterToNM(dist1 + dist2), 4)))
        except:
            pass
Exemplo n.º 3
0
 def method_2(self, point3d_0):
     if (not self.Assigned):
         return Altitude(point3d_0.z())
     if self.eqAltitude != None:
         return Altitude(self.eqAltitude)
     position = self.Obstacle.position
     return Altitude(position.z() + self.Obstacle.trees)
    def autoCalcFinishMagVar(self):
        try:
            if self.parametersPanel.chbAutoFinishMagVar.Checked:
                finishPt = None
                finishLat = None
                finishLon = None
                degree3 = None
                num = None
                result, degree, degree1 = self.parametersPanel.pnlStartPosP.method_3(
                )
                if (result):
                    value = float(self.parametersPanel.txtForwardTP.Value)
                    value1 = float(self.parametersPanel.txtForwardTP.Value)
                    distance = self.parametersPanel.txtDistanceP.Value
                    result1, degree2, degree3, num = Geo.smethod_6(
                        self.parametersPanel.cmbCalculationTypeP.SelectedItem,
                        degree, degree1, value, distance)
                    if (result1):
                        finishPt = Point3D(degree3, degree2)

                        finishLat = degree2
                        finishLon = degree3
                if finishPt != None and self.model != None and self.date != None:
                    # result, degree, degree1 = self.parametersPanel.pnlStartPosP.method_3();
                    result2, degree2 = Geo.smethod_7(finishLat, finishLon,
                                                     Altitude(0), self.model,
                                                     self.date)
                    if (result2):
                        degree2 = round(degree2, 2)
                        self.parametersPanel.pnlVarFinishP.Value = degree2
        except:
            pass
    def btnEvaluate_Click(self):
        point3dCollection = None
        point3dCollection1 = None
        polylineArea = None
        polylineArea1 = None
        polylineArea2 = None
        primaryObstacleArea = None
        #         if (self.parametersPanel.cmbSelectionMode.currentText() == "Manual" and not self.pnlSelectionMode.method_0()):
        #             return;
        result, point3dCollection, point3dCollection1, polylineArea, polylineArea1, polylineArea2 = self.method_34(
        )
        if (not result):
            return
        point3d = self.parametersPanel.pnlDer.Point3d
        num = MathHelper.getBearing(self.parametersPanel.pnlRwyStart.Point3d,
                                    point3d)
        percent = float(self.parametersPanel.txtMoc.text())
        percent1 = float(self.parametersPanel.txtPdg.text())

        ObstacleTable.MocMultiplier = self.parametersPanel.mocSpinBox.value()
        self.obstaclesModel = DepartureOmnidirectionalObstacles(
            point3d, num,
            Altitude(float(self.parametersPanel.txtTurningAltitude.text()),
                     AltitudeUnits.FT), percent, percent1,
            self.parametersPanel.chbCatH.isChecked(), point3dCollection,
            point3dCollection1, polylineArea1, polylineArea2,
            self.manualPolygon)

        #
        return FlightPlanBaseDlg.btnEvaluate_Click(self)
Exemplo n.º 6
0
 def smethod_2(altitude_0, altitude_1, altitude_2, double_0):
     num = 0.0065
     metres = 15 - num * altitude_2.Metres
     double0 = -(metres - double_0)
     return Altitude(
         -double0 / -num * math.log(1 - num * altitude_0.Metres /
                                    (288.15 - num * altitude_1.Metres)),
         AltitudeUnits.M)
Exemplo n.º 7
0
 def txtAltitudeChanged(self):
     try:
         self.method_29()
         self.parametersPanel.pnlWind.setAltitude(
             Altitude(float(self.parametersPanel.txtAltitude.text()),
                      AltitudeUnits.FT))
     except:
         pass
    def btnPDTCheck_Click(self):
        pdtResultStr = MathHelper.pdtCheckResultToString(
            float(self.parametersPanel.txtIsa.text()),
            Altitude(float(self.parametersPanel.txtAltitude.text()),
                     AltitudeUnits.FT),
            float(self.parametersPanel.txtIas.text()),
            float(self.parametersPanel.txtTime.text()))

        QMessageBox.warning(self, "PDT Check", pdtResultStr)
Exemplo n.º 9
0
    def initParametersPan(self):
        ui = Ui_IasToTas()
        self.parametersPanel = ui
        FlightPlanBaseSimpleDlg.initParametersPan(self)

        self.parametersPanel.pnlWind = WindPanel(
            self.parametersPanel.gbNonStandard)
        self.parametersPanel.pnlWind.lblIA.setMinimumSize(180, 0)
        self.parametersPanel.pnlWind.speedBox.setEnabled(False)
        self.parametersPanel.vLayoutNonStandard.insertWidget(
            0, self.parametersPanel.pnlWind)
        self.parametersPanel.pnlWind.setAltitude(
            Altitude(float(self.parametersPanel.txtAltitude.text()),
                     AltitudeUnits.FT))

        self.parametersPanel.txtAltitude.textChanged.connect(
            self.txtAltitudeChanged)
        self.parametersPanel.cmbType.addItems([
            IasTasSegmentType.Departure, IasTasSegmentType.Enroute,
            IasTasSegmentType.Holding, IasTasSegmentType.InitialRR,
            IasTasSegmentType.InitialDR, IasTasSegmentType.IafIfFaf,
            IasTasSegmentType.MissedApproach
        ])
        self.parametersPanel.cmbType.currentIndexChanged.connect(
            self.method_29)
        self.parametersPanel.txtIAS.textChanged.connect(self.method_29)
        self.parametersPanel.txtAltitude.textChanged.connect(self.method_29)
        self.parametersPanel.txtTime.textChanged.connect(self.method_29)
        self.parametersPanel.txtISA.textChanged.connect(self.method_29)

        self.parametersPanel.btnEST.clicked.connect(self.btnESTClicked)
        self.parametersPanel.btnREA.clicked.connect(self.btnREAClicked)
        self.parametersPanel.btnC.clicked.connect(self.btnCClicked)
        self.parametersPanel.btnD.clicked.connect(self.btnDClicked)
        self.parametersPanel.btnX.clicked.connect(self.btnXClicked)
        self.parametersPanel.btnNonStd.clicked.connect(self.btnNonStdClicked)

        self.parametersPanel.txtAltitudeM.textChanged.connect(
            self.txtAltitudeMChanged)
        self.parametersPanel.txtAltitude.textChanged.connect(
            self.txtAltitudeFtChanged)

        self.flag = 0
        if self.flag == 0:
            self.flag = 2
        if self.flag == 1:
            self.flag = 0
        if self.flag == 2:
            try:
                self.parametersPanel.txtAltitudeM.setText(
                    str(
                        Unit.ConvertFeetToMeter(
                            float(self.parametersPanel.txtAltitude.text()))))
            except:
                self.parametersPanel.txtAltitudeM.setText("0.0")

        self.method_29()
    def method_29(self):
        self.dmeTolerance = Distance.NaN
        self.slantTolerance = Distance.NaN
        self.pilotDistance = Distance.NaN
        self.groundDistance = Distance.NaN
        if self.parametersPanel.txtDistance.text() == "" or self.parametersPanel.txtAcAltitude.text() == "" or self.parametersPanel.txtDmeAltitude.text() == "":
            self.parametersPanel.gbResult.setVisible(False)
        else:
            nauticalMiles = float(self.parametersPanel.txtDistance.text())
            metres = Altitude(float(self.parametersPanel.txtAcAltitude.text()), AltitudeUnits.FT).Metres
            value = Altitude(float(self.parametersPanel.txtDmeAltitude.text()))
            num = Unit.ConvertMeterToNM(metres - value.Metres)
            if (nauticalMiles <= 0):
                self.parametersPanel.label_72.setText(Captions.DME_TOLERANCE_OVERHEAD)
                self.dmeTolerance = Distance(460)
            elif (num <= nauticalMiles):
                if (self.parametersPanel.cmbCalculationType.currentIndex() != 0):
                    self.groundDistance = Distance(math.sqrt(nauticalMiles * nauticalMiles - num * num), DistanceUnits.NM)
                    self.pilotDistance = Distance(nauticalMiles, DistanceUnits.NM)
                    self.slantTolerance = Distance(self.pilotDistance.NauticalMiles - self.groundDistance.NauticalMiles, DistanceUnits.NM)
                    self.parametersPanel.lblResultDistance.setText(Captions.GROUND_DISTANCE)
                    self.parametersPanel.label_72.setText(Captions.DME_TOLERANCE)
                    self.parametersPanel.txtResultDistance.setText(str(round(self.groundDistance.NauticalMiles,2)) +" nm" + " / " + str(round(self.groundDistance.Metres,2)) +" m")
                else:
                    self.pilotDistance = Distance(math.sqrt(nauticalMiles * nauticalMiles + num * num), DistanceUnits.NM)
                    self.groundDistance = Distance(nauticalMiles, DistanceUnits.NM)
                    self.slantTolerance = Distance(nauticalMiles - math.sqrt(nauticalMiles * nauticalMiles - num * num), DistanceUnits.NM)
                    self.parametersPanel.lblResultDistance.setText(Captions.PILOT_READOUT)
                    self.parametersPanel.label_72.setText(Captions.DME_TOLERANCE)
                    self.parametersPanel.txtResultDistance.setText(str(round(self.pilotDistance.NauticalMiles, 2)) +" nm" + " / " + str(round(self.pilotDistance.Metres, 2)) +" m")
                
                self.dmeTolerance = Distance(Unit.ConvertNMToMeter(self.pilotDistance.NauticalMiles * 0.0125) + 460)
            else:
                flag = False
            if (self.dmeTolerance.IsValid()):
                self.parametersPanel.txtResultDmeTol.setText(str(round(self.dmeTolerance.NauticalMiles, 2)) +" nm" + " / " + str(round(self.dmeTolerance.Metres, 2)) +" m")
            
            if (self.slantTolerance.IsValid()):
                self.parametersPanel.txtResultSlantTol.setText(str(round(self.slantTolerance.NauticalMiles, 2)) +"nm" + " / " + str(round(self.slantTolerance.Metres, 2)) +" m")
            self.parametersPanel.frame_62.setVisible(False if not self.pilotDistance.IsValid() else self.groundDistance.IsValid())
            self.parametersPanel.frame_TakeOffSurfaceTrack_2.setVisible(self.dmeTolerance.IsValid())
            self.parametersPanel.frame_TakeOffSurfaceTrack_3.setVisible(self.slantTolerance.IsValid())
#                 self.txtResult.Visible = !flag
            self.parametersPanel.gbResult.setVisible(True)
Exemplo n.º 11
0
 def ToString(self, format_0 = None):
     stringBuilder = StringBuilder()
     if format_0 == None:
         format_0 = ""
     if not isinstance(format_0, QString):
         format_0 = String.Str2QString(format_0)
     # if (provider == null)
     # {
     #     provider = CultureInfo.CurrentCulture
     # }
     if (not String.IsNullOrEmpty(format_0)):
         format_0 = format_0.toUpper()
         if (format_0.contains("QA:")):
             format_0 = format_0.replace("QA:", "")
             num = 0
             try:
                 num = int(format_0)
             except:
                 num = 0
             stringBuilder = StringBuilder()
             str0 = ""
             for i in range(num):
                 str0 = QString(String.Concat([str0, " "]))
             if (not String.IsNullOrEmpty(self.id)):
                 stringBuilder.AppendLine("{0}{1}\t{2}".format(str0, Captions.ID, self.id))
             if (not self.xy):
                 lATITUDE = Captions.LATITUDE
                 degree = Degrees.smethod_1(self.xlat)
                 stringBuilder.AppendLine("{0}{1}\t{2}".format(str0, lATITUDE, degree.method_2()))
                 lONGITUDE = Captions.LONGITUDE
                 degree1 = Degrees.smethod_5(self.ylon)
                 stringBuilder.Append("{0}{1}\t{2}".format(str0, lONGITUDE, degree1.method_2()))
             else:
                 stringBuilder.AppendLine("{0}{1}\t{2}".format(str0, Captions.X, str(self.xlat)))#.ToString(Formats.GridXYFormat, provider)))
                 stringBuilder.Append("{0}{1}\t{2}".format(str0, Captions.Y, str(self.ylon)))#.ToString(Formats.GridXYFormat, provider)))
             if (not self.altitude == None):
                 altitude = Altitude(self.altitude)
                 stringBuilder.AppendLine("")
                 aLTITUDE = [str0, Captions.ALTITUDE, altitude.ToString(":m"), altitude.ToString(":ft")]
                 stringBuilder.Append("{0}{1}\t{2} ({3})".format(str0, Captions.ALTITUDE, altitude.ToString(":m"), altitude.ToString(":ft")))
             return stringBuilder.ToString()
     stringBuilder = StringBuilder()
     if (not String.IsNullOrEmpty(self.id)):
         stringBuilder.Append(self.id + ", ")
     if (not self.xy):
         degree2 = Degrees.smethod_1(self.xlat)
         str1 = degree2.method_2()
         degree3 = Degrees.smethod_5(self.ylon)
         stringBuilder.Append(str1 + ", " + degree3.method_2())
     else:
         stringBuilder.Append(str(self.xlat) + ", " + str(self.ylon))
     if (not self.altitude == None):
         altitude1 = Altitude(self.altitude)
         stringBuilder.Append(", {0} ({1})", ", " + altitude1.ToString(":m") + " (" + altitude1.ToString(":ft") + ")")
     return stringBuilder.ToString()
    def method_30_BD(self):
        degree = None
        degree1 = None
        degree2 = None
        if (self.parametersPanel.pnlFinishPosBD.IsValid()):

            result, degree, degree1 = self.parametersPanel.pnlFinishPosBD.method_3(
            )
            result, degree2 = Geo.smethod_7(degree, degree1, Altitude(0),
                                            self.modelBD, self.dateBD)
            if (result):
                degree2 = round(degree2, 2)
                self.parametersPanel.pnlVarFinishBD.Value = degree2
    def __init__(self, polylineArea_0, altitude_0, altitude_1):
        polylineAreaList = []

        polylineAreaList = HoldingTemplateBase.smethod_1(polylineArea_0, False)
        polylineAreaList.append(polylineArea_0)
        self.areas = []
        count = len(polylineAreaList)
        num = 0.1 * count
        metres = altitude_1.Metres
        for i in range(count):
            if (i > 0):
                metres = num * altitude_1.Metres
                num = num - 0.1
            self.areas.append(
                HoldingOverheadArea(polylineAreaList[i], Altitude(metres)))
        self.selectionArea = self.areas[len(self.areas) - 1].Area
        self.altitude = altitude_0.Metres