telescope-term 0.2 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/telescope +104 -36
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a3c05dde8a5ff611a62d0cfd72a5a811915d218b7af6cd977c14297396d8c31
|
4
|
+
data.tar.gz: f89a8414af71225d15d689d0cb1ea57b6669a0b67a43327e5e61e6c79754195d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17c083153fd29104fd907d5288247a6b5eb8b92db8eb8bc22692d725b89104c194ddc5aec27b7f515f411c5aec2f2560006151d131a229883d4baf3b0d42ea16
|
7
|
+
data.tar.gz: b268815b853c51df96d2d71fd1a4213cb52d4d14c06062ec212e6f06ebce7b47c77cec3f593c67dd5d3ffcba306914ef74e320c8017b5e9b71508ece97a2d1b2
|
data/bin/telescope
CHANGED
@@ -1,42 +1,34 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# encoding: utf-8
|
3
3
|
@help = <<HELPTEXT
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
the
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
You can escape the selected panels or the command line by pressing 'Ctrl-G'. Quit via 'q' or 'Q' if you don't want to
|
14
|
-
save your edits since last session. Telescope and eyepiece data is saved in the file '.telescope' in your home directory.
|
15
|
-
Save a backup session with 'b' and load a previously saved backup session with the 'B' key.
|
4
|
+
WELCOME TO TELESCOPE - A TERMINAL/CONSOLE PROGRAM FOR THE AMATEUR ASTRONOMER.
|
5
|
+
The top panel lists your telescopes with eyepieces in the lower panel. Add a telescope by pressing 't' and fill in the name, the
|
6
|
+
apperature (APP) and the focal length (FL) in the "command line" at the bottom and press ENTER. Add an eyepiece with 'e' and enter
|
7
|
+
a name, the focal length (FL) and apparent field of view (AFOV) and press ENTER. Select items by pressing TAB, then UP/DOWN cursor keys.
|
8
|
+
Press ENTER on a selected item to change the values in the command line. Delete an item by pressing 'D'. Move an with PgUP/PgDown keys.
|
9
|
+
Tag items with the SPACE key (untag all with 'u'), then press 'o' to create an observation log file (content shown in the lower panel).
|
10
|
+
Refresh all panels with the 'r' key. Escape the selected panels or the command line by pressing 'Ctrl-G'. Quit via 'q' (or 'Q' if you
|
11
|
+
don't want to save your edits since last session). Save a backup session with 'b' and load a saved backup session with the 'B' key.
|
12
|
+
Telescope and eyepiece data is saved in the file '.telescope' in your home directory (backup file is '.telescope.bu').
|
16
13
|
|
17
|
-
LIST OF TELESCOPE ABBREVIATIONS:
|
18
|
-
APP
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
*
|
26
|
-
|
27
|
-
|
28
|
-
PLd/2* = Recommended magnification for planet details and double stars
|
29
|
-
TGHT2* = Recommended magnification for tight double stars
|
30
|
-
DL-SEP = Minimum separation, Dawes limit
|
31
|
-
RC-SEP = Minimum separation, Rayleigh limit
|
32
|
-
MOON = Minimum feature resolved on the Moon (in meters)
|
33
|
-
SUN = Minimum feature resolved on the Sun (in kilometers)
|
14
|
+
LIST OF TELESCOPE ABBREVIATIONS: LIST OF EYEPIECE ABBREVIATIONS:
|
15
|
+
APP, FL, F/? = Apperature and Focal Length (millimeters) and F-ratio FL = Focal Length (in millimeters)
|
16
|
+
<MAG = Maximum magnitude visible AFOV = Apparent Field Of View
|
17
|
+
xEYE = Light gathering compared to the human eye xMAGN = Magnification (with that telescope)
|
18
|
+
MINx, MAXx = Minimum and maximum usable magnification FOV = True Field Of View (deg/min/sec)
|
19
|
+
XPUP = Exit pupil (in millimeters)
|
20
|
+
Recommended magnifications for objects:
|
21
|
+
*FIELD = star fields, GX/NEB = galaxies/nebulae, PL/GCL = planets/globular clusters
|
22
|
+
PLd/2* = planet details/double stars, TGHT2* = tight double stars
|
23
|
+
DL/RC-SEP = Minimum separation, Dawes limit and Rayleigh limit
|
24
|
+
MOON, SUN = Minimum feature resolved on the Moon (meters) & Sun (kilometers)
|
34
25
|
HELPTEXT
|
35
26
|
begin # BASIC SETUP
|
36
27
|
if `tput cols`.to_i < 140
|
37
28
|
puts "You must run Telescope with a minimum tarminal width of 140 chracters."
|
38
29
|
end
|
39
30
|
require 'io/console'
|
31
|
+
require 'date'
|
40
32
|
require 'curses'
|
41
33
|
include Curses
|
42
34
|
|
@@ -52,6 +44,9 @@ begin # BASIC SETUP
|
|
52
44
|
|
53
45
|
@tsmark = false
|
54
46
|
@epmark = false
|
47
|
+
|
48
|
+
@tstag = []
|
49
|
+
@eptag = []
|
55
50
|
end
|
56
51
|
if File.exist?(Dir.home+'/.telescope')
|
57
52
|
load(Dir.home+'/.telescope')
|
@@ -189,7 +184,7 @@ def main_getkey # GET KEY FROM USER
|
|
189
184
|
when '?' # Show helptext in right window
|
190
185
|
@w_ep.clr
|
191
186
|
@w_ep.pa(249, 0, 0, @help)
|
192
|
-
@w_ep.p("\n...Press any key to continue")
|
187
|
+
@w_ep.p("\n ...Press any key to continue")
|
193
188
|
getch
|
194
189
|
when 'TAB'
|
195
190
|
if @tsmark
|
@@ -290,6 +285,19 @@ def main_getkey # GET KEY FROM USER
|
|
290
285
|
elsif @epmark
|
291
286
|
@epmark = @ep.length - 1
|
292
287
|
end
|
288
|
+
when ' '
|
289
|
+
if @tsmark
|
290
|
+
@tstag.include?(@tsmark) ? @tstag.delete(@tsmark) : @tstag.push(@tsmark)
|
291
|
+
@tsmark += 1 unless @tsmark == @ts.length - 1
|
292
|
+
elsif @epmark
|
293
|
+
@eptag.include?(@epmark) ? @eptag.delete(@epmark) : @eptag.push(@epmark)
|
294
|
+
@epmark += 1 unless @epmark == @ep.length - 1
|
295
|
+
end
|
296
|
+
when 'u'
|
297
|
+
@tstag.clear
|
298
|
+
@eptag.clear
|
299
|
+
when 'o'
|
300
|
+
observe
|
293
301
|
when 'b'
|
294
302
|
File.write(Dir.home+'/.telescope.bu',"@ts = #{@ts}\n@ep = #{@ep}")
|
295
303
|
when 'B'
|
@@ -306,6 +314,62 @@ def main_getkey # GET KEY FROM USER
|
|
306
314
|
else
|
307
315
|
end
|
308
316
|
end
|
317
|
+
def observe
|
318
|
+
@tstag = @tstag.sort
|
319
|
+
@eptag = @eptag.sort
|
320
|
+
date = DateTime.now.strftime "%Y-%m-%d"
|
321
|
+
file = Dir.home + "/" + date + "_observation.txt"
|
322
|
+
obs = "Observation file: #{file}\n"
|
323
|
+
obs += "Observation date:\n\n"
|
324
|
+
obs += "This file lists the intended equipment for the observation date.\n"
|
325
|
+
obs += "Reference observations with telescope letter and eyepiece numbers (like A2, B1, etc.)\n\n"
|
326
|
+
obs += "─" * 100 + "\n"
|
327
|
+
enum = "ABCDE"
|
328
|
+
@tstag.each_with_index do |t, i|
|
329
|
+
d = @ts[t][1]
|
330
|
+
f = @ts[t][2]
|
331
|
+
obs += "Telescope (#{enum[i]}): " + @ts[t][0].ljust(15) + " ("
|
332
|
+
obs += d.to_s + "mm/" + f.to_s + "mm f/" + (f/d.to_f).truncate(1).to_s + ")"
|
333
|
+
mag = (5 * Math::log(d/10, 10) + 7.5).truncate(1).to_s
|
334
|
+
obs += " Max MAG: " + mag
|
335
|
+
sepd = (115.824/d).truncate(2).to_s
|
336
|
+
sepr = (3600*Math::asin(671E-6/d)*180/Math::PI).truncate(2).to_s
|
337
|
+
obs += " Min SEP: " + sepd + "/" + sepr + "\n"
|
338
|
+
end
|
339
|
+
obs += "No telescope(s) chosen for the observation\n" if @tstag.empty?
|
340
|
+
obs += "─" * 100 + "\n"
|
341
|
+
@eptag.each_with_index do |e, i|
|
342
|
+
m = @ep[e][1]
|
343
|
+
a = @ep[e][2]
|
344
|
+
obs += "Eyepiece (#{i+1}): " + @ep[e][0].ljust(15) + " ("
|
345
|
+
obs += m.to_s.rjust(4) + "mm/" + a.to_s.rjust(3) + "°) "
|
346
|
+
@tstag.each_with_index do |t, j|
|
347
|
+
d = @ts[t][1]
|
348
|
+
f = @ts[t][2]
|
349
|
+
obs += enum[j] + ": "
|
350
|
+
mag = (f.to_f/m)
|
351
|
+
obs += mag.truncate(1).to_s.rjust(5) + "x ("
|
352
|
+
fov = a/mag
|
353
|
+
deg = fov.to_i
|
354
|
+
mins = ((fov - fov.to_i) * 60)
|
355
|
+
min = mins.to_i
|
356
|
+
sec = ((mins - min) * 60).to_i
|
357
|
+
deg == 0 ? dgo = " " : dgo = deg.to_s + "°"
|
358
|
+
mno = min.to_s.rjust(2, " ") + "'"
|
359
|
+
sco = sec.to_s.rjust(2, " ") + "\""
|
360
|
+
obs += (dgo + mno + sco) + ") "
|
361
|
+
end
|
362
|
+
obs += "\n"
|
363
|
+
end
|
364
|
+
obs += "No eyepiece(s) chosen for the observation\n" if @eptag.empty?
|
365
|
+
obs += "─" * 100 + "\n\n"
|
366
|
+
obs += "Object: Equipment: Observation:\n" * 8
|
367
|
+
@w_ep.clr
|
368
|
+
@w_ep.pa(255, 0, 0, obs)
|
369
|
+
@w_ep.p("\n...Press any key to continue")
|
370
|
+
File.write(file, obs)
|
371
|
+
getch
|
372
|
+
end
|
309
373
|
|
310
374
|
# TELESCOPE FUNCTIONS (top window, w_ts)
|
311
375
|
def w_ts_show
|
@@ -322,10 +386,11 @@ def w_ts_show
|
|
322
386
|
out = " " + name.ljust(15)
|
323
387
|
out += d.to_s.rjust(8)
|
324
388
|
out += f.to_s.rjust(8)
|
325
|
-
|
389
|
+
attr = Curses::A_BOLD
|
390
|
+
attr = attr | Curses::A_REVERSE if @tsmark == i
|
391
|
+
attr = attr | Curses::A_UNDERLINE if @tstag.include?(i)
|
326
392
|
@w_ts.pa(254, 0, attr, out)
|
327
393
|
out = (f.to_f/d.to_f).truncate(1).to_s.rjust(6)
|
328
|
-
out = (f.to_f/d.to_f).truncate(1).to_s.rjust(6)
|
329
394
|
@w_ts.pa(254, 0, 0, out)
|
330
395
|
out = (5 * Math::log(d/10, 10) + 7.5).truncate(1).to_s.rjust(6)
|
331
396
|
@w_ts.pa(229, 0, 0, out)
|
@@ -390,13 +455,16 @@ def w_ep_show
|
|
390
455
|
out = " " + name.ljust(15)
|
391
456
|
out += m.to_s.rjust(8)
|
392
457
|
out += a.to_s.rjust(6) + "°"
|
393
|
-
|
458
|
+
attr = Curses::A_BOLD
|
459
|
+
attr = attr | Curses::A_REVERSE if @epmark == i
|
460
|
+
attr = attr | Curses::A_UNDERLINE if @eptag.include?(i)
|
394
461
|
@w_ep.pa(253, 0, attr, out)
|
395
462
|
@ts.each do |scope|
|
396
463
|
d = scope[1]
|
397
464
|
f = scope[2]
|
398
465
|
mag = (f.to_f/m)
|
399
|
-
|
466
|
+
@w_ep.pa(254, 0, 0, " │")
|
467
|
+
out = mag.truncate(1).to_s.rjust(6)
|
400
468
|
@w_ep.pa(156, 0, 0, out)
|
401
469
|
fov = a/mag
|
402
470
|
deg = fov.to_i
|
@@ -419,7 +487,7 @@ end
|
|
419
487
|
# COMMAND FUNCTIONS (bottom window, w_cm)
|
420
488
|
def w_cm_show
|
421
489
|
@w_cm.fill
|
422
|
-
@w_cm.p(" Telescope v0.2 - By Geir Isene (https://isene.com)")
|
490
|
+
@w_cm.p(" Telescope v0.2 - By Geir Isene (https://isene.com) - press '?' to display the help text")
|
423
491
|
end
|
424
492
|
def w_cm_getstr(pretext, text) # A SIMPLE READLINE-LIKE ROUTINE
|
425
493
|
Curses.curs_set(1)
|
@@ -495,7 +563,7 @@ loop do # OUTER LOOP - (catching refreshes via 'r')
|
|
495
563
|
maxy = Curses.lines
|
496
564
|
# Curses::Window.new(h,w,y,x)
|
497
565
|
@w_ts = Curses::Window.new(7, maxx - 2, 1, 1)
|
498
|
-
@w_ep = Curses::Window.new(maxy - 10, maxx - 2,
|
566
|
+
@w_ep = Curses::Window.new(maxy - 10, maxx - 2, 8, 1)
|
499
567
|
@w_cm = Curses::Window.new(1, maxx, maxy - 1, 0)
|
500
568
|
@w_ts.fg, @w_ts.bg = 15, 0
|
501
569
|
@w_ep.fg, @w_ep.bg = 255, 232
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: telescope-term
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Geir Isene
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-11-
|
11
|
+
date: 2021-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curses
|
@@ -30,9 +30,10 @@ dependencies:
|
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 1.3.2
|
33
|
-
description: With this program you can list your telescopes and eyepieces and get
|
33
|
+
description: 'With this program you can list your telescopes and eyepieces and get
|
34
34
|
a set of calculations done for each scope and for the combination of scope and eyepiece.
|
35
|
-
Easy interface. Run the program, then hit '?' to show the help file.
|
35
|
+
Easy interface. Run the program, then hit ''?'' to show the help file. New in v0.5.1:
|
36
|
+
Improved help text.'
|
36
37
|
email: g@isene.com
|
37
38
|
executables:
|
38
39
|
- telescope
|