Exemple #1
0
            /// <summary>
            /// Create an struct to hold bin vectors for the amplitude data.
            /// Average the amplitude value for each bin and store as the magnitude value.
            /// </summary>
            /// <param name="ensemble">Ensemble to generate vector values.</param>
            /// <returns>Vectors for each bin in ensemble.</returns>
            public static DataSet.EnsembleVelocityVectors GenerateAmplitudeVectors(DataSet.Ensemble ensemble)
            {
                RTI.DataSet.VelocityVector[] vv = null;

                if (ensemble.IsAmplitudeAvail)
                {
                    // Create Velocity Vector with averaged amplitude data
                    vv = new RTI.DataSet.VelocityVector[ensemble.AmplitudeData.NumElements];

                    // Create a vector for each bin
                    // Take the average of the amplitude for the bin value
                    for (int bin = 0; bin < ensemble.EarthVelocityData.NumElements; bin++)
                    {
                        // Get the average for each bin
                        float avg   = 0;
                        int   count = 0;
                        if (ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_0_INDEX] != DataSet.Ensemble.BAD_VELOCITY)
                        {
                            avg += ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_0_INDEX]; count++;
                        }
                        if (ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_1_INDEX] != DataSet.Ensemble.BAD_VELOCITY)
                        {
                            avg += ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_1_INDEX]; count++;
                        }
                        if (ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_2_INDEX] != DataSet.Ensemble.BAD_VELOCITY)
                        {
                            avg += ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_2_INDEX]; count++;
                        }
                        if (ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_3_INDEX] != DataSet.Ensemble.BAD_VELOCITY)
                        {
                            avg += ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_3_INDEX]; count++;
                        }

                        // Ensure values were found
                        if (count > 0)
                        {
                            avg /= count;
                        }

                        vv[bin]                 = new VelocityVector();
                        vv[bin].Magnitude       = avg;
                        vv[bin].DirectionXNorth = 0;
                        vv[bin].DirectionYNorth = 0;
                    }
                }


                // Create struct to hold the data
                DataSet.EnsembleVelocityVectors ensVec = new DataSet.EnsembleVelocityVectors();
                ensVec.Id = ensemble.EnsembleData.UniqueId;

                if (vv != null)
                {
                    ensVec.Vectors = vv;
                }
                else
                {
                    // Put an BAD velocity entry
                    vv = new DataSet.VelocityVector[1];
                    vv[0].Magnitude       = DataSet.Ensemble.BAD_VELOCITY;
                    vv[0].DirectionXNorth = DataSet.Ensemble.BAD_VELOCITY;
                    vv[0].DirectionYNorth = DataSet.Ensemble.BAD_VELOCITY;

                    ensVec.Vectors = vv;
                }

                return(ensVec);
            }
Exemple #2
0
            /// <summary>
            /// Create an struct to hold bin vectors for the amplitude data.
            /// Average the amplitude value for each bin and store as the magnitude value.
            /// </summary>
            /// <param name="ensemble">Ensemble to generate vector values.</param>
            /// <returns>Vectors for each bin in ensemble.</returns>
            public static DataSet.EnsembleVelocityVectors GenerateAmplitudeVectors(DataSet.Ensemble ensemble)
            {
                RTI.DataSet.VelocityVector[] vv = null;

                if (ensemble.IsAmplitudeAvail)
                {
                    // Create Velocity Vector with averaged amplitude data
                    vv = new RTI.DataSet.VelocityVector[ensemble.AmplitudeData.NumElements];

                    // Create a vector for each bin
                    // Take the average of the amplitude for the bin value
                    for (int bin = 0; bin < ensemble.EarthVelocityData.NumElements; bin++)
                    {
                        // Get the average for each bin
                        float avg = 0;
                        int count = 0;
                        if (ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_0_INDEX] != DataSet.Ensemble.BAD_VELOCITY) { avg += ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_0_INDEX]; count++; }
                        if (ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_1_INDEX] != DataSet.Ensemble.BAD_VELOCITY) { avg += ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_1_INDEX]; count++; }
                        if (ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_2_INDEX] != DataSet.Ensemble.BAD_VELOCITY) { avg += ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_2_INDEX]; count++; }
                        if (ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_3_INDEX] != DataSet.Ensemble.BAD_VELOCITY) { avg += ensemble.AmplitudeData.AmplitudeData[bin, DataSet.Ensemble.BEAM_3_INDEX]; count++; }

                        // Ensure values were found
                        if (count > 0)
                        {
                            avg /= count;
                        }

                        vv[bin] = new VelocityVector();
                        vv[bin].Magnitude = avg;
                        vv[bin].DirectionXNorth = 0;
                        vv[bin].DirectionYNorth = 0;
                    }

                }

                // Create struct to hold the data
                DataSet.EnsembleVelocityVectors ensVec = new DataSet.EnsembleVelocityVectors();
                ensVec.Id = ensemble.EnsembleData.UniqueId;

                if (vv != null)
                {
                    ensVec.Vectors = vv;
                }
                else
                {
                    // Put an BAD velocity entry
                    vv = new DataSet.VelocityVector[1];
                    vv[0].Magnitude = DataSet.Ensemble.BAD_VELOCITY;
                    vv[0].DirectionXNorth = DataSet.Ensemble.BAD_VELOCITY;
                    vv[0].DirectionYNorth = DataSet.Ensemble.BAD_VELOCITY;

                    ensVec.Vectors = vv;
                }

                return ensVec;
            }