Skip to content

AlexLandherr/GOES_Image_Retriever

Repository files navigation

Installation

  1. You need to install these libraries/packages with pip:
  1. Clone the repository either via git clone https://github.com/AlexLandherr/GOES_Image_Retriever, download the zip of the repository or open with GitHub Desktop: https://desktop.github.com/

  2. Open goes_image_setting.cfg.

  3. To the line starting with "save_path" add the full save path to the directory where you want to save the directory generated by each program run, so it looks something like this (On GNU/Linux and MacOS this will off course look different):

save_path = D:/your_save_path_here

Note

Keep in mind that this is a hobby project, don't rely on my code in this project for anything critical!

Background and Explanation

This is a program that downloads weather satellite images from the National Oceanic and Atmospheric Administration (NOAA). They have a website for the GOES-16 and GOES-18 satellites in geostationary orbit. On the particular sites listed below the full disk and so called CONUS images are uploaded every 10 minutes (600 seconds) but with a 20 minute (1200 second) lag behind "real time"; so if an image was taken at 12:00:00 UTC it only appears on the website at 12:20:00 UTC.

What further simplified the project was that the image URLs are highly predictable, they can look like this (this link is long dead but remains to show the structure of the URL): https://cdn.star.nesdis.noaa.gov/GOES16/ABI/FD/GEOCOLOR/20211861830_GOES16-ABI-FD-GEOCOLOR-10848x10848.jpg

Here 2021 is the year, 186 is the day number (described here for Python programmers: https://docs.python.org/3/library/datetime.html#date-objects) and 1830 is the time of day in UTC.

Using all this information I wrote a series of programs that downloaded the GOES-16 and GOES-18 images retrospecitvely and prospectively; though for some reason no images older than three days (259200 seconds) can be downloaded from these particular servers. Over time I fixed bugs and added new features like generating dummy images when I got an HTTP 400 or 500 series error. This program could probably be set to run for a long time with enough storage space. There's also a bunch of logging features and simple statistics for the downloaded data and program operation.

My code only downloads the GeoColor images in all resolutions except the "GeoTIFF" and "Animation Loop" options. The choice of GeoColor was made as I originally wrote this code to make full disk time lapse sequences of the Earth.

GOES-16 full disk images: https://www.star.nesdis.noaa.gov/GOES/fulldisk.php?sat=G16

GOES-18 full disk images: https://www.star.nesdis.noaa.gov/GOES/fulldisk.php?sat=G18

Example Image

![20212681250_GOES16-ABI-FD-GEOCOLOR-5424x5424](https://user-images.githubusercontent.com/86981389/134773806-9a391056-a5e4-433d-8da5-54dbf7aa867d.jpg)