示例#1
0
        /// <summary>
        /// Generations trajectory station data.
        /// </summary>
        /// <param name="numOfStations">The number of stations.</param>
        /// <param name="startMd">The start md.</param>
        /// <param name="mdUom">The MD index uom.</param>
        /// <param name="tvdUom">The Tvd uom.</param>
        /// <param name="angleUom">The angle uom.</param>
        /// <param name="includeExtra">True if to generate extra information for trajectory station.</param>
        /// <returns>The trajectoryStation collection.</returns>
        public List <TrajectoryStation> GenerationStations(int numOfStations, double startMd, MeasuredDepthUom mdUom = MdUom, WellVerticalCoordinateUom tvdUom = TvdUom, PlaneAngleUom angleUom = AngleUom, bool includeExtra = false)
        {
            var stations = new List <TrajectoryStation>();
            var random   = new Random(numOfStations * 2);
            var now      = DateTimeOffset.Now.AddDays(-1);

            for (var i = 0; i < numOfStations; i++)
            {
                var station = new TrajectoryStation
                {
                    Uid             = StationUidPrefix + (i + 1),
                    TypeTrajStation = i == 0 ? TrajStationType.tieinpoint : TrajStationType.magneticMWD,
                    MD = new MeasuredDepthCoord {
                        Uom = mdUom, Value = startMd
                    },
                    Tvd = new WellVerticalDepthCoord()
                    {
                        Uom = tvdUom, Value = startMd == 0 ? 0 : startMd - 0.1
                    },
                    Azi = new PlaneAngleMeasure {
                        Uom = angleUom, Value = startMd == 0 ? 0 : random.NextDouble()
                    },
                    Incl = new PlaneAngleMeasure {
                        Uom = angleUom, Value = startMd == 0 ? 0 : random.NextDouble()
                    },
                    DateTimeStn = now.AddMinutes(i)
                };

                if (includeExtra)
                {
                    station.Mtf = new PlaneAngleMeasure {
                        Uom = angleUom, Value = random.NextDouble()
                    };
                    station.MDDelta = new MeasuredDepthCoord {
                        Uom = MeasuredDepthUom.m, Value = 0
                    };
                    station.StatusTrajStation = TrajStationStatus.position;
                }

                stations.Add(station);
                startMd++;
            }

            return(stations);
        }
示例#2
0
 /// <summary>
 /// Generations trajectory station data.
 /// </summary>
 /// <param name="numOfStations">The number of stations.</param>
 /// <param name="startMd">The start md.</param>
 /// <param name="mdUom">The MD index uom.</param>
 /// <param name="tvdUom">The Tvd uom.</param>
 /// <param name="angleUom">The angle uom.</param>
 /// <param name="inCludeExtra">True if to generate extra information for trajectory station.</param>
 /// <returns>The trajectoryStation collection.</returns>
 public List <TrajectoryStation> TrajectoryStations(int numOfStations, double startMd, MeasuredDepthUom mdUom = MdUom, WellVerticalCoordinateUom tvdUom = TvdUom, PlaneAngleUom angleUom = AngleUom, bool inCludeExtra = false)
 {
     return(TrajectoryGenerator.GenerationStations(numOfStations, startMd, mdUom, tvdUom, angleUom, inCludeExtra));
 }