Инфоурок Информатика СтатьиПолучение числовой зависимости критической частоты f0F2 ионосферного слоя F2 от времени t из динамического спектра f0F2(t) с помощью языка программирования C#

Получение числовой зависимости критической частоты f0F2 ионосферного слоя F2 от времени t из динамического спектра f0F2(t) с помощью языка программирования C#

Скачать материал

Получение числовой зависимости критической частоты f0F2 ионосферного слоя F2 от времени t из динамического спектра f0F2(t) с помощью языка программирования C#

 

Для изучения физических явлений зачастую используются спектральные анализ данных.

Спектр (лат. spectrum «видение») в физике – это распределение значений физической величины (обычно энергии, частоты или массы).

По характеру распределения значений физической величины спектры могут быть:

-  дискретными (линейчатыми),

- непрерывными (сплошными),

- а также представлять комбинацию (наложение) дискретных и непрерывных спектров.

В своей работе мы часто используем зависимость частоты f0F2 (Гц) от времени T (часы, минуты) (изменение концентрации электронов в ионосфере).

Примерно это выглядит следующим образом.

 

Данные зависимости достаточно удобно использовать только в том случае если временной интервал частот лежит в больших временных масштабах, в противном случае провести анализ будет достаточно сложно. Но как правило, изучение зависимости f0F2(t), на больших временных масштабах не дает точного результата.

Для более точного прогнозирование космической погоды и крупномасштабных событий в Солнечно-Земной физике нам необходимо использовать в своих работах зависимости критической частоты f0F2 ионосферного слоя F2 от наименьшего временного интервала (минуты).

Станции вертикального зондирования ионосферного слоя F2, выдают максимум пятиминутные данные, что очень грубо влияют на расчеты.

В своей работе мы решили использовать динамическую зависимость критической f0F2 от времени T.

И в связи с этим у нас возник вопрос.

Как из данной спектральной зависимости получить числовые значения?

С появлением цифровых технологий все больше и больше приборов стали работать в режиме RGB.

 

RGB (аббревиатура английских слов red, green, blue красный, зелёный, синий) или КЗС — аддитивная цветовая модель, как правило, описывающая способ кодирования цвета для цветовоспроизведения с помощью трёх цветов, которые принято называть основными.

Выбор основных цветов обусловлен особенностями физиологии восприятия цвета сетчаткой человеческого глаза. Цветовая модель RGB нашла широкое применение в технике.

Аддитивной она называется потому, что цвета получаются путём добавления (англ. addition) к чёрному цвету. Иначе говоря, если цвет экрана, освещённого цветным прожектором, обозначается в RGB как (r1, g1, b1), а цвет того же экрана, освещённого другим прожектором, — (r2, g2, b2), то при освещении двумя прожекторами цвет экрана будет обозначаться как (r1+r2, g1+g2, b1+b2).

Изображение в данной цветовой модели состоит из трёх каналов. При смешении основных цветов, например, синего (B) и красного (R), получается пурпурный (M, magenta), зелёного (G) и красного (R) — жёлтый (Y, yellow), зелёного (G) и синего (B) — циановый (С, cyan). При смешении всех трёх основных цветов получается белый цвет (W, white).

1.     Для решения данной задачи данную зависимость f0F2(t), привели в безразмерный вид.

2.     Учитывая разрешение изображения и количество пикселей по вертикали 565 и горизонтали 167 нашли зависимость пикселей по высоте изображения к его ширине, что позволило получить нам 1440 точек по оси времени.  На один пиксель по вертикале приходится примерно 0, 3 пикселя по горизонтали. А это значит, что 1440 пикселей соответствует 24 (часа в сутках) умножить на 60 (минут в часе). Таким образом мы получили минутные данные.

3.     Конвертировав изображение из jpg формата в bmp и инвертировав его в черно – белый цвет, мы пропустили полученное изображение через ранее нами написанный код на языке программирования C# и нашли максимальное значение критической частоты, а именно максимальные значения пикселей на данном диапазоне h(высоты) от l(длинны) изображения, записав их в виде матрицы зависимости частоты f0f2 (Герц) от времени t(минутах).

Код программы для оцифровки динамического спектра f0F2(t) в число представлен ниже:


 

namespace _Работа_с_изображением

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private Bitmap bmp;

        private int Gray;

      

        private void button1_Click(object sender, EventArgs e)

        {

            OpenFileDialog dialog = new OpenFileDialog();

           

            if (dialog.ShowDialog() == DialogResult.OK)

            {

                // Загружаем изображение из выбранного файла

                Image image = Image.FromFile(dialog.FileName);

                int width = image.Width;

                int height = image.Height;

                pictureBox1.Width = width; // Подстраивается pictureBox под размер изображения

                pictureBox1.Height = height;

                // Создаем и загружаем изображение в формате bmp

                bmp = new Bitmap(image, width, height);

                // Записываем изображение в pictureBox1

                pictureBox1.Image = bmp;

            }

 

        }

 

        private void button2_Click(object sender, EventArgs e)

        {           

                // Циклы для перебора всех пикселей на изображении

                for (int i = 0; i < bmp.Width; i++)

                    for (int j = 0; j < bmp.Height; j++)

                    {

                        // Извлекаем в R значение красного цвета

                        int R = bmp.GetPixel(i, j).R;

                        // Извлекаем в G значение зеленого цвета

                        int G = bmp.GetPixel(i, j).G;

                        // Извлекаем в B значение синего цвета

                        int B = bmp.GetPixel(i, j).B;

                        // Высчитываем среднее арифметическое

                        int Gray = (R = G + B) / 3;

                        // Переводим число в значение цвета.

                        // 255 – показывает степень прозрачности.

                        // Остальные значения одинаковы

                        Color p = Color.FromArgb(255, Gray, Gray, Gray);

                        // Записываем цвет в текущую точку

                        bmp.SetPixel(i, j, p);

                       

                    }

                // Вызываем функцию перерисовки окна

                Refresh();

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            Int32 n;

            Int32 a;

            n = pictureBox1.Width; // Длинна изображения

            a = pictureBox1.Height; //Высота изображения

            double Imin=255;

            double t=0, v=0;

         //-------------------------------------

            System.IO.StreamWriter textFile = new System.IO.StreamWriter(@"D:\Частота.txt");

            System.IO.StreamWriter textFile1 = new System.IO.StreamWriter(@"D:\Время.txt");

            for (int i = 0; i < n; i++ )

 

            {

                Imin = 255;

                for (int j = i; j <= i; j++)

                {

                    //--------------------------------------

                    for (int k = 0; k < a; k++)

                    {

                        Gray = 0;

                        int R = bmp.GetPixel(j, k).R;

                        int G = bmp.GetPixel(j, k).G;

                        int B = bmp.GetPixel(j, k).B;

                      //  Gray = (R = G + B) / 3;

                        Gray = R + G + B;

 

                        if (Gray < Imin)

                        {

                            Imin = Gray;

                            t = ((j * 1440) / pictureBox1.Width);    // Взяты минуты

                            v = (16000 - ((16000 * k) / pictureBox1.Height));

                        }

                       

                    }

                    Console.Write(v);

                    textFile.WriteLine(v);

                    Console.Write(t);

                    textFile1.WriteLine(t);

                    //-----------------------------------------

 

                }

            }

            textFile.Close();

            textFile1.Close();

                textBox1.Text = Convert.ToString(t);

                textBox2.Text = Convert.ToString(v);

                //System.IO.StreamWriter textFile = new System.IO.StreamWriter(@"D:\Частота.txt");

                //Console.Write(v);

                //textFile.WriteLine(v);

                //textFile.Close();

        }

    }

}

   

Таким образом мы научились получать зависимость критической частоты f0F2 от времени на малых интервалах времени, данная технология обработки динамических jpg спектров, полученных со станций вертикального зондирования ионосферного слоя F2, в дальнейшем позволит нам более точно прогнозировать космическую погоду и другие крупномасштабные события в Солнечно Земной физике.

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Получение числовой зависимости критической частоты f0F2 ионосферного слоя F2 от времени t из динамического спектра f0F2(t) с помощью языка программирования C#"

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Специалист по связям с общественностью

Получите профессию

Фитнес-тренер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 655 267 материалов в базе

Скачать материал

Другие материалы

  • 08.10.2018
  • 444
  • 0
«Информатика», Босова Л.Л., Босова А.Ю.

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 08.10.2018 422
    • DOCX 294.3 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем _ I D_. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    _ I D_
    _ I D_
    • На сайте: 7 лет и 4 месяца
    • Подписчики: 6
    • Всего просмотров: 9980
    • Всего материалов: 16

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Няня

Няня

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Математика и информатика: теория и методика преподавания в образовательной организации

Учитель математики и информатики

500/1000 ч.

от 8900 руб. от 4450 руб.
Подать заявку О курсе
  • Сейчас обучается 687 человек из 79 регионов
  • Этот курс уже прошли 1 799 человек

Курс профессиональной переподготовки

Педагогическая деятельность по проектированию и реализации образовательного процесса в общеобразовательных организациях (предмет "Математика и информатика")

Учитель математики и информатики

300 ч. — 1200 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 38 человек из 18 регионов
  • Этот курс уже прошли 33 человека

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в образовательной организации

Учитель информатики

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 490 человек из 72 регионов
  • Этот курс уже прошли 1 517 человек

Мини-курс

Эффективные стратегии успешного взаимодействия: от понимания до саморазвития

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Налогообложение реализации и доходов физических лиц

2 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Этот курс уже прошли 10 человек

Мини-курс

Музыкальная культура: от истории до современности

10 ч.

1180 руб. 590 руб.
Подать заявку О курсе