beefoo / weather-when

A script that grabs wind data from NOAA and outputs a high resolution global wind map in a black-and-white, pencil-drawn style

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Custom historical wind maps

A simple script that grabs wind data from 10 meters above sea level any day/time from January 1, 1979 to about three days ago and outputs a high resolution global wind map in a black-and-white, pencil-drawn style suitable for printing.

Samples

My birthday (1/29/1986):

Wind map of the world on my birthday

Hurricane Sandy (10/29/2012):

Wind map of the world during Hurricane Sandy

Hurricane Harvey (8/26/2017):

Wind map of the world during Hurricane Harvey

Requirements

  • Python
  • pygrib - for reading GRIB files, also requires ecCodes or equivalent
  • Python Pillow - for image processing and output
  • PyOpenCL - for efficient data processing by taking advantage of graphics card
  • curl - for downloading files from internet (alternatively, you can manually download files to ./downloads/ folder)

Data sources

All data is publicly available from NOAA's National Centers for Environmental Information. It comes from three different datasets depending on the date:

Running script

Basic usage

The following an image using highres data for January 1, 1979 at noon. You can choose any date after 1/1/1979 up until about three days ago. Valid hours are 00, 06, 12, 18 (every 6 hours starting at midnight). The data is rather large (sometimes > 1GB of data) so may take a little while for slow internet connections or older computers.

python run.py -date " 1979-01-01-12"

Custom size

The following creates an image that is 17 x 11in with a 1 inch margin (image will be vertically centered) at 150dpi

python run.py -width 17 -height 11 -margin 1 -dpi 150

Custom styles

You can change the number of wind lines

python run.py -particles 100000

Or the length of the wind lines

python run.py -ppp 500

Or overall line brightness

python run.py -brightness 0.5

Custom labels

python run.py -label "My custom label"

To see all the possible parameters:

python run.py -h

About

A script that grabs wind data from NOAA and outputs a high resolution global wind map in a black-and-white, pencil-drawn style

License:MIT License


Languages

Language:Python 100.0%