{"id":15565366,"url":"https://github.com/dkurt/weather_forecast_hackathon","last_synced_at":"2025-07-19T19:04:07.632Z","repository":{"id":235863140,"uuid":"788406765","full_name":"dkurt/weather_forecast_hackathon","owner":"dkurt","description":"A hackathon task which is simple by nature but tricky because of the Nature","archived":false,"fork":false,"pushed_at":"2024-04-27T06:52:17.000Z","size":98,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T06:48:26.930Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dkurt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-18T11:02:56.000Z","updated_at":"2024-04-27T06:52:20.000Z","dependencies_parsed_at":"2024-04-27T07:42:22.849Z","dependency_job_id":null,"html_url":"https://github.com/dkurt/weather_forecast_hackathon","commit_stats":null,"previous_names":["dkurt/weather_forecast_hackathon"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dkurt/weather_forecast_hackathon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkurt%2Fweather_forecast_hackathon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkurt%2Fweather_forecast_hackathon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkurt%2Fweather_forecast_hackathon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkurt%2Fweather_forecast_hackathon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dkurt","download_url":"https://codeload.github.com/dkurt/weather_forecast_hackathon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkurt%2Fweather_forecast_hackathon/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262731769,"owners_count":23355422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T16:55:06.628Z","updated_at":"2025-06-30T07:33:47.935Z","avatar_url":"https://github.com/dkurt.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Постановка задачи\n\nУчастникам предлагается алгоритмически предсказать погодные условия по некоторой истории измерений.\nКоманды выполняют следующие задания:\n\n* Имея датасет с погодными показателями за 43 часа наблюдений, сделать предсказание этих же параметров на следующие 5 часов.\n* Загрузить результаты в [Telegram бот](https://t.me/yadro_weather_bot), получить оценку качества. Команды соревнуются в точности предсказаний (можно делать неограниченное число попыток).\n* Презентация работы команды (публикация кода, слайды).\n\n## Данные\n\nВ качестве данных представлены замеры различных показателей в точках (latitude, longitude) на сетке 30x30 с шагом около 5км (по y - с севера на юг, по x - с запада на восток).\n\nВсе массивы кроме высот в качестве первой размерности имеют шкалу времени с шагом в 1 час.\n\nДатасет состоих из нескольких файлов (все имеют тип float32):\n\n| Название файла | Размерность | Значения |\n|---|---|---|\n|[elevation.npy](./data/elevation.npy)  |\t30x30 \t| Высоты над уровнем моря в метрах|\n|[temperature.npy](./data/temperature.npy) |  \t43x30x30| \tТемпература воздуха (С)|\n|[pressure.npy](./data/pressure.npy) |  \t43x30x30 \t|Атмосферное давление (hPa)|\n|[humidity.npy](./data/humidity.npy) | \t43x30x30 \t|Влажность в %|\n|[wind_speed.npy](./data/wind_speed.npy) |  \t43x30x30 \t|Скорость ветра (км/ч)|\n|[wind_dir.npy](./data/wind_dir.npy) | \t43x30x30 \t| Направление ветра (в градусах)|\n|[cloud_cover.npy](./data/cloud_cover.npy) |  \t43x30x30 |\tОблачность (в процентах)|\n\n## Формат решения\n\nВычисляемая метрика: MAPE (Mean Average Percentage Error). Чем меньше значение - тем лучше.\n\nРешения принимаются в виде .csv файла со следующими столбцами:\n```\nID,temperature,pressure,humidity,wind_speed,wind_dir,cloud_cover\n```\n\nВ файле должно быть 4500 строк, которые соотвтетствуют 5 часам и 900 точкам для каждой из геопозиций в следующем порядке:\n```\nhour1_y1_x1\nhour1_y1_x2\n...\nhour1_y1_x30\nhour1_y2_x1\n...\nhour1_y30_x30\nhour2_y1_x1\n...\nhour5_y30_x30\n```\n\nПример сохранения файла из NumPy массивов:\n```python\nimport pandas as pd\nimport numpy as np\n\nsolution = np.stack([\n    temperature.reshape(-1),  # Из 5x30x30 в 4500\n    pressure.reshape(-1),\n    humidity.reshape(-1),\n    wind_speed.reshape(-1),\n    wind_dir.reshape(-1),\n    cloud_cover.reshape(-1),\n], axis=1)\n\n\nsolution = pd.DataFrame(solution, columns=[\"temperature\", \"pressure\", \"humidity\", \"wind_speed\", \"wind_dir\", \"cloud_cover\"])\nsolution.to_csv(\"solution.csv\", index_label=\"ID\")\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkurt%2Fweather_forecast_hackathon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdkurt%2Fweather_forecast_hackathon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkurt%2Fweather_forecast_hackathon/lists"}