Структура мониторинга окружающей среды

Физико-географическая характеристика места строительства угольного терминала. Нормативная база, функции и классификация мониторинга воздушной среды. Моделирование процесса загрязнения атмосферы промышленными источниками. Расчет концентрации угольной пыли.

Рубрика Экология и охрана природы
Вид дипломная работа
Язык русский
Дата добавления 25.12.2014
Размер файла 1,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

Выводы раздела 3

1) Методика определения качества атмосферного воздуха на территории города заключается в расчете концентрации загрязняющего вещества до тех пор, пока концентрация не примет значения предельно - допустимые для данного вещества;

2) Для определения концентрации за один цикл работы необходимо выбрать способ перегрузки и хранения угольной пыли, время года, скорость и направление ветра;

3) Рассчитывая концентрацию ЗВ даже при небольшой скорости ветрового потока, мы получили, что пыльное угольное облако распространится на 3 км, что негативно скажется и на здоровье севастопольцев, и изменит микроклимат города;

4) Последствия работы строительства предлагаемого угольного терминала имеет как экологические, так и социальные последствия.

РАЗДЕЛ 4. ОПИСАНИЕ ПРОГРАММНОГО МОДУЛЯ

4.1 Выбор среды программирования

Delphi - одна из самых мощных систем, которая позволяет писать как крохотные программы и утилиты для персональных пользователей, так и корпоративные системы, работающие с базами данных на разных платформах.

Пакет Delphi является современным средством визуального программирования. К его основным характеристикам и возможностям относят, прежде всего, наличие интегрированного отладчика и передачи, 32-х разрядный оптимизирующий компилятор, создание .DLL и .EXE разработок, доступ к интерфейсному WinAPI с поддержкой всех технологий. Также можно сказать, что в Delphi имеется полный набор компонентов для организации интерфейса под Windows, наличие визуальной библиотеки VCL, присутствие компонентов для построения графов и диаграмм по таблице баз данных, наличие средств для создания приложений, использующих ресурсы Internet.

Delphi имеет доступ к любым механизмам базы данных, и, так же, имеет визуальное управление метаданными SQL-серверов.

Delphi является одним из самых распространенных средств создания приложений баз данных. Он позволяет автономно отлаживать приложения работы с базами данных. Простота языка и эффективность (небольшие размеры и большая производительность) создаваемых с его помощью программ сделали Delphi незаменимым средством разработки приложений для доступа к базам данных.

Основой почти всех приложений Delphi является форма. Она является основой, на которой размещаются другие компоненты.

Одной из наиболее важных частей среды Delphi является окно Редактора Кода. Редактор Кода является полноценным программным редактором. В редакторе применяется выделением цветом синтаксических элементов. Жирным шрифтом выделяются ключевые слова языка Object Pascal. Синим курсивом выделяются комментарии.

В заголовке окна Редактора Кода отображается имя текущего файла. В верхней части окна находятся также закладки или ярлычки, указывающие текущую страницу. Приложения Delphi могут использовать много исходных файлов и закладки помогают вам переходить от одного из них к другому.

Следующим важнейшим элементом среды разработки является Инспектор Объектов (Object Inspector). Он обеспечивает простой и удобный интерфейс для изменения свойств объектов Delphi и управления событиями, на которые реагирует объект.

Таким образом, для создания программного модуля в данной работе используется объектно-ориентированная среда программирования Delphi, преимуществами языка которой являются простота языка и эффективность (небольшие размеры и большая производительность) создаваемых с его помощью программ.

4.2 Описание программного модуля

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

1) Ввод аналитических и графических данных;

2) Расчет параметров загрязняющего угольного облака от одиночного источника;

3) Моделирование последствий выброса угольной пыли.

Ввод картографической информации осуществляется посредством интегрированного компонента MapX при помощи ActiveX.

MapX - высоко эффективная OCX компонента, которая легко интегрируется в приложения. MapX позволяет использовать необходимые картографические функции в новых и уже существующих приложениях. MapX предоставляет новые возможности для анализа картографической информации. Использование карт, диаграмм и графиков более понятно по сравнению с таблицами. Работа с картографическими приложениями позволяет пользователям оперативно принимать решения, учитывая пространственные отношения объектов.

Функция открытия картографической информации выполняется с помощью вкладки Файл - Открыть или же слои карты добавляются с помощью диалога свойств, расположенного во вкладке Свойства, представленного на рисунке 4.1.

Рис. 4.1 Загрузка картографической информации

Для работы с графической информацией предусмотрены следующие возможности:

- увеличить (для масштабирования, увеличивает объекты для более детального их рассмотрения);

- уменьшить (для масштабирования, уменьшает объекты для рассмотрения области вцелом);

- курсор (для установки меток на карте);

- ладошка (для перемещения по карте) ;

- инструмент выделения в прямоугольнике;

- инструмент выделения в окружности;

- инструмент выделения в области.

Эти возможности и инструменты сгруппированы во вкладках «Масштабирование» и «Действия» рисунок 4.2.

Рис. 4.2 Инструменты работы с картой

Для оценки масштабов загрязнения угольной пылью предназначен расчетный блок, рисунок 4.3, где входными параметрами являются:

- время года;

- скорость ветра (не меньше 3 м/с);

- направление ветра, град.;

- способ перегрузки и хранения угля

Рис. 4.3 Расчет концентрации угольной пыли

Программный модуль предполагает определение изменение концентрации загрязняющего вещества с увеличением расстояния от источника загрязнения, рисунок 4.4. Расчет концентрации происходит до тех пор, пока концентрация ЗВ не примет значения предельно-допустимые для данной территории (2-4 мг/м3) с заполнением баз данных с фиксированным шагом (0,5 км).

Рис. 4.4 Расчет зависимости концентрации от расстояния до источника загрязнения

В программном модуле предусмотрена возможность нанесения на карту изолиний, характеризующих концентрацию угольной пыли по мере удаления от источника загрязнения, рисунок 4.5. Соответственно изменение цвета изолиний от красного до белого характеризует понижение концентрации на данной территории.

Рис.4.5 Представление области загрязнения угольной пылью

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

Выводы раздела 4

1) Для создания программного модуля в данной работе используется объектно-ориентированная среда программирования Delphi, преимуществами языка которой являются простота языка и эффективность (небольшие размеры и большая производительность) создаваемых с его помощью программ;

2) В работе создан программный модуль, позволяющий рассчитывать концентрацию угольной пыли от одиночного источника и предоставлена возможность нанесения на карту изолиний, характеризующих изменение концентрации ЗВ с увеличением расстояния от источника загрязнения.

ВЫВОДЫ

В данной квалификационной работе был создан программный модуль для системы мониторинга состояния атмосферного воздуха вследствие работы при планируемом строительстве УПК в Доковой бухте города Севастополя.

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

Планируемое строительство УПК напротив исторического центра на берегу Северной бухты города Севастополя вызывает большие дискуссии и требует прогнозирования и оценки возможных экологических последствий в результате хранения, погрузки/перегрузки угля, как для состояния исторического центра, так и для рекреационной зоны.

Основными нормативными документами, регламентирующими защиту окружающей среды и здоровье человека, являются Конституция Украины, законы Украины «Об охране окружающей природной среды» и «Об охране атмосферы».

Мониторинг - это наблюдение, анализ и оценка состояния окружающей среды, её изменение под влиянием хозяйственной деятельности человека, а также прогнозирование этих изменений.

Структура экологического мониторинга включает в себя несколько основных процедур: выделение (определение) объекта наблюдения, обследование выделенного объекта наблюдения, составление информационной модели для объекта наблюдения, представление информации в удобной для пользователя форме и доведение ее до потребителя, оценка состояния объекта наблюдения и идентификации его информационной модели, прогнозирование изменения состояния объекта наблюдения и планирование измерений.

Мониторинг принято делить на базовый (или фоновый), глобальный, региональный, локальный и импактный.

Основные требования, выдвигаемые к проектированию систем мониторинга - это определение задач систем мониторинга качества воздуха и требований к информации, необходимой для их выполнения, создание организационной структуры сети наблюдений и разработка принципов их проведения, построение сети мониторинга, разработка системы получения данных/информации и представления информации потребителям, создание системы проверки полученной информации на соответствие исходным требованиям и пересмотра, при необходимости, системы мониторинга.

Методика определения качества атмосферного воздуха на территории города заключается в расчете концентрации загрязняющего вещества до тех пор, пока концентрация не примет значения предельно - допустимые для данного вещества.

Для определения концентрации за один цикл работы необходимо выбрать способ перегрузки и хранения угольной пыли, время года, скорость и направление ветра.

Рассчитывая концентрацию ЗВ даже при небольшой скорости ветрового потока, мы получили, что пыльное угольное облако распространится на 3 км, что негативно скажется и на здоровье севастопольцев, и изменит микроклимат города.

Последствия работы строительства предлагаемого угольного терминала имеет как экологические, так и социальные последствия.

Для создания программного модуля в данной работе используется объектно-ориентированная среда программирования Delphi, преимуществами языка которой являются простота языка и эффективность (небольшие размеры и большая производительность) создаваемых с его помощью программ.

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Оценка воздействия на окружающую среду, 2008. - 173с.

2. Технико-экономическое обоснование строительства универсального перегрузочного комплекса, 2008. - 77 с.

3. Ковальчук П.І. Моделювання і прогнозування стану навколишнього середовища: Навч.посібник. - К.:Либідь, 2003. - С.70-75.

4. Сикарев С.Н. Повышение сохранности сыпучих грузов путем снижения потерь от пылеуноса при перегрузке (разгрузке) судов в портах: Автореф. дис. канд. техн. наук: 05.22.19. Нижн.Новг.:НАУ, 2008. 44 с.

5. Никитин Д.П. Окружающая среда и человек. - М.: Высшая школа, 1986. - 345 с.

6. Закон Украины «Про охрану атмосферного воздуха». - К.: ВР 2001.

7. Закон Украины «Об охране окружающей природной среды». - К.:ВР 1991.

8. Конституция Украины. - К.:ВР 1996.

Приложение

Листинг программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, OleCtrls, MapXLib_TLB, Menus, ExtCtrls, Grids, Math;

type

intRGB = record

R, G, B: Byte;

end;

TForm1 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

OpenDialog1: TOpenDialog;

CheckBox1: TCheckBox;

ComboBox1: TComboBox;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N18: TMenuItem;

N19: TMenuItem;

CheckBox4: TCheckBox;

N20: TMenuItem;

GroupBox1: TGroupBox;

Edit4: TEdit;

Edit5: TEdit;

Label3: TLabel;

Label4: TLabel;

GroupBox2: TGroupBox;

Map1: TMap;

Panel1: TPanel;

Image1: TImage;

PaintBox1: TPaintBox;

GroupBox3: TGroupBox;

Label6: TLabel;

Edit10: TEdit;

Label7: TLabel;

Edit11: TEdit;

Label8: TLabel;

Label9: TLabel;

StringGrid1: TStringGrid;

Button7: TButton;

CheckBox5: TCheckBox;

CheckBox6: TCheckBox;

CheckBox7: TCheckBox;

CheckBox8: TCheckBox;

GroupBox4: TGroupBox;

Label10: TLabel;

Label11: TLabel;

Edit14: TEdit;

Edit15: TEdit;

Label5: TLabel;

ComboBox2: TComboBox;

Button5: TButton;

Edit12: TEdit;

Button3: TButton;

Label1: TLabel;

Label2: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure CheckBox1Click(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure N12Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N19Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N18Click(Sender: TObject);

procedure CheckBox2Click(Sender: TObject);

procedure CheckBox3Click(Sender: TObject);

procedure CheckBox4Click(Sender: TObject);

procedure N20Click(Sender: TObject);

procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure FormCreate(Sender: TObject);

procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Button5Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Edit10KeyPress(Sender: TObject; var Key: Char);

procedure Edit11KeyPress(Sender: TObject; var Key: Char);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

procedure Clear;

function zapgrefcran(x1:double):double;

function zapkonvyst(x1:double):double;

function zapotkrtrsyd(x1,x2:double):double;

function zappolyvagon(x1,x2:double):double;

function TRGB(R, G, B: Byte): intRGB;

function RGB2Color(RGB: intRGB): TColor;

function Color2RGB(Color: TColor): intRGB;

function Html2RGB(HTML: string): intRGB;

function CheckHexForHash(col: string): string;

function rot_x(x,y: integer; theta: real): integer;

function rot_y(x,y: integer; theta: real): integer;

procedure ellips(handle: TCanvas; x,y,a,b: integer; alfa: real; color: TColor);

procedure riselip();

{ Public declarations }

end;

var

Form1: TForm1;

R,Xst,Yst:integer;

nx,ny,nx1,ny1,nx2,ny2,rad,rad0,rotat:double;

vub_to,colokr:integer;

q,w:single;

KoordX,KoordY,koef:Double;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.riselip;

var

i,j,dl,hr,colz:integer;

up,un,us,h,par,x1,x2,ras:double;

rad:double;

Kx,Ky:Double;

colzal:TColor;

xc,yc:integer;

mascol:array[0..15] of string;

begin

mascol[0]:='ff0000';

mascol[1]:='ff1919';

mascol[2]:='fe2626';

mascol[3]:='fe3838';

mascol[4]:='fd4c4c';

mascol[5]:='fe5c5c';

mascol[6]:='fd6767';

mascol[7]:='fd7474';

mascol[8]:='fb8484';

mascol[9]:='fc9191';

mascol[10]:='ffa2a2';

mascol[11]:='fdb8b8';

mascol[12]:='fec5c5';

mascol[13]:='fdd8d8';

mascol[14]:='fee5e5';

mascol[15]:='fef3f3';

if(strtofloat(edit12.Text)>0) then

begin

i:=colokr;

koef:=16/i;

rad:=strtofloat(edit11.Text);

image1.Canvas.Brush.Style:=bsDiagCross;

while(i>=0)do

begin

colz:=round(i*koef);

if(colz>15) then colz:=15;

colzal:=RGB2Color(Html2RGB(mascol[colz]));

image1.Canvas.Brush.Color:=colzal;

par:=i*0.0020959594498301;

Kx:=0.239160367618979;

Ky:=0.260054695577742;

x1:=Kx;

x2:=x1+par;

map1.ConvertCoord(q,w,x1,x2,0);

dl:=round(w-q);

if(dl<0) then dl:=dl*(-1);

hr:=round(dl/2);

if(dl<0) then hr:=hr*(-1);

map1.ConvertCoord(q,w,Kx, Ky,0);

xc:=round(q+rot_x(round(dl/2),0,((rad-90)*Pi/180)));

yc:=round(w+rot_y(round(dl/2),0,((rad-90)*Pi/180)));

ellips(image1.Canvas,round(xc),round(yc),dl,hr,rad,colzal);

i:=i-1;

end;

end;

end;

function TForm1.CheckHexForHash(col: string): string;

begin

if col[1]='#' then

col:=StringReplace(col, '#', '', [rfReplaceAll]);

result:=col;

end;

function TForm1.Html2RGB(HTML: string): intRGB;

begin

HTML:=CheckHexForHash(HTML);

HTML:='$00'+copy(HTML, 5, 2)+copy(HTML,3,2)+copy(HTML,1,2);

Result:=Color2RGB(StrToInt(HTML))

end;

function TForm1.TRGB(R, G, B: Byte): intRGB;

begin

Result.R:=R;

Result.G:=G;

Result.B:=B;

end;

function TForm1.RGB2Color(RGB: intRGB): TColor;

begin

Result:=RGB.B shl 16 or RGB.G shl 8 or RGB.R;

end;

function TForm1.Color2RGB(Color: TColor): intRGB;

begin

Result:=TRGB(Color and $FF, (Color and $FF00) shr 8, (Color and $FF0000) shr 16);

end;

function TForm1.rot_x(x,y: integer; theta: real): integer;

begin

result := round(x * cos(theta) - y * sin(theta));

end;

function TForm1.rot_y(x,y: integer; theta: real): integer;

begin

result := round(x * sin(theta) + y * cos(theta));

end;

procedure TForm1.ellips(handle: TCanvas; x,y,a,b: integer; alfa: real; color: TColor);

var sx,sy,rx,ry,i: integer;

ugol: real;

mas:array of Tpoint;

begin

SetLength(mas, 20);

alfa:=(alfa-90)*Pi/180;

sx := x + rot_x(a,0,alfa);

sy := y + rot_y(a,0,alfa);

handle.Pen.Color := color;

{handle.MoveTo(sx,sy);}

mas[0].X:=sx;

mas[0].Y:=sy;

ugol:=0;

for i:=1 to 19 do

begin

ugol := ugol+0.31416;

rx := round(a*cos(ugol));

ry := round(b*sin(ugol));

mas[i].X:=x + rot_x(rx,ry,alfa);

mas[i].Y:=y + rot_y(rx,ry,alfa);

end;

handle.Polygon(mas);

end;

function TForm1.zapgrefcran(x1:double):double;

begin

zapgrefcran:=0.09+0.021*x1;

end;

function TForm1.zapkonvyst(x1:double):double;

begin

zapkonvyst:=0.03+0.009*x1;

end;

function TForm1.zapotkrtrsyd(x1,x2:double):double;

begin

zapotkrtrsyd:=101.65-53.35*x1+100.35*x2-52.65*x1*x2;

end;

function TForm1.zappolyvagon(x1,x2:double):double;

begin

zappolyvagon:=20.9-14.45*x1+17.6*x2-12.25*x1*x2;

end;

procedure TForm1.Clear;

begin

Image1.Canvas.Brush.Color:=clWhite;

Image1.Canvas.Brush.Style:=bsSolid;

Image1.Canvas.FillRect(Rect(0,0,Image1.Width,Image1.Height));

Image1.Canvas.Brush.Style:=bsClear;

map1.PaintTo(image1.Canvas,0,0);

riselip;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

PaintBox1.Tag:=2;

PaintBox1.Cursor:=crDefault;

end;

procedure TForm1.N6Click(Sender: TObject);

begin

PaintBox1.Tag:=1;

PaintBox1.Cursor:=crDefault;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

PaintBox1.Tag:=0;

PaintBox1.Cursor:=crDefault;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

PaintBox1.Tag:=3;

PaintBox1.Cursor:=crHandPoint;

end;

procedure TForm1.N8Click(Sender: TObject);

begin

map1.PropertyPage;

end;

procedure TForm1.N11Click(Sender: TObject);

begin

Panel1.Visible:=false;

if OpenDialog1.Execute then

begin

Map1.Layers.Add(OpenDialog1.FileName,EmptyParam) ;

ComboBox1.Items.Add(OpenDialog1.FileName);

comboBox1.ItemIndex:=0;

CheckBox1.Checked:=Map1.Layers.Item(ComboBox1.ItemIndex+1).Visible;

CheckBox2.Checked:=Map1.Layers.Item(ComboBox1.ItemIndex+1).Selectable;

CheckBox3.Checked:=Map1.Layers.Item(ComboBox1.ItemIndex+1).AutoLabel;

CheckBox4.Checked:=Map1.Layers.Item(ComboBox1.ItemIndex+1).Editable;

end;

end;

procedure TForm1.CheckBox1Click(Sender: TObject);

begin

Map1.Layers.Item(ComboBox1.ItemIndex+1).Visible:=CheckBox1.Checked;

end;

procedure TForm1.ComboBox1Change(Sender: TObject);

begin

CheckBox1.Checked:=Map1.Layers.Item(ComboBox1.ItemIndex+1).Visible;

CheckBox2.Checked:=Map1.Layers.Item(ComboBox1.ItemIndex+1).Selectable;

CheckBox3.Checked:=Map1.Layers.Item(ComboBox1.ItemIndex+1).AutoLabel;

CheckBox4.Checked:=Map1.Layers.Item(ComboBox1.ItemIndex+1).Editable;

end;

procedure TForm1.N12Click(Sender: TObject);

begin

Map1.CurrentTool:=miRectSelectTool;

end;

procedure TForm1.N13Click(Sender: TObject);

begin

Map1.CurrentTool:=miRadiusSelectTool;

end;

procedure TForm1.N14Click(Sender: TObject);

begin

Map1.CurrentTool:=miPolygonSelectTool;

end;

procedure TForm1.N16Click(Sender: TObject);

begin

Map1.Layers.Item(1).Editable:=true;

Map1.Layers.InsertionLayer:=map1.Layers.Item(1);

Map1.CurrentTool:=miAddLineTool;

end;

procedure TForm1.N19Click(Sender: TObject);

begin

Map1.Layers.InsertionLayer:=map1.Layers.Item(1);

Map1.CurrentTool:=miAddPointTool;

end;

procedure TForm1.N17Click(Sender: TObject);

begin

Map1.Layers.Item(ComboBox1.ItemIndex+1).Editable:=true;

Map1.Layers.InsertionLayer:=map1.Layers.Item(1);

Map1.CurrentTool:=miAddPolyLineTool;

end;

procedure TForm1.N18Click(Sender: TObject);

begin

Map1.CurrentTool:=miAddRegionTool;

end;

procedure TForm1.CheckBox2Click(Sender: TObject);

begin

Map1.Layers.Item(ComboBox1.ItemIndex+1).Selectable:=CheckBox2.Checked;

end;

procedure TForm1.CheckBox3Click(Sender: TObject);

begin

Map1.Layers.Item(ComboBox1.ItemIndex+1).AutoLabel:=CheckBox3.Checked;

end;

procedure TForm1.CheckBox4Click(Sender: TObject);

begin

Map1.Layers.Item(ComboBox1.ItemIndex+1).Editable:=CheckBox4.Checked;

if (CheckBox4.Checked) then

N15.Enabled:=true

else

N15.Enabled:=false;

end;

procedure TForm1.N20Click(Sender: TObject);

begin

Form2.visible:=true;

form1.Enabled:=false;

end;

procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

var

Xst,Yst,R:integer;

linX,linY,KX,KY:Double;

X1,Y1:Double;

n1,n2:single;

begin

q:=x;

w:=y;

map1.ConvertCoord(q,w,KX,KY,1);

if Button=MbLeft then

case PaintBox1.Tag of

1: begin

map1.ZoomTo(Map1.Zoom*1.3,KX,KY);

end;

2: begin

map1.ZoomTo(Map1.Zoom/1.3,KX,KY);

end;

3: begin

X1:=map1.centerX;

Y1:=map1.centerY;

map1.ConvertCoord(n1,n2,X1,Y1,0);

KoordX:=x-n1;

KoordY:=Y-n2;

PaintBox1.Tag:=4;

end;

end;

clear;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

panel1.Height:=Map1.Height;

panel1.Width:=map1.Width;

image1.Height:=Map1.Height;

image1.Width:=map1.Width;

PaintBox1.Height:=Map1.Height;

PaintBox1.Width:=map1.Width;

map1.Zoom:=3.18374268549783;

map1.CenterX:=0.226011397767432;

map1.CenterY:=0.255034245186359;

map1.PaintTo(image1.Canvas,0,0);

rad:=0.001;

image1.Canvas.MoveTo(0,0);

vub_to:=0;

end;

procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

var

KX,KY:Double;

begin

q:=x;

w:=y;

{Коныертируем экранные координаты в фиические}

map1.ConvertCoord(q,w,KX,KY,1);

edit4.Text:=floattostr(KX);

edit5.Text:=floattostr(KY);

edit14.Text:=floattostr(X);

edit15.Text:=floattostr(Y);

end;

procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

var

Kx,Ky:Double;

begin

if PaintBox1.Tag=4 then

begin

q:=PaintBox1.Width-(X-KoordX);

w:=PaintBox1.Height-(y-KoordY);

map1.ConvertCoord(q,w,Kx,Ky,miScreenToMap);

PaintBox1.Tag:=3;

map1.CenterX:=Kx;

map1.CenterY:=Ky;

Clear;

end;

end;

procedure TForm1.Button5Click(Sender: TObject);

var

x1,x2, sum,re, sred:double;

begin

sum:=0;

x1:=strtofloat(edit10.Text);

if(x1<3) then

begin

x1:=3;

edit10.Text:='3';

end;

case combobox2.ItemIndex of

0: sred:=5.47;

1: sred:=4.6;

2: sred:=4.07;

else sred:=4.43;

end;

x1:=sred/x1;

x2:=strtofloat(edit11.Text);

if(x2>360) then x2:=360;

if(x2<0) then x2:=180;

if(x2=0) then x2:=180;

if((x2>90)AND(x2<180)) then

x2:=180-x2;

if((x2>180)AND(x2<=270)) then

x2:=x2-180;

if((x2>270)AND(x2<=360)) then

x2:=360-x2;

x2:=45/x2;

if(CheckBox5.Checked) then

begin

re:=zapgrefcran(x1);

if(re<0) then re:=re*(-1);

sum:=sum+re;

end;

if(CheckBox6.Checked) then

begin

re:=zapkonvyst(x1);

if(re<0) then re:=re*(-1);

sum:=sum+re;

end;

if(CheckBox7.Checked) then

begin

re:=zapotkrtrsyd(x1,x2);

if(re<0) then re:=re*(-1);

sum:=sum+re;

end;

if(CheckBox8.Checked) then

begin

re:=zappolyvagon(x1,x2);

if(re<0) then re:=re*(-1);

sum:=sum+re;

end;

if((x1=0)AND(x2=0)) then

sum:=0;

edit12.Text:=floattostr(SimpleRoundTo(sum,-2));

end;

procedure TForm1.Button7Click(Sender: TObject);

var

i,j,dl,hr,colz:integer;

up,un,us,h,par,x1,x2,ras:double;

rad:double;

Kx,Ky:Double;

colzal:TColor;

xc,yc:integer;

mascol:array[0..15] of string;

begin

mascol[0]:='ff0000';

mascol[1]:='ff1919';

mascol[2]:='fe2626';

mascol[3]:='fe3838';

mascol[4]:='fd4c4c';

mascol[5]:='fe5c5c';

mascol[6]:='fd6767';

mascol[7]:='fd7474';

mascol[8]:='fb8484';

mascol[9]:='fc9191';

mascol[10]:='ffa2a2';

mascol[11]:='fdb8b8';

mascol[12]:='fec5c5';

mascol[13]:='fdd8d8';

mascol[14]:='fee5e5';

mascol[15]:='fef3f3';

StringGrid1.Cells[0,0]:='Расстояние(км)';

StringGrid1.Cells[1,0]:='Концентрация(мг/м3)';

up:=strtofloat(edit12.text);

un:=up-20;

if(un<0) then un:=0;

h:=10;

StringGrid1.Cells[0,1]:='0.5';

StringGrid1.Cells[1,1]:=floattostr(up);

StringGrid1.Cells[0,2]:='1';

StringGrid1.Cells[1,2]:=floattostr(un);

i:=2;

while(un>4)do

begin

i:=i+1;

StringGrid1.RowCount:=i;

StringGrid1.Cells[0,i]:=floattostr(SimpleRoundTo((0.5*i),-2));

us:=0.91*un-0.307*(up-un)-0.668*(up-un)/(i*0.5)+0.00013*h*un;

if(us<0) then

begin

us:=0;

end;

StringGrid1.Cells[1,i]:=floattostr(SimpleRoundTo(us,-2));

up:=un;

un:=us;

end;

colokr:=i;

clear;

riselip;

end;

procedure TForm1.Edit10KeyPress(Sender: TObject; var Key: Char);

begin

case key of

'0'..'9': ;

#8 : ;

'-' : if length(Edit10.Text)<>0 then key:=#0;

'.' : if length(Edit10.Text)=0 then key:=#0;

else key:=#0;

end;

if(strtofloat(Edit10.Text)<3) then begin key:=#0; Edit10.Text:='3'; end;

end;

procedure TForm1.Edit11KeyPress(Sender: TObject; var Key: Char);

begin

case key of

'0'..'9': ;

#8 : ;

'.' : if length(Edit10.Text)=0 then key:=#0;

else key:=#0;

end;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

edit12.Text:='0';

StringGrid1.ColCount:=2;

StringGrid1.RowCount:=2;

StringGrid1.Cells[0,1]:='';

StringGrid1.Cells[1,1]:='';

end;

end.

Размещено на Allbest.ur


Подобные документы

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

    презентация [1,5 M], добавлен 07.09.2014

  • Проблема сохранения окружающей природной среды. Понятие мониторинга окружающей среды, его цели, порядок организации и осуществления. Классификация и основные функции мониторинга. Глобальная система и основные процедуры экологического мониторинга.

    реферат [918,9 K], добавлен 11.07.2011

  • Классификация систем экомониторинга окружающей среды по методам наблюдения, источникам, факторам и масштабам воздействия, территориальному принципу. Организация мониторинга источников загрязнения на объектах, действие российского законодательства.

    контрольная работа [323,7 K], добавлен 27.02.2015

  • Мониторинг воздушной среды на государственном уровне и на уровне субъектов РФ. Задачи гигиенического мониторинга состояния воздушной среды. Выбор места контроля загрязнения и его источника. Проведение наблюдения за радиоактивным загрязнением воздуха.

    реферат [116,5 K], добавлен 22.12.2015

  • Важнейшие экологические функции атмосферы. Характеристика антропогенного загрязнения воздушной среды России. Динамика выбросов загрязняющих веществ. Анализ состояния воздушной среды Оренбургской области. Основные последствия загрязнения атмосферы.

    дипломная работа [2,4 M], добавлен 30.06.2008

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

    курсовая работа [252,8 K], добавлен 05.01.2015

  • Понятие мониторинга загрязнения вредными веществами, его цели и задачи, классификация. Институты регионального мониторинга состояния экологии. Построение системы регионального наблюдения в Республике Беларусь. Некоторые результаты стационарных наблюдений.

    реферат [1,4 M], добавлен 30.05.2015

  • Последствия загрязнения окружающей среды, которые отражаются на растениях. Характеристика биоиндикации и биотестирования. Принципы организации биологического мониторинга. Основные формы отклика живых организмов, области применения биоиндикаторов.

    курсовая работа [65,1 K], добавлен 20.04.2011

  • Физико-географическая характеристика городской среды, функции, роль и место Минсельхозпрода в государственной системе мониторинга. Информационное обеспечение ведения мониторинга, технико-экономическое обоснование проекта природоохранных мероприятий.

    контрольная работа [23,9 K], добавлен 18.12.2009

  • Физико-географическая характеристика Хабаровского края и города Хабаровска. Основные источники загрязнения объектов природной среды. Условия загрязнения атмосферы промышленными выбросами предприятий. Основные мероприятия по снижению выбросов в атмосферу.

    курсовая работа [238,8 K], добавлен 17.11.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.