예제 #1
0
        private void SetWeatherValuesToTable(DataColumn[] dataWeatherColumns, DataTable weatherDataSource, int dataRowCounter, int rowCounter)
        {
            double            windVector10      = 0;
            double            windVector50      = 0;
            WeatherCalculator weatherCalculator = new WeatherCalculator();

            for (int i = 0; i < dataWeatherColumns.Count(); i++)
            {
                switch (i)
                {
                case 0:
                    dgvMeasurementResults.Rows[dataRowCounter].Cells[dataWeatherColumns[i].ColumnName].Value = Math.Round((double)weatherDataSource.Rows[rowCounter].ItemArray[i + 2] / 100, 3);
                    break;

                case 1:
                    dgvMeasurementResults.Rows[dataRowCounter].Cells[dataWeatherColumns[i].ColumnName].Value = Math.Round((double)weatherDataSource.Rows[rowCounter].ItemArray[i + 2] * 1000, 3);
                    break;

                case 2:
                    dgvMeasurementResults.Rows[dataRowCounter].Cells[dataWeatherColumns[i].ColumnName].Value = Math.Round((double)weatherDataSource.Rows[rowCounter].ItemArray[i + 2] - 273.15, 3);
                    break;

                case 3:
                    dgvMeasurementResults.Rows[dataRowCounter].Cells[dataWeatherColumns[i].ColumnName].Value = Math.Round(weatherCalculator.CalculateVectorSpeed((double)weatherDataSource.Rows[rowCounter].ItemArray[i + 2], (double)weatherDataSource.Rows[rowCounter].ItemArray[i + 3]), 3);
                    break;

                case 4:
                    windVector10 = Math.Round(rbAzimuthVector.Checked ? weatherCalculator.CalculateWindVector((double)weatherDataSource.Rows[rowCounter].ItemArray[i + 1], (double)weatherDataSource.Rows[rowCounter].ItemArray[i + 2]) : weatherCalculator.CalculateWindVector(-(double)weatherDataSource.Rows[rowCounter].ItemArray[i + 1], -(double)weatherDataSource.Rows[rowCounter].ItemArray[i + 2]), 3);
                    if (windVector10 >= 0)
                    {
                        dgvMeasurementResults.Rows[dataRowCounter].Cells[dataWeatherColumns[i].ColumnName].Value = windVector10;
                    }
                    else
                    {
                        dgvMeasurementResults.Rows[dataRowCounter].Cells[dataWeatherColumns[i].ColumnName].Value = windVector10 + 360;
                    }
                    break;

                case 5:
                    dgvMeasurementResults.Rows[dataRowCounter].Cells[dataWeatherColumns[i].ColumnName].Value = Math.Round(weatherCalculator.CalculateVectorSpeed((double)weatherDataSource.Rows[rowCounter].ItemArray[i + 2], (double)weatherDataSource.Rows[rowCounter].ItemArray[i + 3]), 3);
                    break;

                case 6:
                    windVector50 = Math.Round(rbAzimuthVector.Checked ? weatherCalculator.CalculateWindVector((double)weatherDataSource.Rows[rowCounter].ItemArray[i + 1], (double)weatherDataSource.Rows[rowCounter].ItemArray[i + 2]) : weatherCalculator.CalculateWindVector(-(double)weatherDataSource.Rows[rowCounter].ItemArray[i + 1], -(double)weatherDataSource.Rows[rowCounter].ItemArray[i + 2]), 3);
                    if (windVector50 >= 0)
                    {
                        dgvMeasurementResults.Rows[dataRowCounter].Cells[dataWeatherColumns[i].ColumnName].Value = windVector50;
                    }
                    else
                    {
                        dgvMeasurementResults.Rows[dataRowCounter].Cells[dataWeatherColumns[i].ColumnName].Value = windVector50 + 360;
                    }
                    break;

                default:
                    dgvMeasurementResults.Rows[dataRowCounter].Cells[dataWeatherColumns[i].ColumnName].Value = Math.Round((double)weatherDataSource.Rows[rowCounter].ItemArray[i + 2], 3);
                    break;
                }
            }
        }
예제 #2
0
        private DataRow SetDataRowWithValues(DataRow dataRow, string[] values, bool isFirstFile = false)
        {
            double            windVector10      = 0;
            double            windVector50      = 0;
            WeatherCalculator weatherCalculator = new WeatherCalculator();

            for (int i = 0; i < values.Count(); i++)
            {
                switch (i)
                {
                case 0:
                    string dateTimeString = values[i];
                    dataRow[i] = ConvertDateTime(dateTimeString);
                    break;

                case 1:
                    dataRow[i] = Math.Round(double.Parse(values[i]) / 100, 3);
                    break;

                case 2:
                    dataRow[i] = Math.Round(double.Parse(values[i]) * 1000, 3);
                    break;

                case 3:
                    dataRow[i] = Math.Round(double.Parse(values[i]) - 273.15, 3);
                    break;

                case 4:
                    dataRow[i] = Math.Round(weatherCalculator.CalculateVectorSpeed(double.Parse(values[i]), double.Parse(values[i + 1])), 3);
                    break;

                case 5:
                    windVector10 = Math.Round(rbAzimuthVector.Checked ? weatherCalculator.CalculateWindVector(double.Parse(values[i - 1]), double.Parse(values[i])) : weatherCalculator.CalculateWindVector(-double.Parse(values[i - 1]), -double.Parse(values[i])), 3);
                    if (windVector10 >= 0)
                    {
                        dataRow[i] = windVector10;
                    }
                    else
                    {
                        dataRow[i] = windVector10 + 360;
                    }
                    break;

                case 6:
                    double windSpeed = Math.Round(weatherCalculator.CalculateVectorSpeed(double.Parse(values[i]), double.Parse(values[i + 1])), 3);
                    dataRow[i] = windSpeed;
                    if (cbSpeedAndPower.Checked)
                    {
                        dataRow[i + 2] = weatherCalculator.CalculateWindSpeedByHeight((double)nudHx.Value, windSpeed, (double)nudAlpha.Value, 50);
                        dataRow[i + 3] = weatherCalculator.ConversionOfWindSpeedIntoPower(windSpeed, (double)nudPr.Value, (double)nudVci.Value, (double)nudVr.Value, (double)nudVco.Value);
                    }
                    break;

                case 7:
                    windVector50 = Math.Round(rbAzimuthVector.Checked ? weatherCalculator.CalculateWindVector(double.Parse(values[i - 1]), double.Parse(values[i])) : weatherCalculator.CalculateWindVector(-double.Parse(values[i - 1]), -double.Parse(values[i])), 3);
                    if (windVector50 >= 0)
                    {
                        dataRow[i] = windVector50;
                    }
                    else
                    {
                        dataRow[i] = windVector50 + 360;
                    }
                    break;
                }
            }


            return(dataRow);
        }