# himawari.js **Repository Path**: ynbnlys/himawari.js ## Basic Information - **Project Name**: himawari.js - **Description**: Download real-time images of Earth from the Himawari-8 satellite - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-08 - **Last Updated**: 2021-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README > Download real-time images of Earth from the Himawari-8 satellite [![npm][npm-image]][npm-url] [npm-image]: https://img.shields.io/npm/v/himawari.svg?style=flat-square [npm-url]: https://www.npmjs.com/package/himawari [Himawari 8](http://himawari8.nict.go.jp/) is a [geostationary](https://en.wikipedia.org/wiki/Geostationary_orbit) weather satellite deployed by the [Japan Meteorological Agency](http://www.jma.go.jp/jma/indexe.html). It takes photographs of Earth every 10 minutes. * [Getting Started](#getting-started) * [Usage](#usage) * [Command Line Interface](#command-line-interface) * [Acknowledgements](#acknowledgements) * [Example Images](#example-images) * [Example Scripts](#example-scripts) * [Licensing](#licensing) ## Getting Started ```sh brew install imagemagick brew install graphicsmagick npm i himawari ``` If you would like to generate videos, `ffmpeg` is also required. ```sh brew install ffmpeg ``` ## Usage ```javascript var himawari = require('himawari'); himawari({ /** * The zoom level of the image. Can be 1-5 for non-infrared, and 1-3 for infrared (default: 1) * Each zoom level requires more images to be downloaded and therefore stitched * together. Higher zoom yields a higher resolution image. * @type {Number} */ zoom: 1, /** * The time of the picture desired. If you want to get the latest image, use 'latest' * @type {String|Date} */ date: 'latest', // Or new Date() or a date string /** * Turns on logging * @type {Boolean} */ debug: false, /** * If set to true, an image on the infrared light spectrum will be generated. Please note that * infrared only supports zooms up to 3 * @type {Boolean} */ infrared: false, /** * The location to save the resulting image * @type {String} */ outfile: '/path/to/output/earth.jpg', /** * Set to true to parallelize tile downloads. Can be CPU intensive but decreases time to download images. * @type {Boolean} */ parallel: false, /** * Skip empty images from being saved * @type {Boolean} */ skipEmpty: true, /** * The max duration in milliseconds before requests for images and data times out * @type {Number} */ timeout: 30000, /** * If true, only prints the URLs of the images that would have been downloaded * @type {Boolean} */ urls: false, /** * A success callback if the image downloads successfully * @type {Function} */ success: function () { process.exit(); }, /** * A callback if the image cannot be downloaded or saved * @type {Function} * @param {Object} err An error object or information surrounding the issue */ error: function (err) { console.log(err); }, /** * A callback that is fired every time a tile has been downloaded. * @param {Object} info Information about the download such as filepath, part, and total images */ chunk: function (info) { console.log(info.outfile + ': ' + info.part + '/' + info.total); } }); ``` ## Command Line Interface There is also a command-line interface available if you install it with `-g`. ```sh npm i -g himawari ``` This installs a program called `himawari` that can be used like so: ```sh Usage: himawari [options] --zoom, -z The zoom level of the image. Can be 1-5. (Default: `1`) --date, -d The time of the picture desired. If you want to get the latest image, use 'latest'. (Default: `"latest"`) --debug, -l Turns on logging. (Default: `false`) --outfile, -o The location to save the resulting image. (Default: `"himawari-{date}.jpg"` in current directory) --parallel, -p Parallelize downloads for increased speeds (can be CPU intensive) --skipempty, -s Skip saving images that contain no useful information (i.e. "No Image") (Default: `true`) --timeout, -t The max duration in milliseconds before requests for images and data times out (Default: `30000`) --urls, -u Only print the URLs of the images that would have been downloaded (Default: `false`) --infrared, -i Capture picture on the infrared spectrum (Default: `false`) --version, -v Prints the version of the package --help, -h Show help ``` ## Acknowledgements * [Japan Meteorological Agency](http://www.jma.go.jp/) * [NICT](http://www.nict.go.jp/) * [Michael Pote](https://github.com/MichaelPote) created a [Powershell Script](https://gist.github.com/MichaelPote/92fa6e65eacf26219022) that inspired this library. ## Example Images ## Example Scripts There are two example files that showcase how Himawari.js can be used. The first, `basic.js`, is to simply be executed and will download the latest image of earth and save it to your Desktop. The second, `video.js`, will get a particular date (one where it starts off all black), and will decrement 10 minutes from that date until it has been 24 hours. The resulting images will be saved to a directory, and then piped to `ffmpeg` which will stitch the images together in a lovely video for you to oogle over. ## Licensing MIT