All Projects → google → weather-tools

google / weather-tools

Licence: Apache-2.0 license
Apache Beam pipelines to make weather data accessible and useful.

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to weather-tools

paper-weather
☀️🌧 Material design weather element inspired by google weather
Stars: ✭ 14 (-80.56%)
Mutual labels:  weather
VWapi
⛈ ☀️ Visual Weather api. Returns beautiful pictures with the current weather.
Stars: ✭ 33 (-54.17%)
Mutual labels:  weather
coolme
A 🌜⚽⚽👢 Discord bot, invite ➡
Stars: ✭ 13 (-81.94%)
Mutual labels:  weather
d9l weather
A flutter weather app
Stars: ✭ 22 (-69.44%)
Mutual labels:  weather
weather
A privacy friendly weather app for Android with built in rain radar
Stars: ✭ 209 (+190.28%)
Mutual labels:  weather
MetarParser
A java program decoding metar and taf
Stars: ✭ 30 (-58.33%)
Mutual labels:  weather
grib-rs
GRIB format parser for Rust
Stars: ✭ 23 (-68.06%)
Mutual labels:  weather
infocenter
Raspberry Pi weather, calendar, and internet radio with graphical, touch-based interface.
Stars: ✭ 18 (-75%)
Mutual labels:  weather
bigquery-to-datastore
Export a whole BigQuery table to Google Datastore with Apache Beam/Google Dataflow
Stars: ✭ 56 (-22.22%)
Mutual labels:  apache-beam
weather-station
Everything you need to run and monitor your own open source weather station. ⛅
Stars: ✭ 38 (-47.22%)
Mutual labels:  weather
esp32-e-paper-weatherdisplay
An ESP32 and 4.2" ePaper Display reads Dark Sky weather API and displays the weather using ESP-IDF
Stars: ✭ 110 (+52.78%)
Mutual labels:  weather
gribr
GRIB interface for R using ECMWF ecCodes
Stars: ✭ 18 (-75%)
Mutual labels:  weather
weather-mobile
A simple GTK4 weather app to play with rust and PinePhone development. I just needed a weather app that scaled properly...
Stars: ✭ 15 (-79.17%)
Mutual labels:  weather
react-weather-app
Weather App built with React & TypeScript
Stars: ✭ 61 (-15.28%)
Mutual labels:  weather
improver
IMPROVER is a library of algorithms for meteorological post-processing.
Stars: ✭ 76 (+5.56%)
Mutual labels:  weather
Tablet-desk-clock
Software for displaying a clock on a tablet.
Stars: ✭ 24 (-66.67%)
Mutual labels:  weather
Colorfulclouds-weather
用于HASS的彩云天气组件
Stars: ✭ 57 (-20.83%)
Mutual labels:  weather
gweatherrouting
Sailing weather routing made easy
Stars: ✭ 15 (-79.17%)
Mutual labels:  weather
DarkSkyKit
DarkSky.net API client written in Swift.
Stars: ✭ 33 (-54.17%)
Mutual labels:  weather
wind-js-server
Service to expose Grib2 wind forecast data as JSON
Stars: ✭ 98 (+36.11%)
Mutual labels:  weather

weather-tools

Apache Beam pipelines to make weather data accessible and useful.

CI

Introduction

This project contributes a series of command-line tools to make common data engineering tasks easier for researchers in climate and weather. These solutions were born out of the need to improve repeated work performed by research teams across Alphabet.

The first tool created was the weather downloader (weather-dl). This makes it easier to ingest data from the European Center for Medium Range Forecasts (ECMWF). weather-dl enables users to describe very specifically what data they'd like to ingest from ECMWF's catalogs. It also offers them control over how to parallelize requests, empowering users to retrieve data efficiently. Downloads are driven from a configuration file, which can be reviewed (and version-controlled) independently of pipeline or analysis code.

We also provide two additional tools to aid climate and weather researchers: the weather mover (weather-mv) and the weather splitter (weather-sp). These CLIs are still in their alpha stages of development. Yet, they have been used for production workflows for several partner teams.

We created the weather mover (weather-mv) to load geospatial data from cloud buckets into Google BigQuery. This enables rapid exploratory analysis and visualization of weather data: From BigQuery, scientists can load arbitrary climate data fields into a Pandas or XArray dataframe via a simple SQL query.

The weather splitter (weather-sp) helps normalize how archival weather data is stored in cloud buckets: Whether you're trying to merge two datasets with overlapping variables — or, you simply need to open Grib data from XArray, it's really useful to split datasets into their component variables.

Installing

It's recommended that you create a local python environment (with Anaconda). Otherwise, these tools can be installed with pip:

pip install google-weather-tools

From here, you can use the weather-* tools from your python environment. Currently, the following tools are available:

Quickstart

Together, let's download Era 5 pressure level data and ingest it into Google BigQuery.

Pre-requisites:

  1. Acquire and install a license from ECMWF's Copernicus (CDS) API.
  2. Create an empty BigQuery Dataset. This can be done in the console or via the bq CLI. For example:
    bq mk --project_id=$PROJECT $DATASET_ID

Steps:

  1. Use weather-dl to acquire the Era 5 pressure level data.

    For simplicity, let's run everything on your local machine. For the downloader, this means we'll use the --local-run option:

    weather-dl configs/era5_example_config_local_run.cfg --local-run

    Recommendation: Pass the -d, --dry-run flag to any of these commands to preview effects.

    Generally, weather-dl is designed to ingest weather data to cloud storage. To learn how to configure downloads, please see this documentation. See detailed usage of weather-dl here.

  2. (optional) Split your downloaded dataset up by variable with weather-sp:

     weather-sp --input-pattern "./local_run/era5-*.nc" --output-dir "split_data" 

    Consult the weather-sp docs for more.

  3. Use weather-mv to upload this data to Google BigQuery.

    weather-mv --uris "./local_run/**.nc" \ # or  --uris "./split_data/**.nc" \
       --output_table "$PROJECT.$DATASET_ID.$TABLE_ID" \
       --temp_location "gs://$BUCKET/tmp" \  # Needed for batch writes to BigQuery
       --direct_num_workers 2

    See these docs for more about this tool.

That's it! Soon, you'll have your weather data ready for analysis in BigQuery.

Note: The exact interfaces for these CLIs are subject to change. For example, we plan to make the CLIs have more uniform arguments (#21).

Contributing

The weather tools are under active development, and contributions are welcome! Please check out our guide to get started.

License

This is not an official Google product.

Copyright 2021 Google LLC

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].