private void AddPanelMeasurements(ManualGaugingDischargeSection dischargeSection) { var channels = _ehsn.MidsecMeas?.DischargeMeasurement?.Channels ?? new Channel[0]; if (!channels.Any()) { return; } var(edges, panels) = MergeAllChannels(channels.ToList()); var startingEdge = edges.First(); var endingEdge = edges.Last(); dischargeSection.StartPoint = GetMappedEnum(startingEdge.LeftOrRight, KnownStartPointTypes); var meters = (_ehsn.MidsecMeas?.DischargeMeasurement?.MmtInitAndSummary?.MetersUsed ?? new Meter[0]) .Select(CreateMeterCalibration) .ToList(); var edgeMeter = FindMeter(meters); AddVertical(dischargeSection.Verticals, CreateEdgeVertical(startingEdge, VerticalType.StartEdgeNoWaterBefore, edgeMeter)); foreach (var panel in panels) { AddVertical(dischargeSection.Verticals, CreatePanelVertical(panel, FindMeter(meters, panel.MeterNumber))); } AddVertical(dischargeSection.Verticals, CreateEdgeVertical(endingEdge, VerticalType.EndEdgeNoWaterAfter, edgeMeter)); dischargeSection.VelocityObservationMethod = FindMostCommonVelocityMethod(dischargeSection.Verticals); }
private void SetVerticals(ManualGaugingDischargeSection dischargeSection) { var verticals = new VerticalMapper(_parsedData, _visitInterval.Start).GetVerticals(); foreach (var vertical in verticals) { dischargeSection.Verticals.Add(vertical); } }
private void SetMappedVerticals(ManualGaugingDischargeSection manualGaugingDischarge, MeterCalibration meterCalibration, XmlRootSummaryStation[] stations) { var verticals = new VerticalMapper(GetMeasurementPeriod(), meterCalibration).MapAll(stations); foreach (var vertical in verticals) { manualGaugingDischarge.Verticals.Add(vertical); } }
private void UpdateDischargeSectionWithVerticals(ManualGaugingDischargeSection dischargeSection, GaugingSummaryItem summaryItem) { var verticals = _verticalMapper.Map(summaryItem, dischargeSection.DeploymentMethod); foreach (var vertical in verticals) { dischargeSection.Verticals.Add(vertical); } dischargeSection.WidthValue = CalculateTotalWidth(verticals); }
private static void UpdateDischargeSectionWithDerivedValues(ManualGaugingDischargeSection dischargeSection, GaugingSummaryItem summaryItem) { dischargeSection.DischargeMethod = MapDischargeMethod(summaryItem.FlowCalculationMethod); dischargeSection.StartPoint = MapStartPoint(summaryItem.StartBank); dischargeSection.VelocityObservationMethod = DetermineVelocityObservationMethod(summaryItem); var meterSuspensionAndDeploymentMethod = MapMeterSuspensionAndDeploymentMethod(summaryItem); dischargeSection.MeterSuspension = meterSuspensionAndDeploymentMethod.MeterSuspension; dischargeSection.DeploymentMethod = meterSuspensionAndDeploymentMethod.DeploymentMethod; }
private void SetChannelObservations(ManualGaugingDischargeSection dischargeSection, DischargeMeasurementSummary summary, UnitSystem unitSystem) { //River area: dischargeSection.AreaUnitId = unitSystem.AreaUnitId; dischargeSection.AreaValue = summary.Area; //Width: dischargeSection.WidthValue = summary.Width; //Velocity: dischargeSection.VelocityUnitId = unitSystem.VelocityUnitId; dischargeSection.VelocityAverageValue = summary.MeanVelocity; }
private void AdjustUnknownTotalDischargePortion(ManualGaugingDischargeSection manualGauging) { var totalDischarge = manualGauging.Discharge.Value; foreach (var vertical in manualGauging.Verticals) { if (!double.IsNaN(vertical.Segment.TotalDischargePortion) || double.IsNaN(vertical.Segment.Discharge)) { continue; } vertical.Segment.TotalDischargePortion = 100 * vertical.Segment.Discharge / totalDischarge; } }
private void SetChannelObservations(ManualGaugingDischargeSection dischargeSection, SxSSummary sxsSummary, UnitSystem unitSystem) { //River area: dischargeSection.AreaUnitId = unitSystem.AreaUnitId; dischargeSection.AreaValue = sxsSummary.Meas_Area.AsDouble(); //Width: dischargeSection.WidthValue = sxsSummary.Meas_Width.AsDouble(); //Velocity: dischargeSection.VelocityUnitId = unitSystem.VelocityUnitId; dischargeSection.VelocityAverageValue = sxsSummary.Mean_Vel.AsDouble(); }
private void SetChannelObservations(ManualGaugingDischargeSection dischargeSection, UnitSystem unitSystem) { //Width: dischargeSection.WidthValue = _parsedData.TotalWidth; dischargeSection.DistanceUnitId = unitSystem.DistanceUnitId; //River area: dischargeSection.AreaValue = _parsedData.TotalArea; dischargeSection.AreaUnitId = unitSystem.AreaUnitId; //Velocity: dischargeSection.VelocityAverageValue = _parsedData.MeanVelocity; dischargeSection.VelocityUnitId = unitSystem.VelocityUnitId; }
private void SetTechnologyInfo(ManualGaugingDischargeSection dischargeSection) { //Primary Current Meter: will be inferred from verticals. //Deployment method: dischargeSection.DeploymentMethod = CommonMapper.GetDeploymentMethodBySoundingWeight(_parsedData.SoundingWeight); //Meter Suspension: if (dischargeSection.DeploymentMethod == DeploymentMethodType.Wading) { dischargeSection.MeterSuspension = MeterSuspensionType.RoundRod; } //Suspension weight: in vertical's OpenWaterData. }
private void SetDischargeCalculationTechnique(ManualGaugingDischargeSection dischargeSection) { //Starting Point: switch (_parsedData.StartMode) { case "LEW": dischargeSection.StartPoint = StartPointType.LeftEdgeOfWater; break; case "REW": dischargeSection.StartPoint = StartPointType.RightEdgeOfWater; break; default: throw new ArgumentException($"Unknown start point:'{_parsedData.StartMode}'"); } //Other fields in the Technique section on UI will be inferred from the input. }
private void SetMappedVerticals(ManualGaugingDischargeSection dischargeSection, DischargeMeasurementSummary summary) { if (summary.Verticals.Any()) { dischargeSection.NumberOfVerticals = null; } var verticals = new VerticalMapper(GetMeasurementPeriod(), dischargeSection.MeterCalibration) .MapAll(summary); var verticalTypes = new Dictionary <PointVelocityObservationType, int>(); foreach (var vertical in verticals) { dischargeSection.Verticals.Add(vertical); if (vertical.VelocityObservation.VelocityObservationMethod.HasValue) { var verticalType = vertical.VelocityObservation.VelocityObservationMethod.Value; if (!verticalTypes.TryGetValue(verticalType, out var count)) { count = 0; } verticalTypes[verticalType] = 1 + count; } } if (verticalTypes.Any()) { dischargeSection.VelocityObservationMethod = verticalTypes .OrderByDescending(kvp => kvp.Value) .First() .Key; } }
private IEnumerable <DateTimeOffset> ManualGaugingTimes(ManualGaugingDischargeSection manualGauging) { return(manualGauging .Verticals .Select(v => v.MeasurementTime ?? DateTimeOffset.MinValue)); }
private static void AssertDischargeSectionHasExpectedSuspensionAndDeploymentType(ManualGaugingDischargeSection dischargeSection, MeterSuspensionType meterSuspensionType, DeploymentMethodType expectedMeterAndDeploymentType) { Assert.That(dischargeSection.MeterSuspension, Is.EqualTo(meterSuspensionType)); Assert.That(dischargeSection.DeploymentMethod, Is.EqualTo(expectedMeterAndDeploymentType)); }