Обоснование возможности реализации регулировки фаз газораспределения

  • Вид работы:
    Реферат
  • Предмет:
    История техники
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    6,05 kb
  • Опубликовано:
    2009-01-12
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Обоснование возможности реализации регулировки фаз газораспределения

Міністерство освіти і науки України

Національний університет “Львівська політехніка”

кафедра “Інформаційні системи та мережі”


ПОЯСНЮВАЛЬНА ЗАПИСКА

до дипломної роботи на тему:

Інформаційна система моніторингу та прогнозування забруднення ґрунтів

        

Студента групи                   

                                                           (група, шифр, прізвище та ініціали)

Керівник роботи        __________________()

Консультант                 __________________(____________________)

Рецензент __________________(____________________)

Завідувач кафедри ІСМ   ________________()

«____» ________________ 2016 р.

                                                                   

ЛЬВІВ  - 2016

Міністерство освіти і науки України

Національний університет “Львівська політехніка”

Інститут комп’ютерних наук та інформаційних технологій

Кафедра “Інформаційні системи та мережі”

Напрям 6.050101  "Комп'ютерні науки"

ЗАТВЕРДЖУЮ:

Зав. кафедри ІСМ _____________

“____” ________________2016р.

ЗАВДАННЯ

на кваліфікаційну роботу студента групи ОКР бакалавр

 

(прізвище, ім’я, по батькові)

1. Тема роботи: «Інформаційна система моніторингу та прогнозування забруднення ґрунтів»_________________________________________________________________________________________________________________________________________

 затверджена наказом за НУ «ЛП» від «___» _______________  2016 р. №   _______                                                                                                     

2. Термін здачі студентом закінченої роботи:  __3.06.2016_______________________

3. Вихідні відомості до роботи: норми гранично допустимих концентрацій хімічнихелементів в ґрунтів._______________________________________________________ ________________________________________________________________________________________________________________________________________________

4. Зміст розрахунково-пояснювальної записки: (перелік питань, які належить розробити) аналітичний огляд літературних та інших джерел, системний аналіз та обґрунтування проблеми, методи та засоби вирішення проблеми, практична реалізація.______________________________________________________________________________________________________________________________________ ________________________________________________________________________

5. Перелік графічного матеріалу: діаграма варіантів використання, діаграма послідовності, діаграма пакетів, діаграма класів._______________________________ ________________________________________________________________________

6. Перелік програмних продуктів, які належить використати в процесі розроблення роботи (проекту) Microsoft Visual Studio 2015, MySQL Server, HeidiSQL. ________________________________________________________________________________________________________________________________________________

7.  Консультування роботи, із зазначенням розділів роботи

Розділ

Консультанти

Підпис, дата

завдання видав

завдання отримав

Економічний





8.Дата видачі завдання __11.11.15__

Керівник                                         

(підпис)

Завдання отримав                                             

(підпис)

КАЛЕНДАРНИЙ ПЛАН

з/п

Етапи дипломної роботи

Термін виконання

Примітки

1

Аналітичний огляд літературних та інших джерел

13.11.15 – 29.12.15



2

Системний аналіз та обґрунтування проблеми

29.12.15 – 21.01.16



3

Методи та засоби вирішення проблеми

21.01.16 – 29.02.16



4

Практична реалізація

29.03.16 – 04.05.16



5

Економічна характеристика проектного рішення

04.05.16 – 10.05.16


6

Оформлення пояснювальної записки

10.05.16 – 24.05.16




Студент______________________

(підпис)

Керівник роботи__________________

(підпис)

                                                              ЗМІСТ                                                             

ВСТУП5

РОЗДІЛ 1. АНАЛІТИЧНИЙ ОГЛЯД ЛІТЕРАТУРНИХ ТА ІНЩИХ ДЖЕРЕЛ

1.1. Поняття про інформаційні системи7

1.2. Інформаційні системи екологічного моніторингу8

1.2.1. Історія розвитку систем екологічного моніторингу8

1.2.2. Сучасні інформаційні системи екологічного моніторингу11

1.3. Інформаційні системи екологічного моніторингу в Україні13

1.3.1. Автоматизована інформаційна система екологічного

моніторингу в місті Дніпропетровськ15

                   1.3.2. Система РОДОС17

РОЗДІЛ 2. СИСТЕМНИЙ АНАЛІЗ ТА ОБҐРУНТУВАННЯ ПРОБЛЕМИ

2.1. Системний аналіз об’єкта дослідження та предметної області20

2.2. Концептуальна модель25

2.2.1. Діаграма варіантів використання26

2.2.2. Діаграма діяльності27

2.2.3. Діаграма пакетів даних28

2.2.4. Діаграма пакетів класів29

2.3. Змістовна постановка задачі31

РОЗДІЛ 3. МЕТОДИ ТА ЗАСОБИ ВИРІШЕННЯ ПРОБЛЕМИ

3.1. Вибір та обґрунтування методів вирішення проблеми33

3.1.1. Загальна модель надходження забруднюючих речовин

в ґрунтові екосистеми 33

3.1.2. Метод експоненціального згладжування в прогнозуванні

вмісту забруднюючих речовин в ґрунті35

3.1.3. Оцінка якісного та екологічного стану ґрунтів за нормами

гранично допустимих концентрацій забруднюючих речовин37

3.2. Вибір та обґрунтування засобів вирішення проблеми39

3.2.1. Засоби проектування та роботи з базами даних39

3.2.2. Засоби для реалізації програмного коду системи40

3.2.3. Засоби роботи з геоданими та картами42

РОЗДІЛ 4. ПРАКТИЧНА РЕАЛІЗАЦІЯ

4.1. Описання реалізації завдання44

4.1.1. Описання реалізації бази даних44

4.1.2. Описання реалізації класів52

4.2. Аналіз отриманих результатів56

РОЗДІЛ 5. ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ДОЦІЛЬНОСТІ РОБОТИ

5.1. Економічна характеристика проектного рішення62

5.2. Інформаційне забезпечення та формування гіпотези

       щодо потреби розроблення проектного рішення63

5.3. Оцінювання та аналізування факторів зовнішнього

       та внутрішнього середовищ64

5.4. Формування стратегічних альтернатив67

5.5. Бюджетування68

5.6. Вибір стратегії73

ВИСНОВКИ74

СПИСОК ВИКОРИСТАНИХ ЛІТЕРАТУРНИХ ДЖЕРЕЛ76

ANNOTATION79

Додаток А80

ДодатокБ85

ДодатокВ99


ВСТУП

         Тенденції сучасного виробництва та використання  природних ресурсів в Україні показують, що природокористуванню приділяється набагато більше уваги, ніж природоохоронним заходам. В ситуації коли Україна взяла на себе зобов’язання через підписання міжнародних договорів у природоохоронній сфері, стан державної системи екологічного моніторингу є неприпустимий. Недосконалість системи екологічного моніторингу в Україні зумовлене поганим приладо-технічним забезпеченням. Оснащення, що використовується державою в цій галузі діяльності, не забезпечує вимірювання всього спектру показників, не передбачає автоматизованого збору, аналізу, зберігання та оперативного надання інформації її основним споживачам. Зважаючи на це, актуальним є технічне переоснащення організацій, які займаються моніторингом та прогнозуванням екологічної ситуації в державі сучасними апаратними та програмними засобами, системами підтримки і прийняття рішень. Бо саме через проблеми прогнозування екологічної обстановки в державі під час використання природних ресурсів, техногенних аварій та стихійних лих, несвоєчасно вживаються заходи протидії нераціонального використання природних ресурсів, захисту населення при надзвичайних ситуацій та неправильно вибираються шляхи усунення наслідків катастроф та антропогенної діяльності людини.

         Метою дипломної роботи є розробка інформаційної системи моніторингу та прогнозування забруднення ґрунтів, що має спростити своєчасне виявлення змін стану ґрунтів, їх оцінки, отримання інформації для вироблення управлінських рішень щодо поліпшення якості ґрунтів, удосконалення використання ґрунтів в аграрних цілях та способів відтворення родючості ґрунтів, відвернення наслідків негативних процесів.

         На даний час в Україні аналогом системи моніторингу є система РОДОС (RODOS – Real-тime Оn-line Decision Support System). Однак задачами даної системи є моніторинг за станом атомних станцій України та радіаційного стану навколишнього середовища безпосередньо навколо атомних електростанцій.  Це обмежує площу моніторингу забруднення ґрунтів, прив’язуючи систему до вибраних об’єктів, що не дасть забезпечити моніторинг стану ґрунтів в інших екологічно проблемних зонах держави.

         Об’єктом дослідження є процеси моніторингу та прогнозування забруднення таких ґрунтових об’єктів, як землі сільськогосподарського призначення, паркові зони, також землі, що використовуються для утилізації відходів виробництв будь якого профілю.

         Предметом дослідженняєметоди та засоби збору даних про екологічний стан земельних територій, моделі та методи прогнозування розповсюдження забруднення для полегшення знаходження механізмів протидії та усунення наслідків забруднення ґрунтів.

         Система дасть змогу полегшити виконання завдань, які  ставляться до моніторингу ґрунтів на землях сільськогосподарського призначення:

1. Збір, аналіз і опрацювання інформації щодо якісного стану ґрунтів. Тобто це дозволить оцінювати розвиток ґрунтової ерозії, стан структури ґрунту, підкислення, засолення, солонцюватість, заболочення ґрунтів, динаміка вмісту гумусу і елементів живлення, забруднення ґрунтів важкими металами, радіонуклідами, залишковими кількостями пестицидів та іншими токсичними речовинами.

2. Здійснення комплексного аналізу агроекологічної ситуації на землях сільськогосподарського призначення, оцінки та прогнозу можливих змін стану родючості ґрунтів з урахуванням природних і антропогенних факторів.

3. Допомогу розроблення і впровадження науково обґрунтованих рекомендацій на основі отриманих даних, щодо прийняття рішень та заходів відвернення та ліквідації наслідків негативних процесів.

РОЗДІЛ 1. АНАЛІТИЧНИЙ ОГЛЯД ЛІТЕРАТУРНИХ ТА ІНШИХ ДЖЕРЕЛ

1.1. Поняття про інформаційні системи

Інформаційна система призначена для збору, зберігання, пошуку та обробки інформації, яка включає в себе організаційні ресурси, які забезпечують інформацією та поширюють її[1].

         Це визначення дає змогу зрозуміти, що під інформаційною системою розуміють не тільки дані та технічне і програмне забезпечення, а також персонал та організаційні заходи за для підтримки роботи всієї інформаційної системи в цілому. Інформаційні системи існують з самого початку існування суспільства і завжди були направленні на виконання своєї основної задачі, а саме подача потрібної інформації для організації і ефективного управліннядіяльності і взаємодії між людьми об’єднаними однією метою.

         На сучасному етапі розвитку усі інформаційні системи використовують комп’ютерні технології для їх автоматизації. Виділяють основні чотири складові, що утворюють автоматизовану інформаційну системи:

1. модулі збору інформації,

2. модулі передачі інформації,

3. модулі зберігання інформації,

4. модулі аналізу та представлення інформації.

На даний момент  автоматизовані інформаційні системи впроваджуються майже в усі сфери людської діяльності: навчальну, виробничу, адміністративну, медичну, екологічну, військову тощо.

1.2. Інформаційні системи екологічного моніторингу

На сучасному етапі розвитку промисловості та комп’ютерних технологій системи екологічного моніторингу є найбільш доступними засобами контролю за станом навколишнього середовища. Метою створення та розвитку таких систем є інтеграція екологічної інформації, отриманої в ході досліджень, та застосування для її обробки сучасних математично-аналітичних методів для якісної оцінки стану екосистем, максимально повна інформаційна підтримка рішень в галузі охорони і покращення якості навколишнього середовища.Системи екологічного моніторингу допомагають вирішувати проблеми зменшення надходження забруднюючих елементів на локальному рівні (заводи, порти, міста тощо). Це досягається постійними дослідами і прогнозуванням концентрації забруднюючих елементів, які містяться в екосистемі і які надходять до неї. Отримані дані від такого типу систем дають змогу приймати необхідні рішення щодо необхідності зменшення антропогенного впливу на райони потенційної екологічної небезпеки[2]. При сучасній тенденції розвитку промисловості системи екологічного моніторингу повинні враховувати особливості підприємств, які знаходяться в районі контролю, та технології, що впроваджуються на цих підприємствах. Наприклад, до підприємства висуваються вимоги модернізації виробничої діяльності, при якій будуть використовуватися інноваційні методи технології виробництва, це зумовлює генерацію нових видів забруднюючих викидів для даної території. Тому для ефективного подання даних про концентрацію забруднюючих елементів, прогнозування забруднення має виконуватись з автоматизацією усіх етапів функціонування системи екологічного моніторингу[3].

1.2.1. Історія розвитку систем екологічного моніторингу

На початку розвитку систем екологічного моніторингу малось на увазі створення еколого-аналітичного моніторингу забруднення екосистем. Тобто систему непереривних спостережень та оцінки стану навколишнього середовища у відповідності до заздалегідь підготовленим та науково-обґрунтованим алгоритмом, який би включав в себе не тільки отримання інформації, а також елементи прийняття рішень і управління.

Даний термін з’явився незадовго до конференції ООН по захисту навколишнього середовища в Стокгольмі у 1972 році. Перші пропозиції по створенню систем такого типу були запропоновані експертами комісії СКОПЕ із наукового комітету по проблемах навколишнього середовища в 1971 році. Ця інформація була систематизована радянським вченим І. П. Герасимовим і викладена у статті о наукових основах моніторингу навколишнього середовища, яка опублікована в 1975 році. Тоді основна задача моніторингу забруднень подавалась, як спостереження за джерелами та рівнем забруднень навколишнього середовища на фоні періодичних природніх змін. Вимоги, які висувались до системи еколого-аналітичного моніторингу забруднення були:

·   науково-технічне забезпечення системи спостережень та прогнозів;

·   спостереження за існуючими джерелами забруднюючих речовин та рівнем забруднення;

·   вияв нових джерел та факторів забруднення, а також ступені їх деструктивної дії;

·   оцінка поточного забруднення навколишнього середовища;

·   прогноз забруднення та путі вирішення екологічних проблем.

Така система мала основуватись на підсистемах галузевого та регіонального характеру, які постійно взаємодіють одна з одною. Така система повинна охопити, як локальні райони в рамках одної держави, так і всю поверхню земної кулі в цілому[4].

Рис. 1. 1. Блок-схема системи моніторингу (пунктирні лінії – зворотні зв’язки).

         В1979 році Ю. А. Ізраель запропонував схему моніторингу та прогнозу забруднень (Рис. 1.1), яка стала основою для багатьох створених інформаційних систем екологічного моніторингу. Ю. А. Ізраель відніс до задач системи моніторингу не тільки спостереження за станом екосистем, а також і елементи управління, які б дозволяли підтримувати якість навколишнього середовища в межах екологічної безпеки. На блок-схемі системи моніторингу детально показано прямі та зворотні зв’язки даної системи. Блоки «Спостереження» та «Прогноз стану» тісно пов’язані між собою, оскільки прогноз стану неможливо здійснити без отримання точної та повної інформації про поточний стан екосистеми та джерел забруднення. Для визначення пріоритетних для досліджень джерел забруднення необхідно також аналізувати результати минулих спостережень, а при деяких обставинах дані про забруднення з сусідніх районів контролю. Вже після систематизації попередньо визначених даних можна переходити к управлінськім рішенням, щодо регулювання якості навколишнього середовища[5].

         Проблемам систем моніторингу за станом біосфери присвячено спеціальний постійно діючий проект міжнародної програми ЮНЕСКО «Людина та біосфера», який був прийнятий в 1974 році. Важливу увагу відведено питанням моніторингу забруднення природного середовища та вияву списку пріоритетних забруднюючих елементів і факторів, пов’язаних з забрудненням та забезпеченню необхідною інформацією науково-дослідницьких центрів для прийняття рішень для регулювання концентрації забруднюючих речовин в екосистемах. В цьому проекті виділено основні цілі створення інформаційних систем екологічного моніторингу:

·   визначення рівнів забруднення в різних екосистемах, їх розповсюдження в просторі та часі;

·   визначення величин та швидкостей розповсюдження потоків елементів забруднення та їх небезпечних синтезів;

·   порівняння методів пробовідбору та аналізу забрудників між державами, для порівняння отриманих даних та обміну інформацією об організації систем моніторингу;

·   забезпечення користувачів в глобальному та регіональному масштабі інформацією, необхідної для прийняття рішень по усуненню забруднень.

За минулі роки була проведена велика робота по організації інформаційних систем екологічного моніторингу для оцінки антропогенного впливу на біосферу. Деякі з них виконувались у рамках Глобальної системи моніторингу навколишнього середовища, інші у рамках держави за підтримкою влади та національних,державних програм[6].

1.2.2. Сучасні інформаційні системи екологічного моніторингу

В сучасний час склалися об’єктивні обставини для технічної реалізації автоматизованої інформаційної системи екологічного моніторингу (АІСЕМ). Постійний розвиток технологій аналізу навколишнього середовища дозволяють реалізувати системи, які максимально задовільнять потреби користувачів у даній галузі.

Сучасні АІСЕМ мають за основу таку структуру побудови (Рис. 1.2).

Рис. 1.2. Структура сучасних АІСЕМ.

Інформація від пунктів та засобів збору даних про забруднення з території контролю надходить по каналам зв’язку в базу первинних даних і далі обробляється програмними засобами в залежності від поставленої науково-дослідницької мети. Для кращого розуміння масштабів забруднення території контролю потрібно досліджувати якість повітряного середовища, якість ґрунтів, водяні об’єкти, надходження до території контролю твердих промислових відходів та радіаційну обстановку території дослідження. Зрозуміло, що при таких вимогах створити повністю автоматизовану систему екологічного моніторингу дуже важко через труднощі відбору проб на аналіз деяких середовищ. Також для автоматизації такої системи датчики мають містити засоби автономної передачі даних. Для цього такі датчики обладнуються засобами радіозв’язку, які передають дані по радіомережі в базу первинних даних.

На сучасному етапі розвитку АІСЕМ найбільш розвинені системи моніторингу атмосферного повітря та водного середовища. Принципи функціонування сучасних АСЕМ забезпечують безперервну передачу та отримання даних від датчиків з території дослідження. Після отримання інформації система обробляє отримані дані, проводить розрахунки та прогнозує найбільш ймовірний розвиток ситуації. У випадку вияву екологічної небезпеки, або її можливості АІСЕМ розраховує найбільш ймовірні наслідки з урахуванням екологічного та фінансового збитку. Далі пропонує послідовні рекомендації для підтримки прийняття рішень з метою зменшення або запобіганню екологічної катастрофи[7].

         На даний момент впровадження нових технічним засобів дозволяє краще автоматизувати процес відбору проб для аналізу. Мультісенсорні системи дозволяють в рамках одного приладу проводити аналіз декількох елементів забруднення та отримувати найбільш точні дані про розсіювання елементів від різноманітних джерел забруднення та виявляти нові джерела та ступінь їх впливу на навколишнє середовище.

         Сервери баз даних АІСЕМ розробляються по новітнім інформаційним технологіям для забезпечення безперервної їх доступності та обладнанні новітніми системами безпеки, яка запобігає несанкціонованому доступута зміні даних, що забезпечує надійність зберігання інформації та її точність і правдивість.

         Обрахунки концентрацій в локальних точках забруднення, побудова полів розподілу елементів забруднення та прогнозування забруднення екосистем, виконуються з використанням інтерполяційних та екстраполяційних математичних моделей. Перевірку розрахунків для підвищення точності математичних моделей виконують з допомогою приладів експрес-аналізу, та проводяться додаткові розрахунки. На основі розрахунків та даних досліджень будуються поля розподілу забруднюючих речовин з нанесенням на карту території дослідження[8]. Дану інформацію використовують для аналізу ризиків та сили впливу на стан здоров’я людей та екологічний стан території дослідження та забезпеченням даною інформацією населення цієї території. І саме головне отримані дані дозволяють побудувати алгоритм дій при екологічній небезпеці та підвищення оперативної реакції на негативні зміни в навколишньому середовищі, що можуть пагубно впливати на стан населення, що проживає на цій території.

1.3. Інформаційні системи екологічного моніторингу в Україні

Проведення досліджень за станом навколишнього середовища та рівнем його забруднення передбачено в рамках закону України «Про охорону навколишнього природнього середовища». Контроль за виконанням вимог закону покладено на Міністерство екології та природних ресурсів України та центральні органи влади в районах, містах, селах. Виконання вимог даного закону є обов’язковим на підприємствах, закладах та організацій, діяльність яких призводить або може призвести до погіршення екологічного стану навколишнього середовища. В рамках цього закону функціонує Державна система моніторингу навколишнього середовища.

Державна система моніторингу навколишнього середовища – це система спостережень, збору, обробки, передачі, зберігання та аналізу інформації про стан навколишнього середовища, прогнозування його змін і розроблення науково-обґрунтованих рекомендацій для прийняття рішень про запобігання негативним змінам стану довкілля та дотримання вимог екологічної безпеки. Створення і функціонування державної системи моніторингу з метою інтеграції в неї АІСЕМ, ґрунтується на принципах:

·   узгодженості нормативно-правового та організаційно-методичного забезпечення, сумісності технічного та програмного забезпечення її складових;

·   систематичності спостережень за станом навколишнього середовища та техногенними об’єктами, що впливають на нього;

·   об’єктивності первинної, аналітичної та прогнозної екологічної інформації та її оперативності її передачі органам державної влади, органам місцевого самоврядування, громадським організаціям, засобам масової інформації, населенню України та зацікавленим міжнародним організаціям.

Впровадження АІСЕМ в Україні спрямовано для:

·   підвищення рівня дослідження та знаній про екологічний стан навколишнього середовища;

·   підвищення оперативності та якості інформаційного обслуговування користувачів на всіх рівнях;

·   підвищення якості створення природоохоронних заходів та ефективності їх виконання;

·   підтримку розвитку міжнародної співпраці в галузі охорони навколишнього середовища, раціонального використання природних ресурсів.

Основними задачами АІСЕМ в Україні є:

·   довготривалі, систематичні дослідження стану навколишнього середовища;

·   аналіз екологічного стану навколишнього середовища і прогнозування його змін;

·   інформаційно-аналітична підтримка прийняття рішень в галузі охорони навколишнього середовища, раціонального використання природних ресурсів та екологічної безпеки;

·   інформаційне обслуговування органів державної влади, органів місцевого самоврядування, а також населення України та міжнародних організацій про екологічний стан екосистем [9].

В сучасний час в Україні склалося несприятлива екологічна ситуація; негативні зміни проходять в усіх компонентах навколишнього середовища нашої держави. Наслідком цього є розвиток промисловості України без урахування вимог по охороні навколишнього середовища на протязі багатьох десятків років.

1.1.3. Автоматизована інформаційна система екологічного моніторингу в місті Дніпропетровськ

З 1993 року в місті Дніпропетровськ був накопичений опит по проектуванню та створенню АІСЕМ за підтримки державного підприємства Східноукраїнський екологічний інститут та корпорації «Укратомприлад». Проект було реалізовано у рамках «Державної Програми поліпшення екологічного стану Дніпропетровської області за рахунок зменшення забруднення довкілля Основними підприємствами забруднювачами на 2007-2015 роки» та «Програми моніторингу довкілля Дніпропетровської області». На даний час експлуатацією Дніпропетровської АІСЕМ проводиться державним підприємством «Дніпрокосмос».

Технічна реалізація системи передбачає досягнення наступних цілей:

·   контроль за станом навколишнього середовища та координації роботи міських служб, організацій та підприємств з питань екології;

·   вияв та оцінка впливу джерел забруднення на динаміку зміни стану навколишнього середовища та здоров’я населення;

·   контролювання зменшення зарубників шляхом зобов’язання підприємств реалізації організаційно-технічних та технологічних заходів на виробництві;

·   створення термінових да довгострокових заходів по стабілізації екологічного стану в області та запобіганню ймовірних негативних наслідків забруднення навколишнього середовища;

·   оцінку і прогнозування екологічного стану в місті та області;

·   підвищення оперативності і ефективності прийняття рішень по всім заходам природоохоронної діяльності.

Дніпропетровська АІСЕМ включає в себе програмно-технічний комплекс збору, обробки, пошуку, зберігання та відображення екологічної інформації промислових об’єктів та природоохоронних міських служб контролю за станом навколишнього середовища. Сама система спроектована по модульному принципу, що дозволяє легко впроваджувати та адаптувати до різноманітних модифікацій[10].

Система забезпечує збір та передачу даних контроля з автоматизованих та звичайних постів контролю в міській центр екологічного контролю, де проводиться обробка інформації та її систематизація, представлення у вигляді статичних звітів, графіків, діаграм. Забезпечено пошук та обробку інформації за допомогою різних математичних алгоритмів та моделей для збільшення точності обрахунків. Ведеться облік даних статичної звітності промислових підприємств.

В склад Дніпропетровської АІСЕМ входять:

·   міський центр прийому, обробки, відображення та зберігання інформації, аналізу та прогнозу екологічного стану – міське управління екології;

·   джерела екологічної інформації – промислові об’єкти та міські служби контролю: санітарна та епідеміологічна служби, лабораторії спостереження за забрудненням атмосфери, міській водоканал, відділ використання водних ресурсів.

·   Автоматизовані пости контролю за станом атмосфери.

За планом розширення системи передбачено:

·   створення рухомої лабораторії контролю навколишнього середовища, що дозволить підвищення оперативності та достовірності отримання даних для вже існуючих модулів системи;

·   розробку та включення в склад системи підсистем експертних оцінок для підтримки прийняття управлінських рішень у галузі природоохоронної діяльності;

·   забезпечення даних інформації в засоби масової інформації;

·   ведення в експлуатацію систем авіакосмічної фотознімків;

·   забезпечення формування та підтримки збору та обробки даних інженерно-геологічної інформації для містобудівної галузі.

Результати двадцятирічного досвіду експлуатації АІСЕМ міста підтвердили результативність використаної концепції організації моніторингу та програмно-технічних засобів[11].

1.3.2. Система РОДОС

В 2014 році Європейською комісією спільно з Державним підприємством Національна атомна енергогенеруюча компанія «Енергоатом» впровадило сучасну систему екологічно-радіаційного моніторингу РОДОС (RODOS - Real Time on-line Decision Support System), яка діє в усіх країнах Європейського союзу. З впровадженням системи РОДОС Україна отримала сучасну систему для екстреного реагування на ядерні та радіаційні аварії.

Головні цілі впровадження системи РОДОС в Україні:

·   комплексна підтримка прийняття рішень у галузі радіаційно-екологічної безпеки на АЕС;

·   забезпечення більшої прозорості процесу прийняття рішень для кращого громадськістю після аварійних заходів;

·   встановлення кращого міжнародного обміну інформацією та даними моніторингу і прогнозу наслідків у випадку будь-яких аварій;

·   налагодження більш узгодженій допомоги та оперативному реагуванню на будь-які можливі аварії на території держав Європи[12].

Систему РОДОС було спроектовано, як комплексну систему, яка включає математичні алгоритми і бази даних для моделювання і оцінок стану АЕС та екологічного контролю на прилеглій до АЕС території. Система РОДОС може оцінювати ситуацію від моменту загрози аварії та погіршення екологічного стану навколишнього середовища до довгострокових заходів, що повинні будуть впроваджуватися за місяці та роки для поліпшення екологічного стану після аварії. РОДОС забезпечує підтримку прийняття рішень подаючи інформацію, як у вигляді простих описових звітів, так і деталізованого аналізу різних стратегій.

Архітектура РОДОС складається з трьох підсистем:

·   підсистема аналізу радіологічної обстановки;

·   підсистема моделювання контрзаходів;

·   підсистема оцінки контрзаходів.

Взаємодія усіх програмних модулів і інтерфейсів, а також управління інтерактивним і автоматизованим режимом виконання програми контролюється спеціально розробленою під UNIXопераційною системою OSY, яка підтримує функції «клієнт-сервер»[13].

В Україні моделі і бази даних РОДОС були адаптовані для характеристик місцевості та АЕС, географічних, кліматичних та екологічних умов території нашої держави. Для обчислення метеорологічних полів на території України система автоматично отримує дані від Укргідрометцентру. Для цього у рамках спільного проекту Національної Академії наук України та Укргідрометцентру було проведено адаптацію моделі числового прогнозу погоди для регіонів України, де знаходяться АЕС. Надана Мінекоресурсів України багатошарова карта України була використана, як основна для геоінформаційної системи РОДОС. Карта використовується для одержання системою даних про рельєф, використання земель та інших геопросторових даних. Модуль аналізу гідрологічного переносу пристосований для моделювання переносу радіонуклідів у водних об’єктах України після випадання на їх поверхню радіаційних опадів. Розроблена методологія та інстальоване програмне забезпечення для передачі результатів моделювання РОДОС на робочу станцію Урядової інформаційно-аналітичної системи з питань надзвичайних ситуацій УІАС НС.

Для успішної експлуатації системи РОДОС в Україні реалізовані таки проекти:

·   Створення інформаційного центру Мінекоресурсів і розташовано в ньому Національного РОДОС центру.

·   Розробка та інсталяція моделі оперативного числового прогнозу в Укргідрометцентрі для забезпечення системи РОДОС необхідною інформацією.

·   Проект забезпечення регулярного оновлення програмного забезпечення системи РОДОС у тісній співпраці з європейськими інститутами та кампаніями, що приймали участь у розробці системи.

·   Участь у Європейському проекті «Вдосконалення, розвиток, інтеграція систем підтримки прийняття рішень для управління еколого-радіаційною безпекою»[14].

З впровадженням системи РОДОС Україна отримала сучасну систему для екстреного реагування на ядерні, радіаційні та екологічні аварії. Система еколого-радіаційного моніторингу РОДОС є на сьогоднішній день найефективнішою. Математичні моделі, які розроблялися 40 європейськими інститутами на протязі 20 років, не мають аналогів у світі.

Впровадження системи РОДОС в Україні це великий крок для нашої держави у галузі екологічної та радіаційної безпеки.

ВИСНОВКИ ДО РОЗДІЛУ:

         В даному розділі зроблено аналіз літературних джерел. Розглянуто, що являють собою системи екологічного моніторингу та актуальність їх реалізації. Проаналізовано розвиток інформаційних систем екологічного моніторингу та основні вимоги до них.  Розглянуто сучасні АІСЕМ, які працюють в Україні на прикладі державної системи екологічного моніторингу в місті Дніпропетровськ, та на прикладі впровадження європейської системи РОДОС та її адаптації під умови роботи на території нашої держави. Виділено перспективи розвитку такого типу систем в Україні.

РОЗДІЛ 2. СИСТЕМНИЙ АНАЛІЗ ТА ОБҐРУНТУВАННЯ ПРОБЛЕМИ

1.2. Системний аналіз об’єкта дослідження та предметної області

Інформаційна система моніторингу та прогнозування забруднення ґрунтів – це система, яка забезпечує спостереження за станом земельного фонду для своєчасного вияву змін стану ґрунтів, запобігання та усунення негативних наслідків антропогенних процесів природокористування.

Інформаційна система моніторингу та прогнозу забруднення ґрунтів є підсистемою інформаційних систем комплексного екологічного моніторингу. Також такого типу система може працювати, як і повноцінна окрема система для управління економічного та екологічного використання земельного фонду в підприємницькій діяльності. В залежності від цілей спостереження та територій інформаційна система моніторингу та прогнозування забруднення ґрунтів може бути національною, регіональною та локальною. Але не залежно від цих умов інформаційна система моніторингу та прогнозування ґрунтів має за основу одноманітну структуру, а саме:

·   модуль отримання та передачі первинних даних (лабораторії, датчики, системи аерофотозйомки тощо);

·   модуль обробки та зберігання даних;

·   модуль оцінки екологічного стану та моделювання прогнозу;

·   модуль представлення інформації.

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

·   своєчасний вияв змін стану ґрунтів;

·   оцінку змін стану ґрунтів;

·   прогноз майбутніх змін на основі отриманих даних;

·   оцінка загрози екосистемі у зв’язку зі зміною стану ґрунтів;

·   допомога в прийняті рішень, створені рекомендацій, заходів попередження, усунені наслідків негативних процесів та порядок землекористування;

·   інформаційне забезпечення зацікавлених даного типу інформацією користувачів.

Виділимо цілі розробки інформаційної системи моніторингу та прогнозування забруднення ґрунтів (Рис. 2.1).

Цілі високого рівня:

·   Збір інформації аналізів ґрунту та їх збереження в системі для подальшого використання.

·   Забезпечення зацікавлених користувачів інформацією про поточний стан ґрунтів.

·   Забезпечення зацікавлених користувачів інформацію про можливі зміни стану ґрунтів.

Цілі нижчого рівня:

·   Оцінка поточного рівня забруднення ґрунтів.

·   Оцінка якості ґрунтів за нормами ГДК.

·   Прогнозування зміни вмісту забруднюючих речовин в ґрунті.

·   Оцінка можливої зміни екологічного стану в ґрунтових екосистемах.

Рис. 2.1. Дерево цілей.

Отже завдання бакалаврської роботи є розробка інформаційної системи моніторингу та прогнозування забруднення ґрунтів, яка би забезпечила надійне отримання первинних даних аналізу проб ґрунту, зберігання цих даних, точну та своєчасну обробку цих даних, побудову найімовірнішого прогнозу зміни забруднення ґрунтів та корегування даних прогнозу на основі наступних даних моніторингу, представлення актуальною та точної інформації про екологічний стан та можливі зміни стану ґрунтів на території дослідження користувачам системи.

Використаємо методологію Rational Unified Process (RUP) для того, щоб виділити основних зацікавлених користувачів системи та їх вимог.

Методологія RUP заснована на ітеративній моделі розробки, що дозволяє розробити строгий підхід до розподілу задач розробника. Особливість даної методології в тому, що ступень формалізації може змінюватись від потреб проекту. За рахунок цього методологія є дуже гнучкою та широко розповсюдженою, тому вона може бути використана і в невеличких легких проектах, так і  в складних, де потрібен високий рівень формалізації.

Після проведеного аналізу предметної області були виділені такі прецеденти:

1. Зацікавлені особи прецеденту та їх вимоги:

·   Лаборант: заносить в базу даних інформацію аналізу проб ґрунту.

·   Науковий працівник (дослідник): має отримувати від системи найбільш правдиву інформацію про поточне та імовірне розповсюдження забруднення ґрунту, корегувати вихідні дані проектованої системи.

2. Користувач системи тобто основний актор цього прецеденту: це науковий працівник (дослідник), який працює з даними про поточне та прогнозоване забруднення ґрунтів певної території.

3. Передумови прецеденту:

·   Проектована система має бути активною.

·   Підключення до бази даних системи має бути доступним.

·   Лаборант має успішно пройтиавтентифікацію в системі.

·   Лаборант повинен надати точну і актуальну інформацію про аналіз ґрунту.

4. Основний  успішний  сценарій:

Сценарій лаборанта:

·   Лаборант успішно проходить автентифікацію в системі, отримуючи доступ до таблиць бази даних з інформацією про територію дослідження та аналізів проб ґрунту.

·   Лаборант заносить правдиву і актуальну інформацію про аналіз проб ґрунту.

·   Лаборант успішно зберігає всі внесені дані.

·   Лаборант успішно виходить із системи.

Сценарій наукового працівника (дослідника):

·   Науковий працівник (дослідник) успішно проходить автентифікацію в системі, отримуючи доступ до роботи з вихідними даними проектованої системи.

·   Науковий працівник (дослідник) успішно отримує вихідні дані про поточне та прогнозоване забруднення ґрунтів певної території.

·   Науковий працівник (дослідник)  успішно виходить із системи.

5. Розширення основного сценарію або альтернативні потоки:

Невдала автентифікація в систему:

·   Система повідомляє, що лаборант чи науковий працівник (дослідник)  не пройшли автентифікацію в систему.

·   Лаборант чи науковий працівник (дослідник) звертаються до системного адміністратора, щодо отримання або перевірки їх даних для входу в систему.

·   Отримавши дані для входу лаборант чи науковий працівник (дослідник) успішно проходять автентифікацію.

Введені неправильні дані аналізу:

·   Лаборант виконує запит на зміну внесених даних.

·   Лаборант вносить правильні дані аналізу.

·   Лаборант успішно зберігає кореговані дані аналізу.

Невдале збереження даних:

·   Система повідомляє, що введені дані про аналіз не збереглися.

·   Лаборант звертається до системного адміністратора з проблемою в роботі з базою даних.

·   Системний адміністратор вирішує проблему процесу роботи з базою даних.

·   Лаборант повторює процес вводу даних та успішно зберігає дані в системі.

Вихідні дані не отримані:

·   Система повідомляє про помилку виведення інформації.

·   Науковий працівник (дослідник) перевіряє коректність введених ним параметрів виведення даних.

·   Науковий працівник (дослідник) звертається до системного адміністратора з питань проблеми виведення даних.

·   Системний адміністратор вирішує проблему.

·   Науковий працівник (дослідник) успішно отримує вихідні дані від системи.

6. Пост-умови:

·   Введені дані лаборантом відповідають дійсності та є актуальними.

·   Дані успішно збережені в базі даних проектованої системи.

·   Науковий працівник (дослідник) отримав дані про прогноз забруднення.

7. Спеціальні системні вимоги:

·   Система повинна містити тільки точні дані про аналіз проб ґрунту.

·   Система повинна швидко та надійно обробляти та зберігати дані.

·   Система повинна вміти працювати з географічними даними та відображати дані стану забруднення ґрунтів на карті.

·   Система повинна швидко видавати найбільш імовірний прогноз забруднення ґрунтів на певній території.

8. Список необхідних технологій та додаткових пристроїв:

·   Система має вміти отримувати дані від спеціальних пристроїв аналізу ґрунту, а не тільки безпосередньо від лаборанта.

·   Для користувачів має бути розроблений інтуїтивно зрозумілий інтерфейс.

За допомогою методології RUP були розглянути типи користувачів, що будуть працювати з системою. Проаналізовано функції користувачів та дані, які доступні користувачам. Виділено основні вимоги до системи.

2.2. Концептуальна модель

2.2.1. Діаграма варіантів використання

Діаграма варіантів використання (Рис. 2.2) показує як можуть взаємодіяти різні типи користувачів із системою за допомогою варіантів використання.

Рис. 2.2. Діаграма варіантів використання.

На даній діаграмі видно, що любий із типів користувачів будь то лаборант чи науковий дослідник для отримання доступу роботи з даними системи мають пройти автентифікацію для того, щоб мати доступ до певних функцій програми. Після того, як автентифікацію пройдена успішна, то працівник лабораторії може вносити дані проб аналізу ґрунту або корегувати їх. А науковий дослідник може переглянути дані про поточне та можливе забруднення та корегувати точність прогнозу забруднення за допомогою зміни параметрів прогнозу. Після закінчення роботи з системою, користувач виходить з системи.

2.2.2. Діаграма діяльності

Розглянемо діаграму діяльності (Рис. 2.3). Ця діаграма показує поведінку системи при виконанні її функцій.

Як видно на діаграмі, щоб отримати доступ до функцій системи потрібно пройти авторизацію. Після чого система основуючись на виділених користувачу прав доступу дасть доступ до більш розширеного функціоналу.

Після вводу даних для авторизації в системі, проводиться перевірка даних користувача для входу в систему. Якщо дані не вірні, то система повідомляє про це і знову вертає форму авторизації. Якщо дані авторизації вірні і користувач є працівником лабораторії, система дозволяє доступ до введення та корегування даних аналізу проб ґрунту.Після внесення даних аналізу, дані перевіряються на їх коректність, якщо були ведені не правильні дані, то слід повернутися до внесення даних і змінити дані на коректні. Якщо внесення даних пройшло успішно, то працівник лабораторії завершує роботу з системою.

У випадку роботи з системою наукового працівника, система виводить дані поточного забруднення та починає розрахунок прогнозу забруднення. Після закінчення розрахунку прогнозу забруднення, система виводить отримані результати на екран. У випадку зміни параметрів прогнозу забруднення, система перераховує прогноз з урахуванням отриманих параметрів та виводить нові дані. Після отримання потрібної інформації науковий працівник завершає роботу з системою.

Рис. 2.3. Діаграма діяльності.

        

2.2.3. Діаграма пакетів даних

Діаграма пакетів даних (Рис. 2.4)демонструєпередачу пакетів даних в системі.В Базі даних зберігається уся інформація про аналіз проб ґрунту, дані зроблених прогнозів забруднення та дані користувачів. Пакет «Дані користувача» містить інформацію про користувачів. А саме тип користувача, його персональні дані та дані автентифікації в системі. Пакет «Дані аналізу проб ґрунту» містить повну інформацію про аналіз проб ґрунту, а саме органолептичні показники, вміст важків металів, пестицидів тощо. Пакет «Дані території дослідження» містить в собі інформацію про території дослідження: назву, координати території та дані карти. Пакет «Дані прогнозу» містить інформацію про зроблений системою прогноз забруднення. Інтерфейс програми містить дані для роботи з користувачами.

Рис. 2.4. Діаграма пакетів.

2.2.4. Діаграма класів

Визначимо класи прикладних об’єктів системи, атрибути цих класів та зв’язки між ними. Інформацію відобразимо на діаграмі класів (Рис. 2.5).

Рис. 2.5. Діаграма класів.

Прикладні об’єкти системи:

·   «Працівники» – володіє такими атрибутами: прізвище, ім’я, по-батькові, логін та пароль для входу в систему, електрона адреса, посада, адреса проживання, телефон, дата влаштування на роботу, також за деяких обставин дату звільнення.

·   «Аналіз проби ґрунту» – має атрибути: дата та час, коли зроблений аналіз, маса проби ґрунту, вміст миш’яку, вміст кобальту, вміст міді, вміст хрому, вміст ртуті, вміст нітратів, вміст азотних добрив, вміст фосфору, вміст свинцю.

·   «Територія дослідження» – володіє такими атрибутами: назва, довгота, широта.

·   «Карта території»– атрибути: довгота і широта.

·   «Прогноз забруднення» – атрибути: вміст миш’яку, вміст кобальту, вміст міді, вміст хрому, вміст ртуті, вміст нітратів, вміст азотних добрив, вміст фосфору, вміст свинцю, дата створення прогнозу.

·   «Гранично допустимі концентрації (ГДК)» – атрибути: ГДК миш’яку, ГДК кобальту, ГДК міді, ГДК хрому, ГДК ртуті, ГДК нітратів, ГДК азотних добрив, ГДК фосфору, ГДК свинцю.

·   «Територія дослідження» – «Карта території». Зв’язок типу композиція. Карта території не може існувати без території дослідження. Територія дослідження може мати більше ніж одну карту. При видаленні даних про територію дослідження, видаляється і карта цієї території.

·   «Територія дослідження» – «Аналіз проб ґрунту». Зв’язок типу композиція. Аналізи проб ґрунту беруться на визначеній території, отже аналіз проби ґрунту не може існувати без території дослідження. Територія дослідження може мати більше одного аналізу проб ґрунту.

·   «Територія дослідження» – «Прогнозу забруднення». Зв’язок типу композиція. Прогноз забруднення розраховується для визначеної території, отже прогноз забруднення не існує без території дослідження. Територія дослідження може мати один і більше прогнозів забруднення.

·   «Працівники лабораторії» – «Територія дослідження». Зв’язок типу асоціація.Працівник може бути закріплений для роботи з аналізами проб ґрунту на певній території.

·   «Працівники лабораторії» – «Аналіз проб ґрунту». Зв’язок типу асоціація.Працівник може мати посаду з обов’язками проводити аналізи проб ґрунту. Однак не всі типи працівників працюють з аналізами проб ґрунту.

·   «Аналізи проб ґрунту» – «Прогноз забруднення». Зв’язок типу композиція. Прогноз забруднення не можу існувати без даних аналізів проб ґрунту. Прогноз забруднення базується на багатьох даних аналізів, а дані аналізів можуть входити в множину різних прогнозів забруднення.

2.3. Змістовна постановка задачі

Розглянемо основні задачі системи. Отже система має надавати точну інформацію про існуючий стан та прогнозу забруднення. Для цього системі потрібно постійно отримувати дані про аналізи проб ґрунту та метеорологічні дані території дослідження. Тому потрібно забезпечити надійне та постійне надходження таких даних: вміст небезпечних речовин в пробах ґрунту, координати території дослідження, карту території дослідження та метеорологічні дані на цій території. Система має забезпечувати надійне збереження даних в базі даних та унеможливити несанкціонований доступ до даних для збереження їх цілісності, щоб забезпечити точні результати оцінки стану та прогнозу забруднення ґрунту.

         Система повинна мати постійний доступ до бази даних, щоб отримувати дані для оцінки та прогнозу забруднення ґрунтів. Отже потрібно забезпечити безперервний обмін даними між системою та базою даних, швидкість відповіді на запити системи до бази даних та передачу потрібною інформації.

         Оцінка та розрахунок прогнозу має бути як можна найбільш точним. Для цього система має бути забезпечення програмними та апаратними засобами, які дадуть змогу швидко обробляти та обраховувати велику кількість даних з великою точністю.

         Інформація користувачам системи повинна подаватися тільки актуальна та точна і у зручній для аналізу людиною формі. Тому потрібно забезпечити систему функціями представлення вихідної інформації у вигляді звітів, таблиць, діаграм, графіків та на карті території дослідження.

         Впровадження системи має вирішити проблеми швидкої оцінки екологічного стану ґрунтів, які використовуються в підприємницькій  діяльності. Допомогти розробляти контрзаходи, як термінові так і планові для прийняття рішень у галузі охорони ґрунтів, допомога в прийняті рішень, створені рекомендацій, заходів попередження, усунені наслідків негативних процесів та порядок землекористування.

ВИСНОВКИ ДО РОЗДІЛУ:

         У цьому розділі був проведений системний аналіз інформаційної системи моніторингу та прогнозування забруднення ґрунтів. Виділено основні цілі розробки даної інформаційної системи. Виявлено зацікавлених користувачів та їх вимоги до системи за допомогою методології RUP. Проаналізовано роботу системи з різними типами користувачів та відображено ці дані на діаграмі використання. Розглянуто загальну схему функцій програми на діаграмі діяльності. На прикладі діаграми пакетів розглянуто множини вхідних та вихідних даних. Виділено основні об’єкти системи, їхні атрибути та зв’язки між ними та відображено це на діаграмі класів. Виділено основні задачі, які повинна вирішувати система.

РОЗДІЛ 3. МЕТОДИ ТА ЗАСОБИ ВИРІШЕННЯ ПРОБЛЕМИ

3.1. Вибір та обґрунтування методів вирішення проблеми

3.1.1. Загальна модель надходження забруднюючих речовин в ґрунтові екосистеми

Надходження забруднюючих речовин до ґрунтових екосистем відбувається трьома основними шляхами:

1. опадами з атмосфери;

2. при зрошуванні;

3. при внесенні добрив.

Розглянемо модель надходження забруднюючих речовин на площу ґрунтової поверхні S2). Також треба враховувати поверхню рослинності, що проростає на ґрунтів Sp(t)(м2), в основному вона залежить від пори року та від типу рослинності. Якщо швидкість надходження vd(мг/доб), а концентрація в ґрунті забруднюючої речовини x0(мг/кг), то на площу ґрунту S2) за одиницю часу буде надходити кількість забруднюючої речовиниfs(t)(мг/кг), що вираховується по формулі:

,                                                    (3.1)

а на поверхню рослин:

.                                                         (3.2)

         При надходженні забруднюючих речовин на поверхню ґрунту деяка частка буде затримуватись рослинністю, отже з урахуванням цього коефіцієнта kp(t):

.                                           (3.3)

         З урахуванням атмосферних опадів:

,                             (3.4)

де ke – коефіцієнт вимивання забруднюючих речовин з атмосфери, Q(t)(мм/од. часу) – кількість опадів.

         При зрошуванні водами з концентрацією забруднюючої речовини xkз інтенсивністю vk(мг/од. часу), за період часу зрощення на поверхню рослин буде надходити кількість забруднюючих речовин, яка обраховується по формулі:

,                                                        (3.5)

тоді на поверхню ґрунту, з урахуванням коефіцієнту затримування забруднюючих речовин рослинністю, буде поступати кількість забруднюючих речовин, яка обраховується по формулі:

.                                       (3.6)

         При внесенні добрив, що містять забруднюючу речовину в кількості xyна площу поверхні ґрунтів за деякий проміжок часу Tyдодатково забруднить поверхню ґрунту, з урахуванням коефіцієнту затримування забруднюючих речовин рослинністю:

.                                         (3.7)

         Отже кількість забруднюючої речовини, що поступила на поверхню ґрунту площею S2) можна визначити по формулі:

.                            (3.8)

         Через те ще для кожної території та типів ґрунтів і рослинності на ній, а також хімічних та фізичних властивостей забруднюючих речовин різних типів є певні особливості, використані в цій моделі коефіцієнти потребують чисельного визначення величин для кожної окремої території дослідження. При їх визначенні враховуються:

·   фізико-хімічні властивості забруднюючих речовин;

·   еколого-фізіологічні властивостірослин даної території;

·   характеристику ґрунтів і ландшафту;

·   метеорологічні умови території.   

3.1.2. Метод експоненціального згладжування в прогнозуванні вмісту забруднюючих речовин в ґрунті.

Проаналізувавши загальну модель надходження забруднюючих речовин на поверхню ґрунту можна зробити висновок, що концентрація вмісту забруднюючих речовин залежить від багатьох факторів. Із цих факторів зрозуміло, що в залежності від сезону року вміст різних типів забруднюючих речовин буде змінюватись по різному, цей фактор треба обов’язково враховувати. Отже значення змін концентрації забруднюючої речовини має сезонний характер. Сезонність дуже важлива при прогнозуванні концентрації забруднюючої речовини. Ігнорування цього фактору приведе к значній втраті точності прогнозування. Прогнозування вмісту забруднюючої речовини в ґрунтів відносять до класу прогнозування динамічних рядів.

При прогнозуванні динамічних рядів потрібно враховувати сезонні коливання. Аналітичними показниками сезонних коливань в динамічних рядах є індекси сезонності. Індекс сезонності Is розраховується, як відношення фактичного значенняX до теоретичного або розрахованого  показника сезонності Yt:

.                                                       (3.9)

         Отриманні значення індексу сезонності можуть мати випадкові відхилення, тому проводиться усереднення по всім значенням за певний цикл:

,                                                 (3.10)

де xi – значення певної величини в межах циклу, n – кількість значень в циклі, що аналізується.

         Усереднення проводиться для того, щоб більш явно виявити тенденцію, або ж сезонні чи циклічні зміни, та знизити вплив випадкового розкиду помилкових даних. Однак для більшої точності потрібно отримувати не одне постійне значення, а знову ж таки ряд середніх, який би намагався відобразити тенденцію змін даних більш точніше. Одним із таких методів є застосування експоненціального згладжування в прогнозуванні.

         Суть метода експоненціального згладжування полягає у тому, що більш новим значенням величини надається більший ваговий коефіцієнт порівняно з більш старішими. При цьому більш старим значенням присвоюються експоненціально спадні вагові коефіцієнти[15].

Розглянемо метод експоненціального згладжування в прогнозуванні вмісту забруднюючих речовин в ґрунті.Якщо концентрація забруднюючої речовини x, а згладжене середнє F. Тоді отримуємо:

F1 – не визначене,

F2 = x1,

F3 = x2+(1-w)·F2.

         Узагальнена формула:

,                            (3.11)

де w – коефіцієнт згладжування, який приймає значення з діапазону (0; 1).

Напишемо формулу (3.11) більш детально, щоб зрозуміти звідки береться експоненціальна залежність:

.                  (3.12)

         Тоді узагальнена формула розрахунку прогнозу зміни концентрації забруднюючої речовини на основі nіснуючих значень концентрації речовини:

.                     (3.13)

Як видно із загальної формули розрахунку прогнозу зміни концентрації забруднюючої речовини коефіцієнт згладжування є постійним для всього ряду. Вибір коефіцієнта згладжування має велике значення. Виходячи із формули можна зробити висновок, що чим вище коефіцієнт згладжування, тим скорше зменшується його вплив на більш старі значення, і навпаки – чим він нижчий тим довше зберігається його значення. Однак ніяких точних математичних формул по точному розрахунку коефіцієнта згладжування нема. Цей показник зазвичай вибирається методом підбору.Тому під час розрахунку прогнозу зміни концентрації забруднюючої речовини коефіцієнт згладжування прийнято розраховувати по формулі:

,                                     (3.14)

де xi – значення забруднюючої речовини,

n– кількість значень забруднюючої речовини на основі, яких буде робитися розрахунок прогнозу.

При такому способі обрахунку коефіцієнта згладжування враховуються тенденція зміни концентрації речовини в ґрунті та зменшується вплив можливої наявності помилкового значення.

3.1.3. Оцінка якісного та екологічного стану ґрунтів за нормами гранично допустимих концентрацій забруднюючих речовин.

Гранично допустимі концентрації (ГДК) – це така маса шкідливої речовини в одинці об’єму окремих компонентів біосфери, періодичний чи постійний, цілодобовий вплив якої на організм людини, тварин і рослин не викликає відхилень у нормальному їх функціонуванні протягом усього життя нинішнього та майбутніх поколінь[16].

Важливими заходами щодо екологічного захисту ґрунтів є нормування їхнього забруднення. Для цього державою встановлюються ГДК хімічних речовин у ґрунті, тобто концентрації забруднюючої речовини, що не справляє прямої або опосередкованої пагубної дії для екосистеми ґрунту та здоров’я людини, враховуючи віддалені наслідки.

Концентрація наявних у ґрунті забруднюючих речовин на певний час та на певній території називають фоновою концентрацією x(мг/кг). Оцінку рівня фонової концентрації шкідливої речовини здійснюють її зіставленням з нормами ГДК:

.                                                    (3.15)

Як зрозуміло із формули, якщо відношення фонової концентрації речовини до її ГДК менше або рівне 1, то фонова концентрація знаходиться в межах норми і не спричиняє негативного впливу на ґрунтову екосистему та здоров’я людей, що проживають на цій території.

Для оцінки рівня забруднення хімічними речовинами ґрунту певної території враховують загальну середню концентрацію всіх забруднюючих речовин відносно ГДК за формулою:

,                              (3.16)

         де x1, x2, x3, …, xn – фонові концентрації забруднюючих речовин,

         ГДКx1, ГДКx2, ГДКx3, …, ГДКxn – це ГДК для даних хімічних речовин.

         По отриманому значенню Sdкласифікують рівень забруднення ґрунту на певній території:

·   Sd ≤ 1 – низький рівень забруднення, тобто концентрація всіх забруднюючих речовин знаходиться в нормі, та не дає шкідливого впливу на ґрунтову екосистему та на стан здоров’я людейна цій території;

·   1 <Sd≤ 1,25 – середній рівень забруднення, тобто деякі концентрації хімічних речовин речовини перевищують норми ГДК, або всі концентрації речовин перевищують норми ГДК, але не суттєво. При середньому рівнізабруднення концентрації хімічних речовин не наносять дуже великої шкоди на екологічний стан ґрунту та здоров’я людини на цій території;

·   1,25 <Sd≤ 1,5 – високий рівень забруднення. Концентрації забруднюючих речовин перевищують норми ГДК на стільки, що можуть заподіювати суттєву шкоду екологічному стану ґрунтів або здоров’ю людей на цій території.

·   Sd ≥ 1,5 – критичний рівень забруднення. Концентрації хімічних елементів мають дуже високий рівень порівняно з ГДК, що може заподіяти не відворотні наслідки у екосистемі ґрунту та здоров’ї людей, що проживають на даній території.

При розрахунку загальної середньої концентрації, більший вплив на значення даної величини матимуть хімічні речовини з більшим рівнем небезпеки, адже їхні норми ГДК набагато менші ніж речовин з меншим рівнем небезпеки.

3.2. Вибір та обґрунтування засобів вирішення проблеми

3.2.1. Засобипроектування та роботи з базами даних

         Для підтримки стабільного функціонування системи та надійного зберігання інформації в системі, постійного доступу до потрібних для оцінки поточного та прогнозування екологічного стану ґрунтів даних, дуже важливим є безперервний та надійний доступ до бази даних системи.

Загальновідомою і дуже популярною мовою для створення, модифікації та управління даними в реляційні базі є структурована мова формальна мова програмування SQL (StructuredQueryLanguage). Структурована мова запитів SQLявляє собою сукупність: операторів, інструкцій та обчислювальних функцій.

Основним об’єктом зберігання інформації в реляційних базах даних є таблиця, тому SQLорієнтована на операції з таблицями та обчислення кортежів.

         SQLдозволяє виконувати наступні основні операції з таблицями:

·   створення в базі даних нових таблиць;

·   додавання даних в таблиці;

·   зміна записів в таблиці;

·   видалення записів;

·   вибірка записів із однієї або декількох таблиць за заданою умовою

·   зміну структур таблиць.

Переваги використання SQLпри роботі з інформацією в базі даних:

·   незалежність від конкретної системи керування базами даних (СКБД);

·   стандартизованість– наявність стандартів та набора тестів для вияву сумісності та відповідності конкретної реалізації SQLзагально прийнятому стандарту, що «стабілізує» опрацювання великої кількості даних.

·   декларативність – за допомогою SQLописується тільки то, які дані потрібно зберегти,  змінити або видалити. То, яким чином це зробити вирішує СКБД при обробці запиту.

Для обробки запитів SQLвикористає СКБД MySQL.

MySQL – реляційна СКБД, розповсюджується на правах вільного програмного забезпечення. Дана СКБД є хорошим рішенням, як і для малих, так і для великих проектів. Перевагами MySQLє її гнучкість, що забезпечує підтримку великої кількості різного типу таблиць. Від таблиць з функціями повнотекстового пошуку, так і таблиці, які підтримують транзакції на рівні окремих записів [17].

Для легкості роботи по створенню бази даних за допомогою SQL та MySQLвикористаємо програмний засіб HeidiSQL. Даний програмний засіб являє собою клієнт до серверів MySQLта MsSQL. HeidiSQL має легкий та зрозумілий інтерфейс, підтримку збереження підключень до різних баз даних та серверів та перевірку синтаксису SQLзапитів, що дуже полегшую розробку та роботу з базами даних.

3.2.2. Засоби для реалізації програмного коду системи

Вибір мови програмування для реалізації програмного коду системи є дуже важливою складовою, адже має полегшити досягнення вимог та задач, які були поставленні перед розробкою системи. Також забезпечити надійну роботу системи та її функціоналу.

Для реалізації основного програмного коду системи використаємо об’єктно-орієнтовну мову програмування C# з використанням платформи Microsoft .NETFramework. Мова програмування C# відноситься до мов з C-подібним синтаксисом, має статичну типізацію, підтримку поліморфізму, інкапсуляції, успадкування, анонімні функції з підтримкою замикань, обробку виключних ситуацій та коментарі. Мова програмування С# ідеально підходить, як для розробки легких за функціоналом програм так і систем з потужним функціоналом [18].

Із переваг C#можна виділити:

·   прямий доступ до пам’яті, що забезпечує швидкість виконання програмного коду;

·   підтримку універсальних типів та методів для забезпечення більш високого рівня безпеки та продуктивності;

·   відсутність підтримки множинного успадкування класів, що забезпечує відсутність семантичної невизначеності;

·   інкапсульовані сигнатури методів, так званні делегати;

·   властивості, що виступають у ролі методів доступу до закритих змінних.

Microsoft .NETFramework– програмна платформа, основною якої є загальномовне середовище виконання Common Language Runtime (CLR), що забезпечує підтримку функціональних можливостей в усіх мовах, які використовують дану середу. Програми написані для .NETFramework в незалежності від мови програмування можуть бути легко включенні в інші проекти, що реалізовані за допомогою цієї програмної платформи. Це дає змогу розширити функціонал програмних рішень для виконання поставлених задач перед системою [19].

Для полегшення розробки модулів системи та її інтерфейсу використаємо інтегровану середу розробки Microsoft Visual Studio. Дана середа розробки має потужний набір інструментів для розробки програм. За допомогою Microsoft Visual Studio можна розробляти консольнідодатки, програми з графічним інтерфейсом з підтримкою технології Windows Forms, а також веб-сайти, веб-додатки та веб-служби. Дана інтегрована середа розробки включає такі основні інструменти як:

·   редактор вихідногокоду з підтримкою автодоповнення та можливістю простого рефакторингу коду;

·   налагоджувач, який може підтримувати, як налагоджування рівня вихідного коду, так і налагоджування на рівні машинного коду;

·   редактор форм, що спрощує створення графічного інтерфейсу програм;

·   дизайнер класів;

·   дизайнер схем баз даних.

Visual Studio дозволяє підключення сторонніх додатків для розширення функціональності на кожному рівні розробці програм. Також включає в себе системи контролю версій вихідного коду та можливість підключення до сторонніх систем контролю версій.

Ці переваги даної інтегрованої середи розробки спрощують розробку, що позволяє скорити час на реалізацію поставлених вимог та задач перед системою, що розробляється.

3.2.3. Засоби роботи з геоданими та картами

         Перед розробкою інформаційної системи моніторингу та прогнозування забруднення ґрунтів ставилась задача відображення поточного та прогнозованого екологічного стану ґрунтових екосистем на карті. Отже для виконання даної вимоги використаємо сервіс «Яндекс.Карти».

         «Яндекс.Карти» – це безкоштовна пошуково-інформаційна картографічна служба, що була розроблена компанією «Яндекс» та впроваджена в 2004 році. Дана картографічна служба містить докладні карти місцевості усього світу, які кожного місяця оновляються. Карти доступні у варіанті схем, супутникових знімків або відображення об’єднання цих двох варіантів.  Цей функціонал служби забезпечить отримання достовірної карти територій дослідження ґрунтів. Розглянемо функції даної картографічної служби, які дозволять досягнути поставлених вимог до розробки системи:

·   можливість легко отримати карту з сервісу;

·   забезпечення перемикання шарів карти;

·   управління масштабуванням карти;

·   легку навігацію на карті;

·   пошук по координатам та географічним об’єктам;

·   створювання атрибутів даних та представлення їх на карті длявізуалізації географічної та іншої інформації;

·   швидка обробка геоданих;

·   можливість запуску моделей або скриптів геообробки [22].

Використання функціональних можливостей пошуково-інформаційної картографічної служби «Яндекс.Карти» підтримується за допомогою прототипно-орієнтованої скриптової мови програмування JavaScript. Служба «Яндекс.Карти» має докладну документацію функціоналу, що дозволяє легко та швидко зрозуміти принципи роботи з картами та геоданими.

Використання даної картографічної служби дасть змогу досягти поставленої цілі, щодо відображення даних про стан ґрунтів на карті. Та дозволить завжди отримувати точні та достовірні карти територій дослідження.

ВИСНОВКИ ДО РОЗДІЛУ:

В даному розділі було проаналізовано загальну модель надходження забруднюючих речовин. Зроблено висновок щодо факторів, які впливають на вміст хімічних речовин у ґрунтах. Та за допомогою проведеного аналізу обрано математичну модель прогнозування вмісту забруднюючих речовин, яка би враховувала сезонні динаміки зміни концентрацій хімічних речовин в ґрунтових екосистемах. Проведено аналіз моделі оцінки стану забруднення ґрунтів та виявлено правила класифікації рівня забруднення ґрунтів територій дослідження.

Обрано засоби для розробки системи з урахуванням всіх поставлених перед системою вимог та задач. Обрані методи та засоби забезпечать розробку системи згідно поставлених до неї вимог та задач.

РОЗДІЛ 4. ПРАКТИЧНА РЕАЛІЗАЦІЯ

4.1. Описання реалізації завдання

4.1.1. Описання реалізації бази даних

         Розробка інформаційної системи моніторингу та прогнозування забруднення ґрунтів почалося з проектування бази даних.

         Реалізація бази даних дуже важливий процес при створенні системи. Реалізована база даних має спрощувати роботу з даними потрібними для системи. Забезпечувати цілісність даних та швидку обробку запитів до таблиць

Розглянемо реалізовану базу даних системи моніторингу та прогнозування забруднення ґрунтів за допомогою схеми бази даних (Рис. 4.1).

DataBaseIASoMaPSC_Model

Рис. 4.1. Загальна схема таблиць та зв’язків бази даних.

Розглянемо більш детально реалізовані таблиці бази даних.

Головна таблиця бази даних системи «AnalysisData» в якій зберігаються усі дані про аналізи проб ґрунту, які були внесені в систему.

         Розберемо дану таблицю більш детально:

·   Поле «idAnalysisData». Тип даних «INT». Первинний ключ. Ідентифікатор даних аналізу. По замовчуванню має властивість «Auto Incremental».

·   Поле «sampleMass». Типданих«INT».Призначено для зберігання даних про масу проби ґрунту. По замовчуванню має значення 1000. Тобто якщо не вказано масу проби при ведені даних аналізу в базі даних автоматично буде присвоєно значення 1000.

·   Поле «contentArsenic». Типданих«DOUBLE».Призначено для зберігання даних про вміст миш’яку в пробі ґрунту. Тип даних обран з урахування того, що вміст концентрацій хімічних речовин задається дробовими значеннями.

·   Поле «contentCobalt».Типданих«DOUBLE».Призначено для зберігання даних про вміст кобальту в пробі ґрунту.

·   Поле «contentCooper».Типданих«DOUBLE».Призначено для зберігання даних про вміст міді в пробі ґрунту.

·   Поле «contentChromium».Типданих«DOUBLE».Призначено для зберігання даних вміст хрому в пробі ґрунту.

·   Поле «contentMercury».Типданих«DOUBLE».Призначено для зберігання даних про вміст ртуті в пробі ґрунту.

·   Поле «contentNitrates».Типданих«DOUBLE».Призначено для зберігання даних про вміст нітратів в пробі ґрунту.

·   Поле «contentNitrogen».Типданих«DOUBLE».Призначено для зберігання даних про вміст азотних добрив в пробі ґрунту.

·   Поле «contentPhosphorus».Типданих«DOUBLE».Призначено для зберігання даних про вміст фосфатів в пробі ґрунту.

·   Поле «contentPlumbum».Типданих«DOUBLE».Призначено для зберігання даних про вміст свинцю в пробі ґрунту.

·   Поле «contentZinc».Типданих«DOUBLE».Призначено для зберігання даних про вміст цинку в пробі ґрунту.

·   Поле «date».Тип даних«DATE».Зберігає дату, коли був зроблений аналіз ґрунту. Якщо не було задано при внесенні в базу даних, приймає значення дати на момент запису в таблицю.

·   Поле «time». Тип даних «TIME».Зберігає час, коли був зроблений аналіз ґрунту. Якщо не задано для внесення в базу даних, то приймає значення часу на момент запису в таблицю.

·   Поле «idTerritoryData». Тип даних «INT». Зовнішній ключ. Ідентифікує територію на якій був зроблений аналіз проби ґрунту.

·   Поле «idEmployeesData». Тип даних «INT». Зовнішній ключ. Ідентифікує працівника, який зробив аналіз проби ґрунту.

Таблиця «TerritoryData» містить інформацію про території дослідження. Має такі поля:

·   «idTerritoryData». Тип даних «INT». Первинний ключ. Ідентифікатор території. По замовчуванню має властивість «Auto Incremental».

·   «name». Тип даних «VARCHAR(50)» - поле для зберігання назви території дослідження.Доступно 50 символів для задання назви території.

·   «centerLongitude».Тип даних «DOUBLE». Поле в якому зберігаються координата довготицентра для ідентифікації території на карті. Тип даних обран з урахуванням того, що задання довготи та широти території в сучасних картографічних службах має дробові значення.

·   «centerLatitude». Тип даних «DOUBLE». Поле в якому зберігається координата широти для ідентифікації території на карті.

         Ще одна таблиця бази даних, яка забезпечує зберігання даних про територію дослідження – це «Map». Призначення для зберігання множини координат території для відображення на карті.

Має такі поля:

·   «idMap».Тип даних «INT». Первинний ключ. Ідентифікатор карти. По замовчуванню має властивість «AutoIncremental».

·   «mapLongitude».Тип даних «POLYGON».Множина довгот, що задає територію на карті. Тип даних обран з урахуванням легкості передачі множини координат території картографічній службі.

·   «mapLatitude».Тип даних «POLYGON». Множина широт, що задає територію на карті

·   «idTerritoryData». Тип даних «INT». Зовнішній ключ. Ідентифікатор території для карти.

         Розглянемо таблицю «EmployeesData» з даними користувачів системи.

Ця таблиця має такі поля:

·   «idEmployeesData». Тип даних «INT». Первинний ключ. Ідентифікатор користувача. По замовчуванню має властивість «Auto Incremental».

·   «name».Тип даних «VARCHAR(45)». Зберігає ім’я користувача системи.

·   «surname».Тип даних «VARCHAR(45)». Зберігає прізвище користувача системи.

·   «secname».Тип даних «VARCHAR(45)». Зберігає ім’я по-батькові користувача системи.

·   «post».Тип даних «VARCHAR(45)». Зберігає тип посади, яку займає користувач системи, якщо він є працівником.

·   «telephone».Тип даних «VARCHAR(45)». Зберігає контактний номер телефона користувача системи.

·   «address».Тип даних «VARCHAR(45)». Зберігає адресу проживання користувача системи.

·   «userName».Тип даних «VARCHAR(45)». Зберігає ім’я користувача для входу в систему.

·   «userPassword».Тип даних «VARCHAR(45)». Зберігає пароль користувача для входу в систему.

·   «dateEmployment».Тип даних «DATE». Зберігає дату прийняття працівника на роботу.

·   «dateUnemployment».Тип даних «DATE». Зберігає дату звільнення працівника з роботи.

·   «idTerritoryDate». Тип даних «INT». Ідентифікує територію дослідження для працівника на посаді лаборанта.

Розглянемо таблицю «UserPermissionData». Таблиця зберігає дані про права доступа користувачів до певної інформації в системі.

         Таблиця має такі поля:

·   «idUserPermissionData». Тип даних «INT». Первинний ключ. Ідентифікатор доступу. По замовчуванню має властивість «Auto Incremental».

·   «employeesData». Тип даних «VARCHAR(2)». Поле зберігає права доступу користувача до даних інших користувачів. Тип даних обрано з урахуванням формату зберігання прав доступу та перевіркою їх системую.

·   «territoryData».Тип даних «VARCHAR(2)». Поле зберігає права доступу користувача на зміну або перегляд даних про території дослідження.

·   «AnalysisData».Тип даних «VARCHAR(2)». Поле зберігає права доступу користувача на зміну або перегляд даних аналізів проб ґрунту.

·   «ForecastData».Тип даних «VARCHAR(2)». Поле зберігає права доступу користувача на зміну або перегляд даних про прогноз забруднення ґрунтів.

·   «idEmployeesData».Тип даних «INT». Зовнішній ключ. Ідентифікує користувача з виділеними йому правами доступу.

Ще одна дуже важлива таблиця бази даних в системи – «ForecastData». Таблиця зберігає зроблені системою дані прогнозу забруднення ґрунтів.

         Розглянемо поля даної таблиці:

·   Поле «idForecastData». Типданих«DOUBLE». Первинний ключ. Ідентифікатор даних прогнозу. По замовчуванню має властивість «Auto Incremental».

·   Поле «contentArsenic».Типданих«DOUBLE». Призначено для зберігання даних прогнозу про вміст миш’яку в ґрунті.

·   Поле «contentCobalt».Типданих«DOUBLE». Призначено для зберігання даних прогнозу про вміст кобальту в ґрунті.

·   Поле «contentCooper».Типданих«DOUBLE». Призначено для зберігання даних прогнозупро вміст міді в ґрунті.

·   Поле «contentChromium». Типданих«DOUBLE». Призначено для зберігання даних прогнозувміст хрому в ґрунті.

·   Поле «contentMercury». Типданих«DOUBLE». Призначено для зберігання даних прогнозупро вміст ртуті в ґрунті.

·   Поле «contentNitrates».Типданих«DOUBLE». Призначено для зберігання даних прогнозупро вміст нітратів в ґрунті.

·   Поле «contentNitrogen». Типданих«DOUBLE». Призначено для зберігання даних прогнозупро вміст азотних добрив в ґрунті.

·   Поле «contentPhosphorus». Типданих«DOUBLE». Призначено для зберігання даних прогнозупро вміст фосфатів в ґрунті.

·   Поле «contentPlumbum». Типданих«DOUBLE». Призначено для зберігання даних прогнозупро вміст свинцю в ґрунті.

·   Поле «contentZinc».Типданих«DOUBLE». Призначено для зберігання даних прогнозупро вміст цинку в ґрунті.

·   Поле «date».Тип даних«DATE». Зберігає дату до якого терміну прогноз забруднення можна рахувати дійсним. Якщо не було задано при внесенні в базу даних, приймає значення дати наступного місяця від моменту запису в таблицю.

·   Поле «idTerritoryData». Тип даних «INT». Зовнішній ключ. Ідентифікує територію для якої було зроблено прогноз забруднення ґрунту.

Не зв’язана таблиця «MACData» в базі даних з іншими таблицями. Зберігає дані про норми ГДК для хімічних речовин, що досліджуються.

Має такі поля:

·   Поле «idMACData».Тип даних «INT». Первинний ключ.По замовчуванню має властивість «AutoIncremental».

·   Поле «macArsenic». Типданих«DOUBLE». Призначено для зберігання норм ГДК миш’яку в ґрунті.

·   Поле «macCobalt».Типданих«DOUBLE». Призначено для зберігання норм ГДК кобальту в ґрунті.

·   Поле «macCooper».Типданих«DOUBLE». Призначено для зберігання норм ГДК міді в ґрунті.

·   Поле «macChromium».Типданих«DOUBLE». Призначено для зберігання норм ГДК хрому в ґрунті.

·   Поле «macMercury».Тип даних «DOUBLE». Призначено для зберігання норм ГДК ртуті в ґрунті.

·   Поле «macNitrates».Типданих«DOUBLE». Призначено для зберігання норм ГДК нітратів в ґрунті.

·   Поле «macNitrogen».Тип даних «DOUBLE». Призначено для зберігання норм ГДК азотних добрив в ґрунті.

·   Поле «macPhosphorus». Тип даних «DOUBLE». Призначено для зберігання норм ГДК фосфатів в ґрунті.

·   Поле «macPlumbum». Тип даних «DOUBLE». Призначено для зберігання норм ГДК свинцю в ґрунті.

·   Поле «macZinc». Тип даних «DOUBLE». Призначено для зберігання норм ГДК цинку в ґрунті.

Розглянемо зв’язки між таблицями в спроектованій базі даних.

Таблиця «EmployeesData» пов’язана з таблицею «AnalysisData» зв’язком типу один-до-багатьох. Хоча не кожен користувач робить прогноз забруднення, однак працівники, що беруть проби ґрунту та проводять аналіз мають ідентифікуватись в таблиці «AnalysisData» для полегшення отримування даних аналізів за ідентифікатором працівника, що їх зробив.

Таблиця «TerritoryData» пов’язана з таблицею «AnalysisData» зв’язком типу один-до-багатьох.Зв’язок строгого типу кожен аналіз проб ґрунту робиться на певній території дослідження і кожна територія дослідження повинна мати дані про аналізи дослідження. Інакше немає сенсу тримати дані про цю територію в системі.

Таблиця «AnalysisData» пов’язана з таблицею «ForecastData» зв’язком типу багато-до-багатьох. Такий тип зв’язку зумовлений тим, що прогноз забруднення робиться на основі вхідної множини даних аналізів, а при цьому одні і ті самі дані можуть бути використані в вихідній множині прогнозів забруднення ґрунтів. Отже для ідентифікації множини вхідних даних аналізів проб ґрунту краще використати саме цього типу зв’язок.

         Таблиця «TerritoryData» пов’язана з таблицею «Map» зв’язком типу один-до-багатьох. Адже одна територія може мати більше ніж одну широту та довготу, що визначає територію на карті.

         Таблиця «TerritoryData» пов’язана з таблицею «ForecastData» зв’язком типу один-до-багатьох. Зв’язок ведено в базу даних за для легшої ідентифікації території для якої робиться прогноз забруднення ґрунту.

         Таблиця «EmployeesData» пов’язана з таблицею «UsersPermissionData» зв’язком типу один-до-одного, адже кожен користувач може мати тільки одну множину прав доступу до даних.

         Таблиця «MACData»не має зв’язків. Таблиця спеціально спроектована для зберігання даних норм ГДК. На основі яких система робить оцінку екологічного стану ґрунтів.

         Спроектована база даних має надійно зберігати дані системи. Створені зв’язки між таблицями забезпечать легку реалізацію запитів для отримання даних з таблиць. Швидку обробку запитів на стороні серверу бази даних.

4.1.2. Описання реалізації класів

         В даному розділі проведемо аналіз потрібних класів та їх функціоналу для стабільної роботи системи, яка буде відповідати поставленим задачам.

         Розглянемо перелік атрибутів та методів основних класів системи.

         Клас «DatabaseConnect» містить в собі функціонал за допомогою якого система буде підключатися до бази даних. Зберігати підключення до різних баз даних в файлах. Та функції перемикання між базами даних.

         Атрибути класу:

·   «serverName»– зберігає строку з назвою або адресою віддаленого сервера, який містить потрібну базу даних;

·   «userName» – зберігає строку з ім’ям користувача для доступу до бази даних;

·   «dbName»– зберігає назву бази даних до якої буде підключатись система;

·   «port» – зберігає номер порта, який ідентифікує доступ до MySQLна віддаленому сервері. Значення по замовчуванню 3306.

·   «password» – зберігає строку з паролем для отримання доступу до бази даних на сервері.

         Основні методи класу:

·   «SaveConectionSettingsToFile» –зберігає дані налаштованого підключення до бази даних у файл;

·   «GetConnectionSettingsFromFile» – отримує параметри підключення до бази даних з завчасно створеного файлу з потрібними даними.

·   «CreateConnection» – створює SQLкоманду для підключення до бази даних, яка знаходиться на віддаленому сервері. На основі даних атрибутів класу;

·   «TestConnection» – перевіряє правильність параметрів для підключення до бази даних та перевіряє чи сервер бази даних є доступним до підключення;

·   «OpenConnection» – метод підключення до бази даних на віддаленому сервері на основі створеної методом класу «CreateConnection» SQLкоманди.

·   «CloseConnection»– метод завершення підключення до бази даних.

         Клас «MapUnit» містить в собі функціонал, який забезпечує завантаження потрібних фрагментів карти. Також містить в собі функції для нанесення на карту інформації про поточний стан та прогноз забруднення. Та представлення цієї інформації в інтерфейсі програми.

         Атрибути класу:

·   «longitude» –зберігає центральню координату довготи території;

·   «latitude»– зберігає центральну координату широти території;

·   «zoom» – зберігає значення масштабу карти;

·   «height» – зберігає значеня висоти карти;

·   «weight»– зберігає значеня довжини карти;

·   «polygon» – зберігає дані координат для побудови полігонів забруднення на карті.

·   «descripton» – зберігає інформацію про екологічний стан території, яка використовується для нанесення на карту.

Основні методи класу:

·   «BuildPolygon» – метод для побудови на карті полігонів забруднення на основі значень атрибуту «polygon»;

·   «AddDescripton» – метод для нанесення на карту даних про екологічний стан території на основі даних в атрибутах «descripton» та «longitude», «latitude»;

·   «BuildMap» – створює фрагмент карти з іфнормацією про стан забруднення територій дослідження.

Також клас має методи для перевірки правильності координат, масштабу та розмірів карти, що передаютсья атрибутам класу.

Клас «Analysis» містить в собі функціонал, який забезпечує оцінку поточного стану забруднення ґрунтів на основі існуючих в базі даних аналізів проб ґрунту. Та функції оцінки перевищення фонових концентрацій забруднюючих речовин порівняно з нормами ГДК, а також функції оцінки рівня забруднення території. Містить в собі атрибути: «contentArsenic», «contentCobalt», «contentCooper», «contentChromium», «contentMercury», «contentNitrates», «contentNitrogen», «contentPhosphorus», «contentPlumbum», «contentZinc», що зберігають дані вмісту відповідних хімічних речовин у ґрунті з ідентифікатор аналізу, якій зберігається в атрибуті «id». Атрибути для зберігання дати та часи, зробленого аналізу проб ґрунту: «date» та «time». Та атрибути дані яких, ідентифікують територію на якій зроблений аналіз ґрунту: «idTerritory» та «nameTerritory».

Основні методи класу:

·   «GetRateOfPollution» – метод розраховує загальне середнє перевищення фонових концентрацій хімічних речовин відносно ГДК;

·   «GetClassificationOfPollution» – метод класифікує рівень забруднення на основі даних отриманих від методу «GetRateOfPollution».

Також містить методи для виведення даних вмісту хімічних речовин, інформації про стан забруднення та його класіфікації.

Клас «Forecast» містить в собі функціонал з математичними моделями прогнозування стану забруднення ґрунтів та оцінки ймовірного рівня забруднення та перевищення норм ГДК. Містить такі атрибути: «contentArsenic», «contentCobalt», «contentCooper», «contentChromium», «contentMercury», «contentNitrates», «contentNitrogen», «contentPhosphorus», «contentPlumbum», «contentZinc», що зберігають дані про прогнозованний вміст відповідних речовин. Атрибут «idTerritory», який зберігає в собі ідентифікатор території для якої буде робится прогноз забруднення. Атрибут «date», що зберігає дату до якої актуальний зроблений прогноз. Атрибут «AnalysisDatasArray» містить в собі масив об’єктів класу «Analysis» на основі даних якого буде робитися прогноз забруднення.

Основні методи класу:

·   «CalculateW»– метод, що розраховує коефіцієнт згладжування для подальшого розрахунку прогнозу;

·   «CalculateForecast» – метод, що розраховує прогноз вмісту хімічних речовин на основі переданих в клас даних аналізів проб ґрунту.

Також клас містить методи розрахунку коефіцієнту згладжування та прогнозу вмісту окремо для кожної із хмічних речовин, вміст яких досліджується. Методи класифікації рівня ймовірного забруднення на основі отриманих даних прогнозу.

Класи системи, що забезпечують отримання потрібних даних з бази даних:

·   «AnalysisData» містить в собі функціонал, який забезпечує отримання даних про аналізи проб ґрунту із бази даних для їх подальшого використання в системі.А також функції додавання та зміни даних в таблиці з даними про аналізи проб ґрунту.

·   «ForecastData» містить в собі функціонал, який забезпечує отримання збереженої в базі даних інформації прогнозів забруднення та функції запису зроблених системою прогнозів забруднення.

·   «TerritoryData» містить в собі функціонал для отримання з бази даних інформації про території дослідження для використання цих даних в побудові карти та нанесення на неї інформації про екологічний стан ґрунтів.

·   «EmployeesData» містить в собі функціонал для отримання інформації з бази даних про користувачів системи та їх прав доступу.

Атрибути цих класів такіж самі, як і у відповідних таблицях бази даних. Атрибути в цих класах використовуються для зберігання отриманих масивів даних з бази даних. Містять методи, що дозволяють записувати, змінювати та отримувати дані з бази даних за заданими параметрами обрахунку кортежів в таблицях. Методи перевірки коректності отриманих даних та методи передачі даних основним класам системи для подальшої роботи з ними.

4.2. Аналіз отриманих результатів

         Проаналізуємо розроблену систему на відповідність виконання задачта вимог, які були поставленні перед розробкою.

Почнемо аналіз роботи системи з інтерфейсу головного вікна (Рис.4.2). Інтерфейс головного вікна містить:

·   головне меню;

·   меню вибора дати;

·   меню вибора території дослідження;

·   текствого поля з даними аналізів проб ґрунту;

·   карту з елементами управління.

Рис. 4.2. Головне вікно програми.

         Розглянемо більш детальніше пункти головного меню програми:

·   Файл – містить в собі дві команди: оновити дані (оновлює дані з бази даних) та команду завершення роботи програми.

·   Вхід в систему – при натисканні виводить форму авторизації в системі.

·   Дані – містить в собі команди для вибору нанесення на карту інформації про поточний стан забруднення або прогнозований. Також для авторизованих користувачів в залежності від їх прав доступу активуються додаткові функції: внесення або зміна даних аналізів проб ґрунту, зміна параметрів розрахунку прогнозу забруднення.

·   Довідка – містить в собі інформацію про функціонал програми.

При зміні дати у меню виборі дат система виведе дані аналізів за місяць обраного значення дати, а на карті відобразить дані аналізу або прогнозу наближеного по даті до обраного значення. При виборі іншої території дослідження система виведе дані аналізів проб ґрунту на цій території за місяць в залежності від обраного значення в меню виборі дат та сфокусує карту на центрі обранної території та відобразіть дані забруднення (Рис. 4.3).

Рис. 4.3. Вивід даних системою відповідно до обраних параметрів.

         Для відображення на карті даних прогнозу забруднення ґрунтів, потрібно обрати для відображення на карті даних прогнозу за допомогою команди із головного меню «Дані», «На карті» та обрати пункт «Прогнозу забруднення». Тоді система знайде в базі даних актуальний на цей час прогноз забруднення.Якщо такого нема, то система автоматично розрахує дані прогнозу та виведе їх на екран (Рис. 4.4).

Рис. 4.4. Відображення на карті даних прогнозу забруднення.

         Було оглянуто функціонал, який є доступним для не авторизованих користувачів. Тому розглянемо доступний функціонал працівнику на посаді лаборанта. Авторизуємося в системіз правами доступу даного типу користувача.

Рис. 4.5. Форма авторизації.

         Після успішного входу в систему на головному меню з’явиться кнопка для виходу з облікового запису (Рис. 4.6).

Рис. 4.6. Головне меню після авторизації.

         Після успішної авторизації за обліковим записом працівника лабораторії. Лаборант може здійснити внесення даних аналізів проб ґрунту в базу даних або змінити вже існуючи. Для цього потрібно перейти у вкладку «Дані» головного меню там обрати пункт «Аналізів» і далі пункт «Ввести» для того, щоб додати нові дані аналізів проб ґрунту, а пункт «Змінити» - для зміни вже існуючих.

         Розглянемо вікно системи для внесення даних аналізів проб ґрунту (Рис 4.7). Отже для внесення даних аналізів проб ґрунту потрібно обрати дату проведення аналізу. Після чого вести дані аналізу та натиснути кнопку «Вести дані». Якщо дані не вірно введені або дані не були занесенні в базу даних, тоді система виведе вікно з помилкою. В інакшому випадку дані будуть успішно збереженні в базі даних. Кнопка «Очистити поля» видаляє всі дані, що були введені в текстові поля. Для того, щоб вийти з форми внесення даних потрібно натиснути кнопку «Закрити».

Рис. 4.7. Вікно внесення даних аналізів проб ґрунту.

         Розглянемо вікно зміни даних (Рис. 4.8). Має таку ж саму структуру, як і вікно вводу даних, однак обрати дані для зміни працівник може тільки ті, які були ним внесенні в систему до цього.

Рис. 4.8. Вікно зміни даних

         Якщо провести авторизацію користувача з правами доступу на зміну параметрів прогнозу забруднення, тоді в пункті меню «Дані» з’явиться підпункти для роботи з параметрами прогнозу забруднення ґрунтів (Рис. 4.9).

Рис. 4.9. Головне меню програми.

         Із розширених функцій доступних користувачю з раніше вказаними правами доступу є:

·   змінити параметр згладжування експоненціального ряду;

·   зберегти дані зробленого прогнозу;

·   розширена зміна вхідних даних для розрахунку прогнозу забруднення.

Розглянемо вікно розширеної зміни параметрів прогнозу (Рис. 4.10).

Рис. 4.10. Вікно зміни параметрів прогнозу.

         Вікно зміни параметрів прогнозу містить:

·   меню вибору початкової та кінцевої дат аналізів проб ґрунту на основі яких розрахувати прогноз забруднення;

·   меню вибору території дослідження;

·   поля для вводу коефіцієнтів згладжування;

·   текстове поле для виведення даних прогнозу забруднення.

Після вибору значень дат та території дослідження система автоматично розрахує дані прогнозу за вказаними параметрвами та виведе ці дані на екран. Після чого користувач може змінювати параметри прогнозу. При натиснені кнопки «Обчислити» система робить розрахунок прогнозу за вказаними в полях параметрами. Натиснення кнопки «Зберегти дані» система внесе дані в таблиці бази даних.

         ВИСНОВКИ ДО РОЗДІЛУ:

         В цьому розділі було розглянуто реалізацію інформаційної системи моніторингу та прогнозування забруднення ґрунтів. Наведено детальний приклад реалізації бази даних. Розглянуто класи системи, їх атрибути та основні методи. Проведено аналіз отриманих результатів на прикладі функціонування розробленої системи.

РОЗДІЛ 5. ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ДОЦІЛЬНОСТІ РОБОТИ

5.1. Економічна характеристика проектного рішення

Метою дипломної роботи є розробка інформаційної системи моніторингу та прогнозування забруднення ґрунтів, що має спростити своєчасне виявлення змін стану ґрунтів, їх оцінки, отримання інформації для вироблення управлінських рішень щодо поліпшення якості ґрунтів, удосконалення використання ґрунтів в аграрних цілях та способів відтворення родючості ґрунтів, відвернення наслідків негативних процесів.

Функціонал системи поділяється на такі частини:

·   збір даних концентрації хімічних елементів в ґрунті;

·   оцінку поточного стану забруднення;

·   прогнозування забруднення ґрунту на певних територіях;

·   оцінка та класифікація рівня прогнозованого забруднення.

Організаційний ефект від використання інформаційної системи моніторингу та прогнозування ґрунтів включає в себе:

·   довготривалі, систематичні дослідження стану ґрунтових екосистем;

·   аналіз екологічного стану ґрунтів і прогнозування його змін;

·   інформаційно-аналітична підтримка прийняття рішень в галузі охорони навколишнього середовища, раціонального використання природних ресурсів та екологічної безпеки;

Соціальний ефект від використання системи полягає в:

·   підвищення оперативності та якості інформаційного обслуговування користувачів на всіх рівнях;

·   підвищення оперативності та якості інформаційного обслуговування в галузі охорони і покращення якості навколишнього середовища;

·   підвищення якості створення природоохоронних заходів та ефективності їх виконання.

5.2. Інформаційне забезпечення та формування гіпотези щодо потреби розроблення проектного рішення

         З аналогічних систем на ринку України є система автоматизована система моніторингу довкілля «ОМОС». Система розроблена державним підприємством Східноукраїнській Екологічний Інститут. Проектне рішення системи «ОМОС» дозволяє контролювати забруднення атмосферного повітря і поверхневих водних об'єктів області, інтегруючи дані автоматизованих і стаціонарних пунктів контролю суб'єктів моніторингу навколишнього середовища.Використовування в інтерфейсних рішеннях інтернет-орієнтованих геоінформаційних систем та сучасного програмного забезпечення, забезпечує легкий доступ користувачів до інформації, дозволяє здійснювати просторові оцінки і прогнози. Дана система дозволяє імпортувати дані із спеціалізованих форматів суб’єктів моніторингу, проводити їх попередню верифікацію і здійснювати експорт у формати національної системи моніторингу, а також передавати на зберігання в систему управління реляційними базами даних інформацію, що поступає від автоматизованих постів контролю. Система побудована за модульним принципом, що дає можливість її удосконалення і розширення[24].

         Також суттєвий сплив на ринок інформаційних систем моніторингу України має «Автоматизована система комплексного екологічного моніторингу» (АСКЕМ), яка розроблена корпорацією «Укратомприлад» та впровадження до використання в м.Дніпродзержинськ у рамках «Державної Програми Поліпшення екологічного стану Дніпропетровської області». АСКЕМ Дніпродзержинська забезпечує збір і аналіз інформації, що надходить як від міських стаціонарних, мобільних постів екологічного контролю, так і від об’єктових систем екологічного моніторингу промислових підприємств міста. Датчики постів контролю збирають інформацію про стан атмосферного повітря (як метеорологічні параметри, так і дані про вміст хімічних речовин, пилу і пр.) і радіаційному забрудненні навколишнього середовища і передають інформацію в Центр управління моніторингом АСКЕМ м.Дніпродзержинськ, який, у свою чергу, надає інформацію в Центр управління моніторингом Дніпропетровської області [25].

Розроблена під час виконання дипломної роботи інформаційна система моніторингу та прогнозування ґрунтів має зацікавите такі типи споживачів:

·   міські служби контролю за станом навколишнього середовища;

·   аграрні підприємства;

·   адміністративних установ паркових та заповідних зон.

Проаналізувавши стан ринку систем екологічного моніторингу, який потребує впровадження сучасних варіантів програмних рішень в цій галузі. З огляду на те що аналогічні системи конкуренти розробленого проектного рішення надають послуги контролю екологічного стану атмосферного повітря та водних об’єктів, можна зробити висновок, що інформаційна система моніторингу та прогнозування забруднення ґрунтів повинна мати успіх на ринку інформаційних систем моніторингу довкілля.

5.3. Оцінювання та аналізування факторів зовнішнього та внутрішнього середовищ

Передбачає оцінювання та аналіз факторів зовнішнього та внутрішнього середовищ групою експертів.

Фактори зовнішні оцінюються за шкалою [-5;5], при цьому межі шкали відображають максимальний негативний та позитивний вплив факторів на організацію, 0 демонструє, що фактор впливає на організацію нейтрально.

Фактори внутрішні оцінюються за шкалою [0;5], при цьому 0 демонструє нерозвинутість, відсутність чи катастрофічний стан фактора внутрішнього середовища, оцінка 5 демонструє високий рівень розвитку даного фактора.

Сума вагомостей усіх факторів становить одиницю, тобто рівень вагомості для кожного фактора визначається за допомогою коефіцієнтів. Зважений рівень впливу факторів розраховується як добуток впливу фактора у балах та рівня вагомості. Результати експертних оцінок впливу факторів зовнішнього середовища на організацію наведено у табл. 5.1.

Таблиця 5.1

Результати експертного оцінювання впливу факторів зовнішнього та внутрішнього середовищ

Фактори

Середня експертна оцінка, бали

Середня вагомість факторів

Зважений рівень впливу, бали

1

2

3

4

Фактори зовнішнього середовища

 

Споживачі

-2

0,11

-0,33

Постачальники

2

0,1

0,2

Конкуренти

-3

0,1

-0,3

Державні органи влади

2

0,05

0,1

Інфраструктура

0

0,06

0

Законодавчі акти

3

0,1

0,3

Профспілки, партії та інші громадські організації

0

0,05

0

Система економічних відносин в державі

2

0,06

0,12

Організації-сусіди

-3

0,01

-0,03

Міжнародні події

1

0,01

0,01

Міжнародне оточення

1

0,03

0,03

Науково-технічний прогрес

5

0,07

0,35

Політичні обставини

2

0,06

0,12

Продовження таблиці 5.1

Фактори

Середня експертна оцінка, бали

Середня вагомість факторів

Зважений рівень впливу, бали

1

2

3

4

Фактори зовнішнього середовища


Соціально-культурні обставини

1

0,05

0,05

Рівень техніки та технологій

5

0,04

0,2

Особливості міжнародних економічних відносин

1

0,02

0,02

Стан економіки

-2

0,08

-0,16

Загальна сума


1

0,77

Фактори внутрішнього середовища




Цілі

5

0,11

0,55

Структура

4

0,16

0,64

Завдання

5

0,07

0,35

Технологія

3

0,2

0,6

Працівники

3

0,21

0,63

Ресурси

2

0,25

0,5

Загальна сума


1

4,04


Отже, як видно із табл. 5.1, на діяльність інформаційної системи моніторингу та прогнозування забруднення ґрунтів найбільш всього впливають такі зовнішні фактори: науково технічний прогрес та рівень техніки та технологій. Найбільш негативними чинниками є організації сусіди та конкуренти.

Найкраще розвинутими факторами внутрішнього середовища є цілі та завдання. Найменш розвинутими – ресурси.

5.4. Формування стратегічних альтернатив

Перша група стратегічних альтернатив. Критеріями поділу альтернативних стратегій розвитку є існуючий продукт (програмне забезпечення) та новий, а також супутні послуги.

Друга група стратегічних альтернатив. Критеріями поділу альтернативних стратегій розвитку є існуючий ринок та продукт, новий ринок та продукт (рис. 5.2).

Рис. 5.1. Стратегічні альтернативи

Рис. 5.2. Стратегічні альтернативи

         Для інформаційної системи моніторингу та прогнозування ґрунтів найбільше підходить стратегія розвитку існуючого продукту, оскільки система була розроблена в умовах існування подібних систем в сегменті ринку, однак не мають певних елементів, які пропонуються реалізовані в розробленій системі.

5.5. Бюджетування

Бюджетування є комплексно обґрунтованою системою розрахунку витрат, пов’язаних з виготовленням та реалізацією продукту, яка дає можливість здійснити аналіз витрат та розробити заходи щодо підвищення рентабельності виробництва.

Таблиця 5.2

Бюджет витрат матеріалів та комплектуючих виробів

Назва матеріалів та комплектуючих

Марка, тип, модель

Фактична кількість, шт.

Ціна за одиницю, грн.

Разом, грн.

Ноутбук

Acer Aspire E1-570G

1

12969

12969

Підставка для ноутбука

DeepCool MultiCore X6

1

549

549

Монітор

LG 22MP57A-P

1

2799

2799

Крісло комп’ютерне

АМФ-1 ПК

1

769

769

Комп’ютерній стіл

Ірма-95

1

553

553

Миш комп’ютерна

Bloody Model:V5

1

896

896

Wi Fi Роутер

Asus RT-N10P

1

453

453

Мережевий кабель 1 м

Telecom NA102

1

64

64

VGA кабель 1,5 м

ExtradigitalKBV1636

1

119

119

Всього

19171


  Бюджет витрат на оплату праці включає заробітну плату всіх працівників, які задіяні в розробці програмного продукту. Зарплата кожного працівника обчислюється на основі трудомісткості відповідних робіт і людино-днях та середньої ЗВ відповідних категорій працівників.

Для розробки програмного продукту необхідні такі спеціалісти:

·   розробник програмного забезпечення;

·   тестувальник програмного забезпечення;

·   проектний менеджер;

·   науковий консультант.

Місячні оклади працівників:

·   розробник програмного забезпечення – 8820,00 грн;

·   тестувальник програмного забезпечення – 4560,00 грн;

·   проектний менеджер – 13250,00 грн;

·   науковий консультант 5340,00 грн.

Розрахуємо денну зарплату працівників (22 робочі дні в місяці):

Для розрахунку витрати на оплату праці кожного учасника проекту проводимо за формулою:                                                                       (5.1.)

де  – чисельність розробників проекту i-ої спеціальності, чол.;

 – час, витрачений на розробку проекту працівником i-ої спеціальності, днів.;

 – деннаЗП розробника i-ої спеціальності, грн.

Розрахуємо витрати на оплату праці для кожного працівника:

Податкові ставки:

·   ставка єдиного соціального внеску – 22%.

·   податок з доходів фізичних осіб – 18%.

·   військовий збір – 1,5%.

Таблиця 5.3

Бюджет витрат на оплату праці

Посада,

спеціальність

Кількість працівників, осіб

Час роботи, дні

Денна заробітна плата працівників, грн.

Сума витрат на оплату праці, грн.

Основна заробітна плата

Розробник програмного забезпечення

1

36

295,4

14432,4

Тестувальник програмного забезпечення

1

10

207,3

2073

Проектний менеджер

1

23

602,3

13852,9

Науковий консультант

1

7

242,7

1698,9

Разом:

32056,6


         Розрахуємо відрахування податкових ставок з заробітних плат працівників:

 

Таблиця 5.4

Бюджет загальновиробничих витрат

Статті витрат

Сума, грн.

Змінні загальновиробничі витрати, у т.ч.:


- витрати на МШП;

2724

- витрати на електроенергію та технологічні цілі;

3200

- витрати на ремонт;

2000

- інші змінні витрати.

2500

Разом змінних витрат:

10424

Постійні загальновиробничі витрати, у т.ч.:


- комунальні послуги;

1000

- витрати на оренду;

3000

- витрати на ремонт;

2000

- інші постійні витрати.

3000

Разом постійних витрат:

9000

Разом загальновиробничих витрат:

19424

 

Таблиця 5.5

Бюджет адміністративних витрат та витрат на збут

Статті витрат

Сума, грн.

1

2

Адміністративні витрати, у т.ч.:


- витрати на МШП;

4314

- витрати на сплату податків і зборів;

2012

- знос адміністративного обладнання;

400

Разом адміністративних витрат:

6726

Витрати на збут, у т.ч.:


- витрати на рекламу;

30000

Разом витрат на збут:

30000

Таблиця 5.6

Зведений кошторис витрат на розробку проектного рішення (продукту)

Статті витрат

Разом, грн.

Сировина і матеріали

3611

Паливо та електроенергія на технологічні цілі

2400

Основна заробітна плата

32056,6

Відрахування на соціальне страхування

13303.7

Загальновиробничі витрати, у т.ч.:

10456

- змінні;

5424

- постійні;

5000

Разом виробничих витрат:

61827,3

Адміністративні витрати

3726

Витрати на збут

8000

Разом виробничих і операційних витрат:

73553,3


Визначаємо вартість продукту, що розробляється за формулою:

                                               Ц = СБ * Р+СБ                                            (5.2)

де Ц – ціна одинці продукту, грн.;

СБ – собівартість продукту, грн.

Р – рентабельність виробництва, %;

Таким чином, собівартість складає – 95251,3 грн.; рентабельність 25,5%;

Оскільки, ПДВ для програмних продуктів 20%, кінцева ціна:



 

Бюджет фінансових результатів

Показники

Сума, грн.

1

2

Дохід від реалізації продукції (1 шт)

110770,8

Податок на додану вартість (20%)

22154,16

Чистий дохід від реалізації продукції

88616,64

Собівартість реалізованої продукції

73553,3

Валовий прибуток

37217,5

Операційні витрати:


- адміністративні витрати:

3726

- витрати на збут;

8000

Фінансовий результат від операційної діяльності

25491,5

Податок на прибуток (18%)

4588,47

Чистий прибуток (збиток)

20903,03


ВИСНОВКИ ДО РОЗДІЛУ:

В даному розділі було проведено економічне обґрунтування доцільності створення інформаційної системи моніторингу та прогнозування ґрунтів. Проаналізовано схожі конкурентні системи. Розглянуто їх функціонал переваги та недоліки.

         З умовою на те що на ринку вже є схожі системи, тому при розробці обираємо стратегію розвитку існуючого продукту. А в якості ринкової стратегії обираємо стратегію розвитку продукту, оскільки ринок вже має аналоги, проте даний продукт буде мати новий функціонал.

Найбільшу кількість витрат на виробництво становить заробітна плата команді розробників.Собівартість продукту становить 73553,3 грн. Отже, для коефіцієнту рентабельності в 25,5% ціна товару буде становити 92309  грн. Ціна товару з ПДВ – 110770,8 грн. Чистий прибуток від реалізації одиниці товару становить 20903,03 грн.

ВИСНОВКИ

Забезпечення поліпшення якості екологічного моніторингу в Україні може бути досягнена за допомогою ведення в експлуатацію інформаційних систем моніторингу. Які би давали змогу швидко оцінювати стан навколишнього середовища, робити прогнози станів екосистем для полегшення прийняття рішень в природоохоронній галузі нашої держави.

В сучасних тенденціях, розвитку підприємств та промислових зон на території країни, головними завданнями  держави є зберегти навколишнє середовище в безпечних нормах для проживання та розвитку суспільства.

Україна один із світових лідерів по продажу зернових культур, тому першочерговою задачею має бути, не тільки використання земельних ресурсів нашої держави, а також збереження їх родючості. Для підтримки прийняття рішень в галузі екологічного захисту сільськогосподарських земель допоможе впровадження інформаційних систем моніторингу та прогнозування забруднення ґрунтів. Які забезпечать оцінку поточного стану ґрунтів та рівня забруднення. Завчасне реагування на зміни стану ґрунтових екосистем на основі отриманих даних прогнозу від системи.

Отриманні дані від інформаційної системи екологічного моніторингу та прогнозування забруднення ґрунтів забезпечать полегшення виконання завдання комплексного моніторингу агроекологічної ситуації ґрунтових екосистем  України. Що забезпечить поліпшення екологічного стану земельного фонду: лісових об’єктів, паркових та заповідних зон. Дасть змогу ефективніше використовувати сільськогосподарські землі без нанесення пагубного впливу родючості ґрунту.

Структура розробленої інформаційної системи складається з восьми класів, що забезпечують надійне отримання інформації з бази даних, стабільну роботу математичних алгоритмів оцінки та прогнозування екологічного стану ґрунтів та виводу вихідних даних. Розроблені таблиці та зв’язки між ними забезпечує збереження цілісності даних в базі даних та швидку і надійну обробку запитів системи на отримання, зміну і внесення даних в таблицях.

Позитивними якостями системи є:

·   легкий та інтуїтивно зрозумілий інтерфейс для користувачів;

·   подання інформації в легкій для аналізу користувачами формі;

·   використання математичної моделі прогнозування, яка враховує сезонні коливання вмісту забруднюючих речовин в ґрунті.

Проведений аналіз функціонування розробленої інформаційної системи виявив, що система відповідає поставленим перед нею задачам та вимогам, функціонує стабільно. Отже можна зробити висновок, що розробка системи була успішною та система готова до впровадження для роботи в галузі екологічної охорони ґрунтів.

СПИСОК ВИКОРИСТАНИХ ЛІТЕРАТУРНИХ ДЖЕРЕЛ

1. Informationtechnology — Vocabulary — Part 1: Fundamentalterms : ISO/IEC 2382-1, 1993.

2. Алексеев Ю.В. Тяжёлые металлы в почвах и растениях / Ю.В. Алексеев – Санкт-Петербург : Агропромиздат, 1987. – 141 с.

3. Майстренко В.Н. Эколого-аналитический мониторинг супертоксикантов. / Майстренко В.Н. Хамитов Р.З. Будников Г.К. – Москва : Химия, 1996, 319 с.

4. Герасимов И. П. Научные основы современного мониторинга окружающей среды / И. П. Герасимов. – Санкт-Петербург : Гидрометеоиздат, 1987. – 135 с.

5. Израэль Ю. А. Экология и контроль состояния природной среды. / Ю. А.Израэль – Санкт-Петербург : Гидрометеоиздат, 1979. — 375 с.

6. Ecological Sciences for Sustainable Development. [Електронний ресурс] – Режим доступу до ресурсу : https://msdn.microsoft.com/ru-ru/vstudio/aa496123.

20. Amirian P. Beginning ArcGIS for Desktop Development using .NET. / John Wiley & Sons, Ltd., 2013. – P. 528.

21. Евсеева О. Н. Работа с базами данных на языке C#. Технология АDO .NET : учебное пособие / сост. О. Н. Евсеева, А. Б. Шамшев. – Ульяновск: УлГТУ, 2009. – 170 с.

22. Новый сервис Яндекса — поиск по картам. [Електронний ресурс] – Режим доступу до ресурсу :https://yandex.ru/company/press_releases/2004/0827.

23. Яндекс Карты. JavaScriptAPI. [Електронний ресурс] – Режим досутпу до ресурсу : https://tech.yandex.ru/maps/jsapi.

24. Розробка автоматизованих систем моніторингу довкілля. [Електронний ресурс] – Режим доступу до ресурсу : http://euaeco.com/?automated-monitoring-system.

25. Автоматизовані системи радіоеклогічного та екологічного моніторингу. [Електронний ресурс] – Режим доступу до ресурсу : http://www.uap.kiev.ua/Projects/EcologicalMonitoringSystems.

ANNOTATION

This paper describes how to create an information system of monitoring and prediction soil contamination. We consider the relevance and the establishment of the system. Highlight the object and subject of study. The analysis of literature necessary to create this type of systems. The review of the history of environmental monitoring is done. The structure of modern systems of this type described. We consider the existing systems as an example Ukrainian automated information monitoring system in Dnipropetrovsk and Real-тime Оn-line Decision Support System. Reviewed their functionality, advantages and disadvantages.

A systematic analysis of the information systemof monitoring and prediction soilcontamination.Highlight the main interested users. Considered aims, objectives and system requirements. Analysed system functions byusing charts. Use case diagram shows how the system interacts with a different type of users. Sequence diagram shows the general algorithm of the system. Package diagram reflects the types of data transmission between modules. Class diagram displays basic features and attributes of the system and the links between them.

Describes the mathematical model to solve the problems ofestimation of ecologicalcondition of the soil. Described prediction of chemical substances in the soil using the method of exponential smoothing. Described methods of evaluation and classification of soil contamination. Describe the means by which the information was realized monitoring and prediction of soil.This work contains an developed example of the system. And conducted economic assessment of the implementation of the system.

Додаток А.

Код класу системи, що проводить оцінку поточного вмісту забруднюючих речовин в ґрунтах та оцінку рівня забруднення території.

1. using System;

2. using System.Data;

3.  

4. namespace IASoMaPSC

5. {

6.     class Analysis

7.     {

8.         protected int id;

9.         protected int sampleMass;

10.          protected double contentArsenic;

11.          protected double contentCobalt;

12.          protected double contentCooper;

13.          protected double contentChromium;

14.          protected double contentMercury;

15.          protected double contentNitrates;

16.          protected double contentNitrogen;

17.          protected double contentPhosphorus;

18.          protected double contentPlumbum;

19.          protected double contentZinc;

20.          protected DateTime date;

21.          protected DateTime time;

22.          protected string nameTerritory;

23.          protected int idTerritory;

24.   

25.          public Analysis() { }

26.   

27.          public Analysis(int id_, int sampleMass_, double contentArsenic_, double contentCobalt_, double contentCooper_, double contentChromium_, double contentMercury_, double contentNitrates_, double contentNitrogen_, double contentPhosphorus_, double contentPlumbum_, double contentZinc_, DateTime date_, DateTime time_, string nameTerritory_, int idTerritory_)

28.          {

29.              id = id_;

30.              sampleMass = sampleMass_;

31.              contentArsenic = contentArsenic_ * 1000.0 / sampleMass;

32.              contentCobalt = contentCobalt_ * 1000.0 / sampleMass;

33.              contentCooper = contentCooper_ * 1000.0 / sampleMass;

34.              contentChromium = contentChromium_ * 1000.0 / sampleMass;

35.              contentMercury = contentMercury_ * 1000.0 / sampleMass;

36.              contentNitrates = contentNitrates_ * 1000.0 / sampleMass;

37.              contentNitrogen = contentNitrogen_ * 1000.0 / sampleMass;

38.              contentPhosphorus = contentPhosphorus_ * 1000.0 / sampleMass;

39.              contentPlumbum = contentPlumbum_ * 1000.0 / sampleMass;

40.              contentZinc = contentZinc_ * 1000.0 / sampleMass;

41.              date = date_;

42.              time = time_;

43.              nameTerritory = nameTerritory_;

44.              idTerritory = idTerritory_;

45.          }

46.   

47.          public double GetRateOfPollution(MACData macData_)

48.          {

49.              double rate =

50.                  (contentArsenic / macData_.GetMACArsenic() +

51.                  contentCobalt / macData_.GetMACCobalt() +

52.                  contentCooper / macData_.GetMACCooper() +

53.                  contentChromium / macData_.GetMACChromium() +

54.                  contentMercury / macData_.GetMACMercury() +

55.                  contentNitrates / macData_.GetMACNitrates() +

56.                  contentNitrogen / macData_.GetMACNitrogen() +

57.                  contentPhosphorus / macData_.GetMACPhosphorus() +

58.                  contentPlumbum / macData_.GetMACPlumbum() +

59.                  contentZinc / macData_.GetMACZinc()) /

60.                  10;

61.              return rate;

62.          }

63.   

64.          public char GetRateColorOfPollution(MACData macData_)

65.          {

66.              char color;

67.              if (GetRateOfPollution(macData_) == 0)

68.              {

69.                  color = 'W';

70.              }

71.              else if(GetRateOfPollution(macData_) <= 1)

72.              {

73.                  color = 'G';

74.              }

75.              else if(GetRateOfPollution(macData_) <= 1.25)

76.              {

77.                  color = 'Y';

78.              }

79.              else if(GetRateOfPollution(macData_) > 1.25)

80.              {

81.                  color = 'R';

82.              }

83.              else

84.              {

85.                  color = 'W';

86.              }

87.              return color;

88.          }

89.   

90.          public string GetClassificationOfPollution(MACData macData_)

91.          {

92.              if (GetRateOfPollution(macData_) <= 1)

93.              {

94.                  return "Рівень забруднення низький.";

95.              }

96.              else if (GetRateOfPollution(macData_) <= 1.25)

97.              {

98.                  return "Рівень забруднення середній.";

99.              }

100.            else if (GetRateOfPollution(macData_) <= 1.5)

101.            {

102.                return "Рівень забруднення високий.";

103.            }

104.            else

105.            {

106.                return "Рівень забруднення критичний.";

107.            }

108.        }

109. 

110.        public string OutHTMLAnalysisData()

111.        {

112.            if (id != 0)

113.            {

114.                return                    

115.                   "Дані забруднення на " + date.ToString("dd.MM.yyyy") + " " + time.ToString("HH:mm") + ".<br>" +

116.                   "Вміст миш’яку: " + String.Format("{0,10:0.00}", contentArsenic) + "(мг/кг)<br>" +

117.                   "Вміст кобальту: " + String.Format("{0,10:0.00}", contentCobalt) + "(мг/кг)<br>" +

118.                   "Вміст міді: " + String.Format("{0,10:0.00}", contentCooper) + "(мг/кг)<br>" +

119.                   "Вміст хрому: " + String.Format("{0,10:0.00}", contentChromium) + "(мг/кг)<br>" +

120.                   "Вміст ртуті: " + String.Format("{0,10:0.00}", contentMercury) + "(мг/кг)<br>" +

121.                   "Вміст фосфору: " + String.Format("{0,10:0.00}", contentPhosphorus) + "(мг/кг)<br>" +

122.                   "Вміст свинцю: " + String.Format("{0,10:0.00}", contentPlumbum) + "(мг/кг)<br>" +

123.                   "Вміст цинку: " + String.Format("{0,10:0.00}", contentZinc) + "(мг/кг)<br>" +

124.                   "Вміст нітратів: " + String.Format("{0,10:0.00}", contentNitrates) + "(мг/кг)<br>" +

125.                   "Вміст азотних добрив: " + String.Format("{0,10:0.00}", contentNitrogen) + "(мг/кг)";

126.            }

127.            else

128.            {

129.                return "Немає данних...";

130.            }

131.        }

132. 

133.        public string OutHTMLAnalysisData(MACData macData_)

134.        {

135.            if (id != 0)

136.            {

137.                return GetClassificationOfPollution(macData_) + " Загально відносно ГДК: " + String.Format("{0,10:0.00}", GetRateOfPollution(macData_) * 100) + "%.<br>" +

138.                       "Дані забруднення на " + date.ToString("dd.MM.yyyy") + " " + time.ToString("HH:mm") + ".<br>" +

139.                       "Вміст миш’яку: " + String.Format("{0,10:0.00}", contentArsenic) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentArsenic / macData_.GetMACArsenic() * 100) + "%<br>" +

140.                       "Вміст кобальту: " + String.Format("{0,10:0.00}", contentCobalt) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentCobalt / macData_.GetMACCobalt() * 100) + "%<br>" +

141.                       "Вміст міді: " + String.Format("{0,10:0.00}", contentCooper) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentCooper / macData_.GetMACCooper() * 100) + "%<br>" +

142.                       "Вміст хрому: " + String.Format("{0,10:0.00}", contentChromium) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentChromium / macData_.GetMACChromium() * 100) + "%<br>" +

143.                       "Вміст ртуті: " + String.Format("{0,10:0.00}", contentMercury) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentMercury / macData_.GetMACMercury() * 100) + "%<br>" +

144.                       "Вміст фосфору: " + String.Format("{0,10:0.00}", contentPhosphorus) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentPhosphorus / macData_.GetMACPhosphorus() * 100) + "%<br>" +

145.                       "Вміст свинцю: " + String.Format("{0,10:0.00}", contentPlumbum) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentPlumbum / macData_.GetMACPlumbum() * 100) + "%<br>" +

146.                       "Вміст цинку: " + String.Format("{0,10:0.00}", contentZinc) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentZinc / macData_.GetMACZinc() * 100) + "%<br>" +

147.                       "Вміст нітратів: " + String.Format("{0,10:0.00}", contentNitrates) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentNitrates / macData_.GetMACNitrates() * 100) + "%<br>" +

148.                       "Вміст азотних добрив: " + String.Format("{0,10:0.00}", contentNitrogen) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentNitrogen / macData_.GetMACNitrogen() * 100) + "%";

149.            }

150.            else

151.            {

152.                return "Немає данних...";

153.            }

154.        }

155. 

156.        public string OutTextAnalysisData()

157.        {

158.            if (id != 0)

159.            {

160.                return

161.                   "Дані забруднення на " + date.ToString("dd.MM.yyyy") + " " + time.ToString("HH:mm") + ".\n" +

162.                   "Вміст миш’яку: " + String.Format("{0,10:0.00}", contentArsenic) + "(мг/кг)\n" +

163.                   "Вміст кобальту: " + String.Format("{0,10:0.00}", contentCobalt) + "(мг/кг)\n" +

164.                   "Вміст міді: " + String.Format("{0,10:0.00}", contentCooper) + "(мг/кг)\n" +

165.                   "Вміст хрому: " + String.Format("{0,10:0.00}", contentChromium) + "(мг/кг)\n" +

166.                   "Вміст ртуті: " + String.Format("{0,10:0.00}", contentMercury) + "(мг/кг)\n" +

167.                   "Вміст фосфору: " + String.Format("{0,10:0.00}", contentPhosphorus) + "(мг/кг)\n" +

168.                   "Вміст свинцю: " + String.Format("{0,10:0.00}", contentPlumbum) + "(мг/кг)\n" +

169.                   "Вміст цинку: " + String.Format("{0,10:0.00}", contentZinc) + "(мг/кг)\n" +

170.                   "Вміст нітратів: " + String.Format("{0,10:0.00}", contentNitrates) + "(мг/кг)\n" +

171.                   "Вміст азотних добрив: " + String.Format("{0,10:0.00}", contentNitrogen) + "(мг/кг)";

172.            }

173.            else

174.            {

175.                return nameTerritory + ".\n" + "Немає данних...\n\n";

176.            }

177.        }

178. 

179.        public string OutTextAnalysisData(MACData macData_)

180.        {

181.            if (id != 0)

182.            {

183.                return

184.                    GetClassificationOfPollution(macData_) + "\nЗагально відносно ГДК: " + String.Format("{0,10:0.00}", GetRateOfPollution(macData_) * 100) + "%.\n" +

185.                   "Дані забруднення на " + date.ToString("dd.MM.yyyy") + " " + time.ToString("HH:mm") + ".\n" +

186.                   "Вміст миш’яку: " + String.Format("{0,10:0.00}", contentArsenic) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentArsenic / macData_.GetMACArsenic() * 100) + "%\n" +

187.                   "Вміст кобальту: " + String.Format("{0,10:0.00}", contentCobalt) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentCobalt / macData_.GetMACCobalt() * 100) + "%\n" +

188.                   "Вміст міді: " + String.Format("{0,10:0.00}", contentCooper) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentCooper / macData_.GetMACCooper() * 100) + "%\n" +

189.                   "Вміст хрому: " + String.Format("{0,10:0.00}", contentChromium) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentChromium / macData_.GetMACChromium() * 100) + "%\n" +

190.                   "Вміст ртуті: " + String.Format("{0,10:0.00}", contentMercury) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentMercury / macData_.GetMACMercury() * 100) + "%\n" +

191.                   "Вміст фосфору: " + String.Format("{0,10:0.00}", contentPhosphorus) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentPhosphorus / macData_.GetMACPhosphorus() * 100) + "%\n" +

192.                   "Вміст свинцю: " + String.Format("{0,10:0.00}", contentPlumbum) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentPlumbum / macData_.GetMACPlumbum() * 100) + "%\n" +

193.                   "Вміст цинку: " + String.Format("{0,10:0.00}", contentZinc) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentZinc / macData_.GetMACZinc() * 100) + "%\n" +

194.                   "Вміст нітратів: " + String.Format("{0,10:0.00}", contentNitrates) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentNitrates / macData_.GetMACNitrates() * 100) + "%\n" +

195.                   "Вміст азотних добрив: " + String.Format("{0,10:0.00}", contentNitrogen) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentNitrogen / macData_.GetMACNitrogen() * 100) + "%\n\n";

196.            }

197.            else

198.            {

199.                return nameTerritory + ".\n" + "Немає данних...\n\n";

200.            }

201.        }

202.    }

203.}

Додаток Б

Код класу, що містить в собі алгоритми прогнозу зміни концентрацій хімічних речовин та методи оцінки прогнозованого екологічного стану ґрунтів.

1. using System;

2.  

3. namespace IASoMaPSC

4. {

5.     class Forecast

6.     {

7.         protected double contentArsenic;

8.         protected double contentCobalt;

9.         protected double contentCooper;

10.          protected double contentChromium;

11.          protected double contentMercury;

12.          protected double contentNitrates;

13.          protected double contentNitrogen;

14.          protected double contentPhosphorus;

15.          protected double contentPlumbum;

16.          protected double contentZinc;

17.          protected int idTerritory;

18.          protected int[] idAnalysisData;

19.          protected DateTime dateTime;

20.          protected AnalysisData analysisData;

21.   

22.          public Forecast() { }

23.   

24.          public Forecast(AnalysisData analysisData_, int idTerritory_)

25.          {

26.              analysisData = new AnalysisData(analysisData_);

27.              idTerritory = idTerritory_;

28.              idAnalysisData = analysisData.GetIdsByIdTerritory(idTerritory);

29.          }

30.   

31.          private double calculateContnentArsenic_W()

32.          {           

33.              double[] contentArsenic_ = new double[idAnalysisData.Length];

34.              double w = 0;

35.              for (int i = 0; i < idAnalysisData.Length; i++)

36.              {              

37.                  analysisData.GetContentArsenicById(idAnalysisData[i], out contentArsenic_[i]);

38.              }

39.              double sum = 0;

40.              for (int i = 0; i < contentArsenic_.Length; i++)

41.              {               

42.                  for (int j = 0; j < contentArsenic_.Length; j++)

43.                  {

44.                      if (contentArsenic_[i] != contentArsenic_[j])

45.                      {

46.                          sum += contentArsenic_[j];

47.                      }

48.                  }

49.                  w += contentArsenic_[i] / sum;

50.              }

51.              Console.WriteLine(w.ToString());

52.              return w;

53.          }

54.   

55.          private double calculateContentCobalt_W()

56.          {

57.              double[] contentCobalt_ = new double[idAnalysisData.Length];

58.              double w = 0;

59.              for (int i = 0; i < idAnalysisData.Length; i++)

60.              {

61.                  analysisData.GetContentCobaltById(idAnalysisData[i], out contentCobalt_[i]);

62.              }

63.              double sum = 0;

64.              for (int i = 0; i < contentCobalt_.Length; i++)

65.              {

66.                  for (int j = 0; j < contentCobalt_.Length; j++)

67.                  {

68.                      if (contentCobalt_[i] != contentCobalt_[j])

69.                      {

70.                          sum += contentCobalt_[j];

71.                      }

72.                  }

73.                  w += contentCobalt_[i] / sum;

74.              }

75.              Console.WriteLine(w.ToString());

76.              return w;

77.          }

78.   

79.          private double calculateContentCooper_W()

80.          {

81.              double[] contentCooper_ = new double[idAnalysisData.Length];

82.              double w = 0;

83.              for (int i = 0; i < idAnalysisData.Length; i++)

84.              {

85.                  analysisData.GetContentCooperById(idAnalysisData[i], out contentCooper_[i]);

87.              double sum = 0;

88.              for (int i = 0; i < contentCooper_.Length; i++)

89.              {

90.                  for (int j = 0; j < contentCooper_.Length; j++)

91.                  {

92.                      if (contentCooper_[i] != contentCooper_[j])

93.                      {

94.                          sum += contentCooper_[j];

95.                      }

96.                  }

97.                  w += contentCooper_[i] / sum;

98.              }

99.              Console.WriteLine(w.ToString());

100.            return w;

101.        }

102. 

103.        private double calculateContentChromium_W()

104.        {

105.            double[] contentChromium_ = new double[idAnalysisData.Length];

106.            double w = 0;

107.            for (int i = 0; i < idAnalysisData.Length; i++)

108.            {

109.                analysisData.GetContentChromiumById(idAnalysisData[i], out contentChromium_[i]);

110.            }

111.            double sum = 0;

112.            for (int i = 0; i < contentChromium_.Length; i++)

113.            {

114.                for (int j = 0; j < contentChromium_.Length; j++)

115.                {

116.                    if (contentChromium_[i] != contentChromium_[j])

117.                    {

118.                        sum += contentChromium_[j];

119.                    }

120.                }

121.                w += contentChromium_[i] / sum;

122.            }

123.            Console.WriteLine(w.ToString());

124.            return w;

125.        }

126. 

127.        private double calculateContentMercury_W()

128.        {

129.            double[] contentMercury_ = new double[idAnalysisData.Length];

130.            double w = 0;

131.            for (int i = 0; i < idAnalysisData.Length; i++)

132.            {

133.                analysisData.GetContentMercuryById(idAnalysisData[i], out contentMercury_[i]);

134.            }

135.            double sum = 0;

136.            for (int i = 0; i < contentMercury_.Length; i++)

137.            {

138.                for (int j = 0; j < contentMercury_.Length; j++)

139.                {

140.                    if (contentMercury_[i] != contentMercury_[j])

141.                    {

142.                        sum += contentMercury_[j];

143.                    }

144.                }

145.                w += contentMercury_[i] / sum;

146.            }

147.            Console.WriteLine(w.ToString());

148.            return w;

149.        }

150. 

151.        private double calculateContentNitrates_W()

152.        {

153.            double[] contentNitrates_ = new double[idAnalysisData.Length];

154.            double w = 0;

155.            for (int i = 0; i < idAnalysisData.Length; i++)

156.            {

157.                analysisData.GetContentNitratesById(idAnalysisData[i], out contentNitrates_[i]);

158.            }

159.            double sum = 0;

160.            for (int i = 0; i < contentNitrates_.Length; i++)

161.            {

162.                for (int j = 0; j < contentNitrates_.Length; j++)

163.                {

164.                    if (contentNitrates_[i] != contentNitrates_[j])

165.                    {

166.                        sum += contentNitrates_[j];

167.                    }

168.                }

169.                w += contentNitrates_[i] / sum;

170.            }

171.            Console.WriteLine(w.ToString());

172.            return w;

173.        }

174. 

175.        private double calculateContentNitrogen_W()

176.        {

177.            double[] contentNitrogen_ = new double[idAnalysisData.Length];

178.            double w = 0;

179.            for (int i = 0; i < idAnalysisData.Length; i++)

180.            {

181.                analysisData.GetContentNitrogenById(idAnalysisData[i], out contentNitrogen_[i]);

182.            }

183.            double sum = 0;

184.            for (int i = 0; i < contentNitrogen_.Length; i++)

185.            {

186.                for (int j = 0; j < contentNitrogen_.Length; j++)

187.                {

188.                    if (contentNitrogen_[i] != contentNitrogen_[j])

189.                    {

190.                        sum += contentNitrogen_[j];

191.                    }

192.                }

193.                w += contentNitrogen_[i] / sum;

194.            }

195.            Console.WriteLine(w.ToString());

196.            return w;

197.        }

198. 

199.        private double calculateContentPhosphorus_W()

200.        {

201.            double[] contentPhosphorus_ = new double[idAnalysisData.Length];

202.            double w = 0;

203.            for (int i = 0; i < idAnalysisData.Length; i++)

204.            {

205.                analysisData.GetContentPhosphorusById(idAnalysisData[i], out contentPhosphorus_[i]);

206.            }

207.            double sum = 0;

208.            for (int i = 0; i < contentPhosphorus_.Length; i++)

209.            {

210.                for (int j = 0; j < contentPhosphorus_.Length; j++)

211.                {

212.                    if (contentPhosphorus_[i] != contentPhosphorus_[j])

213.                    {

214.                        sum += contentPhosphorus_[j];

215.                    }

216.                }

217.                w += contentPhosphorus_[i] / sum;

218.            }

219.            Console.WriteLine(w.ToString());

220.            return w;

221.        }

222. 

223.        private double calculateContentPlumbum_W()

224.        {

225.            double[] contentPlumbum_ = new double[idAnalysisData.Length];

226.            double w = 0;

227.            for (int i = 0; i < idAnalysisData.Length; i++)

228.            {

229.                analysisData.GetContentPlumbumById(idAnalysisData[i], out contentPlumbum_[i]);

230.            }

231.            double sum = 0;

232.            for (int i = 0; i < contentPlumbum_.Length; i++)

233.            {

234.                for (int j = 0; j < contentPlumbum_.Length; j++)

235.                {

236.                    if (contentPlumbum_[i] != contentPlumbum_[j])

237.                    {

238.                        sum += contentPlumbum_[j];

239.                    }

240.                }

241.                w += contentPlumbum_[i] / sum;

242.            }

243.            Console.WriteLine(w.ToString());

244.            return w;

245.        }

246. 

247.        private double calculateContentZinc_W()

248.        {

249.            double[] contentZinc_ = new double[idAnalysisData.Length];

250.            double w = 0;

251.            for (int i = 0; i < idAnalysisData.Length; i++)

252.            {

253.                analysisData.GetContentZincById(idAnalysisData[i], out contentZinc_[i]);

254.            }

255.            double sum = 0;

256.            for (int i = 0; i < contentZinc_.Length; i++)

257.            {

258.                for (int j = 0; j < contentZinc_.Length; j++)

259.                {

260.                    if (contentZinc_[i] != contentZinc_[j])

261.                    {

262.                        sum += contentZinc_[j];

263.                    }

264.                }

265.                w += contentZinc_[i] / sum;

266.            }

267.            Console.WriteLine(w.ToString());

268.            return w;

269.        }

270. 

271.        private void calculateContentArsenicForecast(double An_w = 0)

272.        {

273.            double[] contentArsenic_ = new double[idAnalysisData.Length];

274.            if (An_w == 0)

275.            {              

276.                An_w = calculateContnentArsenic_W();

277.            }

278.            for (int i = 0; i < idAnalysisData.Length; i++)

279.            {              

280.                analysisData.GetContentArsenicById(idAnalysisData[i], out contentArsenic_[i]);

281.            }

282.            double F = Math.Pow((1 - An_w), contentArsenic_.Length - 2) * contentArsenic_[0];

283.            double Fn = 0;

284.            for (int i = 1; i < contentArsenic_.Length; i++)

285.            {

286.                Fn += Math.Pow((1 - An_w), i - 1) * contentArsenic_[contentArsenic_.Length - i];

287.            }

288.            contentArsenic = An_w * (F + Fn);

289.        }

290. 

291.        private void calculateContentCobaltForecast(double Cb_w = 0)

292.        {

293.            double[] contentCobalt_ = new double[idAnalysisData.Length];

294.            if (Cb_w == 0)

295.            {

296.                Cb_w = calculateContentCobalt_W();

297.            }

298.            for (int i = 0; i < idAnalysisData.Length; i++)

299.            {

300.                analysisData.GetContentCobaltById(idAnalysisData[i], out contentCobalt_[i]);

301.            }

302.            double F = Math.Pow((1 - Cb_w), contentCobalt_.Length - 2) * contentCobalt_[0];

303.            double Fn = 0;

304.            for (int i = 1; i < contentCobalt_.Length; i++)

305.            {

306.                Fn += Math.Pow((1 - Cb_w), i - 1) * contentCobalt_[contentCobalt_.Length - i];

307.            }

308.            contentCobalt = Cb_w * (F + Fn);

309. 

310.        }

311. 

312.        private void calculateContentCooperForecast(double Cp_w = 0)

313.        {           

314.            double[] contentCooper_ = new double[idAnalysisData.Length];

315.            if (Cp_w == 0)

316.            {

317.                Cp_w = calculateContentCooper_W();

318.            }

319.            for (int i = 0; i < idAnalysisData.Length; i++)

320.            {

321.                analysisData.GetContentCooperById(idAnalysisData[i], out contentCooper_[i]);

322.            }

323.            double F = Math.Pow((1 - Cp_w), contentCooper_.Length - 2) * contentCooper_[0];

324.            double Fn = 0;

325.            for (int i = 1; i < contentCooper_.Length; i++)

326.            {

327.                Fn += Math.Pow((1 - Cp_w), i - 1) * contentCooper_[contentCooper_.Length - i];

328.            }

329.            contentCooper = Cp_w * (F + Fn);

330.        }

331. 

332.        private void calculateContentChromiumForecast(double Ch_w = 0)

333.        {

334.            double[] contentChromium_ = new double[idAnalysisData.Length];

335.            if (Ch_w == 0)

336.            {

337.                Ch_w = calculateContentChromium_W();

338.            }

339.            for (int i = 0; i < idAnalysisData.Length; i++)

340.            {

341.                analysisData.GetContentChromiumById(idAnalysisData[i], out contentChromium_[i]);

342.            }

343.            double F = Math.Pow((1 - Ch_w), contentChromium_.Length - 2) * contentChromium_[0];

344.            double Fn = 0;

345.            for (int i = 1; i < contentChromium_.Length; i++)

346.            {

347.                Fn += Math.Pow((1 - Ch_w), i - 1) * contentChromium_[contentChromium_.Length - i];

348.            }

349.            contentChromium = Ch_w * (F + Fn);

350.        }

351. 

352.        private void calculateContentMercuryForecast(double Mc_w = 0)

353.        {

354.            double[] contentMercury_ = new double[idAnalysisData.Length];

355.            if (Mc_w == 0)

356.            {

357.                Mc_w = calculateContentMercury_W();

358.            }

359.            for (int i = 0; i < idAnalysisData.Length; i++)

360.            {

361.                analysisData.GetContentMercuryById(idAnalysisData[i], out contentMercury_[i]);

362.            }

363.            double F = Math.Pow((1 - Mc_w), contentMercury_.Length - 2) * contentMercury_[0];

364.            double Fn = 0;

365.            for (int i = 1; i < contentMercury_.Length; i++)

366.            {

367.                Fn += Math.Pow((1 - Mc_w), i - 1) * contentMercury_[contentMercury_.Length - i];

368.            }

369.            contentMercury = Mc_w * (F + Fn);

370.        }

371. 

372.        private void calculateContentNitratesForecast(double Nt_w = 0)

373.        {

374.            double[] contentNitrates_ = new double[idAnalysisData.Length];

375.            if (Nt_w == 0)

376.            {

377.                Nt_w = calculateContentNitrates_W();

378.            }

379.            for (int i = 0; i < idAnalysisData.Length; i++)

380.            {

381.                analysisData.GetContentNitratesById(idAnalysisData[i], out contentNitrates_[i]);

382.            }

383.            double F = Math.Pow((1 - Nt_w), contentNitrates_.Length - 2) * contentNitrates_[0];

384.            double Fn = 0;

385.            for (int i = 1; i < contentNitrates_.Length; i++)

386.            {

387.                Fn += Math.Pow((1 - Nt_w), i - 1) * contentNitrates_[contentNitrates_.Length - i];

388.            }

389.            contentNitrates = Nt_w * (F + Fn);

390.        }

391. 

392.        private void calculateContentNitrogenForecast(double Ng_w = 0)

393.        {

394.            double[] contentNitrogen_ = new double[idAnalysisData.Length];

395.            if (Ng_w == 0)

396.            {

397.                Ng_w = calculateContentNitrogen_W();

398.            }

399.            for (int i = 0; i < idAnalysisData.Length; i++)

400.            {

401.                analysisData.GetContentNitrogenById(idAnalysisData[i], out contentNitrogen_[i]);

402.            }

403.            double F = Math.Pow((1 - Ng_w), contentNitrogen_.Length - 2) * contentNitrogen_[0];

404.            double Fn = 0;

405.            for (int i = 1; i < contentNitrogen_.Length; i++)

406.            {

407.                Fn += Math.Pow((1 - Ng_w), i - 1) * contentNitrogen_[contentNitrogen_.Length - i];

408.            }

409.            contentNitrogen = Ng_w * (F + Fn);

410.        }

411. 

412.        private void calculateContentPhosphorusForecast(double Ph_w = 0)

413.        {

414.            double[] contentPhosphorus_ = new double[idAnalysisData.Length];

415.            if (Ph_w == 0)

416.            {

417.                Ph_w = calculateContentPhosphorus_W();

418.            }

419.            for (int i = 0; i < idAnalysisData.Length; i++)

420.            {

421.                analysisData.GetContentPhosphorusById(idAnalysisData[i], out contentPhosphorus_[i]);

422.            }

423.            double F = Math.Pow((1 - Ph_w), contentPhosphorus_.Length - 2) * contentPhosphorus_[0];

424.            double Fn = 0;

425.            for (int i = 1; i < contentPhosphorus_.Length; i++)

426.            {

427.                Fn += Math.Pow((1 - Ph_w), i - 1) * contentPhosphorus_[contentPhosphorus_.Length - i];

428.            }

429.            contentPhosphorus = Ph_w * (F + Fn);

430.        }

431. 

432.        private void calculateContentPlumbumForecast(double Pl_w = 0)

433.        {

434.            double[] contentPlumbum_ = new double[idAnalysisData.Length];

435.            if (Pl_w == 0)

436.            {

438.            }

439.            for (int i = 0; i < idAnalysisData.Length; i++)

440.            {

441.                analysisData.GetContentPlumbumById(idAnalysisData[i], out contentPlumbum_[i]);

442.            }

443.            double F = Math.Pow((1 - Pl_w), contentPlumbum_.Length - 2) * contentPlumbum_[0];

444.            double Fn = 0;

445.            for (int i = 1; i < contentPlumbum_.Length; i++)

446.            {

447.                Fn += Math.Pow((1 - Pl_w), i - 1) * contentPlumbum_[contentPlumbum_.Length - i];

448.            }

449.            contentPlumbum = Pl_w * (F + Fn);

450.        }

451. 

452.        private void calculateContentZincForecast(double Zc_w = 0)

453.        {

454.            double[] contentZinc_ = new double[idAnalysisData.Length];

455.            if (Zc_w == 0)

456.            {

457.                Zc_w = calculateContentZinc_W();

458.            }

459.            for (int i = 0; i < idAnalysisData.Length; i++)

460.            {

461.                analysisData.GetContentZincById(idAnalysisData[i], out contentZinc_[i]);

462.            }

463.            double F = Math.Pow((1 - Zc_w), contentZinc_.Length - 2) * contentZinc_[0];

464.            double Fn = 0;

465.            for (int i = 1; i < contentZinc_.Length; i++)

466.            {

467.                Fn += Math.Pow((1 - Zc_w), i - 1) * contentZinc_[contentZinc_.Length - i];

468.            }

469.            contentZinc = Zc_w * (F + Fn);

470.        }

471. 

472.        public void calculateForecast(double w_ = 0)

473.        {

474.            try {

475.                calculateContentArsenicForecast(w_);

476.                calculateContentCobaltForecast(w_);

477.                calculateContentCooperForecast(w_);

478.                calculateContentChromiumForecast(w_);

479.                calculateContentMercuryForecast(w_);

480.                calculateContentNitratesForecast(w_);

481.                calculateContentNitrogenForecast(w_);

482.                calculateContentPhosphorusForecast(w_);

483.                calculateContentPlumbumForecast(w_);

484.                calculateContentZincForecast(w_);

485.                dateTime = DateTime.Now;

486.            }

487.            catch (Exception ex)

488.            {

489.                idTerritory = 0;

490.            }  

491.        }

492. 

493.        public double GetRateOfPollution(MACData macData_)

494.        {

495.            double rate =

496.                (contentArsenic / macData_.GetMACArsenic() +

497.                contentCobalt / macData_.GetMACCobalt() +

498.                contentCooper / macData_.GetMACCooper() +

499.                contentChromium / macData_.GetMACChromium() +

500.                contentMercury / macData_.GetMACMercury() +

501.                contentNitrates / macData_.GetMACNitrates() +

502.                contentNitrogen / macData_.GetMACNitrogen() +

503.                contentPhosphorus / macData_.GetMACPhosphorus() +

504.                contentPlumbum / macData_.GetMACPlumbum() +

505.                contentZinc / macData_.GetMACZinc()) /

506.                10;

507.            return rate;

508.        }

509. 

510.        public char GetRateColorOfPollution(MACData macData_)

511.        {

512.            char color;

513.            if (GetRateOfPollution(macData_) == 0)

514.            {

515.                color = 'W';

516.            }

517.            else if (GetRateOfPollution(macData_) <= 1)

518.            {

519.                color = 'G';

520.            }

521.            else if (GetRateOfPollution(macData_) <= 1.25)

522.            {

523.                color = 'Y';

524.            }

525.            else if (GetRateOfPollution(macData_) > 1.25)

526.            {

527.                color = 'R';

528.            }

529.            else

530.            {

531.                color = 'W';

532.            }

533.            return color;

534.        }

535. 

536.        public string GetClassificationOfPollution(MACData macData_)

537.        {

538.            if (GetRateOfPollution(macData_) <= 1)

539.            {

540.                return "Рівень забруднення низький.";

541.            }

542.            else if (GetRateOfPollution(macData_) <= 1.25)

543.            {

544.                return "Рівень забруднення середній.";

545.            }

546.            else if (GetRateOfPollution(macData_) <= 1.5)

547.            {

548.                return "Рівень забруднення високий.";

549.            }

550.            else

551.            {

552.                return "Рівень забруднення критичний.";

553.            }

554.        }

555. 

556.        public string OutHTMLAnalysisData()

557.        {

558.            if (idTerritory != 0)

559.            {

560.                return

561.                   "Дані прогнозу забруднення від " + dateTime.ToString("MM.yyyy") + ".<br>" +

562.                   "Вміст миш’яку: " + String.Format("{0,10:0.00}", contentArsenic) + "(мг/кг)<br>" +

563.                   "Вміст кобальту: " + String.Format("{0,10:0.00}", contentCobalt) + "(мг/кг)<br>" +

564.                   "Вміст міді: " + String.Format("{0,10:0.00}", contentCooper) + "(мг/кг)<br>" +

565.                   "Вміст хрому: " + String.Format("{0,10:0.00}", contentChromium) + "(мг/кг)<br>" +

566.                   "Вміст ртуті: " + String.Format("{0,10:0.00}", contentMercury) + "(мг/кг)<br>" +

567.                   "Вміст фосфору: " + String.Format("{0,10:0.00}", contentPhosphorus) + "(мг/кг)<br>" +

568.                   "Вміст свинцю: " + String.Format("{0,10:0.00}", contentPlumbum) + "(мг/кг)<br>" +

569.                   "Вміст цинку: " + String.Format("{0,10:0.00}", contentZinc) + "(мг/кг)<br>" +

570.                   "Вміст нітратів: " + String.Format("{0,10:0.00}", contentNitrates) + "(мг/кг)<br>" +

571.                   "Вміст азотних добрив: " + String.Format("{0,10:0.00}", contentNitrogen) + "(мг/кг)";

572.            }

573.            else

574.            {

575.                return "Немає данних...";

576.            }

577.        }

578. 

579.        public string OutHTMLAnalysisData(MACData macData_)

580.        {

581.            if (idTerritory != 0)

582.            {

583.                return GetClassificationOfPollution(macData_) + " Загально відносно ГДК: " + String.Format("{0,10:0.00}", GetRateOfPollution(macData_) * 100) + "%.<br>" +

584.                       "Дані прогнозу забруднення від " + dateTime.ToString("MM.yyyy") + ".<br>" +

585.                       "Вміст миш’яку: " + String.Format("{0,10:0.00}", contentArsenic) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentArsenic / macData_.GetMACArsenic() * 100) + "%<br>" +

586.                       "Вміст кобальту: " + String.Format("{0,10:0.00}", contentCobalt) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentCobalt / macData_.GetMACCobalt() * 100) + "%<br>" +

587.                       "Вміст міді: " + String.Format("{0,10:0.00}", contentCooper) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentCooper / macData_.GetMACCooper() * 100) + "%<br>" +

588.                       "Вміст хрому: " + String.Format("{0,10:0.00}", contentChromium) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentChromium / macData_.GetMACChromium() * 100) + "%<br>" +

589.                       "Вміст ртуті: " + String.Format("{0,10:0.00}", contentMercury) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentMercury / macData_.GetMACMercury() * 100) + "%<br>" +

590.                       "Вміст фосфору: " + String.Format("{0,10:0.00}", contentPhosphorus) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentPhosphorus / macData_.GetMACPhosphorus() * 100) + "%<br>" +

591.                       "Вміст свинцю: " + String.Format("{0,10:0.00}", contentPlumbum) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentPlumbum / macData_.GetMACPlumbum() * 100) + "%<br>" +

592.                       "Вміст цинку: " + String.Format("{0,10:0.00}", contentZinc) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentZinc / macData_.GetMACZinc() * 100) + "%<br>" +

593.                       "Вміст нітратів: " + String.Format("{0,10:0.00}", contentNitrates) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentNitrates / macData_.GetMACNitrates() * 100) + "%<br>" +

594.                       "Вміст азотних добрив: " + String.Format("{0,10:0.00}", contentNitrogen) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentNitrogen / macData_.GetMACNitrogen() * 100) + "%";

595.            }

596.            else

597.            {

598.                return "Немає данних...";

599.            }

600.        }

601. 

602.        public string OutTextAnalysisData()

603.        {

604.            if (idTerritory != 0)

605.            {

606.                return

607.                   "Дані прогнозу забруднення від " + dateTime.ToString("dd.MM.yyyy") + ".\n" +

608.                   "Вміст миш’яку: " + String.Format("{0,10:0.00}", contentArsenic) + "(мг/кг)\n" +

609.                   "Вміст кобальту: " + String.Format("{0,10:0.00}", contentCobalt) + "(мг/кг)\n" +

610.                   "Вміст міді: " + String.Format("{0,10:0.00}", contentCooper) + "(мг/кг)\n" +

611.                   "Вміст хрому: " + String.Format("{0,10:0.00}", contentChromium) + "(мг/кг)\n" +

612.                   "Вміст ртуті: " + String.Format("{0,10:0.00}", contentMercury) + "(мг/кг)\n" +

613.                   "Вміст фосфору: " + String.Format("{0,10:0.00}", contentPhosphorus) + "(мг/кг)\n" +

614.                   "Вміст свинцю: " + String.Format("{0,10:0.00}", contentPlumbum) + "(мг/кг)\n" +

615.                   "Вміст цинку: " + String.Format("{0,10:0.00}", contentZinc) + "(мг/кг)\n" +

616.                   "Вміст нітратів: " + String.Format("{0,10:0.00}", contentNitrates) + "(мг/кг)\n" +

617.                   "Вміст азотних добрив: " + String.Format("{0,10:0.00}", contentNitrogen) + "(мг/кг)";

618.            }

619.            else

620.            {

621.                return "Немає данних...\n\n";

622.            }

623.        }

624. 

625.        public string OutTextAnalysisData(MACData macData_)

626.        {

627.            if (idTerritory != 0)

628.            {

629.                return

630.                    GetClassificationOfPollution(macData_) + "\nЗагально відносно ГДК: " + String.Format("{0,10:0.00}", GetRateOfPollution(macData_) * 100) + "%.\n" +

631.                   "Дані прогнозу забруднення від " + dateTime.ToString("MM.yyyy") + ".\n" +

632.                   "Вміст миш’яку: " + String.Format("{0,10:0.00}", contentArsenic) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentArsenic / macData_.GetMACArsenic() * 100) + "%\n" +

633.                   "Вміст кобальту: " + String.Format("{0,10:0.00}", contentCobalt) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentCobalt / macData_.GetMACCobalt() * 100) + "%\n" +

634.                   "Вміст міді: " + String.Format("{0,10:0.00}", contentCooper) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentCooper / macData_.GetMACCooper() * 100) + "%\n" +

635.                   "Вміст хрому: " + String.Format("{0,10:0.00}", contentChromium) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentChromium / macData_.GetMACChromium() * 100) + "%\n" +

636.                   "Вміст ртуті: " + String.Format("{0,10:0.00}", contentMercury) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentMercury / macData_.GetMACMercury() * 100) + "%\n" +

637.                   "Вміст фосфору: " + String.Format("{0,10:0.00}", contentPhosphorus) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentPhosphorus / macData_.GetMACPhosphorus() * 100) + "%\n" +

638.                   "Вміст свинцю: " + String.Format("{0,10:0.00}", contentPlumbum) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentPlumbum / macData_.GetMACPlumbum() * 100) + "%\n" +

639.                   "Вміст цинку: " + String.Format("{0,10:0.00}", contentZinc) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentZinc / macData_.GetMACZinc() * 100) + "%\n" +

640.                   "Вміст нітратів: " + String.Format("{0,10:0.00}", contentNitrates) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentNitrates / macData_.GetMACNitrates() * 100) + "%\n" +

641.                   "Вміст азотних добрив: " + String.Format("{0,10:0.00}", contentNitrogen) + "(мг/кг). Відносно ГДК: " + String.Format("{0,10:0.0}", contentNitrogen / macData_.GetMACNitrogen() * 100) + "%\n\n";

642.            }

643.            else

644.            {

645.                return "Немає данних...\n\n";

646.            }

647.        }

648.    }

649.}

ДодатокВ

Код створення бази даних системи.

1. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;

2. SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;

3. SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

4.  

5. CREATE SCHEMA IF NOT EXISTS `IASoMaPSC` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;

6. USE `IASoMaPSC` ;

7.  

8. CREATE  TABLE IF NOT EXISTS `IASoMaPSC`.`TerritoryData` (

9.   `idTerritoryData` INT NOT NULL AUTO_INCREMENT ,

10.    `name` VARCHAR(50) NOT NULL ,

11.    `centerLongitude` DOUBLE NOT NULL ,

12.    `centerLatitude` DOUBLE NOT NULL ,

13.    PRIMARY KEY (`idTerritoryData`) )

14.  ENGINE = InnoDB

15.  DEFAULT CHARACTER SET = utf8

16.  COLLATE = utf8_general_ci;

17.   

18.  CREATE  TABLE IF NOT EXISTS `IASoMaPSC`.`EmployeesData` (

19.    `idEmployeesData` INT NOT NULL AUTO_INCREMENT ,

20.    `name` VARCHAR(45) NOT NULL ,

21.    `surname` VARCHAR(45) NOT NULL ,

22.    `secname` VARCHAR(45) NOT NULL ,

23.    `post` VARCHAR(45) NOT NULL ,

24.    `telephone` VARCHAR(45) NOT NULL ,

25.    `address` VARCHAR(45) NOT NULL ,

26.    `dateEmployment` DATE NOT NULL ,

27.    `dateUnemployment` DATE NULL ,

28.    `idTerritoryData` INT NULL ,

29.    PRIMARY KEY (`idEmployeesData`) ,

30.    INDEX `fk_EmployeesData_TerritoryData1` (`idTerritoryData` ASC) ,

31.    CONSTRAINT `fk_EmployeesData_TerritoryData1`

32.      FOREIGN KEY (`idTerritoryData` )

33.      REFERENCES `IASoMaPSC`.`TerritoryData` (`idTerritoryData` )

34.      ON DELETE NO ACTION

35.      ON UPDATE NO ACTION)

36.  ENGINE = InnoDB

37.  DEFAULT CHARACTER SET = utf8

38.  COLLATE = utf8_general_ci;

39.   

40.  CREATE  TABLE IF NOT EXISTS `IASoMaPSC`.`AnalysisData` (

41.    `idAnalysisData` INT NOT NULL AUTO_INCREMENT ,

42.    `sampleMass` INT NOT NULL DEFAULT 1000 ,

43.    `contentArsenic` DOUBLE NOT NULL ,

44.    `contentCobalt` DOUBLE NOT NULL ,

45.    `contentCooper` DOUBLE NOT NULL ,

46.    `contentChromium` DOUBLE NOT NULL ,

47.    `contentMercury` DOUBLE NOT NULL ,

48.    `contentNitrates` DOUBLE NOT NULL ,

49.    `contentNitrogen` DOUBLE NOT NULL ,

50.    `contentPhosphorus` DOUBLE NOT NULL ,

51.    `contentPlumbum` DOUBLE NOT NULL ,

52.    `contentZinc` DOUBLE NOT NULL ,

53.    `date` DATE NOT NULL ,

54.    `time` TIME NOT NULL ,

55.    `idTerritoryData` INT NOT NULL ,

56.    `idEmployeesData` INT NOT NULL ,

57.    PRIMARY KEY (`idAnalysisData`, `idTerritoryData`, `idEmployeesData`) ,

58.    INDEX `fk_AnalysisData_TerritoryData1` (`idTerritoryData` ASC) ,

59.    INDEX `fk_AnalysisData_EmployeesData1` (`idEmployeesData` ASC) ,

60.    CONSTRAINT `fk_AnalysisData_TerritoryData1`

61.      FOREIGN KEY (`idTerritoryData` )

62.      REFERENCES `IASoMaPSC`.`TerritoryData` (`idTerritoryData` )

63.      ON DELETE NO ACTION

64.      ON UPDATE NO ACTION,

65.    CONSTRAINT `fk_AnalysisData_EmployeesData1`

66.      FOREIGN KEY (`idEmployeesData` )

67.      REFERENCES `IASoMaPSC`.`EmployeesData` (`idEmployeesData` )

68.      ON DELETE NO ACTION

69.      ON UPDATE NO ACTION)

70.  ENGINE = InnoDB

71.  DEFAULT CHARACTER SET = utf8

72.  COLLATE = utf8_general_ci;

73.   

74.  CREATE  TABLE IF NOT EXISTS `IASoMaPSC`.`ForecastData` (

75.    `idForecastData` INT NOT NULL AUTO_INCREMENT ,

76.    `contentArsenic` DOUBLE NOT NULL ,

77.    `contentCobalt` DOUBLE NOT NULL ,

78.    `contentCooper` DOUBLE NOT NULL ,

79.    `contentChromium` DOUBLE NOT NULL ,

80.    `contentMercury` DOUBLE NOT NULL ,

81.    `contentNitrates` DOUBLE NOT NULL ,

82.    `contentNitrogen` DOUBLE NOT NULL ,

83.    `contentPhosphorus` DOUBLE NOT NULL ,

84.    `contentPlumbum` DOUBLE NOT NULL ,

85.    `contentZinc` DOUBLE NOT NULL ,

86.    `date` DATE NOT NULL ,

87.    `idTerritoryData` INT NOT NULL ,

88.    PRIMARY KEY (`idForecastData`, `idTerritoryData`) ,

89.    INDEX `fk_ForecastData_TerritoryData1` (`idTerritoryData` ASC) ,

90.    CONSTRAINT `fk_ForecastData_TerritoryData1`

91.      FOREIGN KEY (`idTerritoryData` )

92.      REFERENCES `IASoMaPSC`.`TerritoryData` (`idTerritoryData` )

93.      ON DELETE NO ACTION

94.      ON UPDATE NO ACTION)

95.  ENGINE = InnoDB

96.  DEFAULT CHARACTER SET = utf8

97.  COLLATE = utf8_general_ci;

98.   

99.  CREATE  TABLE IF NOT EXISTS `IASoMaPSC`.`AnalysisHasForecast` (

100.  `idAnalysisData` INT NULL ,

101.  `idForecastData` INT NULL ,

102.  PRIMARY KEY (`idAnalysisData`, `idForecastData`) ,

103.  INDEX `fk_AnalysisData_has_ForecastData_ForecastData1` (`idForecastData` ASC) ,

104.  CONSTRAINT `fk_AnalysisData_has_ForecastData_AnalysisData1`

105.    FOREIGN KEY (`idAnalysisData` )

106.    REFERENCES `IASoMaPSC`.`AnalysisData` (`idAnalysisData` )

107.    ON DELETE NO ACTION

108.    ON UPDATE NO ACTION,

109.  CONSTRAINT `fk_AnalysisData_has_ForecastData_ForecastData1`

110.    FOREIGN KEY (`idForecastData` )

111.    REFERENCES `IASoMaPSC`.`ForecastData` (`idForecastData` )

112.    ON DELETE NO ACTION

113.    ON UPDATE NO ACTION)

114.ENGINE = InnoDB

115.DEFAULT CHARACTER SET = utf8

116.COLLATE = utf8_general_ci;

117. 

118.CREATE  TABLE IF NOT EXISTS `IASoMaPSC`.`MACData` (

119.  `idMACData` INT NOT NULL AUTO_INCREMENT ,

120.  `macArsenic` DOUBLE NOT NULL ,

121.  `macCobalt` DOUBLE NOT NULL ,

122.  `macCooper` DOUBLE NOT NULL ,

123.  `macChromium` DOUBLE NOT NULL ,

124.  `macMercury` DOUBLE NOT NULL ,

125.  `macNitrates` DOUBLE NOT NULL ,

126.  `macNitrogen` DOUBLE NOT NULL ,

127.  `macPhosphorus` DOUBLE NOT NULL ,

128.  `macPlumbum` DOUBLE NOT NULL ,

129.  `macZinc` DOUBLE NOT NULL ,

130.  PRIMARY KEY (`idMACData`) )

131.ENGINE = InnoDB

132.DEFAULT CHARACTER SET = utf8

133.COLLATE = utf8_general_ci;

134. 

135.CREATE  TABLE IF NOT EXISTS `IASoMaPSC`.`UserPermissionsData` (

136.  `idUserPermissionsData` INT NOT NULL AUTO_INCREMENT ,

138.  `territoryData` VARCHAR(2) NULL ,

139.  `AnalysisData` VARCHAR(2) NULL ,

140.  `ForecastData` VARCHAR(2) NULL ,

141.  `idEmployeesData` INT NOT NULL ,

142.  PRIMARY KEY (`idUserPermissionsData`, `idEmployeesData`) ,

143.  INDEX `fk_UserPermissionsData_EmployeesData1` (`idEmployeesData` ASC) ,

144.  CONSTRAINT `fk_UserPermissionsData_EmployeesData1`

145.    FOREIGN KEY (`idEmployeesData` )

146.    REFERENCES `IASoMaPSC`.`EmployeesData` (`idEmployeesData` )

147.    ON DELETE NO ACTION

148.    ON UPDATE NO ACTION)

149.ENGINE = InnoDB

150.DEFAULT CHARACTER SET = utf8

151.COLLATE = utf8_general_ci;

152. 

153.CREATE  TABLE IF NOT EXISTS `IASoMaPSC`.`Map` (

154.  `idMap` INT NOT NULL AUTO_INCREMENT ,

155.  `mapLongitude` POLYGON NOT NULL ,

156.  `mapLatitude` POLYGON NOT NULL ,

157.  `idTerritoryData` INT NOT NULL ,

158.  PRIMARY KEY (`idMap`, `idTerritoryData`) ,

159.  INDEX `fk_Map_TerritoryData1` (`idTerritoryData` ASC) ,

160.  CONSTRAINT `fk_Map_TerritoryData1`

161.    FOREIGN KEY (`idTerritoryData` )

162.    REFERENCES `IASoMaPSC`.`TerritoryData` (`idTerritoryData` )

163.    ON DELETE NO ACTION

164.    ON UPDATE NO ACTION)

165.ENGINE = InnoDB

166.DEFAULT CHARACTER SET = utf8

167.COLLATE = utf8_general_ci;

168. 

169.SET SQL_MODE=@OLD_SQL_MODE;

170.SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;

171.SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Похожие работы на - Обоснование возможности реализации регулировки фаз газораспределения

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!