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
def method_4(self): if (self.xy): return Position(self.type, self.id, self.xlat, self.ylon, Altitude(self.altitude)) return Position(self.type, self.id, None, None, Altitude(self.altitude), Degrees.smethod_1(self.xlat), Degrees.smethod_5(self.ylon))
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 initObstaclesModel(self): ObstacleTable.MocMultiplier = self.parametersPanel.mocSpinBox.value() self.obstaclesModel = HoldingRnpObstacles( self.surfaceList, Altitude(float(self.parametersPanel.txtMoc.text())), Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)) return FlightPlanBaseDlg.initObstaclesModel(self)
def method_3(self, altitude_0): altitude = Altitude(0) try: altitude = Altitude(float(self.txtAltitude.text()), AltitudeUnits.FT) except: altitude = Altitude(0) if (self.cmbType.currentIndex() != 0): return altitude return Altitude(altitude.Feet - altitude_0.Feet, AltitudeUnits.FT);
def method_13(self, rnavSegmentType, altitudeUnits_0): self.setFilterFixedString(rnavSegmentType) self.sort(self.IndexOcaM, Qt.DescendingOrder) if (self.rowCount() == 0): return Captions.GROUND_PLANE num1 = 5 num2 = 10 if (rnavSegmentType == RnavSegmentType.Initial1 or rnavSegmentType == RnavSegmentType.Initial2 or rnavSegmentType == RnavSegmentType.Initial3 or rnavSegmentType == RnavSegmentType.Intermediate): num1 = 50 num2 = 100 if (rnavSegmentType != RnavSegmentType.MissedApproach): num = self.data(self.index( 0, self.IndexOcaFt), Qt.DisplayRole).toDouble( )[0] if altitudeUnits_0 != AltitudeUnits.M else self.data( self.index(0, self.IndexOcaM), Qt.DisplayRole).toDouble()[0] else: num3 = -10000 num4 = -10000 isCritical = self.data(self.index(0, self.IndexCritical), Qt.DisplayRole).toString() if self.rowCount() > 0: ocaFt = self.data(self.index(0, self.IndexOcaFt), Qt.DisplayRole) ocaM = self.data(self.index(0, self.IndexOcaM), Qt.DisplayRole) num3 = ocaFt.toDouble( )[0] if altitudeUnits_0 != AltitudeUnits.M else ocaM.toDouble( )[0] if self.rowCount( ) > 1: #and self.data(self.index(1, self.IndexCritical), Qt.DisplayRole).toString() == CriticalObstacleType.Yes == CriticalObstacleType.Yes: ocaFt = self.data(self.index(1, self.IndexOcaFt), Qt.DisplayRole) ocaM = self.data(self.index(1, self.IndexOcaM), Qt.DisplayRole) num4 = ocaFt.toDouble( )[0] if altitudeUnits_0 != AltitudeUnits.M else ocaM.toDouble( )[0] num = max([num3, num4]) if (altitudeUnits_0 == AltitudeUnits.M): num5 = num % num1 if num5 > 0: num = num + (num1 - num5) altitude = Altitude(round(num)) return str(altitude.Metres) + " m" if (altitudeUnits_0 != AltitudeUnits.FT): raise UserWarning, Messages.ERR_INVALID_ALTITUDE_UNITS num6 = num % num2 if (num6 > 0): num = num + (num2 - num6) altitude1 = Altitude(round(num), AltitudeUnits.FT) return str(altitude1.Feet) + " ft"
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 initParametersPan(self): ui = Ui_HoldingRace_P() self.parametersPanel = ui FlightPlanBaseDlg.initParametersPan(self) self.parametersPanel.txtTas.setEnabled(False) self.parametersPanel.pnlInsPos = PositionPanel( self.parametersPanel.gbVorDmePosition) # self.parametersPanel.pnlInsPos.groupBox.setTitle("FAWP") self.parametersPanel.pnlInsPos.btnCalculater.hide() self.parametersPanel.pnlInsPos.hideframe_Altitude() self.parametersPanel.pnlInsPos.setObjectName("pnlInsPos") ui.vl_VorDmePosition.addWidget(self.parametersPanel.pnlInsPos) self.parametersPanel.pnlWind = WindPanel( self.parametersPanel.gbParameters) self.parametersPanel.pnlWind.lblIA.setMinimumSize(250, 0) self.parametersPanel.vl_gbParameters.insertWidget( 6, self.parametersPanel.pnlWind) self.parametersPanel.pnlWind.setAltitude( Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)) self.parametersPanel.cmbAircraftCategory.addItems( ["A", "B", "C", "D", "E", "H", "Custom"]) # self.parametersPanel.cmbOutboundLimit.addItems(["Time", "Distance From Waypoint"]) # self.parametersPanel.cmbConstruction.addItems(["2D", "3D"]) self.parametersPanel.cmbOrientation.addItems(["Right", "Left"]) self.parametersPanel.cmbAircraftCategory.setCurrentIndex(3) self.parametersPanel.frameAircraftCategory.hide() self.parametersPanel.frameMoc.hide() # self.parametersPanel.cmbHoldingFunctionality.currentIndexChanged.connect(self.cmbHoldingFunctionalityCurrentIndexChanged) # self.parametersPanel.cmbOutboundLimit.currentIndexChanged.connect(self.cmbOutboundLimitCurrentIndexChanged) # self.parametersPanel.btnCaptureTrack.clicked.connect(self.captureBearing) # self.parametersPanel.btnCaptureDistance.clicked.connect(self.measureDistance) # self.parametersPanel.btnCaptureLength.clicked.connect(self.measureLength) self.parametersPanel.txtAltitude.textChanged.connect( self.altitudeChanged) # self.parametersPanel.cmbAircraftCategory.currentIndexChanged.connect(self.changeCategory) # self.parametersPanel.btnIasHelp.clicked.connect(self.iasHelpShow) self.parametersPanel.txtIas.textChanged.connect(self.iasChanged) self.parametersPanel.txtIsa.textChanged.connect(self.isaChanged) self.parametersPanel.txtTas.setText( str( Speed.smethod_0( Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots))
def method_31(self): self.parametersPanel.pnlWind.setAltitude( Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)) try: speed = Speed.smethod_0( Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)) self.parametersPanel.txtTas.setText(str(round(speed.Knots, 4))) except: raise ValueError("Value Invalid")
def txtAltitudeMChanged(self): try: test = float(self.txtAltitudeM.text()) if self.flag == 0: self.flag = 2 if self.flag == 1: self.flag = 0 if self.flag == 2: try: self.txtAltitude.setText( str( round( Unit.ConvertMeterToFeet( float(self.txtAltitudeM.text())), 4))) except: self.txtAltitude.setText("0.0") self.emit(SIGNAL("Event_0"), self) except: str0 = "You must input the float type in \"%s\"." % (self.Caption) QMessageBox.warning(self, "Warning", str0) self.txtAltitude.setText("0.0") self.txtAltitudeM.setText("0.0") try: self.altitude = Altitude(float(self.txtAltitude.text()), AltitudeUnits.FT) except: self.altitude = Altitude.NaN()
def method_4(self): aSFA = None if (self.leg.Type == RnpArLegType.RF): if (self.ui.txtAltitude.text() != "" and self.ui.txtWind.text() != ""): if (self.leg.Segment == RnpArSegmentType.Final): aSFA = self.group.IAS_FA; elif (self.leg.Segment != RnpArSegmentType.Initial): if self.leg.Segment != RnpArSegmentType.Intermediate: aSFA = self.group.IAS_MA else: aSFA = self.group.IAS_I else: aSFA = self.group.IAS_IA try: altitude = Altitude(float(self.ui.txtAltitude.text()), AltitudeUnits.FT) except ValueError: raise UserWarning, "Altitude Value is invalid!" speed = Speed.plus(Speed.smethod_0(aSFA, self.group.ISA, altitude) , Speed(float(self.ui.txtWind.text()))) num = math.pow(speed.Knots, 2) value = Distance(float(self.ui.txtRadius.text()), DistanceUnits.M) num1 = Unit.smethod_1(math.atan(num / (68625 * value.NauticalMiles))) num2 = 3431 * math.tan(Unit.ConvertDegToRad(num1)) / (3.14159265358979 * speed.Knots) self.ui.txtBank.setText(str(round(num1, 2))) self.ui.txtR.setText(str(round(num2, 2))) return self.ui.txtBank.setText("") self.ui.txtR.setText("")
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)
def btnConstruct_Click(self): flag = FlightPlanBaseDlg.btnConstruct_Click(self) if not flag: return value = Speed(float(self.parametersPanel.txtIas.text()),SpeedUnits.KTS); if (self.parametersPanel.chbDeparture.isChecked()): value = value + (value / 10); altitude = Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT); value1 = float(self.parametersPanel.txtIsa.text()); num1 = float (self.parametersPanel.txtBankAngle.text()); self.speedP = self.parametersPanel.pnlWind.Value; self.num2P = Unit.ConvertDegToRad(float(self.parametersPanel.txtTrackRadial.Value)); self.orientationTypeP = self.parametersPanel.cmbOrientation.currentText(); speed1 = Speed.smethod_0(value, value1, altitude); numList = [] distance = Distance.smethod_1(speed1, num1, numList); self.numP = numList[0] self.metresP = distance.Metres; self.originP = Point3D.get_Origin(); self.point3dP = Point3D.get_Origin(); self.origin1P = Point3D.get_Origin(); self.polylineP = PolylineArea(); self.flagP = True; define._canvas.setMapTool(self.CaptureCoordTool)
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 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)
def OK(self): self.leg.Rnp = float(self.ui.txtRnpValue.text()) self.leg.Altitude = Altitude(float(self.ui.txtAltitude.text()), AltitudeUnits.FT) self.leg.Bank = float(self.ui.txtBank.text()) self.leg.Wind = Speed(float(self.ui.txtWind.text())) if (self.ui.chbIsFap.isEnabled()): self.leg.IsFAP = self.ui.chbIsFap.isChecked()
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)
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)
def putWithInHeightLoss(self): if self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.H: self.parametersPanel.pnlHeightLoss.Value = Altitude(35) return try: num = self.getVPA() num1 = self.parametersPanel.pnlThrPosition.Altitude().Metres num2 = self.parametersPanel.pnlIas.Value.Knots num3 = round(0.125 * num2 + 28.3) num4 = round(0.177 * num2 - 3.2) num5 = 0 if (num1 > 900): num5 = num5 + num4 * 0.02 * (num1 / 300) if (num > 3.2): num5 = num5 + num4 * 0.05 * ((num - 3.2) / 0.1) num5 = MathHelper.smethod_0(num5, 0) self.parametersPanel.pnlHeightLoss.Value = Altitude(num3 + num5) except: self.parametersPanel.pnlHeightLoss.Value = Altitude(0.0)
def btnConstruct_Click(self): if len(self.resultLayerList) > 0: QgisHelper.removeFromCanvas(define._canvas, self.resultLayerList) self.resultLayerList = [] try: point3d = self.parametersPanel.pnlTHR.getPoint3D() try: num = MathHelper.smethod_4( Unit.ConvertDegToRad( float(self.parametersPanel.txtRwyDir.Value) + 180)) except ValueError: raise UserWarning, "Runway Direction is invalide!" altitude = self.parametersPanel.pnlOCAH.method_3( Altitude(point3d.get_Z())) metres = altitude.Metres if (metres < 10): raise UserWarning, Messages.ERR_INSUFFICIENT_MINIMUM_ALTITUDE try: res, point3dCollection = self.method_37( point3d, num, metres, metres / math.tan( Unit.ConvertDegToRad( float(self.parametersPanel.txtDescAngle.Value. Degrees) - 1.12))) except ValueError: raise UserWarning, "DescAngle is invalide!" if (not res): return self.surfaceArea = PrimaryObstacleArea( PolylineArea(point3dCollection)) layer = AcadHelper.createVectorLayer("Visual Segment Surface") if (self.parametersPanel.cmbConstructionType.SelectedIndex != ConstructionType.Construct2D): face = [ point3dCollection.get_Item(0), point3dCollection.get_Item(1), point3dCollection.get_Item(2), point3dCollection.get_Item(3), point3dCollection.get_Item(0) ] AcadHelper.setGeometryAndAttributesInLayer(layer, face) # layer = QgisHelper.createPolylineLayer("Visual Segment Surface 3D", [(face, [])], []) else: face = point3dCollection face.append(point3dCollection[0]) AcadHelper.setGeometryAndAttributesInLayer(layer, face) # layer = QgisHelper.createPolylineLayer("Visual Segment Surface 2D", [(face, [])], []) QgisHelper.appendToCanvas(define._canvas, [layer], SurfaceTypes.VisualSegmentSurface) QgisHelper.zoomToLayers([layer]) self.resultLayerList = [layer] self.ui.btnEvaluate.setEnabled(True) except UserWarning as e: QMessageBox.warning(self, "Error", e.message)
def btnEvaluate_Click(self): polylines = self.method_36(False) # polylines[0].Dispose(); # polylines.RemoveAt(0); count = len(polylines) num = 0.1 * count altitudeMoc = Altitude(float(self.parametersPanel.txtMoc.text()), AltitudeUnits.M) metres = altitudeMoc.Metres holdingRnpAreas = [] for i in range(count): if (i > 0): metres = num * altitudeMoc.Metres num = num - 0.1 point3dCollection = polylines[i].method_14_closed(6) polylineArea0 = PolylineArea(point3dCollection) holdingRnpAreas.append( HoldingRnpArea(polylineArea0, Altitude(metres))) self.surfaceList = holdingRnpAreas return FlightPlanBaseDlg.btnEvaluate_Click(self)
def isaChanged(self): try: self.parametersPanel.txtTas.setText( str( Speed.smethod_0( Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude( float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots)) except: raise ValueError("Value Invalid")
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): self.RecommendedEnt = None self.PointEnt = None self.CenterEnt = None self.CodePhase = "" self.CodeType = CodeTypeProcPathAixm.OTHER self.ValCourse = 0 self.CodeTypeCourse = "" self.CodeDirTurn = "" self.CodeTurnValid = "" self.CodeDescrDistVer = "" self.CodeDistVerUpper = "" self.ValDistVerUpper = Altitude(0) self.CodeDistVerLower = "" self.ValDistVerLower = Altitude(0) self.ValVerAngle = 0 self.ValSpeedLimit = Speed(0) self.CodeSpeedRef = "" self.ValDist = Distance(0) self.ValDur = 0 self.ValTheta = 0 self.ValRho = Distance(0) self.ValBankAngle = 0 self.CodeRepAtc = "" self.CodeRoleFix = "" self.TxtRmk = "" self.dataList = [] self.nameList = [ "Fix Position", "Fix Type", "Recommended Nav. Aid", "Flight Phase", "Leg Type", "Course Type", "Course Angle", "Turn Direction", "Center", "Fly-By", "Bank Angle", "Altitude Interpretation", "Lower Limit Ref.", "Lower Limit", "Upper Limit Ref.", "Upper Limit", "Climb / Descent Angle", "Speed Restriction Ref.", "Speed Restriction", "Segment Length", "Duration", "ATC Reporting" ]
def altitudeMChanged(self): if self.flag==0: self.flag=1; if self.flag==2: self.flag=0; if self.flag==1: try: self.parametersPanel.txtAltitudeFt.setText(str(round(Unit.ConvertMeterToFeet(float(self.parametersPanel.txtAltitudeM.text())), 4))) except: self.parametersPanel.txtAltitudeFt.setText("0.0") self.parametersPanel.pnlWind.setAltitude(Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT)) try: self.parametersPanel.txtTas.setText(str(Speed.smethod_0(Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT)).Knots)) except: raise ValueError("Value Invalid")
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
def __init__(self): self.PointEnt = None self.CenterEnt = None self.CodeLegType = "" self.CodePathType = "" self.ValMinAlt = Altitude(0) self.ValDist = Distance(0) self.ValCourse = 0 self.ValLegRadial = 0 self.VorUidLeg = None self.CodePointType = "" self.CodeRepAtc = "" self.ValPointRadial = 0 self.VorUidPoint = None self.ValLegRadialBack = 0 self.VorUidLegBack = None self.ValPointDist1 = Distance(0) self.UidPointDist1 = None self.ValPointDist2 = Distance(0) self.UidPointDist2 = None self.ValDur = "" self.TxtRmk = "" self.CodeFlyBy = "" self.dataList = [] self.nameList = [ "Point", "Leg Type", "Path Type", "Center", "Min. Alt.", "Length", "Course", "Radial", "Fly-By", "Pnt. Type", "Rep. Pnt. Type", "Pnt. Radial", "Reverse Radial", "Pnt. Dist. 1", "Pnt. Dist. 2", "Duration", ]