|  | 
| 
Parsing metar data in windows 
    
           
    
    #109477
      Ссылка: Ссылка на сообщение: Ссылка с названием темы: Ссылка на профиль пользователя: Ссылка на вложение: Ссылка на вложение 2: | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| #18+ Беру в Норвежском Метеорологическом институте каждые пол-часа такой вот файлик.
 Спойлер URRP 061030Z 02007MPS 9999 FEW///CB 31/14 Q1013 R05/CLRD70 TEMPO VRB11G18MPS 3000 -TSRA SCT005 BKN020CB RMK QFE755/1007=
URRP 061100Z 02006MPS 9999 FEW///CB 31/13 Q1013 R05/CLRD70 TEMPO 3000 -SHRA SCT005 BKN020CB RMK QFE755/1006=
URRP 061130Z 01004MPS 340V060 9999 FEW///CB 33/14 Q1013 R05/CLRD70 TEMPO 3000 -SHRA SCT005 BKN020CB RMK QFE754/1006=
URRP 061200Z 07005MPS 040V100 9999 FEW///CB 34/11 Q1012 R05/CLRD70 TEMPO 3000 -SHRA SCT005 BKN020CB RMK QFE754/1006=
URRP 061230Z 10006MPS 050V130 9999 FEW///CB 35/11 Q1012 R05/CLRD70 NOSIG RMK QFE754/1006=
URRP 061300Z 08003MPS 050V110 9999 FEW///CB 34/10 Q1012 R05/CLRD70 NOSIG RMK QFE754/1005=
URRP 061330Z 10006MPS 9999 FEW///CB 35/10 Q1012 R05/CLRD70 NOSIG RMK QFE754/1005=
URRP 061400Z 11006MPS 9999 FEW///CB 31/12 Q1012 R05/CLRD70 TEMPO 10010G17MPS RMK QFE754/1006=
URRP 061430Z 11005MPS 9999 FEW///CB 32/12 Q1012 R05/CLRD70 TEMPO 10010G17MPS RMK QFE754/1005=
URRP 061500Z 11003MPS 9999 FEW///CB 32/12 Q1012 R05/CLRD70 TEMPO 10010G17MPS RMK QFE754/1005=
URRP 061530Z 09004MPS 9999 FEW///CB 32/11 Q1012 R05/CLRD70 NOSIG RMK QFE754/1005=
URRP 061600Z 06003MPS 9999 FEW///CB 30/13 Q1012 R05/CLRD70 NOSIG RMK QFE754/1005=
URRP 061630Z 03003MPS 9999 FEW///CB 28/12 Q1012 R05/CLRD70 NOSIG RMK QFE754/1006=
URRP 061700Z 03004MPS CAVOK 28/12 Q1012 R05/CLRD70 NOSIG RMK QFE754/1006=
URRP 061730Z 02004MPS CAVOK 27/12 Q1012 R05/CLRD70 NOSIG RMK QFE754/1006=
URRP 061800Z 03005MPS CAVOK 26/11 Q1012 R05/CLRD70 NOSIG RMK QFE754/1006=
URRP 061830Z 03005MPS CAVOK 27/10 Q1012 R05/CLRD70 NOSIG RMK QFE754/1006=
URRP 061900Z 03005MPS CAVOK 26/10 Q1012 R05/CLRD70 NOSIG RMK QFE754/1005=
URRP 061930Z 03006MPS CAVOK 26/09 Q1012 R05/CLRD70 NOSIG RMK QFE754/1005=
URRP 062000Z 03005MPS CAVOK 25/09 Q1012 R05/CLRD70 NOSIG RMK QFE754/1005=
URRP 062030Z 16002MPS CAVOK 22/12 Q1012 R05/CLRD70 NOSIG RMK QFE754/1006=
URRP 062100Z 33002MPS 280V040 CAVOK 20/12 Q1012 R05/CLRD70 NOSIG RMK QFE754/1005=
URRP 062130Z 05005MPS CAVOK 24/09 Q1012 R05/CLRD70 NOSIG RMK QFE754/1005=
URRP 062200Z 05002MPS CAVOK 22/11 Q1012 R05/CLRD70 NOSIG RMK QFE754/1005=
URRP 062230Z 28001MPS CAVOK 20/11 Q1012 R05/CLRD70 NOSIG RMK QFE754/1005=
URRP 062300Z VRB01MPS CAVOK 18/11 Q1012 R05/CLRD70 NOSIG RMK QFE754/1005=
URRP 062330Z 00000MPS CAVOK 19/11 Q1012 R05/CLRD70 NOSIG RMK QFE754/1006=
URRP 070000Z 32002MPS CAVOK 18/11 Q1012 R05/CLRD70 NOSIG RMK QFE754/1006=
URRP 070030Z VRB01MPS CAVOK 19/11 Q1012 R05/CLRD70 TEMPO 14003G10MPS RMK QFE754/1006=
URRP 070100Z 32002MPS CAVOK 18/11 Q1012 R05/CLRD70 TEMPO 14003G10MPS RMK QFE754/1006=
URRP 070130Z 07002MPS 030V110 CAVOK 19/11 Q1012 R05/CLRD70 TEMPO 14003G10MPS RMK QFE754/1006=
URRP 070200Z 10002MPS 060V140 CAVOK 19/11 Q1013 R05/CLRD70 TEMPO 14003G10MPS RMK QFE755/1006=
URRP 070230Z 06002MPS CAVOK 17/11 Q1013 R05/CLRD70 TEMPO 14003G10MPS RMK QFE755/1006=
URRP 070300Z VRB01MPS CAVOK 19/12 Q1013 R05/CLRD70 TEMPO 14003G10MPS RMK QFE755/1006=
URRP 070330Z 34002MPS 300V360 CAVOK 20/11 Q1013 R05/CLRD70 TEMPO 14003G10MPS RMK QFE755/1006=
URRP 070400Z 11002MPS 070V130 CAVOK 21/13 Q1013 R05/CLRD70 TEMPO 14003G10MPS RMK QFE755/1007=
URRP 070430Z 07002MPS CAVOK 24/12 Q1013 R05/CLRD70 NOSIG RMK QFE755/1007=
URRP 070500Z VRB01MPS CAVOK 26/12 Q1013 R05/CLRD70 NOSIG RMK QFE755/1007=
URRP 070530Z 14003MPS 100V170 CAVOK 25/14 Q1013 R05/CLRD70 NOSIG RMK QFE755/1007=
URRP 070600Z 11002MPS 070V170 CAVOK 27/15 Q1013 R05/CLRD70 NOSIG RMK QFE755/1007=
URRP 070630Z 09002MPS 010V170 CAVOK 28/14 Q1013 R05/CLRD70 NOSIG RMK QFE755/1007=
URRP 070700Z 05002MPS 300V110 CAVOK 30/13 Q1013 R05/CLRD70 NOSIG RMK QFE755/1007=
URRP 070730Z 08004MPS 010V110 CAVOK 31/13 Q1013 R05/CLRD70 NOSIG RMK QFE755/1007=
URRP 070800Z 05004MPS 020V080 CAVOK 32/12 Q1013 R05/CLRD70 NOSIG RMK QFE755/1007=
URRP 070830Z 08003MPS 9999 FEW/// 33/13 Q1013 R05/CLRD70 NOSIG RMK QFE755/1006=
URRP 070900Z 08006MPS 030V110 9999 FEW/// 34/11 Q1013 R05/CLRD70 NOSIG RMK QFE754/1006=
URRP 070930Z 08008G13MPS 9999 FEW/// 34/07 Q1013 R05/CLRD70 TEMPO 09009G18MPS RMK QFE755/1006= Инструкция по применению: Помещаем содержимое архива в каталог, куда может писать пользователь, запускающий pame.exe, так, чтобы UAC ему не мешал. Сохраняем в этот каталог файлик с данными под именем "data.metar". Запускаем pame.exe, если все хорошо, получаем выходной файл с датой замера и температурой. Поскольку программе надо где-то сохранять время последнего замера, настройки тоже хранятся в pame.ini. [main]
LastMeasureTime=2022-08-07 09:30:00
Template=insert into table (dt, val) values ('%dt%', %te%)
OutFileName=out.sql
ConfShowInfo=0
ConfShowData=1LastMeasureTime - время последнего полученного и удачно обработанного замера. Если мы запустим программу два раза на одном и том же файлике, первый раз она его обработает, второй раз скажет, что данных нет. Время гринвичское, так же как и в самом файлике. Template - Шаблон, в который будут подставляться дата и температура из metar-строки. OutFileName - Имя файла, в который будут сохраняться данные (с перезаписью). ConfShowInfo - Если включить, будет показывать всякую информацию, полезную для отладки. ConfShowData - Если включить, покажет полученные данные через запятую. Содержимое архива: GetMetar.cmd - скрипт получения файла с met.no. Программу Curl нужно найти и скачать отдельно. И поместить в этот же каталог. pame.exe - исполняемый файл. pame.ini - конф. файл. data.metar - файл для тренировок. Архив с программой. Актуальные файлы тут 115411 У меня уже две недели это все работает без нареканий. Если надо что-то допилить, не стесняйтесь регистрироваться и задавать вопросы. А можете сами взять исходники (там всего 150 строк) и подправить все, как вам надо. Без обязательств с моей стороны, без претензий с моей стороны. ... | |||||||||||||||||||
| : 
Изменено: 13.08.2022, 11:31 - Просто Трёп 
 Нравится:
     Не нравится:
     | |||||||||||||||||||
| 07.08.2022, 14:22 |  | ||||||||||||||||||
| 
Parsing metar data in windows | |||
|---|---|---|---|
| #18+ Q1013 - давление ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 08.08.2022, 11:13 |  | ||
| 
Parsing metar data in windows | |||
|---|---|---|---|
| #18+ Поскольку в строках файла нет полной даты, то пршлось ориентироваться на время последнего изменения самого файла и запоминать время последней удачной обработки файла. В XE3 может быть не очень удобно - у Indy вечный гемор с https, а в свежих версиях Delphi можно запрос к URL тоже в самой программе выполнять, например через TNetHTTPClient, и данные парсить прямо в памяти, не сохраняя в файл. Спасибо за инфу, удобный сервис, чтобы свободные данные о погоде в заданном месте получать. Жарковато сегодня в Ростове. :) ... | |||
| : 
Изменено: 08.08.2022, 12:15 - s62 
 Нравится:
     Не нравится:
     | |||
| 08.08.2022, 12:14 |  | ||
| 
Parsing metar data in windows | |||
|---|---|---|---|
| #18+ Там же в первом токене строки - день текущего месяца и время по Гринвичу. Зная текущий месяц, однозначно переводим это в дату+время. Нет? В XE3 может быть не очень удобно - у Indy вечный гемор с https, а в свежих версиях Delphi можно запрос к URL тоже в самой программе выполнять, например через TNetHTTPClient, и данные парсить прямо в памяти, не сохраняя в файл. Спасибо за инфу, удобный сервис, чтобы свободные данные о погоде в заданном месте получать. Жарковато сегодня в Ростове. :) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 08.08.2022, 13:01 |  | ||
| 
Parsing metar data in windows 
    
           
    
    #110200
      Ссылка: Ссылка на сообщение: Ссылка с названием темы: Ссылка на профиль пользователя: Ссылка на вложение: | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| #18+ На базе этого проекта вот программка с графическим интерфейсом, которая показывает температуру и давление за последние сутки или сколько-то, в выбранном месте. Места с соотв. кодами подгружаются из текстового файла Airportcodes.txt, который должен быть в папке программы (есть в архиве). Или коды можно вручную вводить. По-умолчанию задал Домодедово. В архиве - скомпилированная в Delphi 10.4 CE программа и исходники. Тоже можно пользоваться и изменять без обязательств с моей стороны и без претензий с моей стороны.https://en.wikipedia.org/wiki/List_of_airports_by_ICAO_code:_U p.s. "Время местное" - время того места, где ПК, на котором програма, берется из Windows. p.p.s В отпуске, вот решил побаловаться. ... | ||||||||||||||||
| : | ||||||||||||||||
| 08.08.2022, 15:42 |  | |||||||||||||||
| 
Parsing metar data in windows 
    
           
    
    #110203
      Ссылка: Ссылка на сообщение: Ссылка с названием темы: Ссылка на профиль пользователя: Ссылка на вложение: | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| #18+ s62 [игнорируется]  ээ, ошибочка небольшая там была, в проверке, что давление определилось. ) Вот исправленный архив. ... | ||||||||||||||||
| : 
 Нравится:
     Не нравится:
     | ||||||||||||||||
| 08.08.2022, 15:56 |  | |||||||||||||||
| 
Parsing metar data in windows | |||
|---|---|---|---|
| #18+ Кстати, я пару раз обращал внимание на то, что в Штатах в обычных гражданских прогнозах помимо температуры иногда указывают и точку росы. Значит, они как-то ее используют в обычных хозяйственных нуждах. А мы не используем и даже в большинстве случаев не знаем, что это такое. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 08.08.2022, 16:24 |  | ||
| 
Parsing metar data in windows | |||
|---|---|---|---|
| #18+ Просто Трёп [игнорируется]  Я почитал сегодня про этот формат файлов, где-то было написано, что для летчиков точка росы имеет значение. p.s. А, в Википедии написано. Кстати у меня программка неправильно будет даты показывать 1 числа месяца. Во вчерашних данных будет показывать не предыдущий месяц, а текущий. ... | |||
| : 
Изменено: 08.08.2022, 16:41 - s62 
 Нравится:
     Не нравится:
     | |||
| 08.08.2022, 16:33 |  | ||
| 
Parsing metar data in windows | |||
|---|---|---|---|
| #18+ Эх, все переписывать придется, когда минуса начнутся. Я-то думал, что они просто "-" поставят...
 Цитата  [игнорируется] Если измеренное число отрицательное, перед первой цифрой полученного кода добавляется буква M (английская). Итоговая кодовая группа составляется из полученных кодов температуры воздуха и температуры точки росы, разделяемых знаком «/». Например, при температуре воздуха −0.5 и температуре точки росы −9.6 кодовая группа будет иметь вид M00/M10. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 08.08.2022, 16:50 |  | ||
| 
Parsing metar data in windows | |||
|---|---|---|---|
| #18+ Кстати, я пару раз обращал внимание на то, что в Штатах в обычных гражданских прогнозах помимо температуры иногда указывают и точку росы. Значит, они как-то ее используют в обычных хозяйственных нуждах. А мы не используем и даже в большинстве случаев не знаем, что это такое ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 08.08.2022, 19:01 |  | ||
| 
Parsing metar data in windows | |||
|---|---|---|---|
| #18+ Кстати, я пару раз обращал внимание на то, что в Штатах в обычных гражданских прогнозах помимо температуры иногда указывают и точку росы. Значит, они как-то ее используют в обычных хозяйственных нуждах. А мы не используем и даже в большинстве случаев не знаем, что это такое. ... | |||
| Игнорируются: erbol, W3, WWW, Огрищще, а также многочисленные кролики и паши : 
 Нравится:
     Не нравится:
     | |||
| 13.08.2022, 10:59 |  | ||
| 
Parsing metar data in windows 
    
           
    
    #115411
      Ссылка: Ссылка на сообщение: Ссылка с названием темы: Ссылка на профиль пользователя: Ссылка на вложение: | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| #18+ Эх, все переписывать придется, когда минуса начнутся. Я-то думал, что они просто "-" поставят...
 Цитата  [игнорируется] Если измеренное число отрицательное, перед первой цифрой полученного кода добавляется буква M (английская). Итоговая кодовая группа составляется из полученных кодов температуры воздуха и температуры точки росы, разделяемых знаком «/». Например, при температуре воздуха −0.5 и температуре точки росы −9.6 кодовая группа будет иметь вид M00/M10. Включил в скрипт точку росы. А то мало ли, кому-то нужно будет. Облегчил экзешник. Все в одном архиве. Исполняемый файл в папке Wind32\Release ... | ||||||||||||||||
| : 
 Нравится:
     Не нравится:
     | ||||||||||||||||
| 13.08.2022, 11:29 |  | |||||||||||||||
| 
Parsing metar data in windows | |||
|---|---|---|---|
| #18+ О, вылезла ошибка при положительной температуре и отрицательной точке росы. В ближайшее время подправлю. Вот как важна детальная отладка. Отрицательную температуру специально проверил. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.08.2022, 20:26 |  | ||
| 
Parsing metar data in windows | |||
|---|---|---|---|
| #18+ Что у нас в степях такое происходит, что точка росы в такую жару стала ниже нуля? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 26.08.2022, 20:27 |  | ||
|  | 

| start [/forum/topic.php?fid=16&msg=110224&tid=3594]: | 0ms | 
| get settings: | 11ms | 
| get forum list: | 13ms | 
| check forum access: | 4ms | 
| check topic access: | 4ms | 
| track hit: | 29ms | 
| get topic data: | 30ms | 
| get forum data: | 4ms | 
| get page messages: | 142ms | 
| get tp. blocked users: | 2ms | 
| others: | 24ms | 
| total: | 263ms | 

| 0 / 0 | 
