Tools for downloading and processing numerical weather predictions

Related tags

Miscellaneous nwp
Overview

NWP

Tools for downloading and processing numerical weather predictions

At the moment, this code is focused on downloading historical UKV NWPs produced by the UK Met Office, and distributed by CEDA.

Detailed docs of the Met Office data is available here.

Installation

conda

From within the cloned nwp directory:

conda env create -f environment.yml
conda activate nwp
pip install -e .

Downloading UKV numerical weather predictions from CEDA

Request access to the UK Met Office data on CEDA.

Once you have a username and password, download using scripts/download_UK_Met_Office_NWPs_from_CEDA.sh. Please see the comments at the top of the script for instructions.

Convert grib files to Zarr

Then convert the grib files to Zarr using scripts/convert_NWP_grib_to_zarr.py. Run that script with --help to see how to operate it. See the comments at the top of the script to learn how the script works.

Comments
  • Force the order of the NWP channels

    Force the order of the NWP channels

    Pull Request

    Description

    Fixes #6

    How Has This Been Tested?

    • [ ] No
    • [x] Yes, the conversion script runs

    Checklist:

    • [x] My code follows OCF's coding style guidelines
    • [x] I have performed a self-review of my own code
    • [ ] I have made corresponding changes to the documentation
    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [x] I have checked my code and corrected any misspellings
    bug 
    opened by JackKelly 0
  • Rename x --> x_osgb

    Rename x --> x_osgb

    Detailed Description

    Rename x to x_osgb and y to y_osgb

    Context

    Good to use the same variable names across different repos linked with https://github.com/openclimatefix/nowcasting_dataset/pull/558

    Possible Implementation

    just rename zarr file, rather than remake all data

    enhancement 
    opened by peterdudfield 0
  • Validate Zarr data

    Validate Zarr data

    Detailed Description

    Check that values are in the expected range, and that datetimes are correct, etc.

    Possible Implementation

    Validation could happen in two places:

    1. As part of the native to Zarr conversion.
    2. As a separate zarr_validation.py script.

    (related to https://github.com/openclimatefix/Satip/issues/33)

    enhancement 
    opened by JackKelly 0
  • `download_UK_Met_Office_NWPs_from_CEDA.sh` is not rejecting files it should be rejecting

    `download_UK_Met_Office_NWPs_from_CEDA.sh` is not rejecting files it should be rejecting

    scripts/download_UK_Met_Office_NWPs_from_CEDA.sh should reject:

    • NWP init times at 03, 09, 15, and 21 hours past midnight
    • T120 files
    • Wholesale5 files

    It appears it is only rejecting Wholesale5 files. It is still downloading NWP init times at 03, 09, 15, and 21 hours; and T120 files. This isn't terrible. But it is using a lot more disk space than perhaps we need.

    For example, here's a selection of what the script just downloaded:

    jack@leonardo$ ls /mnt/storage_b/data/ocf/solar_pv_nowcasting/nowcasting_dataset_pipeline/NWP/UK_Met_Office/UKV/native/2021/11/01
    202111010000_u1096_ng_umqv_Wholesale1.grib      202111011200_u1096_ng_umqv_Wholesale1.grib
    202111010000_u1096_ng_umqv_Wholesale1T54.grib   202111011200_u1096_ng_umqv_Wholesale1T54.grib
    202111010000_u1096_ng_umqv_Wholesale2.grib      202111011200_u1096_ng_umqv_Wholesale2.grib
    202111010000_u1096_ng_umqv_Wholesale2T54.grib   202111011200_u1096_ng_umqv_Wholesale2T54.grib
    202111010000_u1096_ng_umqv_Wholesale3.grib      202111011200_u1096_ng_umqv_Wholesale3.grib
    202111010000_u1096_ng_umqv_Wholesale3T54.grib   202111011200_u1096_ng_umqv_Wholesale3T54.grib
    202111010000_u1096_ng_umqv_Wholesale4.grib      202111011200_u1096_ng_umqv_Wholesale4.grib
    202111010300_u1096_ng_umqv_Wholesale1.grib      202111011500_u1096_ng_umqv_Wholesale1.grib
    202111010300_u1096_ng_umqv_Wholesale1T120.grib  202111011500_u1096_ng_umqv_Wholesale1T120.grib
    202111010300_u1096_ng_umqv_Wholesale1T54.grib   202111011500_u1096_ng_umqv_Wholesale1T54.grib
    202111010300_u1096_ng_umqv_Wholesale2.grib      202111011500_u1096_ng_umqv_Wholesale2.grib
    202111010300_u1096_ng_umqv_Wholesale2T120.grib  202111011500_u1096_ng_umqv_Wholesale2T120.grib
    202111010300_u1096_ng_umqv_Wholesale2T54.grib   202111011500_u1096_ng_umqv_Wholesale2T54.grib
    202111010300_u1096_ng_umqv_Wholesale3.grib      202111011500_u1096_ng_umqv_Wholesale3.grib
    202111010300_u1096_ng_umqv_Wholesale3T120.grib  202111011500_u1096_ng_umqv_Wholesale3T120.grib
    202111010300_u1096_ng_umqv_Wholesale3T54.grib   202111011500_u1096_ng_umqv_Wholesale3T54.grib
    202111010300_u1096_ng_umqv_Wholesale4.grib      202111011500_u1096_ng_umqv_Wholesale4.grib
    202111010600_u1096_ng_umqv_Wholesale1.grib      202111011800_u1096_ng_umqv_Wholesale1.grib
    202111010600_u1096_ng_umqv_Wholesale1T54.grib   202111011800_u1096_ng_umqv_Wholesale1T54.grib
    202111010600_u1096_ng_umqv_Wholesale2.grib      202111011800_u1096_ng_umqv_Wholesale2.grib
    202111010600_u1096_ng_umqv_Wholesale2T54.grib   202111011800_u1096_ng_umqv_Wholesale2T54.grib
    202111010600_u1096_ng_umqv_Wholesale3.grib      202111011800_u1096_ng_umqv_Wholesale3.grib
    202111010600_u1096_ng_umqv_Wholesale3T54.grib   202111011800_u1096_ng_umqv_Wholesale3T54.grib
    202111010600_u1096_ng_umqv_Wholesale4.grib      202111011800_u1096_ng_umqv_Wholesale4.grib
    202111010900_u1096_ng_umqv_Wholesale1.grib      202111012100_u1096_ng_umqv_Wholesale1.grib
    202111010900_u1096_ng_umqv_Wholesale1T54.grib   202111012100_u1096_ng_umqv_Wholesale1T54.grib
    202111010900_u1096_ng_umqv_Wholesale2.grib      202111012100_u1096_ng_umqv_Wholesale2.grib
    202111010900_u1096_ng_umqv_Wholesale2T54.grib   202111012100_u1096_ng_umqv_Wholesale2T54.grib
    202111010900_u1096_ng_umqv_Wholesale3.grib      202111012100_u1096_ng_umqv_Wholesale3.grib
    202111010900_u1096_ng_umqv_Wholesale3T54.grib   202111012100_u1096_ng_umqv_Wholesale3T54.grib
    202111010900_u1096_ng_umqv_Wholesale4.grib      202111012100_u1096_ng_umqv_Wholesale4.grib
    
    opened by JackKelly 0
  • Include NWPs at multiple altitudes

    Include NWPs at multiple altitudes

    Detailed Description

    The NWP conversion script I'm working on in openclimatefix/nowcasting_dataset#344 will, for now, only convert the same NWPs we've used in the past (NWPs at the Earth's surface)

    At some point, we should also experiment with NWPs at altitude (e.g. temperature and humidity at cloud altitude).

    Context

    NWPs at cloud altitude may help our models figure out when clouds are likely to appear / disappear.

    But it's a lot more data.

    Possible Implementation

    The UKV NWPs have something like 70 vertical levels. We probably don't need all those. Maybe we could compute the mean for three vertical levels: 0 to 3.3 km; 3.3 km to 6.6 km; 6.6 km to 10 km.

    Priority

    I'll put this into WP1 for now as a "nice to have"... but this may have to wait until WP2.

    opened by JackKelly 0
Owner
Open Climate Fix
Using open science to mitigate climate change
Open Climate Fix
Combines power of torch, numerical methods to conquer and solve ALL {O,P}DEs

torch_DE_solver Combines power of torch, numerical methods and math overall to conquer and solve ALL {O,P}DEs There are three examples to provide a li

Natural Systems Simulation Lab 28 Dec 12, 2022
Solve various integral equations using numerical methods in Python

Solve Volterra and Fredholm integral equations This Python package estimates Volterra and Fredholm integral equations using known techniques. Installa

Matthew Wildrick Thomas 18 Nov 28, 2022
Our Ping Pong Project of numerical analysis, 2nd year IC B2 INSA Toulouse

Ping Pong Project The objective of this project was to determine the moment of impact of the ball with the ground. To do this, we used different model

null 0 Jan 2, 2022
Generate a wordlist to fuzz amounts or any other numerical values.

Generate a wordlist to fuzz amounts or any other numerical values. Based on Common Security Issues in Financially-Oriented Web Applications.

Ivan Šincek 3 Oct 14, 2022
Python for downloading model data (HRRR, RAP, GFS, NBM, etc.) from NOMADS, NOAA's Big Data Program partners (Amazon, Google, Microsoft), and the University of Utah Pando Archive System.

Python for downloading model data (HRRR, RAP, GFS, NBM, etc.) from NOMADS, NOAA's Big Data Program partners (Amazon, Google, Microsoft), and the University of Utah Pando Archive System.

Brian Blaylock 194 Jan 2, 2023
A python script that changes your desktop background based on current weather and time of the day.

Desktop background wallpaper, based on current weather and time A python script that changes your computer's desktop background based on current weath

Maj Gaberšček 1 Nov 16, 2021
x-tools is a collection of tools developed in Python

x-tools X-tools is a collection of tools developed in Python Commands\

null 5 Jan 24, 2022
A simple weather app.

keather A simple weather app. This is currently not finished. Dependencies: yay -S python-beautifulsoup4 tk

null 1 Jan 9, 2022
Use a real time weather API to apply wind to your mouse cursor.

wind-cursor Use a real time weather API to apply wind to your mouse cursor. Requirements PyAutoGUI pyowm Usage This program uses the OpenWeatherMap AP

Andreas Schmid 1 Feb 7, 2022
A Python utility belt containing simple tools, a stdlib like feel, and extra batteries. Hashing, Caching, Timing, Progress, and more made easy!

Ubelt is a small library of robust, tested, documented, and simple functions that extend the Python standard library. It has a flat API that all behav

Jon Crall 638 Dec 13, 2022
null 1 May 12, 2022
Framework for creating efficient data processing pipelines

Aqueduct Framework for creating efficient data processing pipelines. Contact Feel free to ask questions in telegram t.me/avito-ml Key Features Increas

avito.tech 137 Dec 29, 2022
Project5 Data processing system

Project5-Data-processing-system User just needed to copy both these file to a folder and open Project5.py using cmd or using any python ide. It is to

null 1 Nov 23, 2021
Small Arrow Vortex clipboard processing library

Description Small Arrow Vortex clipboard processing library. Install You can install this library from PyPI with pip install av-clipboard-lib or compi

Delta Epsilon 1 Dec 18, 2021
A Python Based Utility for Processing GST-Return JSON Files to Multiple Formats

GSTR 1/2A Utility by Shan.tk Open Source GSTR 1/GSTR 2A JSON to Excel utility based on Python. Useful for Auditors in Verifying GSTR 1 Return Invoices

Sudharshan TK 1 Oct 8, 2022
Semester Project on Signal Processing @CS UCU 2021

Blur Detection with Haar Wavelet Transform Requirements Python3 opencv-python PyWavelets Install these using the following command: $ pip install -r r

ButynetsD 2 Oct 15, 2022
🏆 A ranked list of awesome Python open-source libraries and tools. Updated weekly.

Best-of Python ?? A ranked list of awesome Python open-source libraries & tools. Updated weekly. This curated list contains 230 awesome open-source pr

Machine Learning Tooling 2.7k Jan 3, 2023
A fancy and practical functional tools

Funcy A collection of fancy functional tools focused on practicality. Inspired by clojure, underscore and my own abstractions. Keep reading to get an

Alexander Schepanovski 2.9k Dec 29, 2022
Some ideas and tools to develop Python 3.8 plugins for GIMP 2.99.4

gimp-python-development Some ideas and tools to develop Python 3.8 plugins for GIMP 2.99.4. GIMP 2.99.4 is the latest unstable pre-release of GIMP 3.

Ismael Benito 53 Sep 25, 2022