-
Notifications
You must be signed in to change notification settings - Fork 5
ms8r/celnav
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
================================================================================
CelNav - Electronic Almanac and Sight Reduction
================================================================================
CelNav is a simple utility to support celestial navigation on a small boat. It
provides the data listed on the daily pages of the Nautical Almanac as well as
functionality for sight reduction and calculation of a fix from two LOPs taken
in relatively short succession (the program will correct for motion of observer
between the sights for the LOPs). It uses the PyEphem package to calculate
ephemeris data for Sun, Moon, navigational planets and stars
(http://rhodesmill.org/pyephem/index.html). PyEphem must be installed in order
for CelNav to run (it is available for free at the URL listed above). In
addition Python 2.6 or newer must be installed with Tkinter and its ttk
("Themed Tkinter") descendant.
This package is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
-------------------------------------------------------------------------------
CONTENTS
-------------------------------------------------------------------------------
The archive file contains the source distribution for CelNav. It contains the
following file in addition to this README:
Root folder
-----------
setup.py - Python Distutils installation script. See below under
"Installation".
cnscript.py - Python script with a simple main driver that will run the
application. Will be installed in /opt/celnav. While you
can launch the application from the command line with
'python cnscript.py' it is recommended to use the shell
script 'nxcn' which performs some additional housekeeping
(see below under 'data files').
PKG-INFO ⁻ Package info: some meta data about this package.
Subfolder ./celnav
------------------
This folder contains the Python package consisting of the following modules:
celnav.py - Implements classes to calculate, store and manipulate
almanac and sight reduction data. celnav.py does not
contain any UI logic.
cnapp.py - Implements the application and GUI by mixing classes from
celnav.py with Tkinter/ttk widget classes.
starcat.py - Contains the base data required by PyEphem for ephemeris
calculations for the 57 navigational stars plus Polaris.
Used instead of PyEphem's star.py which misses about 20 of
the navigational stars.
cncfg.py - Uses a ConfigParser instance to read celnav.ini
configuration file and to provide access to its parameter
values. Imported by other modules to get access to config
parameters.
classprint.py - Contains an inheritable print overload method that displays
instances with their class names and a name=value pair for
each attribute stored on the instance itself. Mixed into
celnav and cnapp classes to aid testing.
The package will be installed into the directory that contains 3rd party
distributions in your Python installation.
Subfolder ./data_files
----------------------
celnav.ini - Configuration file for setting application parameters such
as path names and initial latitude and longitude values.
Will be installed into $HOME/.celnav/
celnav.cfg - Xdefaults-type configuration file, defining options for the
Tkinter widgtes used in the GUI. Will be installed into
$HOME/.celnav. Path and filename can be changed in
celnav.ini if required.
doc/ - Folder with html help files. Contents will be placed into
/usr/local/share/doc/celnav. Can be accessed via the
application's Help menu.
nxcn - Minimalistic shell script that executes 'python
/opt/celnav/cnscript.py'. It redirects/appends stderr to
$HOME/.celnav/celnav.err and puts a timestamp in that file
before launching the application. It will create the
directory if it doesn't exist. If the files '/etc/nx.lat'
and '/etc/nx.lon' exist it is assumed that these contain
most recent values for latitude and longitude in degrees
(incl. decimal fractions). This is the case under
Navigatrix, a common Linux distribution among cruisers (see
http://navigatrix.net). If these files are found, the nxcn
shell script will use lat/lon values from these files to
update the INITIAL_LAT and INITIAL_LON parameters in
celnav.ini prior to launching the application.
celnav.desktop - LXDE desktop file. Will be installed in
/usr/local/share/applications and points to the nxcn shell
script which is assumed to reside in /usr/local/bin and
defines application category ("Navigation") and icon for
the LXDE environment. Can be ignored if not running under
LXDE.
navtriangle.png - 48x48 icon image. celnav.desktop assumes this file resides
in /usr/local/share/icons/.
-------------------------------------------------------------------------------
INSTALLATION
-------------------------------------------------------------------------------
As mentioned above, Python 2.6 or later, Tkinter plus ttk and PyEphem must be
installed for CelNav to run (the program has been tested under Python 2.6.5.).
To install the celnav pacakge and its auxilliary files:
(1) Extract the contents of the archive file into any directory, preserving the
folder structure.
(2) Open a terminal in the folder CelNav-0.2.0 and run
python setup.py install
at the command line. This will install the celnav package and place the
auxilliary files (e.g. icon, shell script) in their respective target
directories. Note that - depending on your system setup - you may need to
run the above command as root. In this case type
sudo python setup.py install
at the command prompt.
(3) If the auxilliary files
/usr/local/bin/nxcn (shell script)
/usr/local/share/applications/celnav.desktop (LXDE desktop file)
/usr/local/share/icons/navtriangle.png (icon image file)
already exist on the target platform, these files will not be installed.
This is to avoid accidental overwriting of other files with these same
names. In this case the setup.py installation script will print a message
which of these files have been skipped during installation and ask you to
manually check whether you want to overvrite the exisiting files. In this
case you can simply copy the file(s) from the package into their respective
target directories.
Any existing files in /opt/celnav will be moved into a subdirectory
"moved_by_CelNav_0.2.0".
That's it. A few notes:
+ Whenever a fix is calculated, CelNav will log all data for that fix to a
file. The name for that file is set via the parameter LOG_FILE in
celnav.ini (default: celnav.log). The file will be placed in the directory
set via the variable APP_DIR in cnapp.py (default $HOME/.celnav). There is
no housekeeping; the application will keep appending to the file. You can
simply delete the file should it grow too big (will take a few thousand
sights though...) and CelNav will start a fresh one.
+ CelNav can write the data contained in the "daily pages" of the Nautical
Alamanc to a comma-separated text file (hourly GHA Aries, GHA and Dec for
Sun, Moon and planets, plus HP for the Moon). After writing the file it
will call the program defined by the parameter SPREADSHEET_PATH in
celnav.ini to display the file. Default for this parameter is
/usr/bin/gnumeric which shows the data in the Gnumeric spreadsheet
application that is part of Navigatrix. Configure a different application
executable (incl. path) in celnav.ini if you use a different spreadsheet
application. You can open celnav.ini from CelNav's File menu. The program
defined by SPREADSHEET_PATH will also be called to display star data and
the CelNav log file (see above).
+ The parameter EDITOR_PATH in celnav.ini defines a text editor to be used
for displaying the ini file and the error log.
+ The parameter BROWSER_PATH in celnav.ini defined the browser to be used for
displaying the CelNav help file.
-------------------------------------------------------------------------------
USAGE
-------------------------------------------------------------------------------
Should be straight forward. The application offers three tabs:
(1) Almanac
-----------
Allows you to enter a date and a lat/lon position and will display Sun and Moon
rise/set/transit times and twighlight hours for that day. In addition it will
show the Equation of Time for that day (with negative values indicating the
apparent sun being ahead of the mean sun), the dates of previous and next full
and new moons, and how many days the moon is into its current cycle.
All dates and times on this tab are UT. If you enter a lat/lon and press
"Update Display" the times shown for the various events will be for that
position but still be expressed in UT.
Pressing the "Almanac Page" button will generate a comma-separated text file
with hourly GHA and Declination data for Aries, Sun, Moon and planets. CelNav
will open this file in the Gnumeric spreadsheet application (or any application
specified via the SPREADSHEET_PATH parameter in celnav.ini). All angles are
displayed in degrees with decimal fractions (with the usual "S/W = -" sign
convention) as well as in the traditional Almanac format (e.g. "N 35 17.2").
Pressing the "Star Data" button will generate a comma-separated text file with
SHA and Declination data for the 57 navigational stars plus Polaris. The file
will also contain altitude and azimuth data for each star for the UT and
Lat/Lon entered by the user. As with the Almanac Page the file will be opened
in a spreadsheet application and can be used as a simple tool to select
suitable stars for a sight at a given UT.
(2) Planet Finder
-----------------
A visual aide for quickly checking which planets are available at given UT and
Lat/Lon entered by the user. The times during which planets will be above the
horizon will displayed in a simple Gantt chart on a 24hr grid on which twilight
periods are shaded.
(3) Sight Reduction & Fix
-------------------------
This tab allows entry of the usual data for a celestial sight and will
calculate intercept and azimuth for that sight. It will also calculate an
intercept corrected for the motion of the observer (MOO). The latter will be
used to calculate a fix from 2 LOPs as a "short run fix".
The structure of this tab has a "Fix" at its top level. Associated with the fix
are vessel SOG and COG (used for the MOO correction of the intercept) and the
time for which the fix is to be calculated (this allows to use a time "close
to" but different from the time of sights, for example to accommodate some
plotting routine or comparison with a GPS reading.
Under the Fix you can have one or more LOPs and each LOP can have one or more
Sights. If there is only one LOP no Fix can be calculated but you can still
reduce the Sights for that LOP. The idea of multiple Sights per LOP allows you
to take a number of sights of a body in quick succession, have the application
reduce all of them, and pick for example the one with the median intercept,
thus eliminating any outliers (via the radio button selector to the right of
the Sights).
The Fix calculation performed by CelNav is a simple 2-LOP plane geometry fix
(same as you would do on a plotting sheet). The application will show an error
message if you have less or more than two LOPs and press "Calculate Fix".
About
Celestial navigation for cruising sailors
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published