Library for downloading and parsing Op and IAGA-2002 scientific data formats
Project description
op_parser
op_parser — библиотека для скачивания, парсинга и преобразования научных данных из форматов Op и IAGA-2002. Предназначена для работы с климатическими и геомагнитными данными, включая NOAA и другие источники.
Возможности
- Надёжная загрузка файлов по FTP с поддержкой повторных попыток и автоматической распаковкой gzip
- Работа с локальными директориями для удобства использования уже скачанных данных
- Парсинг формата Op с возможностью применять пользовательские функции конвертации единиц измерения
- Универсальный парсер формата IAGA-2002 — стандарт для геомагнитных данных
- Экспорт объединённых и преобразованных данных в CSV для последующего анализа и визуализации
Установка
Установите библиотеку через pip:
pip install op_parser
Пример использования
Скачивание и распаковка файлов с FTP
from src.op_parser import Downloader
downloader = Downloader( ftp_host='ftp.ncdc.noaa.gov', ftp_base_dir='/pub/data/gsod', data_dir='test_data' ) files = downloader.get_files(download=True) print(f"Скачано и распаковано файлов: {len(files)}") for f in files: print(f" - {f}")
Работа с локальными файлами
downloader = Downloader(data_dir='data') files = downloader.get_files(download=False) print(f"Найдено локальных .op файлов: {len(files)}") for f in files: print(f" - {f}")
Парсинг Op файлов и сохранение в CSV с конвертацией
from src.op_parser import OpFileParser, safe_float, f_to_c, inch_to_mm, mph_to_mps, mile_to_km
parser = OpFileParser( field_converters={ 'TemperatureF': [safe_float, f_to_c], 'WindSpeedMph': [safe_float, mph_to_mps], 'PrecipInches': [safe_float, inch_to_mm], 'DistanceMiles': [safe_float, mile_to_km] }, apply_conversion=True ) parser.parse_folder_to_csv('data', 'test_output.csv') print("Данные сохранены в test_output.csv")
Парсинг файлов формата IAGA-2002
from src.op_parser import IAGA2002Downloader
downloader = IAGA2002Downloader(data_dir='data')
Скачивание и парсинг с сохранением в единый CSV iaga_url = 'https://www2.irf.se/maggraphs/rt_iaga_last_hour_1sec_secondary.txt' local_file = downloader.download_file(iaga_url) if local_file: downloader.parse_files_to_csv([local_file]) else: print("Не удалось скачать файл")
Или парсинг локальных файлов
files_to_parse = downloader.list_local_files() if files_to_parse: downloader.parse_files_to_csv(files_to_parse) else: print("Локальные файлы не найдены")
Лицензия
Проект распространяется под лицензией MIT.
Контакты и поддержка
Если у вас есть вопросы или предложения, создайте issue на GitHub или свяжитесь с автором по email: xhispeco2018@gmail.com
op_parser — надёжный инструмент для работы с научными данными, позволяющий эффективно обрабатывать большие объёмы информации.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file op_iaga_parser-0.2.0-py3-none-any.whl.
File metadata
- Download URL: op_iaga_parser-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb15ae5fac4fb40b2f006316f4068d141de0935690b51e6528dc168873393139
|
|
| MD5 |
fc79d1db6c90138fbeecf0eca5af1f64
|
|
| BLAKE2b-256 |
9ea13925b9a2f7888bf32215ac41a0a1851971537100333689121cdd9b17b84e
|