parser-synop
/
index.php
265 строк · 10.8 Кб
1<?php
2/*
3## Example of a line of raw SYNOP code in format KN-01
4
5### Change the variable raw to get the result.
6### The variable raw has the format KN-01.
7*/
8
9// Raw SYNOP code string (FM-12 code)
10//$raw = '201809051400 AAXX 10001 33041 42968 00000 10013 21028 30093 40253 52001 555 14100';
11//$raw = '201809051400 AAXX 10001 34363 62597 42005 10051 20001 39957 40108 52008 69932 82530 333 20048 31003 46997 55080 86714 91111 555 19020 50057 52001 53012 7035/ 88036=';
12//$raw = '201809051400 AAXX 10001 13624 41660 81402 10048 20041 30102 40142 52010 76162 8453/ 333 84633 84360=';
13//$raw = '201809051400 AAXX 10001 38799 13/// ///// 5//// 6//// 333 2//// 3//// 555 5//// 52/// 530// 7////=';
14
15// Raw SYNOP code string (KN-01 code)
16//$raw = '27277 10998 00801 10127 20081 30154 40318 52015 60002 333 20102 30012 91003 91103=';
17//$raw = '38915 32997 02003 10302 10120 39765 40060 53026 333 20202=';
18//$raw = '34363 62597 42005 10051 20001 39957 40108 52008 69932 82530 333 20048 31003 46997 55080 86714 91024 555 19020 50057 52001 53012 7035/ 88036=';
19//$raw = '13633 12964 33208 10326 29032 30079 40114 54001 60001 83030 333 83360=';
20//$raw = '60693 36/// /3503 10325 20154=';
21//$raw = '60613 NIL=';
22//$raw = '37235 82997 00000 19184 20175 39794 40093 57005=';
23//$raw = '33001 35/72 /2703 10152 20139 39977 40171 52005 333 20131=';
24
25//$raw = '26542 36/// ///// 10082 20051 39925 40141 57002 333 10116=';
26//$raw = '26542 46/// ///// 10080 20049 39928 40144 52003=';
27//$raw = '26542 46/// ///// 10077 20055 39924 40140 57004=';
28//$raw = '26542 /6/// ///// 10077 20053 39926 40142 52002 555 20074 69978 7997/=';
29//$raw = '26542 16/// ///// 10075 20051 39927 40143 52001 69972 333 20074=';
30$raw = '26820 32463 80302 11027 21046 39903 40092 52002 886// 333 21028 43997 555 90010=';
31//$raw = '33001 32361 80401 11014 21025 39882 40087 52004 886// 333 21014 42997 88709 555 90010=';
32
33//подключаем классы для расшифровки SYNOP
34require_once 'Synop.php';
35require_once 'SynopConv.php';
36
37//удалить перевод каретки и конец строки в многострочных SYNOP
38$arr_new_line = array("\n", "\r\n"); //специальные символы
39$raw = str_replace($arr_new_line, '', $raw);
40
41// Create class instance for parse SYNOP string with debug output enable
42$synopConv = new SynopConv($raw, TRUE);
43
44// Parse SYNOP
45$parameters = $synopConv->parse();
46
47/*
48print_r($parameters)."\n\n"; // get parsed parameters as array
49
50// Debug information
51$debug = $synopConv->debug();
52print_r($debug)."\n\n"; // get debug information as array
53*/
54
55// Get all converted parameters
56$synopConv->convParam();
57
58/*
59## Отображаем результаты декодирования SYNOP для наполнения БД
60*/
61echo "\n\n"."Представление результатов декодирования SYNOP"."\n";
62echo $synopConv->raw;
63
64//Пост обработка полученных результатов
65//DATAS` date NOT NULL DEFAULT '1000-01-01'
66//echo "\n\n"."Дата получения данных"."\n";
67//echo $synopConv->observed_date;
68
69//TIMES` time NOT NULL DEFAULT '00:00:00'
70//echo "\n"."Срок наблюдения, UTC"."\n";
71//echo $synopConv->observed_time;
72
73//DateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
74//echo "\n"."Дата и время"."\n";
75//echo $synopConv->observed_date_time;
76
77//STATION_TYPE_CODE` varchar(20) NOT NULL DEFAULT ''
78//echo "\n"."Тип станции"."\n";
79//echo $synopConv->station_report;
80
81//ID_STATION` varchar(5) NOT NULL DEFAULT ''
82echo "\n"."Индекс станции"."\n";
83echo $synopConv->station_id;
84
85//Weather group indicator
86echo "\n"."Указатель типа станции (обслуживаемая персоналом или автоматическая)"."\n";
87echo $synopConv->station_operation;
88
89//Cloud_height, cloud base of lowest observed cloud
90//echo "\n"."Высота нижней границы самых низких облаков"."\n";
91echo "\n"."Высота облаков, м"."\n";
92echo $synopConv->cloud_height;
93
94//Horizontal visibility in km
95echo "\n"."Видимость, км"."\n";
96echo $synopConv->visibility;
97
98//Total cloud cover in okta
99echo "\n"."Общее количество облаков"."\n";
100echo $synopConv->cloud_cover_tot;
101
102//wind direction in dekadegree (10 minute mean)
103//Dir` enum('Северный','Южный','Западный','Восточный','С-З','С-В','Ю-З','Ю-В','Переменный') DEFAULT NULL
104echo "\n"."Направление ветра"."\n";
105echo $synopConv->wind_direction;
106
107//Wind speed (10 minute mean)
108//Speed` varchar(5) DEFAULT NULL
109echo "\n"."Скорость ветра, ";
110echo $synopConv->wind_unit;
111echo "\n";
112echo $synopConv->wind_speed;
113
114//Temp` varchar(5) DEFAULT NULL
115echo "\n"."Температура воздуха, °C"."\n";
116echo $synopConv->temperature;
117
118//TempD` varchar(5) DEFAULT NULL
119echo "\n"."Температура точки росы, °C"."\n";
120echo $synopConv->dew_point;
121
122//Moisture` varchar(5) DEFAULT NULL
123echo "\n"."Влажность, %"."\n";
124echo $synopConv->humidity;
125
126//Pressure` smallint(5) unsigned DEFAULT NULL
127echo "\n"."Давление на уровне станции, гПа"."\n";
128echo $synopConv->barometer_st;
129
130//Pressure` smallint(5) unsigned DEFAULT NULL
131echo "\n"."Давление на уровне моря, гПа"."\n";
132echo $synopConv->barometer;
133
134//Trend` varchar(75) DEFAULT NULL
135echo "\n"."Изменение давления"."\n";
136echo $synopConv->barometer_trend;
137
138//Trend` varchar(75) DEFAULT NULL
139echo "\n"."Значение изменения давления, гПа"."\n";
140echo $synopConv->barometer_diff;
141
142//Precipitation amount
143echo "\n"."Количество осадков, мм"."\n";
144echo $synopConv->precip;
145
146//Reference time of precipitation
147echo "\n"."Срок накопления осадков"."\n";
148echo $synopConv->precip_ref_time;
149
150//weather` varchar(64) DEFAULT NULL
151echo "\n"."Текущее метеорологическое явление"."\n";
152echo $synopConv->current_weather;
153
154//weather` varchar(64) DEFAULT NULL
155echo "\n"."Прошедшее метеорологическое явление 1"."\n";
156echo $synopConv->w_course1;
157
158//weather` varchar(64) DEFAULT NULL
159echo "\n"."Прошедшее метеорологическое явление 2"."\n";
160echo $synopConv->w_course2;
161
162//weather` varchar(64) DEFAULT NULL
163echo "\n"."Количество облаков CL или CM, если облаков CL нет"."\n";
164echo $synopConv->cloud_cover_lowest;
165
166//weather` varchar(64) DEFAULT NULL
167echo "\n"."Облака вертикального развития и облака нижнего яруса (кроме слоисто-дождевых)"."\n";
168echo $synopConv->cloud_type_low;
169
170//weather` varchar(64) DEFAULT NULL
171echo "\n"."Облака среднего яруса и слоисто-дождевые облака"."\n";
172echo $synopConv->cloud_type_medium;
173
174//weather` varchar(64) DEFAULT NULL
175echo "\n"."Облака верхнего яруса"."\n";
176echo $synopConv->cloud_type_high;
177
178//weather` varchar(64) DEFAULT NULL
179echo "\n"."Максимальная температура воздуха за день, °C"."\n";
180echo $synopConv->t_max;
181
182//weather` varchar(64) DEFAULT NULL
183echo "\n"."Минимальная температура воздуха за ночь, °C"."\n";
184echo $synopConv->t_min;
185
186//weather` varchar(64) DEFAULT NULL
187echo "\n"."Состояние поверхности почвы при отсутствии снежного покрова"."\n";
188echo $synopConv->grd_conditions;
189
190//weather` varchar(64) DEFAULT NULL
191echo "\n"."Минимальная температура поверхности почвы за ночь, °C"."\n";
192echo $synopConv->t_ground;
193
194//weather` varchar(64) DEFAULT NULL
195echo "\n"."Состояние подстилающей поверхности при наличии снежного покрова"."\n";
196echo $synopConv->conditions_snow;
197
198//weather` varchar(64) DEFAULT NULL
199echo "\n"."Высота снежного покрова, см"."\n";
200echo $synopConv->snow_height;
201
202//weather` varchar(64) DEFAULT NULL
203echo "\n"."Продолжительность солнечного сияния за сутки, ч"."\n";
204echo $synopConv->sunshine_dur;
205
206//Precipitation amount in section 3
207echo "\n"."Количество осадков (секция 3), мм"."\n";
208echo $synopConv->precip_section3;
209
210//Reference time of precipitation
211echo "\n"."Срок накопления осадков (секция 3)"."\n";
212echo $synopConv->precip_ref_time_section3;
213
214//weather` varchar(64) DEFAULT NULL
215echo "\n"."Количество облачности, кол-во баллов"."\n";
216echo $synopConv->amount_cloudiness;
217
218//weather` varchar(64) DEFAULT NULL
219echo "\n"."Форма облаков"."\n";
220echo $synopConv->clouds_shape;
221
222//weather` varchar(64) DEFAULT NULL
223echo "\n"."Высота нижней границы облаков, м"."\n";
224echo $synopConv->cld_low_height;
225
226//weather` varchar(64) DEFAULT NULL
227echo "\n"."Дополнительная информация о погоде в срок наблюдения (требуется доработка)"."\n";
228echo $synopConv->weather_addon1;
229
230//weather` varchar(64) DEFAULT NULL
231echo "\n"."Дополнительная информация о погоде между сроками наблюдения (требуется доработка)"."\n";
232echo $synopConv->weather_addon2;
233
234//weather` varchar(64) DEFAULT NULL
235echo "\n"."Порыв ветра, м/с"."\n";
236echo $synopConv->gust;
237
238//weather` varchar(64) DEFAULT NULL
239echo "\n"."Состояние поверхности почвы при отсутствии снежного покрова (секция 5)"."\n";
240echo $synopConv->grd_conditions_section5;
241
242//weather` varchar(64) DEFAULT NULL
243echo "\n"."Температура подстилающей поверхности в срок наблюдения (секция 5), °C"."\n";
244echo $synopConv->t_ground_section5;
245
246//Temp` varchar(5) DEFAULT NULL
247echo "\n"."Средняя температура воздуха за прошедшие сутки, °C"."\n";
248echo $synopConv->t_avg_last;
249
250//Temp` varchar(5) DEFAULT NULL
251echo "\n"."Минимальная температура воздуха за ночь на высоте 2 см от поверхности почвы, °C"."\n";
252echo $synopConv->t_min_2cm_night;
253
254//Temp` varchar(5) DEFAULT NULL
255echo "\n"."Максимальная скорость ветра при порывах за прошедшие полусутки, м/с"."\n";
256echo $synopConv->wind_gust_max_last;
257
258//Temp` varchar(5) DEFAULT NULL
259echo "\n"."Количество осадков, выпавших за сутки, мм"."\n";
260echo $synopConv->precip_last;
261
262//Temp` varchar(5) DEFAULT NULL
263echo "\n"."Количество осадков за сутки, составляющее 30 мм и более, мм"."\n";
264echo $synopConv->precip_last_30mm;
265?>