Skip to main content

Gets moon visualizations courtesy of SVS, NASA, Ernie Wright

Project description

        _..._           _..._            _..._            _..._            _..._
      .:::::::.       .::::. `.        .::::  `.        .::'   `.        .'     `.
     :::::::::::     :::::::.  :      ::::::    :      :::       :      :         :  
     :::::::::::     ::::::::  :      ::::::    :      :::       :      :         :
     `:::::::::'     `::::::' .'      `:::::   .'      `::.     .'      `.       .'
       `':::''         `'::'-'         `'::.-'           `':..-'          `-...-'

        _..._           _..._           _..._            _..._            _..._
      .'     `.       .'   `::.       .'  ::::.        .' .::::.        .:::::::.
     :         :     :       :::     :    ::::::      :  ::::::::      ::::::::::: 
     :         :     :       :::     :    ::::::      :  ::::::::      :::::::::::
     `.       .'     `.     .::'     `.   :::::'      `. '::::::'      `:::::::::'
       `-...-'         `-..:''         `-.::''          `-.::''          `':::''

moon

This is a Python package that gets an image of a given date's moon phase. It uses Ernie Wright's moon visualizations from the Dial-a-Moon project at Nasa's Scientific Visualization Studio.

At time of last release, this package can access any of the moon visualizations from 2011 onward.

Installation

To install this package, just run

pip install moon

Usage

Currently, this package can get a NumPy.ndarray representing the lunar phase, as well as some json of the lunar stats from the Dial-a-Moon Nasa site. This array is usable as an image using openCV, or can be saved to disk as a .jpg file.

To just use it in a project, you can use it like this:

from moon.dialamoon import Moon

moon = Moon()
moon.set_moon_phase()

and access the image array itself with

moon.image

You can save the current image to disk with the method moon.save_to_disk('filename') or ui.save_to_disk('filename'), which would save a filename.jpg in your current directory.

You can alternately test it out using Jupyter notebooks:

from moon.jupyter_ui import JupyterUi

ui = JupyterUi()
ui.set_moon_phase() #defaults to today's date
print(ui.moon_datetime_info)
ui.show()

By default, the returned image will be unlabeled and 730x730 pixels. To resize this, use the size keyword argument when initializing:

moon = Moon(size=(100,100))

You can access other information and links to other images relating to the moon on your requested date via Moon.info.

Updates

Please feel free to post bugs, suggestions and feature requests on this repo.

2.0.0 2024-02-01

  • use the new API to determine moon image urls, so yearly IDs don't need to be added anymore
  • deprecate image viewing via terminal

1.1.5 2021-12-30

  • put constants in a .json file instead of a .py file
  • add SVS ID for 2022
  • if a SVS ID for a year isn't available, check whether it's available on in res/constants.json on the GitHub repo and then remind the user to update the package for next time

1.1.3 2021-05-01

  • update numpy and opencv-python versions
  • fix lru_cache decorator to fix issue #4

1.1.2 2021-01-24

  • can include hour parameter in Moon.set_moon_phase()

Resources:

moon ascii art courtesy of jsg

        _..._           _..._            _..._            _..._            _..._
      .:::::::.       .::::. `.        .::::  `.        .::'   `.        .'     `.
     :::::::::::     :::::::.  :      ::::::    :      :::       :      :         :  
     :::::::::::     ::::::::  :      ::::::    :      :::       :      :         :
     `:::::::::'     `::::::' .'      `:::::   .'      `::.     .'      `.       .'
       `':::''         `'::'-'         `'::.-'           `':..-'          `-...-'

        _..._           _..._           _..._            _..._            _..._
      .'     `.       .'   `::.       .'  ::::.        .' .::::.        .:::::::.
     :         :     :       :::     :    ::::::      :  ::::::::      ::::::::::: 
     :         :     :       :::     :    ::::::      :  ::::::::      :::::::::::
     `.       .'     `.     .::'     `.   :::::'      `. '::::::'      `:::::::::'
       `-...-'         `-..:''         `-.::''          `-.::''          `':::''

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

moon-2.0.0.tar.gz (3.3 MB view details)

Uploaded Source

File details

Details for the file moon-2.0.0.tar.gz.

File metadata

  • Download URL: moon-2.0.0.tar.gz
  • Upload date:
  • Size: 3.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.3

File hashes

Hashes for moon-2.0.0.tar.gz
Algorithm Hash digest
SHA256 1812b1fefcea98fbb3aab4fe8c20131e1a034ffb1c611a3c6719b83453babb51
MD5 155b2c43fb3a2005b8ff0ab72d510da4
BLAKE2b-256 3007de4307630d2e6772252900039d0bda661297817d9857346295664929c9db

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page