Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

op_iaga_parser-0.2.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

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

Hashes for op_iaga_parser-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eb15ae5fac4fb40b2f006316f4068d141de0935690b51e6528dc168873393139
MD5 fc79d1db6c90138fbeecf0eca5af1f64
BLAKE2b-256 9ea13925b9a2f7888bf32215ac41a0a1851971537100333689121cdd9b17b84e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page