Image Labels - aaronwmorris/indi-allsky GitHub Wiki

Overview

The image label can now be customized using a template and python string format codes.

Information regarding python string formats may be found here: https://docs.python.org/3/library/string.html#formatspec

Defaults

This is the default template

# size:30 [Use 60 for higher resolution cameras]
# xy:-15,15 (Upper Right)
# anchor:ra (Right Justified)
# color:150,0,0
{timestamp:%Y.%m.%d %H:%M:%S}
# color:100,100,0
Lat {latitude:0.0f} Long {longitude:0.0f}
# color:150,150,150
Tiangong {tiangong_up:s} [{tiangong_next_h:0.1f}h/{tiangong_next_alt:0.0f}°]
Hubble {hst_up:s} [{hst_next_h:0.1f}h/{hst_next_alt:0.0f}°]
ISS {iss_up:s} [{iss_next_h:0.1f}h/{iss_next_alt:0.0f}°]
# xy:-15,-240 (Lower Right) [Use -15,-450 for size 60]
# color:175,175,0
Sun {sun_alt:0.0f}°
# color:125,0,0
Mercury {mercury_alt:0.0f}°
# color:100,150,150
Venus {venus_alt:0.0f}°
# color:150,0,0
Mars {mars_alt:0.0f}°
# color:100,100,0
Jupiter {jupiter_alt:0.0f}°
# color:100,100,150
Saturn {saturn_alt:0.0f}°
# color:150,150,150
Moon {moon_phase:0.0f}% {moon_alt:0.0f}°
# xy:15,-120 (Lower Left)  [Use 15,-210 for size 60]
# anchor:la (Left Justified)
# color:0,150,150
Stars {stars:d}
# color:150,50,50
Kp-index {kpindex:0.2f}
# color:150,150,150
Smoke {smoke_rating:s}
# xy:15,15 (Upper Left)
# color:0,150,0
Exposure {exposure:0.6f}
# color:150,50,0
Gain {gain:d}
# color:50,50,150
Temp {temp:0.1f}°{temp_unit:s}
# color:150,0,150
Stretch {stretch:s}
Stacking {stack_method:s}
# color:200,200,200 (default color)
# additional labels will be added here

Note: Leave enough room for additional labels after your last entry. indi-allsky will add additional labels such as moon mode and eclipse info at the end. It is best to return to the upper left or right so that space is available.

Label Colors

The color of the text may be changed by adding a formatted comment color:#,#,# The numbers are RGB color codes. The color is persistent for all subsequent lines and can be changed as many times as you wish.

# default color is used if none specified
{timestamp:%Y.%m.%d %H:%M:%S}
# color:255,0,0  additional text is ignored
Lat {latitude:0.1f} Long {longitude:0.1f}
# comment does nothing
# color:0,255,0
Exposure {exposure:0.6f}

Label Location

The location of the text can be changed using xy:#,# The numbers are X,Y coordinates. The coordinates are persistent for all subsequent lines and can be changed as many times as you wish.

A negative X coordinate will offset from the right side of the image.

A negative Y coordinate will offset from the bottom of the image.

# xy:100,200 color:0,255,0  coordinates may be combined with color
{timestamp:%Y.%m.%d %H:%M:%S}
Lat {latitude:0.1f} Long {longitude:0.1f}
Exposure {exposure:0.6f}

Text justification (Pillow-only)

If you want to right (or center) justify your text, you can add an anchor configuration for Pillow. A ra anchor combined with negative offsets will draw the text offset from the right/bottom of the image.

The default anchor is la for left-ascender.

{timestamp:%Y.%m.%d %H:%M:%S}
# xy:-30,30 anchor:ra   right-ascender  This will draw text offset from the right top of the image.
Lat {latitude:0.1f} Long {longitude:0.1f}
# xy:30,60 anchor:la  left-ascender  Return to original location
Exposure {exposure:0.6f}

https://pillow.readthedocs.io/en/stable/handbook/text-anchors.html#text-anchors

Text size (Pillow-only)

{timestamp:%Y.%m.%d %H:%M:%S}
# size:40
Lat {latitude:0.1f} Long {longitude:0.1f}
# size:30
Exposure {exposure:0.6f}

OpenCV vs Pillow

OpenCV only supports ASCII characters and limited internal fonts. Pillow is much more capable with TrueType font support.

Variables

Name Type Add Date Info
timestamp datetime https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes
ts datetime Shortcut for timestamp
exposure float Image exposure
day_date date Day reference for exposure. Referencing the date when the timelapse set starts.
rational_exp str Rational Exposure eg 1 1/4 (a work in progress)
gain int Camera gain
temp float Camera temperature
temp_unit str Temperature unit
sqm float SQM average
stars int Star count
detections str Line detections (True or False)
owner str Camera owner
location str Camera location
kpindex float Global Kp-index value
ovation_max int Percentage chance of aurora visibility
smoke_rating str Smoke rating for your location NOAA (North America only)
sun_alt float Sun altitude
moon_alt float Moon altitude
moon_phase float Moon phase percentage
moon_up str Moon above horizon
sun_moon_sep float Angular separation of sun and moon
latitude float Latitude
longitude float Longitude
sidereal_time str Local apparent sidereal time
stretch str Stretch enabled
stretch_m1_gamma float Stretch Mode1 Gamma
stretch_m1_stddevs float Stretch Mode1 Standard Deviation cutoff
stack_method str Stacking method
stack_count int Stack count
mercury_alt float Mercury altitude
mercury_up str Mercury above horizon
venus_alt float Venus altitude
venus_phase float Venus phase percentage
venus_up str Venus above horizon
mars_alt float Mars altitude
mars_up str Mars above horizon
jupiter_alt float Jupiter altitude
jupiter_up str Jupiter above horizon
saturn_alt float Saturn altitude
saturn_up str Saturn above horizon
iss_alt float Sept 2023 ISS altitude
iss_up str Sept 2023 ISS above horizon
iss_next_h float Sept 2023 Next ISS pass in hours
iss_next_alt float Sept 2023 Next ISS max altitude
hst_alt float Sept 2023 Hubble altitude
hst_up str Sept 2023 Hubble above horizon
hst_next_h float Sept 2023 Next Hubble pass in hours
hst_next_alt float Sept 2023 Next Hubble max altitude
tiangong_alt float Feb 2024 Tiangong altitude
tiangong_up str Feb 2024 Tiangong above horizon
tiangong_next_h float Feb 2024 Next Tiangong pass in hours
tiangong_next_alt float Feb 2024 Next Tiangong max altitude

Full example

# rainbows!
{timestamp:%Y.%m.%d %H:%M:%S}
# color:255,0,0 red
{sidereal_time:s}
# color:255,165,0 orange
Lat {latitude:0.1f} Long {longitude:0.1f}
# color:255,255,0 yellow
Exposure {exposure:0.6f}
# color:0,255,0 green
Day {day_date:%Y-%m-%d}
# color:0,0,255 blue
Gain {gain:d}
# color:75,0,130 indigo
Temp {temp:0.1f}{temp_unit:s}
# color:127,0,255 violet
Stretch {stretch:s}
# color:255,0,0
Stretch Gamma {stretch_m1_gamma:0.1f}
# color:255,165,0
Stretch StdDevs {stretch_m1_stddevs:0.2f}
# color:255,255,0
Stacking {stack_method:s}
# color:0,255,0
Stack Count {stack_count:d}
# color:0,0,255
Stars {stars:d}
# color:75,0,130
SQM {sqm:0.0f}
# color:127,0,255
Detections {detections:s}
# color:255,0,0
Sun Alt {sun_alt:0.1f}
# color:255,165,0
Moon Alt {moon_alt:0.1f}
# color:255,255,0
Moon Phase {moon_phase:0.1f}%
# color:0,255,0
Moon {moon_up:s}
# color:0,0,255
Sun/Moon Separation {sun_moon_sep:0.1f}
# color:75,0,130
Mercury {mercury_alt:0.1f} {mercury_up:s}
# color:127,0,255
Venus {venus_alt:0.1f} {venus_up:s}
# color:255,0,0
Venus Phase: {venus_phase:0.1f}%
# color:255,165,0
Mars {mars_alt:0.1f} {mars_up:s}
# color:255,255,0
Jupiter {jupiter_alt:0.1f} {jupiter_up:s}
# color:0,255,0
Saturn {saturn_alt:0.1f} {saturn_up:s}
# color:0,0,255
Smoke {smoke_rating:s}

Character test

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
`~!@#$%^&*()-_=+[]\|;:'",<.>/?~
# These glyphs will only work with Pillow (not OpenCV)
¡¢£¤¥§©«»®°±¹²³µ™¶¼½¾¿÷ƒΔÀËÏÑÜßãäëñöΩπ∞€