himawari-bg
Set the latest image from Himawari 8 as your desktop background.
About
Himawari 8 is a geostationary weather satellite deployed by the Japan Meteorological Agency. It takes photographs of Earth every 10 minutes.
himawari-bg is a command line program that lets you set the latest image from the Himawari 8 geostationary satellite as your desktop background.
Install
Warning: requires
If you have homebrew installed, you can use that to quickly install imagemagick
and graphicsmagick
.
brew install imagemagick
brew install graphicsmagick
Once you have magick on your side, you can run himawari-bg anytime:
npx himawari-bg
Usage
Command Line
You can run himawari-bg
on the command line with npx
or via global install (npm i -g himawari-bg
).
If you run himawari-bg
with no arguments, it will download the latest image from Himawari-8 and set it as your desktop background.
There are some options available if you'd like to go further:
Usage: himawari-bg [options]
--outfile, -o Location to save image. (default: ~/Pictures/himawari-images/$TIMESTAMP.jpg)
--zoom, -z The zoom level of the image. Can be 1-5. (default: 2)
--date, -d Time of the picture desired. Can also be "latest". (default: "latest")
--infrared, -i Capture picture on the infrared spectrum. (default: false)
--parallel, -p Parallelize downloads for increased speeds (can be CPU intensive). (default: true)
--screen, -s Screen to set the wallpaper on (macOS only). Options: "all", "main", screen index. (default: "main")
--scale Scaling method (macOS only). Options: "auto", "fill", "fit", "stretch", "center". (default: "fit")
--version, -v Show version information.
--help, -h Show help.
Node.js
himawari-bg
can also be used programmatically as a node module:
npm install himawari-bg
Here is an example of how it works in node:
const himawariBG = require('himawari-bg')
himawariBG({
/**
* The location to save the resulting image.
* Default: `~/Pictures/himawari-images/${Date.now()}.jpg`
* @type {String}
*/
outfile: '/path/to/output/earth.jpg',
/**
* The time of the picture desired. If you want to get the latest image, use 'latest'.
* Default: 'latest'
* @type {String|Date}
*/
date: 'latest', // Or new Date() or a date string
/**
* The zoom level of the image. Can be 1-5 (default: 2)
* Each zoom level requires more images to be downloaded and therefore stitched
* together. Higher zoom yields a higher resolution image.
* Default: 2
* @type {Number}
*/
zoom: 2,
/**
* If set to true, an image on the infrared light spectrum will be generated
* Default: false
* @type {Boolean}
*/
infrared: false,
/**
* Screen to set the wallpaper on (macOS only)
* Options: 'all', 'main', screen index
* Default: 'main'
* @type {String|Number}
*/
screen: 'main',
/**
* Scaling method (macOS only)
* Options: 'auto', 'fill', 'fit', 'stretch', 'center'
* Default: 'fit'
* @type {String|Number}
*/
scale: 'fit'
})
All config settings are optional and have default values.
himawariBG
returns a promise, so it can be used in an async workflow if needed.
const himawariBG = require('himawari-bg')
async function () {
try {
await himawariBG()
} catch (err) {
console.log(err)
}
}
Acknowledgements
Thanks to celoyd for the inspiring glittering.blue
and jakiestfu for creating himawari.js
.
Addendum
It turns out himawari.js
was inspired by this gist by MichaelPote which basically does the exact same thing as himawari-bg
except in a Windows Powershell environment. So I unwittingly made something inspired by something that was inspired by something that does what I did. Internet! ¯\_(ツ)_/¯
Additional Resources
Here are some useful links if you're interested in learning more about the Himawari 8 satellite.
Official
- Himawari 8 Real-time Web
- Himawari Data Guide
- Himawari 8/9 Standard Data User's Guide
- JAXA account registration (for access to more data)
Related Projects
- @ungoldman/himawari
- himawari-urls
- himawari-history
- Glittering Blue
- celoyd/hi8
- Himawari 8 animation tutorial
- deband python script
- makeaday bash script
- goes-bg
History
Read about updates and changes to this project in the change log.
Contributing
Contributions welcome! Please read the contributing guidelines before getting started.