ISD parse python script NOAA weather database to MongoDB
Скрипт для парсинга данных со станций NOAA ftp://ftp.ncdc.noaa.gov/pub/data/noaa/
Сохранение производится в коллекцию MongoDB - но можно настроить свой драйвер для сохранения в любую базу и влюбом формате.
Как распарсить файлы NOAA к себе в базу:
- Скачиваем с ftp://ftp.ncdc.noaa.gov/pub/data/noaa/ архив с годом, который нам необходим
- Разорхивируем его в папку
- В файле isd_parser.py указываем путь к *.csv файлам базы в переменной path:
path = "/home/ivan/WEATHERSRC/2018"
- Настраиваем параметры подключения к MongoDB:
mongo_db = 'srcdata'
mongo_collection = 'meteoisd'
mongo_host = 'localhost'
mongo_port = 27017
- скрипт парсит в потоках, поэтому надо указать количество потоков (на пару больше, чем ядер у процессора):
pool = Pool(processes=12)
- запускаем скрипт командой:
python isd_parser.py
- дожидаемся выполнения скрипта - в базе у нас лежит распарсеный год - пользуемся!
Здесь описан класс работы с метеоинформацией по конкретной станции за конкретный срок. Можно добавлять, удалять методы, чтобы, например, подготовить метеоинформацию к сохранению в другую базу, в другом виде
Сам класс преобразования csv строки в понятные человеку штуки раскодируются не все поля, только нужные мне - можно добавить по желанию остальные (принцип заложен) Описательный документ (как парсить поля) - https://www.ncei.noaa.gov/data/global-hourly/doc/isd-format-document.pdf