Compare commits

...

45 Commits
0.9 ... main

Author SHA1 Message Date
Jeff Moe 6f52839f76 Pics of SBCs 2022-10-13 15:07:08 -06:00
Jeff Moe 5e9822fd33 s/glsfmtshort/gls to fix broken captions 2022-09-16 22:50:58 -06:00
Jeff Moe f020189ac0 USSPACECOM to abbr. hmm. 2022-09-16 19:30:34 -06:00
Jeff Moe 9c81be5aa9 mv *hertz to abbr 2022-09-16 18:30:52 -06:00
Jeff Moe c86c69c836 Caps for acronyms 2022-09-16 18:24:25 -06:00
Jeff Moe 9364e248f8 Move acronyms to front matter 2022-09-16 18:12:37 -06:00
Jeff Moe 0fb96eb161 Two columns for Abbr/Acronyms 2022-09-16 16:43:55 -06:00
Jeff Moe c986ec5188 Volt abbr 2022-09-16 16:13:38 -06:00
Jeff Moe fa45b8ce68 Convert Abbr/acronyms to dual 2022-09-16 16:01:41 -06:00
Jeff Moe 1d600b14ad Convert glossaries ala Vel 2022-09-16 16:00:12 -06:00
Jeff Moe b01e1084a7 Hamlib telescope mounts 2022-09-15 20:07:04 -06:00
Jeff Moe 96bf85ce8e Add LinBiolinum_RI 2022-09-15 19:48:56 -06:00
Jeff Moe adbedcdc12 Add LinBiolinum_RB 2022-09-15 19:47:55 -06:00
Jeff Moe ea80ba9fde Add LinBiolinum_R 2022-09-15 19:46:33 -06:00
Jeff Moe d312121b7f Add LinLibertine_RI 2022-09-15 19:42:10 -06:00
Jeff Moe 72db58a78e Use Volt short form 2022-09-15 19:32:52 -06:00
Jeff Moe 21d7d189c3 Use glsfmtshort for captions 2022-09-15 19:27:29 -06:00
Jeff Moe a12d76572f Notes on tracking mounts 2022-09-15 16:52:40 -06:00
Jeff Moe ff17b6992a Add fonts directory 2022-09-09 20:44:06 -06:00
Jeff Moe f67f632bd9 FoV artifact PNG. Cleanups etc. 2022-09-09 15:13:34 -06:00
Jeff Moe 406894465c Pierros FITS. ntpdate -b, glossary, etc. 2022-09-07 16:08:52 -06:00
Jeff Moe 774bc58ef5 typo fixo 2022-09-06 16:57:47 -06:00
Jeff Moe 4ba3924b4a glossary/index fixes 2022-09-06 14:30:46 -06:00
Jeff Moe 16bbb5521e indexing, glossary words, misc 2022-09-06 14:09:43 -06:00
Jeff Moe 26f56dfa3a sm fixes 2022-09-06 13:06:35 -06:00
Jeff Moe 28bedaad4a altazimuth mount to glossary 2022-09-06 04:47:28 -06:00
Jeff Moe 9997a8c706 Clean up index 2022-09-06 04:34:24 -06:00
Jeff Moe 8021c5d4ef rm space 2022-09-06 04:05:06 -06:00
Jeff Moe da7dcec037 Acronym show long/short 2022-09-06 03:57:45 -06:00
Jeff Moe 13f48d8610 Index with acronyms, long short, etc 2022-09-06 03:27:40 -06:00
Jeff Moe 7f89611d18 Index with meh (ACRONYM), but empty () too 2022-09-06 02:16:38 -06:00
Jeff Moe f673ef4510 Add longs to glossary 2022-09-06 01:51:27 -06:00
Jeff Moe 1104915af6 include desc and long in acronym 2022-09-06 01:20:15 -06:00
Jeff Moe 1a9108552d rm more duplicates. Index sort on visible word 2022-09-06 00:34:42 -06:00
Jeff Moe e3e9647533 Dont list page numbers in glossary/acronym 2022-09-06 00:27:19 -06:00
Jeff Moe fb949b901a Glossary without letter headings 2022-09-06 00:23:47 -06:00
Jeff Moe c3e9a5e07f rm duplicate index/glossary entries 2022-09-06 00:16:31 -06:00
Jeff Moe 5f211905e2 Fix glossary words with spaces in name 2022-09-05 23:48:35 -06:00
Jeff Moe f095b0ba15 Convert Glossary/Acronyms to bib2gls etc..... 2022-09-05 23:12:55 -06:00
Jeff Moe abebf3448d Docker. sm fixes 2022-09-05 11:50:28 -06:00
Jeff Moe f073313088 Some tracks are trails. Dab Upload 2022-09-04 18:23:21 -06:00
Jeff Moe 345549ae99 binning 2022-09-04 17:53:52 -06:00
Jeff Moe e279e3b736 Docker section, glossary, link 2022-09-04 17:45:02 -06:00
Jeff Moe 33b3fb3af6 sm fixes 2022-09-04 17:18:37 -06:00
Jeff Moe 3d0c8e51c0 IP, clarify, longplural 2022-09-04 17:08:45 -06:00
43 changed files with 1723 additions and 1099 deletions

6
.gitignore vendored
View File

@ -6,6 +6,9 @@ tmp/
.~lock.*.ods#
.fuse_hidden*
_minted-*
*.acn
*.acr
*.alg
*.aux
*.bak
*.bak0
@ -14,8 +17,11 @@ _minted-*
*.blg
*.fits
*.glg
*.glg-abr
*.glo
*.glo-abr
*.gls
*.gls-abr
*.glstex
*.idx
*.ilg

View File

@ -0,0 +1,43 @@
% Encoding: UTF-8
@dualabbreviation{V,
description = {Volt.},
short = {V},
long = {Volt}
}
@dualabbreviation{Hz,
description = {hertz.},
short = {Hz},
long = {hertz}
}
@dualabbreviation{kHz,
description = {kilohertz.},
short = {kHz},
long = {kilohertz}
}
@dualabbreviation{MHz,
description = {megahertz.},
short = {MHz},
long = {megahertz}
}
@dualabbreviation{GHz,
description = {gigahertz.},
short = {GHz},
long = {gigahertz}
}
@dualabbreviation{USSPACECOM,
description = {United States Space Command.},
short = {USSPACECOM},
long = {United States Space Command}
}
@dualabbreviation{SPACECOM,
description = {United States Space Command.},
short = {SPACECOM},
long = {United States Space Command}
}

View File

@ -11,13 +11,13 @@
\section{Overview of Operation}
\label{sec:overview-operation}
\index{operation}\index{ground station}
Below shows how to run a SatNOGS Optical \gls{ground-station},
\index{operation}
Below shows how to run a \gls{SatNOGS-Optical} \gls{ground-station},
after it has been set up and configured.
\section{Setup with \texttt{stvid}}
\label{sec:stvid-setup}
\index{stvid}\index{acquire}
\index{acquire}
\index{virtualenv}
Acquire data with \texttt{acquire.py} from \texttt{\gls{stvid}}.
Enter \texttt{virtualenv}, if used:
@ -28,7 +28,7 @@ source env/bin/activate
\end{minted}
Get the latest \glspl{TLE}:
\index{TLE}
\begin{minted}{sh}
./update_tle.py
@ -41,19 +41,19 @@ Acquire live data from camera.
cd stvid/
./acquire.py
\end{minted}
\index{acquire}\index{stvid}
\index{acquire}
\begin{sidewaysfigure}[p!]
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{stvid-acquire-0.png}
\caption{Satellite images acquired by stvid.}
\label{fig:stvid-acquire}
\index{stvid}\index{acquire}
\index{acquire}
\end{sidewaysfigure}
\section{\texttt{acquire.py} Output}
\label{sec:acquire-output}
\index{acquire}\index{stvid}\index{FITS}
\index{acquire}\index{configuration.ini}\index{FITS}
Example output while running \texttt{acquire.py}.

540
src/Acronyms.bib 100644
View File

@ -0,0 +1,540 @@
% Encoding: UTF-8
@dualacronym{NORAD-ID,
description = {is a sequential nine-digit number assigned by the \gls{USSPACECOM} in the order of launch or discovery to all artificial objects in the \glspl{orbit} of Earth and those that left Earth's \glspl{orbit}. Space Command shares the catalog via \url{space-track.org}, which is maintained by the 18th \gls{SDS}. NORAD ID is also known as a satellite catalog number.%
\footnote{\cite{enwiki:Satellite_Catalog_Number}}},
short = {NORAD ID},
long = {North American Aerospace Defense Catalog Number}
}
@dualacronym{USM,
description = {is a type of piezoelectric motor powered by the ultrasonic vibration of a component, the stator, placed against another component, the rotor or slider depending on the scheme of operation (rotation or linear translation). One common application of ultrasonic motors is in camera lenses where they are used to move lens elements as part of the auto-focus system.%
\footnote{\cite{enwiki:Ultrasonic_motor}}},
short = {USM},
long = {Ultrasonic Motor}
}
@dualacronym{OS,
description = {An operating system is system software that manages computer hardware, software resources, and provides common services for computer programs.%
\footnote{\cite{enwiki:Operating_system}}},
short = {OS},
long = {Operating System}
}
@dualacronym{INDI,
description = {Instrument Neutral Distributed Interface is a \gls{DCS} protocol to enable control, data acquisition and exchange among hardware devices and software front ends, emphasizing astronomical instrumentation.%
\footnote{\cite{enwiki:Instrument-Neutral-Distributed-Interface}}},
short = {INDI},
long = {Instrument Neutral Distributed Interface}
}
@dualacronym{DFSG,
description = {Debian Free Software Guidelines is a set of guidelines that the \gls{Debian} Project uses to determine whether a software license is a \gls{free-software} license, which in turn is used to determine whether a piece of software can be included in \gls{Debian}. The DFSG is part of the \gls{Debian} Social Contract.%
\footnote{\cite{enwiki:Debian-Free-Software-Guidelines}}},
short = {DFSG},
long = {Debian Free Software Guidelines}
}
@dualacronym{FITS,
description = {Flexible Image Transport System is an open standard defining a digital file format useful for storage, transmission and processing of data: formatted as multi-dimensional arrays (for example a 2D image), or tables. FITS is the most commonly used digital file format in astronomy. The FITS standard was designed specifically for astronomical data, and includes provisions such as describing photometric and spatial calibration information, together with image origin metadata.%
\footnote{\cite{Wiki22:fitswikipfreeencyc}}},
short = {FITS},
long = {Flexible Image Transport System}
}
@dualacronym{SDR,
description = {Software-defined radio is a radio communication system where components that have been traditionally implemented in analog hardware (e.g. mixers, filters, amplifiers, modulators/demodulators, detectors, etc.) are instead implemented by means of software on a \gls{PC} or \gls{embedded-system}. SDRs are used in \gls{SatNOGS} \glspl{ground-station}.%
\footnote{\cite{Wiki22:softwdefinradiowikipfreeencyc}}
},
short = {SDR},
long = {Software-defined radio}
}
@dualacronym{LSF,
description = {Libre Space Foundation is a non-profit foundation registered since 2015 in Greece and the creators of the SatNOGS project.%
\footnote{\url{https://libre.space/about-us/}}
},
short = {LSF},
long = {Libre Space Foundation}
}
@dualacronym{RF,
description = {Radio frequency is the oscillation rate of an alternating electric current or voltage or of a magnetic, electric or electromagnetic field or mechanical system in the frequency range from around 20 \gls{kHz} to around 300 \gls{GHz}. This is roughly between the upper limit of audio frequencies and the lower limit of infrared frequencies; these are the frequencies at which energy from an oscillating current can radiate off a conductor into space as radio waves.%
\footnote{\cite{Wiki22:radiofrequwikipfreeencyc}}
},
short = {RF},
long = {Radio Frequency}
}
@dualacronym{VHF,
description = {Very High Frequency is the \gls{ITU} designation for the range of radio frequency electromagnetic waves (radio waves) from 30 to 300 \gls{MHz}, with corresponding wavelengths of ten meters to one meter. Frequencies immediately below VHF are denoted high frequency (HF), and the next higher frequencies are known as \gls{UHF}.%
\footnote{\cite{Wiki22:veryhighfrequwikipfreeencyc}}
},
short = {VHF},
long = {Very High Frequency}
}
@dualacronym{UHF,
description = {Ultra High Frequency is the \gls{ITU} designation for radio frequencies in the range between 300 \gls{MHz} and 3 \gls{GHz}, also known as the decimetre band as the wavelengths range from one meter to one tenth of a meter (one decimeter). Lower frequency signals fall into the \gls{VHF} or lower bands.%
\footnote{\cite{Wiki22:ultrahighfrequwikipfreeencyc}}
},
short = {UHF},
long = {Ultra High Frequency}
}
@dualacronym{ITU,
description = {The International Telecommunication Union is a specialized agency of the United Nations responsible for many matters related to information and communication technologies.%
\footnote{\cite{Wiki22:intertelecunionwikipfreeencyc}}
},
short = {ITU},
long = {International Telecommunication Union}
}
@dualacronym{GNU,
description = {``GNU's Not Unix!'' is an extensive collection of \gls{free-software}, which can be used as an \gls{OS} or can be used in parts with other \glspl{OS}. The use of the completed GNU tools led to the family of operating systems popularly known as \gls{Linux}. Most of GNU is licensed under the GNU Project's own \gls{GPL}. GNU is also the project within which the \gls{free-software} concept originated.%
\footnote{\cite{Wiki22:gnuwikipfreeencyc}}
},
short = {GNU},
long = {GNU's Not Unix!}
}
@dualacronym{GPL,
description = {GNU General Public License is a series of widely used \gls{free-software} licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general use. Historically, the GPL license family has been one of the most popular software licenses in the \gls{FLOSS} software domain.%
\footnote{\cite{Wiki22:gnugenerpublilicenwikipfreeencyc}}
},
short = {GPL},
long = {GNU General Public License}
}
@dualacronym{SGP,
description = {Simplified General Perturbations models apply to near earth objects with an orbital period of less than 225 minutes. Simplified \glspl{perturbation} models are a set of five mathematical models (SGP, SGP4, SDP4, SGP8 and SDP8) used to calculate orbital state vectors of \glspl{satellite} and space debris relative to the Earth-centered inertial coordinate system. This set of models is often referred to collectively as SGP4 due to the frequency of use of that model particularly with \gls{TLE} sets produced by \gls{NORAD} and \gls{NASA}. These models predict the effect of \glspl{perturbation} caused by the Earth's shape, drag, radiation, and gravitation effects from other bodies such as the sun and moon. See also: \gls{SDP}.%
\footnote{\cite{enwiki:Simplified_perturbations_models}}
},
short = {SGP},
long = {Simplified General Perturbations}
}
@dualacronym{SDP,
description = {Simplified Deep Space Perturbations models apply to objects with an orbital period greater than 225 minutes, which corresponds to an altitude of 5,877.5 km, assuming a circular orbit. See also: \gls{SGP}.%
\footnote{\cite{enwiki:Simplified_perturbations_models}}
},
short = {SDP},
long = {Simplified Deep Space Perturbations}
}
@dualacronym{NORAD,
description = {North American Aerospace Defense Command is a combined organization of the United States and Canada that provides aerospace warning, air sovereignty, and protection for Canada and the continental United States.%
\footnote{\cite{enwiki:NORAD}}
},
short = {NORAD},
long = {North American Aerospace Defense Command}
}
@dualacronym{NASA,
description = {is an independent agency of the US federal government responsible for the civil space program, aeronautics research, and space research.%
\footnote{\cite{enwiki:NASA}}
},
short = {NASA},
long = {National Aeronautics and Space Administration}
}
@dualacronym{OSH,
description = {open-source hardware consists of physical artifacts of technology designed and offered by the open-design movement. Both \gls{FOSS} and open-source hardware are created by the open-source culture movement and apply a like concept to a variety of components. It is sometimes, thus, referred to as \gls{FOSH}. The term usually means that information about the hardware is easily discerned so that others can make it---coupling it closely to the maker movement. Hardware design (i.e. mechanical drawings, schematics, bills of material, \gls{PCB} layout data, \gls{HDL} source code and integrated circuit layout data), in addition to the software that drives the hardware, are all released under free/\gls{libre} terms. The original sharer gains feedback and potentially improvements on the design from the \gls{FOSH} community. There is now significant evidence that such sharing can drive a high return on investment for the scientific community. It is not enough to merely use an \gls{open-source} license; an \gls{open-source} product or project will follow \gls{open-source} principles, such as modular design and community collaboration.%
\footnote{\cite{enwiki:Open-source-hardware}}
},
short = {OSH},
long = {Open Source Hardware}
}
@dualacronym{FOSS,
description = {free and \gls{open-source} software is a term used to refer to groups of software consisting of both \gls{free-software} and \gls{OSS} where anyone is freely licensed to use, copy, study, and change the software in any way, and the source code is openly shared so that people are encouraged to voluntarily improve the design of the software. This is in contrast to proprietary software, where the software is under restrictive copyright licensing and the source code is usually hidden from the users. FOSS maintains the software user's civil liberty rights. Other benefits of using FOSS can include decreased software costs, increased security and stability (especially in regard to malware), protecting privacy, education, and giving users more control over their own hardware. Free and open-source operating systems such as \gls{Linux} and descendants of \gls{BSD} are widely utilized today, powering millions of servers, desktops, smartphones (e.g., Android), and other devices. Free-software licenses and \gls{open-source} licenses are used by many software packages. The free software movement and the \gls{open-source} software movement are online social movements behind widespread production and adoption of FOSS, with the former preferring to use the terms \gls{FLOSS} or free/\gls{libre}.%
\footnote{\cite{enwiki:Free-and-open-source-software}}
},
short = {FOSS},
long = {Free and Open Source Software}
}
@dualacronym{OSS,
description = {open-source software is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Open-source software may be developed in a collaborative public manner. Open-source software is a prominent example of open collaboration, meaning any capable user is able to participate online in development, making the number of possible contributors indefinite. The ability to examine the code facilitates public trust in the software. Open source code can be used for studying and allows capable end users to adapt software to their personal needs in a similar way user scripts and custom style sheets allow for web sites, and eventually publish the modification as a fork for users with similar preference.%
\footnote{\cite{enwiki:Open-source-software}}
},
short = {OSS},
long = {Open Source Software}
}
@dualacronym{IP,
longplural = {Internet Protocol Addresses},
description = {Internet Protocol Address.},
short = {IP},
long = {Internet Protocol Address}
}
@dualacronym{DSLR,
description = {digital single-lens reflex.},
short = {DSLR},
long = {Digital Single Lens Reflex}
}
@dualacronym{PoE,
description = {Power over Ethernet.},
short = {PoE},
long = {Power over Ethernet}
}
@dualacronym{GNSS,
description = {Global Navigation \Gls{satellite} System.},
short = {GNSS},
long = {Global Navigation Satellite System}
}
@dualacronym{GPS,
description = {Global Positioning System.},
short = {GPS},
long = {Global Positioning System}
}
@dualacronym{IP67,
description = {Ingress Protection code 67.},
short = {IP67},
long = {Ingress Protection code 67}
}
@dualacronym{SSA,
description = {Space Situational Awareness.},
short = {SSA},
long = {Space Situational Awareness}
}
@dualacronym{WCS,
description = {World Coordinate System.},
short = {WCS},
long = {World Coordinate System}
}
@dualacronym{CMOS,
description = {Complementary metal-oxide-semiconductor (pronounced ``see-moss'').},
short = {CMOS},
long = {Complementary Metal Oxide Semiconductor}
}
@dualacronym{CCD,
description = {charge-coupled device.},
short = {CCD},
long = {Charge Coupled Device}
}
@dualacronym{SIDLOC,
description = {Spacecraft Identification and Localization.},
short = {SIDLOC},
long = {Spacecraft Identification and Localization}
}
@dualacronym{RASA,
description = {Rowe-Ackermann Schmidt \Gls{astrograph}.},
short = {RASA},
long = {Rowe-Ackermann Schmidt Astrograph}
}
@dualacronym{COTS,
description = {Commodity off the shelf.},
short = {COTS},
long = {Commodity Off The Shelf}
}
@dualacronym{FOSH,
description = {Free open-source hardware. See also: \gls{OSH}.},
short = {FOSH},
long = {Free Open Source Hardware}
}
@dualacronym{FLOSS,
description = {Free/libre and open-source software. See also: \gls{FOSS}.},
short = {FLOSS},
long = {Free/Libre and Open Source Software}
}
@dualacronym{SIP,
description = {Simple Imaging Polynomial.},
short = {SIP},
long = {Simple Imaging Polynomial}
}
@dualacronym{FoV,
description = {Field of view.},
short = {FoV},
long = {Field of View}
}
@dualacronym{DCS,
description = {distributed control system.},
short = {DCS},
long = {Distributed Control System}
}
@dualacronym{PNG,
description = {Portable Network Graphics.},
short = {PNG},
long = {Portable Network Graphics}
}
@dualacronym{CSV,
description = {Comma Separated Value.},
short = {CSV},
long = {Comma Separated Value}
}
@dualacronym{NTP,
description = {Network Time Protocol.},
short = {NTP},
long = {Network Time Protocol}
}
@dualacronym{IPv6,
description = {Internet Protocol version 6.},
short = {IPv6},
long = {Internet Protocol version 6}
}
@dualacronym{ISS,
description = {International Space Station.},
short = {ISS},
long = {International Space Station}
}
@dualacronym{LEO,
description = {Low Earth Orbit.},
short = {LEO},
long = {Low Earth Orbit}
}
@dualacronym{GEO,
description = {Geostationary orbit.},
short = {GEO},
long = {Geostationary Orbit}
}
@dualacronym{HEO,
description = {High Earth orbit.},
short = {HEO},
long = {High Earth Orbit}
}
@dualacronym{MEO,
description = {Medium Earth orbit.},
short = {MEO},
long = {Medium Earth Orbit}
}
@dualacronym{GSO,
description = {Geosynchronous orbit.},
short = {GSO},
long = {Geosynchronous Orbit}
}
@dualacronym{PCB,
description = {Printed circuit board.},
short = {PCB},
long = {Printed Circuit Board}
}
@dualacronym{HDL,
description = {Hardware description language.},
short = {HDL},
long = {Hardware Description Language}
}
@dualacronym{V4L2,
description = {Video for Linux v2.},
short = {V4L2},
long = {Video for Linux v2}
}
@dualacronym{BSD,
description = {Berkeley Software Distribution.},
short = {BSD},
long = {Berkeley Software Distribution}
}
@dualacronym{SDK,
description = {Software development kit.},
short = {SDK},
long = {Software Development Kit}
}
@dualacronym{MIPI,
description = {Mobile Industry Processor Interface.},
short = {MIPI},
long = {Mobile Industry Processor Interface}
}
@dualacronym{ASM,
description = {All Sky Monitor.},
short = {ASM},
long = {All Sky Monitor}
}
@dualacronym{PTZ,
description = {Pan-tilt-zoom.},
short = {PTZ},
long = {Pan Tilt Zoom}
}
@dualacronym{PPS,
description = {Pulse per second.},
short = {PPS},
long = {Pulse Per Second}
}
@dualacronym{USB,
description = {Universal Serial Bus.},
short = {USB},
long = {Universal Serial Bus}
}
@dualacronym{NUC,
description = {Next Unit of Computing.},
short = {NUC},
long = {Next Unit of Computing}
}
@dualacronym{DC,
description = {Direct current.},
short = {DC},
long = {Direct Current}
}
@dualacronym{EQ,
description = {Equatorial.},
short = {EQ},
long = {Equatorial}
}
@dualacronym{IDK,
description = {I don't know.},
short = {IDK},
long = {I Don't Know}
}
@dualacronym{DB,
description = {Database.},
short = {DB},
long = {Database}
}
@dualacronym{UVC,
description = {USB video device class.},
short = {UVC},
long = {USB Video device Class}
}
@dualacronym{CV,
description = {Computer vision.},
short = {CV},
long = {Computer Vision}
}
@dualacronym{PIP,
description = {Package Installer for Python.},
short = {PIP},
long = {Package Installer for Python}
}
@dualacronym{RAM,
description = {Random-access memory.},
short = {RAM},
long = {Random Access Memory}
}
@dualacronym{GLONASS,
description = {Global Navigation Satellite System.},
short = {GLONASS},
long = {Global Navigation Satellite System}
}
@dualacronym{BDS,
description = {BeiDou Navigation Satellite System.},
short = {BDS},
long = {BeiDou Navigation Satellite System}
}
@dualacronym{SBC,
description = {Single board computer.},
short = {SBC},
long = {Single Board Computer}
}
@dualacronym{BIOS,
description = {Basic Input/Output System.},
short = {BIOS},
long = {Basic Input/Output System}
}
@dualacronym{OSAT,
description = {open-source appropriate technology.},
short = {OSAT},
long = {Open Source Appropriate Technology}
}
@dualacronym{PC,
description = {Personal Computer.},
short = {PC},
long = {Personal Computer}
}
@dualacronym{CGPM,
description = {General Conference on Weights and Measures.},
short = {CGPM},
long = {General Conference on Weights and Measures}
}
@dualacronym{API,
description = {application programming interface.},
short = {API},
long = {Application Programming Interface}
}
@dualacronym{CPU,
description = {central processing unit.},
short = {CPU},
long = {Central Processing Unit}
}
@dualacronym{NGC,
description = {New General Catalogue of Nebulae and Clusters of Stars.},
short = {NGC},
long = {New General Catalogue of Nebulae and Clusters of Stars}
}
@dualacronym{FLIR,
description = {Forward-looking infrared.},
short = {FLIR},
long = {Forward Looking Infrared}
}
@dualacronym{SDS,
description = {Space Defense Squadron.},
short = {SDS},
long = {Space Defense Squadron}
}
@dualacronym{PaaS,
description = {Platform as a Service.},
short = {PaaS},
long = {Platform as a Service}
}
@dualacronym{SI,
description = {The International System of Units, known by the international abbreviation SI in all languages and sometimes pleonastically as the SI system, is the modern form of the metric system and the world's most widely used system of measurement. Established and maintained by the \gls{CGPM}, it is the only system of measurement with an official status in nearly every country in the world, employed in science, technology, industry, and everyday commerce.%
\footnote{\cite{Wiki22:intersysteunitswikipfreeencyc}}
},
short = {SI},
long = {International System of Units}
}
@dualacronym{TLE,
description = {two-line element set is a data format encoding a list of orbital elements of an Earth-orbiting object for a given point in time, the epoch. Using a suitable prediction formula, the state (position and velocity) at any point in the past or future can be estimated to some accuracy. TLEs can describe the trajectories only of Earth-orbiting objects. TLEs are widely used as input for projecting the future orbital tracks of space debris for purposes of characterizing ``future debris events to support risk analysis, close approach analysis, collision avoidance maneuvering'' and forensic analysis. The format was originally intended for punched cards, encoding a set of elements on two standard 80-column cards.%
\footnote{\cite{Wiki22:twolineelemesetwikipfreeencyc}}
},
short = {TLE},
long = {Two Line Element set}
}

View File

@ -11,23 +11,22 @@
\section{Satellite Detection with stvid}
\label{sec:satellite-detection}
\index{detect}\index{stvid}\index{process}\index{Python}
\index{FITS}
\index{detect}\index{process}
This is a description of \gls{satellite} detection processes.
To detect \gls{satellite} in a \gls{FITS} file using the stvid \gls{toolchain},
To detect \gls{satellite} in a \gls{FITS} file using the \gls{stvid} \gls{toolchain},
run \texttt{process.py} or, if it exists, the \texttt{process\_new.py}
\gls{Python} script.
Note the \texttt{stvid} application's \texttt{process.py} and \texttt{process\_new.py}
will perform both the detection and identification steps.
\index{identify}
\index{identify}\index{detect}
\subsection{\texttt{process\_new.py} Usage}
\index{process}\index{stvid}
\index{process}
This assumes you have installed \texttt{stvid} as shown in section \ref{sec:stvid-setup}
\pageref{sec:stvid-setup}.
This assumes you have installed \texttt{\gls{stvid}} as shown in
section \ref{sec:stvid-setup}, page \pageref{sec:stvid-setup}.
Adjust the dated directory used in this example to the actual directory name.
\begin{minted}{sh}
@ -37,10 +36,10 @@ cd stvid/
# Process directory
./process_new.py -c config_new.ini -d data/obs/20220825_1/020502/
\end{minted}
\index{stvid}\index{TLE}\index{process}
\index{process}\index{TLE}\index{config\_new.ini}
\subsection{\texttt{process.py} Usage}
\index{stvid}
If there is no \texttt{process\_new.py} it has likely been merged into
\texttt{process.py}. Or perhaps, to use the ``older'' script it would
be run as shown below. Note, the old and new configuration files
@ -51,12 +50,12 @@ script.
cd stvid/
./process.py -c configuration.ini -d data/obs/20220825_1/020502/
\end{minted}
\index{stvid}\index{process}
\index{process}\index{configuration.ini}
\subsection{\texttt{process\_new.py Example Output}}
\label{sec:process-output}
\index{stvid}\index{FITS}\index{process}
\index{process}\index{config\_new.ini}
\begin{minted}{sh}
Computing astrometric calibration for /srv/obs/odroid-01/obs/20220902_1/043309/2022-09-02T04:33:09.871.fits
@ -69,12 +68,12 @@ File queue empty, waiting for new files...
90000 22 500A 9999 G 20220902043336020 17 25 1433368+375908 37 S
2022-09-02T04:33:40.315.fits 216.815570 31.756676 206/ 342 10.1 13.1 16.54 +- 0.70
\end{minted}
\index{astometry.net}\index{FITS}\index{process}
\index{astometry.net}\index{process}
\section{AstroImageJ}
\label{sec:astroimagej}
\index{identify}\index{AstroImageJ}\index{FITS}
\index{identify}
Analyze data with applications, such as \gls{AstroImageJ}.
@ -85,13 +84,11 @@ See
\ref{fig:astroimagej}, page \pageref{fig:astroimagej},
for a screenshot displaying a \gls{FITS} file generated by
\texttt{\gls{stvid}}.
\index{stvid}
\begin{sidewaysfigure}[p!]
\begin{center}
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{astroimagej.png}
\caption{AstroImageJ screenshot viewing FITS file.}
\index{AstroImageJ}\index{FITS}
\label{fig:astroimagej}
\end{center}
\end{sidewaysfigure}

508
src/Glossary.bib 100644
View File

@ -0,0 +1,508 @@
% Encoding: UTF-8
@entry{artificial-satellite,
name = {artificial satellite},
long = {artificial satellite},
description = {is a \gls{satellite} put into \gls{orbit} by humans, not ``naturally'' occurring.}
}
@entry{libre-software,
name = {libre software},
long = {libre software},
description = {See: \gls{free-software}.}
}
@entry{AstroImageJ,
name = {AstroImageJ},
long = {AstroImageJ},
description = {Application for astronomy and \gls{satellite} image analysis.%
\footnote{\url{https://www.astro.louisville.edu/software/astroimagej/}}
}
}
@entry{skymap,
name = {skymap},
long = {skymap},
description = {is part of \gls{sattools}. Visualize \glspl{satellite} on a map of the sky.%
\footnote{\url{https://github.com/cbassa/sattools/blob/master/skymap.c}}
}
}
@entry{satid,
name = {satid},
long = {satid},
description = {is part of \gls{sattools}.%
\footnote{\url{https://github.com/cbassa/sattools/blob/master/satid.c}}
}
}
@entry{sattools,
name = {sattools},
long = {sattools},
description = {Satellite Tracking Toolkit. The main \texttt{sattools} applications are being ported to \gls{stvid} and other related \gls{Python} applications.%
\footnote{\url{https://github.com/cbassa/sattools}}
}
}
@entry{satpredict,
name = {satpredict},
long = {satpredict},
description = {is a software application to compute \gls{satellite} predictions. It is used by \gls{stvid}.%
\footnote{\url{https://github.com/cbassa/satpredict}}
}
}
@entry{stvid,
name = {stvid},
long = {stvid},
description = {\Gls{satellite} tools video application for acquiring and processing sky images.%
\footnote{\url{https://github.com/cbassa/stvid}}
}
}
@entry{hough3d-code,
name = {hough3d-code},
long = {hough3d-code},
description = {is a software application for Iterative Hough Transform for Line Detection in 3D Point Clouds.%
\footnote{\url{https://gitlab.com/pierros/hough3d-code}}
}
}
@entry{ground-station,
name = {ground station},
long = {ground station},
description = {a setup of equipment such as computers, cameras, \glspl{SDR}, antennas, and receivers, located on Earth, observing space.
}
}
@entry{SatNOGS-Optical,
name = {SatNOGS Optical},
long = {SatNOGS Optical},
description = {is a project by the \gls{LSF} to add optical ground stations to the SatNOGS network.%
\footnote{\url{https://satnogs.org/}}
}
}
@entry{SatNOGS-DB,
name = {SatNOGS DB},
long = {SatNOGS DB},
description = {is an effort to create an hollistic, unified, global database for all artificial objects in space (\glspl{satellite} and spacecrafts). Users can view and export the data, contribute to it, or connect applications using an \gls{API}. It is part of the \gls{SatNOGS} project.%
\footnote{\url{https://db.satnogs.org/}}
}
}
@entry{SatNOGS,
name = {SatNOGS},
long = {SatNOGS},
description = {Open Source global network of \gls{satellite} ground stations.%
\footnote{\url{https://satnogs.org/}}
}
}
@entry{optical-ground-station,
name = {optical ground station},
long = {optical ground station},
description = {a ground station using optical equipment (cameras) instead of antennas.
}
}
@entry{antenna,
name = {antenna},
long = {antenna},
description = {the interface between radio waves propagating through space and electric currents moving in metal conductors, used with a transmitter or receiver.%
\footnote{\cite{Wiki22:antenradiowikipfreeencyc}}
}
}
@entry{mast,
name = {mast},
long = {mast},
description = {typically tall structures designed to support antennas for telecommunications and broadcasting.%
\footnote{\cite{Wiki22:radiomaststowerwikipfreeencyc}}
}
}
@entry{rotator,
name = {rotator},
long = {rotator},
description = {a device used to change the orientation, within the horizontal plane, of a directional antenna. Most antenna rotators have two parts, the rotator unit and the controller. The controller is normally placed near the equipment which the antenna is connected to, while the rotator is mounted on the antenna mast directly below the antenna. Rotators are commonly used in amateur radio.%
\footnote{\cite{Wiki22:antenrotatwikipfreeencyc}}
}
}
@entry{Debian,
name = {Debian},
long = {Debian},
description = {a \gls{GNU}/\gls{Linux} distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. Debian is the basis for many other distributions, notably Ubuntu.
Debian is one of the oldest operating systems based on the Linux kernel.%
\footnote{\cite{Wiki22:debiawikipfreeencyc}}
}
}
@entry{Linux,
name = {Linux},
long = {Linux},
description = {is a free and open-source, monolithic, modular, multitasking, \gls{Unix}-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based \gls{PC}, and it was soon adopted as the kernel for the \gls{GNU} \gls{OS}, which was written to be a free (\gls{libre}) replacement for \gls{Unix}.%
\footnote{\cite{Wiki22:linuxkernewikipfreeencyc}}
}
}
@entry{open-source,
name = {Open Source},
long = {Open Source},
description = {is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized software development model that encourages open collaboration. A main principle of open-source software development is peer production, with products such as source code, blueprints, and documentation freely available to the public. The open-source movement in software began as a response to the limitations of proprietary code. The model is used for projects such as in open-source \gls{appropriate-technology}.%
\footnote{\cite{Wiki22:opensourcwikipfreeencyc}}
}
}
@entry{free-software,
name = {Free Software},
long = {Free Software},
description = {or \gls{libre} software, is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, not price; all users are legally free to do what they want with their copies of a free software (including profiting from them) regardless of how much is paid to obtain the program. Computer programs are deemed ``free'' if they give end-users (not just the developer) ultimate control over the software and, subsequently, over their devices.%
\footnote{\cite{Wiki22:freesoftwwikipfreeencyc}}
}
}
@entry{Matrix,
name = {Matrix},
long = {Matrix},
description = {an open standard and communication protocol for real-time communication.%
\footnote{\cite{Wiki22:matriprotowikipfreeencyc}}
}
}
@entry{telescope,
name = {telescope},
long = {telescope},
description = {is an optical instrument using lenses, curved mirrors, or a combination of both to observe distant objects, or various devices used to observe distant objects by their emission, absorption, or reflection of electromagnetic radiation. The word telescope now refers to a wide range of instruments capable of detecting different regions of the electromagnetic spectrum, and in some cases other types of detectors.%
\footnote{\cite{enwiki:Telescope}}
}
}
@entry{astrograph,
name = {astrograph},
long = {astrograph},
description = {is a telescope designed for the sole purpose of astrophotography. Astrographs are mostly used in wide-field astronomical surveys of the sky and for detection of objects such as asteroids, meteors, and comets.%
\footnote{\cite{enwiki:Astrograph}}
}
}
@entry{satellite,
name = {satellite},
long = {satellite},
description = {is an object intentionally placed into \gls{orbit} in outer space. Except for passive satellites, most satellites have an electricity generation system for equipment on board. Most satellites also have a method of communication to ground stations, called transponders. Many satellites use a standardized bus to save cost and work, the most popular of which is small \Glspl{cubesat}. Similar satellites can work together as a group, forming constellations.%
\footnote{\cite{enwiki:Satellite}}
}
}
@entry{cubesat,
name = {CubeSat},
long = {CubeSat},
description = {is a class of miniaturized \gls{satellite} based around a form factor consisting of 10 cm (3.9 in) cubes. CubeSats have a mass of no more than 2 kg per unit, and often use \gls{COTS} components for their electronics and structure. CubeSats are put into \gls{orbit} by deployers on the \gls{ISS}, or launched as secondary payloads on a launch vehicle. More than a thousand CubeSats have been launched.%
\footnote{\cite{enwiki:CubeSat}}
}
}
@entry{orbit,
name = {orbit},
long = {orbit},
description = {is the curved trajectory of an object such as the trajectory of a planet around a star, or of a natural satellite around a planet, or of an artificial satellite around an object or position in space such as a planet, moon, asteroid, or \gls{Lagrange-point}. Normally, orbit refers to a regularly repeating trajectory, although it may also refer to a non-repeating trajectory. To a close approximation, planets and \glspl{satellite} follow elliptic orbits, with the center of mass being orbited at a focal point of the ellipse, as described by Kepler's laws of planetary motion. For most situations, orbital motion is adequately approximated by Newtonian mechanics, which explains gravity as a force obeying an inverse-square law. However, Albert Einstein's general theory of relativity, which accounts for gravity as due to curvature of spacetime, with orbits following geodesics, provides a more accurate calculation and understanding of the exact mechanics of orbital motion.%
\footnote{\cite{enwiki:Orbit}}
}
}
@entry{perturbation,
name = {perturbation},
long = {perturbation},
description = {is the complex motion of a massive body subjected to forces other than the gravitational attraction of a single other massive body. The other forces can include a third (fourth, fifth, etc.) body, resistance, as from an atmosphere, and the off-center attraction of an oblate or otherwise misshapen body.%
\footnote{\cite{enwiki:Perturbation-astronomy}}
}
}
@entry{telemetry,
name = {telemetry},
long = {telemetry},
description = {is the in situ collection of measurements or other data at remote points and their automatic transmission to receiving equipment (telecommunication) for monitoring. The word is derived from the Greek roots tele, ``remote'', and metron, ``measure''. Although the term commonly refers to wireless data transfer mechanisms (e.g., using radio, ultrasonic, or infrared systems), it also encompasses data transferred over other media such as a telephone or computer network, optical link or other wired communications like power line carriers.%
\footnote{\cite{enwiki:Telemetry}}
}
}
@entry{Grafana,
name = {Grafana},
long = {Grafana},
description = {is a multi-platform \gls{open-source} analytics and interactive visualization web application. It provides charts, graphs, and alerts for the web when connected to supported data sources. Users can create complex monitoring dashboards using interactive query builders. It is used by the \gls{SatNOGS} project to visualize \gls{satellite} \gls{telemetry}.%
\footnote{\cite{enwiki:Grafana}}
}
}
@entry{Python,
name = {Python},
long = {Python},
description = {is a high-level, interpreted, general-purpose programming language. Its design philosophy emphasizes code readability. It is often described as a ``batteries included'' language due to its comprehensive standard library. Python consistently ranks as one of the most popular programming languages. It is one of the main languages of the \gls{SatNOGS} project and \gls{stvid}.%
\footnote{\cite{enwiki:Python-language}}
}
}
@entry{C,
name = {C},
long = {C},
description = {is a general-purpose computer programming language. It was created in the 1970s by Dennis Ritchie, and remains very widely used and influential. By design, C's features cleanly reflect the capabilities of the targeted \glspl{CPU}. It has found lasting use in \glspl{OS}, device drivers, protocol stacks, though decreasingly for application software. C is commonly used on computer architectures that range from the largest supercomputers to the smallest microcontrollers and \glspl{embedded-system}. C is used in the \gls{sattools} suite of applications.%
\footnote{\cite{enwiki:C-language}}
}
}
@entry{libre,
name = {libre},
long = {libre},
description = {The English adjective free is commonly used in one of two meanings: ``at no monetary cost'' (gratis) and ``with little or no restriction'' (libre). This ambiguity of free can cause issues where the distinction is important, as it often is in dealing with laws concerning the use of information, such as copyright and patents. The terms gratis and libre may be used to categorise computer programs, according to the licenses and legal restrictions that cover them, in the \gls{free-software} and \gls{open-source} communities, as well as the broader free culture movement. For example, they are used to distinguish freeware (software gratis) from \gls{free-software} (software libre). ``Think free as in free speech, not free beer.'' -- Richard Stallman.%
\footnote{\cite{enwiki:Gratis-versus-libre}}
}
}
@entry{plate-solver,
name = {plate solver},
long = {plate solver},
description = {is software implementing a technique used in astronomy and applied on celestial images. Solving an image is finding match between the imaged stars and a \gls{star-catalogue}. The solution is a math model describing the corresponding astronomical position of each image pixel. The position of reference catalogue stars has to be known to a high accuracy so an astrometric reference catalogue is used. The image solution contains a reference point, often the image centre, image scale, image orientation and in some cases an image distortion model. With the astrometric solution it is possible to: 1) Calculate the celestial coordinates of any object on the image. 2) Synchronize the telescope mount or satellite pointing position to the center of the image taken. Astrometric solving programs extract the star x,y positions from the celestial image, groups them in three-star triangles or four-star quads. Then it calculates for each group a geometric hash code based on the distance and/or angles between the stars in the group. It then compares the resulting hash codes with the hash codes created from catalogue stars to find a match. If it finds sufficient statistically reliable matches, it can calculate transformation factors. There are several conventions to model the transformation from image pixel location to the corresponding celestial coordinates. The simplest linear model is called the \gls{WCS}. A more advanced convention is \gls{SIP} describing the transformation in polynomials to cope with non-linear geometric distortion in the celestial image, mainly caused by the optics.%
\footnote{\cite{enwiki:Astrometric-solving}}
}
}
@entry{OpenCV,
name = {OpenCV},
long = {OpenCV},
description = {Open Source Computer Vision Library is a library of programming functions mainly aimed at real-time computer vision.%
\footnote{\cite{enwiki:OpenCV}}
}
}
@entry{KStars,
name = {KStars},
long = {KStars},
description = {is a planetarium program. It provides an accurate graphical representation of the night sky, from any location on Earth, at any date and time. The display includes up to 100 million stars (with additional addons), 13,000 deep sky objects, constellations from different cultures, all 8 planets, the Sun and Moon, and thousands of comets, asteroids, satellites, and supernovae. It has features to appeal to users of all levels, from informative hypertext articles about astronomy, to robust control of telescopes and \gls{CCD} cameras, and logging of observations of specific objects.%
\footnote{\cite{enwiki:KStars}}
}
}
@entry{gPhoto,
name = {gPhoto},
long = {gPhoto},
description = {is a set of software applications and libraries for use in digital photography. gPhoto supports not just retrieving of images from camera devices, but also upload and remote controlled configuration and capture, depending on whether the camera supports those features. gPhoto supports more than 2500 cameras.%
\footnote{\cite{enwiki:GPhoto}}
}
}
@entry{Raspberry-Pi,
name = {Raspberry Pi},
long = {Raspberry Pi},
description = {is a series of small \glspl{SBC}. It is typically used by computer and electronic hobbyists as an \gls{embedded-system}.%
\footnote{\cite{enwiki:Raspberry_Pi}}
}
}
@entry{Celestron,
name = {Celestron},
long = {Celestron},
description = {is an American company based in Torrance, California, United States, that manufactures telescopes and distributes telescopes, binoculars, spotting scopes, microscopes, and accessories.%
\footnote{\cite{enwiki:Celestron}}
}
}
@entry{amateur-radio,
name = {amateur radio},
long = {amateur radio},
description = {is the use of the radio frequency spectrum for purposes of non-commercial exchange of messages, wireless experimentation, self-training, private recreation, radiosport, contesting, and emergency communications.%
\footnote{\cite{enwiki:Amateur_radio}}
}
}
@entry{firmware,
name = {firmware},
long = {firmware},
description = {firmware is a specific class of computer software that provides the low-level control for a device's specific hardware. Firmware, such as the \gls{BIOS} of a \gls{PC}, may contain basic functions of a device, and may provide hardware abstraction services to higher-level software such as \glspl{OS}. For less complex devices, firmware may act as the device's complete \gls{OS}, performing all control, monitoring and data manipulation functions. Typical examples of devices containing firmware are \glspl{embedded-system} (running embedded software), home and personal-use appliances, computers, and computer peripherals.%
\footnote{\cite{enwiki:Firmware}}
}
}
@entry{gpsd,
name = {gpsd},
long = {gpsd},
description = {is a computer software program that collects data from a \gls{GPS} receiver and provides the data via a network to potentially multiple client applications in a server-client application architecture. Gpsd may be run as a \gls{daemon} to operate transparently as a background task of the server. The network interface provides a standardized data format for multiple concurrent client applications.%
\footnote{\cite{enwiki:Gpsd}}
}
}
@entry{star-catalogue,
name = {star catalogue},
long = {star catalogue},
description = {is an \gls{astronomical-catalogue} that lists stars. In astronomy, many stars are referred to simply by catalogue numbers. There are a great many different star catalogues which have been produced for different purposes over the years. Most modern catalogues are available in electronic format and can be freely downloaded from space agencies' data centres. The largest is being compiled from the spacecraft Gaia and thus far has over a billion stars. Completeness and accuracy are described by the faintest limiting magnitude and the accuracy of the positions.%
\footnote{\cite{enwiki:Star_catalogue}}
}
}
@entry{sky-chart,
name = {sky chart},
long = {sky chart},
description = {or star chart or star map, also called or sky map, is a map of the night sky. Astronomers divide these into grids to use them more easily. They are used to identify and locate constellations and astronomical objects such as stars, nebulae, and galaxies. They have been used for human navigation since time immemorial. Note that a sky chart differs from an \gls{astronomical-catalogue}, which is a listing or tabulation of astronomical objects for a particular purpose.%
\footnote{\cite{enwiki:Star_chart}}
}
}
@entry{astronomical-catalogue,
name = {astronomical catalogue},
long = {astronomical catalogue},
description = {is a list or tabulation of astronomical objects, typically grouped together because they share a common type, morphology, origin, means of detection, or method of discovery. The oldest and largest are \glspl{star-catalogue}. Hundreds have been published, including general ones and special ones for such items as infrared stars, variable stars, giant stars, multiple star systems, and star clusters. Since the late 20th century catalogs are increasingly often compiled by computers from an automated survey, and published as computer files rather than on paper.%
\footnote{\cite{enwiki:Astronomical_catalog}}
}
}
@entry{Unix,
name = {Unix},
long = {Unix},
description = {is a family of multitasking, multiuser computer \glspl{OS} that derive from the original AT\&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others.%
\footnote{\cite{enwiki:Unix}}
}
}
@entry{appropriate-technology,
name = {appropriate technology},
long = {appropriate technology},
description = {is a movement (and its manifestations) encompassing technological choice and application that is small-scale, affordable by locals, decentralized, labor-intensive, energy-efficient, environmentally sustainable, and locally autonomous. Appropriate technology has been used to address issues in a wide range of fields. Today appropriate technology is often developed using \gls{open-source} principles, which have led to \gls{OSAT} and thus many of the plans of the technology can be freely found on the Internet.%
\footnote{\cite{enwiki:Appropriate_technology}}
}
}
@entry{distribution,
name = {distribution},
long = {distribution},
description = {is an \gls{OS} made from a software collection that includes the \gls{Linux} kernel and, often, a package management system. \gls{Linux} users usually obtain their \gls{OS} by downloading one of the \gls{Linux} distributions, which are available for a wide variety of systems ranging from \glspl{embedded-system} and \glspl{PC} to powerful supercomputers. A typical \gls{Linux} distribution comprises a \gls{Linux} kernel, \gls{GNU} tools and libraries, additional software, documentation, a window system, a window manager, and a desktop environment. Most of the included software is \gls{FOSS} made available both as compiled binaries and in source code form, allowing modifications to the original software.%
\footnote{\cite{enwiki:Linux_distribution}}
}
}
@entry{Lagrange-point,
name = {Lagrange point},
long = {Lagrange point},
description = {are points of equilibrium for small-mass objects under the influence of two massive orbiting bodies. At the Lagrange points, the gravitational forces of the two large bodies and the centrifugal force balance each other. This can make Lagrange points an excellent location for satellites, as few \gls{orbit} corrections are needed to maintain the desired orbit. Small objects placed in orbit at Lagrange points are in equilibrium in at least two directions relative to the center of mass of the large bodies.%
\footnote{\cite{enwiki:Lagrange_point}}
}
}
@entry{GoTo,
name = {GoTo},
long = {GoTo},
description = {In amateur astronomy, ``GoTo'' refers to a type of telescope mount and related software that can automatically point a telescope at astronomical objects that the user selects. Both axes of a GoTo mount are driven by a motor and controlled by a computer. It may be either a microprocessor-based integrated controller or an external \gls{PC}. This differs from the single-axis semi-automated tracking of a traditional clock-drive equatorial mount. The user can command the mount to point the telescope to the celestial coordinates that the user inputs, or to objects in a pre-programmed database including ones from the Messier catalogue, the \gls{NGC}, and even major Solar System bodies (the Sun, Moon, and planets). Like a standard \gls{EQ} mount, \gls{EQ} GoTo mounts can track the night sky by driving the right ascension axis. Since both axes are computer controlled, GoTo technology also allows telescope manufacturers to add \gls{EQ} tracking to mechanically simpler altazimuth mounts.%
\footnote{\cite{enwiki:GoTo_telescopes}}
}
}
@entry{slew,
name = {slew},
long = {slew},
description = {The process of rotating a telescope to observe a different region of the sky.%
\footnote{\cite{enwiki:Slewing}}
}
}
@entry{toolchain,
name = {toolchain},
long = {toolchain},
description = {is a set of programming tools that is used to perform a complex software development task or to create a software product, which is typically another computer program or a set of related programs.%
\footnote{\cite{enwiki:Toolchain}}
}
}
@entry{pipeline,
name = {pipeline},
long = {pipeline},
description = {is a set of data processing elements connected in series, where the output of one element is the input of the next one. The elements of a pipeline are often executed in parallel or in time-sliced fashion.%
\footnote{\cite{enwiki:Pipeline_computing}}
}
}
@entry{embedded-system,
name = {embedded system},
long = {embedded system},
description = {is a computer system---a combination of a computer processor, computer memory, and input/output peripheral devices---that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. embedded systems control many devices in common use today. it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.%
\footnote{\cite{enwiki:Embedded_system}}
}
}
@entry{star-trail,
name = {star trail},
long = {star trail},
description = {is a type of photograph that uses long exposure times to capture diurnal circles, the apparent motion of stars in the night sky due to Earth's rotation. A star-trail photograph shows individual stars as streaks across the image, with longer exposures yielding longer arcs.%
\footnote{\cite{enwiki:Star_trail}}
}
}
@entry{satellite-flare,
name = {satellite flare},
long = {satellite flare},
description = {is a satellite pass visible to the naked eye as a brief, bright ``flare''. It is caused by the reflection toward the Earth below of sunlight incident on satellite surfaces such as solar panels and \glspl{antenna}. Many satellites flare with magnitudes bright enough to see with the unaided eye, i.e. brighter than magnitude +6.5.%
\footnote{\cite{enwiki:Satellite_flare}}
}
}
@entry{photon,
name = {photon},
long = {photon},
description = {is an elementary particle that is a quantum of the electromagnetic field, including electromagnetic radiation such as light and radio waves, and the force carrier for the electromagnetic force. Photons are massless, so they always move at the speed of light in vacuum, 299,792,458 meters/second.%
\footnote{\cite{enwiki:Photon}}
}
}
@entry{software-repository,
name = {software repository},
long = {software repository},
description = {or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source control or repository managers. Package managers allow automatically installing and updating repositories (sometimes called ``packages'').%
\footnote{\cite{enwiki:Software_repository}}
}
}
@entry{upstream,
name = {upstream},
long = {upstream},
description = {refers to a direction toward the original authors or maintainers of software that is distributed as source code, and is a qualification of either a version (released by the original authors, based on their upstream source code), a bug or a patch.%
\footnote{\cite{enwiki:Upstream}}
}
}
@entry{daemon,
name = {daemon},
long = {daemon},
description = {a service in a \gls{Unix} \gls{OS}.%
\footnote{\cite{enwiki:Daemon}}
}
}
@entry{Teledyne-FLIR,
name = {Teledyne FLIR},
long = {Teledyne FLIR},
description = {a subsidiary of Teledyne Technologies, specializes in the design and production of thermal imaging cameras and sensors. The name is based on the acronym \gls{FLIR}.%
\footnote{\cite{enwiki:Teledyne_FLIR}}
}
}
@entry{Docker,
name = {Docker},
long = {Docker},
description = {is a set of \gls{PaaS} products that use \gls{OS}-level virtualization to deliver software in packages called containers.%
\footnote{\cite{enwiki:Docker}}
}
}
@entry{binning,
name = {binning},
long = {binning},
description = {is the process of combining adjacent pixels throughout an image, by summing or averaging their values, during or after readout. Charge from adjacent pixels in \gls{CCD} image sensors and some other image sensors can be combined during readout, increasing the line rate or frame rate. In the context of image processing, binning is the procedure of combining clusters of adjacent pixels, throughout an image, into single pixels. For example, in 2x2 binning, an array of 4 pixels becomes a single larger pixel, reducing the number of pixels to 1/4 and halving the image resolution in each dimension. The result can be the sum, average, median, minimum, or maximum value of the cluster. This aggregation, although associated with loss of information, reduces the amount of data to be processed, facilitating analysis. The binned image has lower resolution, but the relative noise level in each pixel is generally reduced. Also called pixel binning.%
\footnote{\cite{enwiki:Pixel_binning}}
}
}
@entry{alt-az-mount,
name = {altazimuth mount},
long = {altazimuth mount},
description = {a simple two-axis mount for supporting and rotating an instrument about two perpendicular axes --- one vertical and the other horizontal. Rotation about the vertical axis varies the azimuth (compass bearing) of the pointing direction of the instrument. Rotation about the horizontal axis varies the altitude angle (angle of elevation) of the pointing direction. These mounts are used, for example, with telescopes, cameras, and radio antennas.%
\footnote{\cite{Wiki21:altazmountwikipfreeencyc}}
}
}

View File

@ -1,671 +0,0 @@
%
% Glossary.tex
%
% SatNOGS Optical Unofficial Guide
%
% Copyright (C) 2022, Jeff Moe
%
% This document is licensed under the Creative Commons Attribution 4.0
% International Public License (CC BY-SA 4.0) by Jeff Moe.
%
%%%%%%%%%%%
% ACRONYM %
%%%%%%%%%%%
\newacronym[
description={is a sequential nine-digit number assigned by the \gls{USSPACECOM} in the order of launch or discovery to all artificial objects in the \glspl{orbit} of Earth and those that left Earth's \glspl{orbit}. Space Command shares the catalog via \url{space-track.org}, which is maintained by the 18th \gls{SDS}. NORAD ID is also known as a satellite catalog number.%
\footnote{\cite{enwiki:Satellite_Catalog_Number}}%
}]
{NORAD ID}{NORAD ID}{North American Aerospace Defense Catalog Number}
\newacronym[
description={is a type of piezoelectric motor powered by the ultrasonic vibration of a component, the stator, placed against another component, the rotor or slider depending on the scheme of operation (rotation or linear translation). One common application of ultrasonic motors is in camera lenses where they are used to move lens elements as part of the auto-focus system.%
\footnote{\cite{enwiki:Ultrasonic_motor}}%
}]
{USM}{USM}{Ultrasonic motor}
\newacronym[
description={An operating system is system software that manages computer hardware, software resources, and provides common services for computer programs.%
\footnote{\cite{enwiki:Operating_system}}%
}]
{OS}{OS}{Operating System}
\newacronym[
description={Instrument Neutral Distributed Interface is a \gls{DCS} protocol to enable control, data acquisition and exchange among hardware devices and software front ends, emphasizing astronomical instrumentation.%
\footnote{\cite{enwiki:Instrument-Neutral-Distributed-Interface}}%
}]
{INDI}{INDI}{Instrument Neutral Distributed Interface}
\newacronym[
description={Debian Free Software Guidelines is a set of guidelines that the \gls{Debian} Project uses to determine whether a software license is a \gls{free-software} license, which in turn is used to determine whether a piece of software can be included in \gls{Debian}. The DFSG is part of the \gls{Debian} Social Contract.%
\footnote{\cite{enwiki:Debian-Free-Software-Guidelines}}%
}]
{DFSG}{DFSG}{Debian Free Software Guidelines}
\newacronym[
description={Flexible Image Transport System is an open standard defining a digital file format useful for storage, transmission and processing of data: formatted as multi-dimensional arrays (for example a 2D image), or tables. FITS is the most commonly used digital file format in astronomy. The FITS standard was designed specifically for astronomical data, and includes provisions such as describing photometric and spatial calibration information, together with image origin metadata.%
\footnote{\cite{Wiki22:fitswikipfreeencyc}}%
}]
{FITS}{FITS}{Flexible Image Transport System}
\newacronym[
description={Software-defined radio is a radio communication system where components that have been traditionally implemented in analog hardware (e.g. mixers, filters, amplifiers, modulators/demodulators, detectors, etc.) are instead implemented by means of software on a \gls{PC} or \gls{embedded system}. SDRs are used in \gls{SatNOGS} \glspl{ground-station}.%
\footnote{\cite{Wiki22:softwdefinradiowikipfreeencyc}}
}]
{SDR}{SDR}{Software-defined radio}
\newacronym[
description={Libre Space Foundation is a non-profit foundation registered since 2015 in Greece and the creators of the SatNOGS project.%
\footnote{\url{https://libre.space/about-us/}}
}]
{LSF}{LSF}{Libre Space Foundation}
\newacronym[
description={Radio frequency is the oscillation rate of an alternating electric current or voltage or of a magnetic, electric or electromagnetic field or mechanical system in the frequency range from around 20 \gls{kHz} to around 300 \gls{GHz}. This is roughly between the upper limit of audio frequencies and the lower limit of infrared frequencies; these are the frequencies at which energy from an oscillating current can radiate off a conductor into space as radio waves.%
\footnote{\cite{Wiki22:radiofrequwikipfreeencyc}}
}]
{RF}{RF}{radio frequency}
\newacronym[
description={Very High Frequency is the \gls{ITU} designation for the range of radio frequency electromagnetic waves (radio waves) from 30 to 300 \gls{MHz}, with corresponding wavelengths of ten meters to one meter. Frequencies immediately below VHF are denoted high frequency (HF), and the next higher frequencies are known as \gls{UHF}.%
\footnote{\cite{Wiki22:veryhighfrequwikipfreeencyc}}
}]
{VHF}{VHF}{Very High Frequency}
\newacronym[
description={Ultra High Frequency is the \gls{ITU} designation for radio frequencies in the range between 300 \gls{MHz} and 3 \gls{GHz}, also known as the decimetre band as the wavelengths range from one meter to one tenth of a meter (one decimeter). Lower frequency signals fall into the \gls{VHF} or lower bands.%
\footnote{\cite{Wiki22:ultrahighfrequwikipfreeencyc}}
}]
{UHF}{UHF}{Ultra High Frequency}
\newacronym[
description={The International Telecommunication Union is a specialized agency of the United Nations responsible for many matters related to information and communication technologies.%
\footnote{\cite{Wiki22:intertelecunionwikipfreeencyc}}
}]
{ITU}{ITU}{International Telecommunication Union}
\newacronym[
description={``GNU's Not Unix!'' is an extensive collection of \gls{free-software}, which can be used as an \gls{OS} or can be used in parts with other \glspl{OS}. The use of the completed GNU tools led to the family of operating systems popularly known as \gls{Linux}. Most of GNU is licensed under the GNU Project's own \gls{GPL}. GNU is also the project within which the \gls{free-software} concept originated.%
\footnote{\cite{Wiki22:gnuwikipfreeencyc}}
}]
{GNU}{GNU}{GNU's Not Unix!}
\newacronym[
description={GNU General Public License is a series of widely used \gls{free-software} licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general use. Historically, the GPL license family has been one of the most popular software licenses in the \gls{FLOSS} software domain.%
\footnote{\cite{Wiki22:gnugenerpublilicenwikipfreeencyc}}
}]
{GPL}{GPL}{GNU General Public License}
\newacronym[
description={Simplified General Perturbations models apply to near earth objects with an orbital period of less than 225 minutes. Simplified \glspl{perturbation} models are a set of five mathematical models (SGP, SGP4, SDP4, SGP8 and SDP8) used to calculate orbital state vectors of \glspl{satellite} and space debris relative to the Earth-centered inertial coordinate system. This set of models is often referred to collectively as SGP4 due to the frequency of use of that model particularly with \gls{TLE} sets produced by \gls{NORAD} and \gls{NASA}. These models predict the effect of \glspl{perturbation} caused by the Earth's shape, drag, radiation, and gravitation effects from other bodies such as the sun and moon. See also: \gls{SDP}.%
\footnote{\cite{enwiki:Simplified_perturbations_models}}
}]
{SGP}{SGP}{Simplified General Perturbations}
\newacronym[
description={Simplified Deep Space Perturbations models apply to objects with an orbital period greater than 225 minutes, which corresponds to an altitude of 5,877.5 km, assuming a circular orbit. See also: \gls{SGP}.%
\footnote{\cite{enwiki:Simplified_perturbations_models}}
}]
{SDP}{SDP}{Simplified Deep Space Perturbations}
\newacronym[
description={North American Aerospace Defense Command is a combined organization of the United States and Canada that provides aerospace warning, air sovereignty, and protection for Canada and the continental United States.%
\footnote{\cite{enwiki:NORAD}}
}]
{NORAD}{NORAD}{North American Aerospace Defense Command}
\newacronym[
description={is an independent agency of the US federal government responsible for the civil space program, aeronautics research, and space research.%
\footnote{\cite{enwiki:NASA}}
}]
{NASA}{NASA}{National Aeronautics and Space Administration}
\newacronym[
description={open-source hardware consists of physical artifacts of technology designed and offered by the open-design movement. Both \gls{FOSS} and open-source hardware are created by the open-source culture movement and apply a like concept to a variety of components. It is sometimes, thus, referred to as \gls{FOSH}. The term usually means that information about the hardware is easily discerned so that others can make it---coupling it closely to the maker movement. Hardware design (i.e. mechanical drawings, schematics, bills of material, \gls{PCB} layout data, \gls{HDL} source code and integrated circuit layout data), in addition to the software that drives the hardware, are all released under free/\gls{libre} terms. The original sharer gains feedback and potentially improvements on the design from the \gls{FOSH} community. There is now significant evidence that such sharing can drive a high return on investment for the scientific community. It is not enough to merely use an \gls{open-source} license; an \gls{open-source} product or project will follow \gls{open-source} principles, such as modular design and community collaboration.%
\footnote{\cite{enwiki:Open-source-hardware}}
}]
{OSH}{OSH}{open-source hardware}
\newacronym[
description={free and \gls{open-source} software is a term used to refer to groups of software consisting of both \gls{free-software} and \gls{OSS} where anyone is freely licensed to use, copy, study, and change the software in any way, and the source code is openly shared so that people are encouraged to voluntarily improve the design of the software. This is in contrast to proprietary software, where the software is under restrictive copyright licensing and the source code is usually hidden from the users. FOSS maintains the software user's civil liberty rights. Other benefits of using FOSS can include decreased software costs, increased security and stability (especially in regard to malware), protecting privacy, education, and giving users more control over their own hardware. Free and open-source operating systems such as \gls{Linux} and descendants of \gls{BSD} are widely utilized today, powering millions of servers, desktops, smartphones (e.g., Android), and other devices. Free-software licenses and \gls{open-source} licenses are used by many software packages. The free software movement and the \gls{open-source} software movement are online social movements behind widespread production and adoption of FOSS, with the former preferring to use the terms \gls{FLOSS} or free/\gls{libre}.%
\footnote{\cite{enwiki:Free-and-open-source-software}}
}]
{FOSS}{FOSS}{free and open-source software}
\newacronym[
description={open-source software is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Open-source software may be developed in a collaborative public manner. Open-source software is a prominent example of open collaboration, meaning any capable user is able to participate online in development, making the number of possible contributors indefinite. The ability to examine the code facilitates public trust in the software. Open source code can be used for studying and allows capable end users to adapt software to their personal needs in a similar way user scripts and custom style sheets allow for web sites, and eventually publish the modification as a fork for users with similar preference.%
\footnote{\cite{enwiki:Open-source-software}}
}]
{OSS}{OSS}{open-source software}
%%%
% Acronyms without citations.
%%%
\newacronym[description={hertz.}]{Hz}{Hz}{hertz}
\newacronym[description={kilohertz.}]{kHz}{kHz}{kilohertz}
\newacronym[description={megahertz.}]{MHz}{MHz}{megahertz}
\newacronym[description={gigahertz.}]{GHz}{GHz}{gigahertz}
\newacronym[description={digital single-lens reflex.}]{DSLR}{DSLR}{digital single-lens reflex}
\newacronym[description={Power over Ethernet.}]{PoE}{PoE}{Power over Ethernet}
\newacronym[description={Global Navigation \Gls{satellite} System.}]{GNSS}{GNSS}{Global Navigation Satellite System}
\newacronym[description={Global Positioning System.}]{GPS}{GPS}{Global Positioning System}
\newacronym[description={Ingress Protection code 67.}]{IP67}{IP67}{Ingress Protection code 67}
\newacronym[description={Space Situational Awareness.}]{SSA}{SSA}{Space Situational Awareness}
\newacronym[description={World Coordinate System.}]{WCS}{WCS}{World Coordinate System}
\newacronym[description={Complementary metal-oxide-semiconductor (pronounced ``see-moss'').}]{CMOS}{CMOS}{Complementary metaloxidesemiconductor}
\newacronym[description={charge-coupled device.}]{CCD}{CCD}{charge-coupled device}
\newacronym[description={Spacecraft Identification and Localization.}]{SIDLOC}{SIDLOC}{Spacecraft Identification and Localization}
\newacronym[description={Rowe-Ackermann Schmidt \Gls{astrograph}.}]{RASA}{RASA}{Rowe-Ackermann Schmidt Astrograph}
\newacronym[description={Commodity off the shelf.}]{COTS}{COTS}{Commodity off the shelf}
\newacronym[description={Free open-source hardware. See also: \gls{OSH}.}]{FOSH}{FOSH}{Free open-source hardware}
\newacronym[description={Free/libre and open-source software. See also: \gls{FOSS}.}]{FLOSS}{FLOSS}{Free/libre and open-source software}
\newacronym[description={Simple Imaging Polynomial.}]{SIP}{SIP}{Simple Imaging Polynomial}
\newacronym[description={Field of view.}]{FOV}{FOV}{Field of View}
\newacronym[description={distributed control system.}]{DCS}{DCS}{distributed control system}
\newacronym[description={Portable Network Graphics.}]{PNG}{PNG}{Portable Network Graphics}
\newacronym[description={Comma Separated Value.}]{CSV}{CSV}{Comma Separated Value}
\newacronym[description={Network Time Protocol.}]{NTP}{NTP}{Network Time Protocol}
\newacronym[description={Internet Protocol.}]{IP}{IP}{Internet Protocol}
\newacronym[description={Internet Protocol version 6.}]{IPv6}{IPv6}{Internet Protocol version 6}
\newacronym[description={International Space Station.}]{ISS}{ISS}{International Space Station}
\newacronym[description={Low Earth Orbit.}]{LEO}{LEO}{Low Earth Orbit}
\newacronym[description={Geostationary orbit.}]{GEO}{GEO}{Geostationary orbit}
\newacronym[description={High Earth orbit.}]{HEO}{HEO}{High Earth orbit}
\newacronym[description={Medium Earth orbit.}]{MEO}{MEO}{Medium Earth orbit}
\newacronym[description={Geosynchronous orbit.}]{GSO}{GSO}{Geosynchronous orbit}
\newacronym[description={Printed circuit coard.}]{PCB}{PCB}{Printed Circuit Board}
\newacronym[description={Hardware description language.}]{HDL}{HDL}{Hardware description lanuage}
\newacronym[description={Video for Linux v2.}]{V4L2}{V4L2}{Video for Linux v2}
\newacronym[description={Berkeley Software Distribution.}]{BSD}{BSD}{Berkeley Software Distribution}
\newacronym[description={Software development kit.}]{SDK}{SDK}{Software development kit}
\newacronym[description={Mobile Industry Processor Interface.}]{MIPI}{MIPI}{Mobile Industry Processor Interface}
\newacronym[description={All Sky Monitor.}]{ASM}{ASM}{All Sky Monitor}
\newacronym[description={Pan-tilt-zoom.}]{PTZ}{PTZ}{Pan-tilt-zoom}
\newacronym[description={Pulse per second.}]{PPS}{PPS}{Pulse per second}
\newacronym[description={Universal Serial Bus.}]{USB}{USB}{Pulse per second}
\newacronym[description={Next Unit of Computing.}]{NUC}{NUC}{Pulse per second}
\newacronym[description={Volt.}]{V}{V}{Volt}
\newacronym[description={Direct current.}]{DC}{DC}{Direct current}
\newacronym[description={Equatorial.}]{EQ}{EQ}{equatorial}
\newacronym[description={I don't know.}]{IDK}{IDK}{I don't know}
\newacronym[description={Database.}]{DB}{DB}{Database}
\newacronym[description={USB video device class.}]{UVC}{UVC}{USB video device class}
\newacronym[description={Computer vision.}]{CV}{CV}{Computer vision}
\newacronym[description={Package Installer for Python.}]{PIP}{PIP}{Package Installer for Python}
\newacronym[description={Random-access memory.}]{RAM}{RAM}{Random-access memory}
\newacronym[description={Global Navigation Satellite System.}]{GLONASS}{GLONASS}{Global Navigation Satellite System}
\newacronym[description={BeiDou Navigation Satellite System.}]{BDS}{BDS}{BeiDou Navigation Satellite System}
\newacronym[description={Single board computer.}]{SBC}{SBC}{Single board computer}
\newacronym[description={Basic Input/Output System.}]{BIOS}{BIOS}{Basic Input/Output System}
\newacronym[description={open-source appropriate technology.}]{OSAT}{OSAT}{open-source appropriate technology}
\newacronym[description={Personal Computer.}]{PC}{PC}{Personal Computer}
\newacronym[description={General Conference on Weights and Measures.}]{CGPM}{CGPM}{General Conference on Weights and Measures}
\newacronym[description={application programming interface.}]{API}{API}{application programming interface}
\newacronym[description={central processing unit.}]{CPU}{CPU}{central processing unit}
\newacronym[description={New General Catalogue of Nebulae and Clusters of Stars.}]{NGC}{NGC}{New General Catalogue of Nebulae and Clusters of Stars}
\newacronym[description={Forward-looking infrared.}]{FLIR}{FLIR}{Forward-looking infrared}
\newacronym[description={United States Space Command.}]{USSPACECOM}{USSPACECOM}{United States Space Command}
\newacronym[description={United States Space Command.}]{SPACECOM}{SPACECOM}{United States Space Command}
\newacronym[description={Space Defense Squadron.}]{SDS}{SDS}{Space Defense Squadron}
% POSIX
% INDIGO
%%%%%%%%%%%
% Acronyms with citations
%%%%%%%%%%%
\newacronym[
description={The International System of Units, known by the international abbreviation SI in all languages and sometimes pleonastically as the SI system, is the modern form of the metric system and the world's most widely used system of measurement. Established and maintained by the \gls{CGPM}, it is the only system of measurement with an official status in nearly every country in the world, employed in science, technology, industry, and everyday commerce.%
\footnote{\cite{Wiki22:intersysteunitswikipfreeencyc}}
}]
{SI}{SI}{International System of Units}
\newacronym[
description={a simple two-axis mount for supporting and rotating an instrument about two perpendicular axes --- one vertical and the other horizontal. Rotation about the vertical axis varies the azimuth (compass bearing) of the pointing direction of the instrument. Rotation about the horizontal axis varies the altitude angle (angle of elevation) of the pointing direction. These mounts are used, for example, with telescopes, cameras, and radio antennas.%
\footnote{\cite{Wiki21:altazmountwikipfreeencyc}}
}]
{Alt-Az}{Alt/Az mount}{Altazimuth mount}
\newacronym[
description={two-line element set is a data format encoding a list of orbital elements of an Earth-orbiting object for a given point in time, the epoch. Using a suitable prediction formula, the state (position and velocity) at any point in the past or future can be estimated to some accuracy. TLEs can describe the trajectories only of Earth-orbiting objects. TLEs are widely used as input for projecting the future orbital tracks of space debris for purposes of characterizing ``future debris events to support risk analysis, close approach analysis, collision avoidance maneuvering'' and forensic analysis. The format was originally intended for punched cards, encoding a set of elements on two standard 80-column cards.%
\footnote{\cite{Wiki22:twolineelemesetwikipfreeencyc}}
}]
{TLE}{TLE}{two-line element set}
%%%%%%%%%%%%
% GLOSSARY %
%%%%%%%%%%%%
%%%%%%%%%%%%
% Glossary entries without citations that are not acronyms.
%%%%%%%%%%%%
\newglossaryentry{artificial satellite}
{ name={artificial satellite},
description={is a \gls{satellite} put into \gls{orbit} by humans, not ``naturally'' occurring.}}
\newglossaryentry{libre-software}
{ name={libre software},
description={See: \gls{free-software}.}}
%%%%%%%%%%%%
% Glossary entries with footnotes that are not acronyms.
%%%%%%%%%%%%
\newglossaryentry{AstroImageJ}
{ name={AstroImageJ},
description={Application for astronomy and \gls{satellite} image analysis.%
\footnote{\url{https://www.astro.louisville.edu/software/astroimagej/}}
}}
\newglossaryentry{skymap}
{ name={skymap},
description={is part of \gls{sattools}. Visualize \glspl{satellite} on a map of the sky.%
\footnote{\url{https://github.com/cbassa/sattools/blob/master/skymap.c}}
}}
\newglossaryentry{satid}
{ name={satid},
description={is part of \gls{sattools}.%
\footnote{\url{https://github.com/cbassa/sattools/blob/master/satid.c}}
}}
\newglossaryentry{sattools}
{ name={sattools},
description={Satellite Tracking Toolkit. The main \texttt{sattools} applications are being ported to \gls{stvid} and other related \gls{Python} applications.%
\footnote{\url{https://github.com/cbassa/sattools}}
}}
\newglossaryentry{satpredict}
{ name={satpredict},
description={is a software application to compute \gls{satellite} predictions. It is used by \gls{stvid}.%
\footnote{\url{https://github.com/cbassa/satpredict}}
}}
\newglossaryentry{stvid}
{ name={stvid},
description={\Gls{satellite} tools video application for acquiring and processing sky images.%
\footnote{\url{https://github.com/cbassa/stvid}}
}}
\newglossaryentry{hough3d-code}
{ name={hough3d-code},
description={is a software application for Iterative Hough Transform for Line Detection in 3D Point Clouds.%
\footnote{\url{https://gitlab.com/pierros/hough3d-code}}
}}
\newglossaryentry{ground-station}
{ name={ground station},
description={a setup of equipment such as computers, cameras, \glspl{SDR}, antennas, and receivers, located on Earth, observing space.
}}
\newglossaryentry{SatNOGS-Optical}
{ name={SatNOGS Optical},
description={is a project by the \gls{LSF} to add optical ground stations to the SatNOGS network.%
\footnote{\url{https://satnogs.org/}}
}}
\newglossaryentry{SatNOGS DB}
{ name={SatNOGS DB},
description={is an effort to create an hollistic, unified, global database for all artificial objects in space (\glspl{satellite} and spacecrafts). Users can view and export the data, contribute to it, or connect applications using an \gls{API}. It is part of the \gls{SatNOGS} project.%
\footnote{\url{https://db.satnogs.org/}}
}}
\newglossaryentry{SatNOGS}
{ name={SatNOGS},
description={Open Source global network of \gls{satellite} ground stations.%
\footnote{\url{https://satnogs.org/}}
}}
\newglossaryentry{optical-ground-station}
{ name={optical ground station},
description={a ground station using optical equipment (cameras) instead of antennas.
}}
\newglossaryentry{antenna}
{ name={antenna},
description={the interface between radio waves propagating through space and electric currents moving in metal conductors, used with a transmitter or receiver.%
\footnote{\cite{Wiki22:antenradiowikipfreeencyc}}
}}
\newglossaryentry{mast}
{ name={mast},
description={typically tall structures designed to support antennas for telecommunications and broadcasting.%
\footnote{\cite{Wiki22:radiomaststowerwikipfreeencyc}}
}}
\newglossaryentry{rotator}
{ name={rotator},
description={a device used to change the orientation, within the horizontal plane, of a directional antenna. Most antenna rotators have two parts, the rotator unit and the controller. The controller is normally placed near the equipment which the antenna is connected to, while the rotator is mounted on the antenna mast directly below the antenna. Rotators are commonly used in amateur radio.%
\footnote{\cite{Wiki22:antenrotatwikipfreeencyc}}
}}
\newglossaryentry{Debian}
{ name={Debian},
description={a \gls{GNU}/\gls{Linux} distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. Debian is the basis for many other distributions, notably Ubuntu.
Debian is one of the oldest operating systems based on the Linux kernel.%
\footnote{\cite{Wiki22:debiawikipfreeencyc}}
}}
\newglossaryentry{Linux}
{ name={Linux},
description={is a free and open-source, monolithic, modular, multitasking, \gls{Unix}-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based \gls{PC}, and it was soon adopted as the kernel for the \gls{GNU} \gls{OS}, which was written to be a free (\gls{libre}) replacement for \gls{Unix}.%
\footnote{\cite{Wiki22:linuxkernewikipfreeencyc}}
}}
\newglossaryentry{open-source}
{ name={Open Source},
description={is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized software development model that encourages open collaboration. A main principle of open-source software development is peer production, with products such as source code, blueprints, and documentation freely available to the public. The open-source movement in software began as a response to the limitations of proprietary code. The model is used for projects such as in open-source \gls{appropriate technology}.%
\footnote{\cite{Wiki22:opensourcwikipfreeencyc}}
}}
\newglossaryentry{free-software}
{ name={Free Software},
description={or \gls{libre} software, is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, not price; all users are legally free to do what they want with their copies of a free software (including profiting from them) regardless of how much is paid to obtain the program. Computer programs are deemed ``free'' if they give end-users (not just the developer) ultimate control over the software and, subsequently, over their devices.%
\footnote{\cite{Wiki22:freesoftwwikipfreeencyc}}
}}
\newglossaryentry{Matrix}
{ name={Matrix},
description={an open standard and communication protocol for real-time communication.%
\footnote{\cite{Wiki22:matriprotowikipfreeencyc}}
}}
\newglossaryentry{telescope}
{ name={telescope},
description={is an optical instrument using lenses, curved mirrors, or a combination of both to observe distant objects, or various devices used to observe distant objects by their emission, absorption, or reflection of electromagnetic radiation. The word telescope now refers to a wide range of instruments capable of detecting different regions of the electromagnetic spectrum, and in some cases other types of detectors.%
\footnote{\cite{enwiki:Telescope}}
}}
\newglossaryentry{astrograph}
{ name={astrograph},
description={is a telescope designed for the sole purpose of astrophotography. Astrographs are mostly used in wide-field astronomical surveys of the sky and for detection of objects such as asteroids, meteors, and comets.%
\footnote{\cite{enwiki:Astrograph}}
}}
\newglossaryentry{satellite}
{ name={satellite},
description={is an object intentionally placed into \gls{orbit} in outer space. Except for passive satellites, most satellites have an electricity generation system for equipment on board. Most satellites also have a method of communication to ground stations, called transponders. Many satellites use a standardized bus to save cost and work, the most popular of which is small \Glspl{cubesat}. Similar satellites can work together as a group, forming constellations.%
\footnote{\cite{enwiki:Satellite}}
}}
\newglossaryentry{cubesat}
{ name={CubeSat},
description={is a class of miniaturized \gls{satellite} based around a form factor consisting of 10 cm (3.9 in) cubes. CubeSats have a mass of no more than 2 kg per unit, and often use \gls{COTS} components for their electronics and structure. CubeSats are put into \gls{orbit} by deployers on the \gls{ISS}, or launched as secondary payloads on a launch vehicle. More than a thousand CubeSats have been launched.%
\footnote{\cite{enwiki:CubeSat}}
}}
\newglossaryentry{orbit}
{ name={orbit},
description={is the curved trajectory of an object such as the trajectory of a planet around a star, or of a natural satellite around a planet, or of an artificial satellite around an object or position in space such as a planet, moon, asteroid, or \gls{Lagrange point}. Normally, orbit refers to a regularly repeating trajectory, although it may also refer to a non-repeating trajectory. To a close approximation, planets and \glspl{satellite} follow elliptic orbits, with the center of mass being orbited at a focal point of the ellipse, as described by Kepler's laws of planetary motion. For most situations, orbital motion is adequately approximated by Newtonian mechanics, which explains gravity as a force obeying an inverse-square law. However, Albert Einstein's general theory of relativity, which accounts for gravity as due to curvature of spacetime, with orbits following geodesics, provides a more accurate calculation and understanding of the exact mechanics of orbital motion.%
\footnote{\cite{enwiki:Orbit}}
}}
\newglossaryentry{perturbation}
{ name={perturbation},
description={is the complex motion of a massive body subjected to forces other than the gravitational attraction of a single other massive body. The other forces can include a third (fourth, fifth, etc.) body, resistance, as from an atmosphere, and the off-center attraction of an oblate or otherwise misshapen body.%
\footnote{\cite{enwiki:Perturbation-astronomy}}
}}
\newglossaryentry{telemetry}
{ name={telemetry},
description={is the in situ collection of measurements or other data at remote points and their automatic transmission to receiving equipment (telecommunication) for monitoring. The word is derived from the Greek roots tele, ``remote'', and metron, ``measure''. Although the term commonly refers to wireless data transfer mechanisms (e.g., using radio, ultrasonic, or infrared systems), it also encompasses data transferred over other media such as a telephone or computer network, optical link or other wired communications like power line carriers.%
\footnote{\cite{enwiki:Telemetry}}
}}
\newglossaryentry{Grafana}
{ name={Grafana},
description={is a multi-platform \gls{open-source} analytics and interactive visualization web application. It provides charts, graphs, and alerts for the web when connected to supported data sources. Users can create complex monitoring dashboards using interactive query builders. It is used by the \gls{SatNOGS} project to visualize \gls{satellite} \gls{telemetry}.%
\footnote{\cite{enwiki:Grafana}}
}}
\newglossaryentry{Python}
{ name={Python},
description={is a high-level, interpreted, general-purpose programming language. Its design philosophy emphasizes code readability. It is often described as a ``batteries included'' language due to its comprehensive standard library. Python consistently ranks as one of the most popular programming languages. It is one of the main languages of the \gls{SatNOGS} project and \gls{stvid}.%
\footnote{\cite{enwiki:Python-language}}
}}
\newglossaryentry{C}
{ name={C},
description={is a general-purpose computer programming language. It was created in the 1970s by Dennis Ritchie, and remains very widely used and influential. By design, C's features cleanly reflect the capabilities of the targeted \glspl{CPU}. It has found lasting use in \glspl{OS}, device drivers, protocol stacks, though decreasingly for application software. C is commonly used on computer architectures that range from the largest supercomputers to the smallest microcontrollers and \glspl{embedded system}. C is used in the \gls{sattools} suite of applications.%
\footnote{\cite{enwiki:C-language}}
}}
\newglossaryentry{libre}
{ name={libre},
description={The English adjective free is commonly used in one of two meanings: ``at no monetary cost'' (gratis) and ``with little or no restriction'' (libre). This ambiguity of free can cause issues where the distinction is important, as it often is in dealing with laws concerning the use of information, such as copyright and patents. The terms gratis and libre may be used to categorise computer programs, according to the licenses and legal restrictions that cover them, in the \gls{free-software} and \gls{open-source} communities, as well as the broader free culture movement. For example, they are used to distinguish freeware (software gratis) from \gls{free-software} (software libre). ``Think free as in free speech, not free beer.'' -- Richard Stallman.%
\footnote{\cite{enwiki:Gratis-versus-libre}}
}}
\newglossaryentry{plate-solver}
{ name={plate solver},
description={is software implementing a technique used in astronomy and applied on celestial images. Solving an image is finding match between the imaged stars and a \gls{star catalogue}. The solution is a math model describing the corresponding astronomical position of each image pixel. The position of reference catalogue stars has to be known to a high accuracy so an astrometric reference catalogue is used. The image solution contains a reference point, often the image centre, image scale, image orientation and in some cases an image distortion model. With the astrometric solution it is possible to: 1) Calculate the celestial coordinates of any object on the image. 2) Synchronize the telescope mount or satellite pointing position to the center of the image taken. Astrometric solving programs extract the star x,y positions from the celestial image, groups them in three-star triangles or four-star quads. Then it calculates for each group a geometric hash code based on the distance and/or angles between the stars in the group. It then compares the resulting hash codes with the hash codes created from catalogue stars to find a match. If it finds sufficient statistically reliable matches, it can calculate transformation factors. There are several conventions to model the transformation from image pixel location to the corresponding celestial coordinates. The simplest linear model is called the \gls{WCS}. A more advanced convention is \gls{SIP} describing the transformation in polynomials to cope with non-linear geometric distortion in the celestial image, mainly caused by the optics.%
\footnote{\cite{enwiki:Astrometric-solving}}
}}
\newglossaryentry{OpenCV}
{ name={OpenCV},
description={Open Source Computer Vision Library is a library of programming functions mainly aimed at real-time computer vision.%
\footnote{\cite{enwiki:OpenCV}}
}}
\newglossaryentry{KStars}
{ name={KStars},
description={is a planetarium program. It provides an accurate graphical representation of the night sky, from any location on Earth, at any date and time. The display includes up to 100 million stars (with additional addons), 13,000 deep sky objects, constellations from different cultures, all 8 planets, the Sun and Moon, and thousands of comets, asteroids, satellites, and supernovae. It has features to appeal to users of all levels, from informative hypertext articles about astronomy, to robust control of telescopes and \gls{CCD} cameras, and logging of observations of specific objects.%
\footnote{\cite{enwiki:KStars}}
}}
\newglossaryentry{gPhoto}
{ name={gPhoto},
description={is a set of software applications and libraries for use in digital photography. gPhoto supports not just retrieving of images from camera devices, but also upload and remote controlled configuration and capture, depending on whether the camera supports those features. gPhoto supports more than 2500 cameras.%
\footnote{\cite{enwiki:GPhoto}}
}}
\newglossaryentry{Raspberry Pi}
{ name={Raspberry Pi},
description={is a series of small \glspl{SBC}. It is typically used by computer and electronic hobbyists as an \gls{embedded system}.%
\footnote{\cite{enwiki:Raspberry_Pi}}
}}
\newglossaryentry{Celestron}
{ name={Celestron},
description={is an American company based in Torrance, California, United States, that manufactures telescopes and distributes telescopes, binoculars, spotting scopes, microscopes, and accessories.%
\footnote{\cite{enwiki:Celestron}}
}}
\newglossaryentry{amateur radio}
{ name={amateur radio},
description={is the use of the radio frequency spectrum for purposes of non-commercial exchange of messages, wireless experimentation, self-training, private recreation, radiosport, contesting, and emergency communications.%
\footnote{\cite{enwiki:Amateur_radio}}
}}
\newglossaryentry{firmware}
{ name={firmware},
description={firmware is a specific class of computer software that provides the low-level control for a device's specific hardware. Firmware, such as the \gls{BIOS} of a \gls{PC}, may contain basic functions of a device, and may provide hardware abstraction services to higher-level software such as \glspl{OS}. For less complex devices, firmware may act as the device's complete \gls{OS}, performing all control, monitoring and data manipulation functions. Typical examples of devices containing firmware are \glspl{embedded system} (running embedded software), home and personal-use appliances, computers, and computer peripherals.%
\footnote{\cite{enwiki:Firmware}}
}}
\newglossaryentry{gpsd}
{ name={gpsd},
description={is a computer software program that collects data from a \gls{GPS} receiver and provides the data via an \gls{IP} network to potentially multiple client applications in a server-client application architecture. Gpsd may be run as a \gls{daemon} to operate transparently as a background task of the server. The network interface provides a standardized data format for multiple concurrent client applications.%
\footnote{\cite{enwiki:Gpsd}}
}}
\newglossaryentry{star catalogue}
{ name={star catalogue},
description={is an \gls{astronomical catalogue} that lists stars. In astronomy, many stars are referred to simply by catalogue numbers. There are a great many different \glspl{star catalogue} which have been produced for different purposes over the years. Most modern catalogues are available in electronic format and can be freely downloaded from space agencies' data centres. The largest is being compiled from the spacecraft Gaia and thus far has over a billion stars. Completeness and accuracy are described by the faintest limiting magnitude and the accuracy of the positions.%
\footnote{\cite{enwiki:Star_catalogue}}
}}
\newglossaryentry{sky chart}
{ name={sky chart},
description={or star chart or star map, also called or sky map, is a map of the night sky. Astronomers divide these into grids to use them more easily. They are used to identify and locate constellations and astronomical objects such as stars, nebulae, and galaxies. They have been used for human navigation since time immemorial. Note that a sky chart differs from an \gls{astronomical catalogue}, which is a listing or tabulation of astronomical objects for a particular purpose.%
\footnote{\cite{enwiki:Star_chart}}
}}
\newglossaryentry{astronomical catalogue}
{ name={astronomical catalogue},
description={is a list or tabulation of astronomical objects, typically grouped together because they share a common type, morphology, origin, means of detection, or method of discovery. The oldest and largest are \glspl{star catalogue}. Hundreds have been published, including general ones and special ones for such items as infrared stars, variable stars, giant stars, multiple star systems, and star clusters. Since the late 20th century catalogs are increasingly often compiled by computers from an automated survey, and published as computer files rather than on paper.%
\footnote{\cite{enwiki:Astronomical_catalog}}
}}
\newglossaryentry{Unix}
{ name={Unix},
description={is a family of multitasking, multiuser computer \glspl{OS} that derive from the original AT\&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others.%
\footnote{\cite{enwiki:Unix}}
}}
\newglossaryentry{appropriate technology}
{ name={appropriate technology},
description={is a movement (and its manifestations) encompassing technological choice and application that is small-scale, affordable by locals, decentralized, labor-intensive, energy-efficient, environmentally sustainable, and locally autonomous. Appropriate technology has been used to address issues in a wide range of fields. Today appropriate technology is often developed using \gls{open-source} principles, which have led to \gls{OSAT} and thus many of the plans of the technology can be freely found on the Internet.%
\footnote{\cite{enwiki:Appropriate_technology}}
}}
\newglossaryentry{distribution}
{ name={distribution},
description={is an \gls{OS} made from a software collection that includes the \gls{Linux} kernel and, often, a package management system. \gls{Linux} users usually obtain their \gls{OS} by downloading one of the \gls{Linux} distributions, which are available for a wide variety of systems ranging from \glspl{embedded system} and \glspl{PC} to powerful supercomputers. A typical \gls{Linux} distribution comprises a \gls{Linux} kernel, \gls{GNU} tools and libraries, additional software, documentation, a window system, a window manager, and a desktop environment. Most of the included software is \gls{FOSS} made available both as compiled binaries and in source code form, allowing modifications to the original software.%
\footnote{\cite{enwiki:Linux_distribution}}
}}
\newglossaryentry{Lagrange point}
{ name={Lagrange point},
description={are points of equilibrium for small-mass objects under the influence of two massive orbiting bodies. At the Lagrange points, the gravitational forces of the two large bodies and the centrifugal force balance each other. This can make Lagrange points an excellent location for satellites, as few \gls{orbit} corrections are needed to maintain the desired orbit. Small objects placed in orbit at Lagrange points are in equilibrium in at least two directions relative to the center of mass of the large bodies.%
\footnote{\cite{enwiki:Lagrange_point}}
}}
\newglossaryentry{GoTo}
{ name={GoTo},
description={In amateur astronomy, ``GoTo'' refers to a type of telescope mount and related software that can automatically point a telescope at astronomical objects that the user selects. Both axes of a GoTo mount are driven by a motor and controlled by a computer. It may be either a microprocessor-based integrated controller or an external \gls{PC}. This differs from the single-axis semi-automated tracking of a traditional clock-drive equatorial mount. The user can command the mount to point the telescope to the celestial coordinates that the user inputs, or to objects in a pre-programmed database including ones from the Messier catalogue, the \gls{NGC}, and even major Solar System bodies (the Sun, Moon, and planets). Like a standard \gls{EQ} mount, \gls{EQ} GoTo mounts can track the night sky by driving the right ascension axis. Since both axes are computer controlled, GoTo technology also allows telescope manufacturers to add \gls{EQ} tracking to mechanically simpler altazimuth mounts.%
\footnote{\cite{enwiki:GoTo_telescopes}}
}}
\newglossaryentry{slew}
{ name={slew},
description={The process of rotating a telescope to observe a different region of the sky.%
\footnote{\cite{enwiki:Slewing}}
}}
\newglossaryentry{toolchain}
{ name={toolchain},
description={is a set of programming tools that is used to perform a complex software development task or to create a software product, which is typically another computer program or a set of related programs.%
\footnote{\cite{enwiki:Toolchain}}
}}
\newglossaryentry{pipeline}
{ name={pipeline},
description={is a set of data processing elements connected in series, where the output of one element is the input of the next one. The elements of a pipeline are often executed in parallel or in time-sliced fashion.%
\footnote{\cite{enwiki:Pipeline_computing}}
}}
\newglossaryentry{embedded system}
{ name={embedded system},
description={is a computer system---a combination of a computer processor, computer memory, and input/output peripheral devices---that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an \gls{embedded system} typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. \Glspl{embedded system} control many devices in common use today. it was estimated that ninety-eight percent of all microprocessors manufactured were used in \glspl{embedded system}.%
\footnote{\cite{enwiki:Embedded_system}}
}}
\newglossaryentry{star trail}
{ name={star trail},
description={is a type of photograph that uses long exposure times to capture diurnal circles, the apparent motion of stars in the night sky due to Earth's rotation. A star-trail photograph shows individual stars as streaks across the image, with longer exposures yielding longer arcs.%
\footnote{\cite{enwiki:Star_trail}}
}}
\newglossaryentry{satellite flare}
{ name={satellite flare},
description={is a satellite pass visible to the naked eye as a brief, bright ``flare''. It is caused by the reflection toward the Earth below of sunlight incident on satellite surfaces such as solar panels and \glspl{antenna}. Many satellites flare with magnitudes bright enough to see with the unaided eye, i.e. brighter than magnitude +6.5.%
\footnote{\cite{enwiki:Satellite_flare}}
}}
\newglossaryentry{photon}
{ name={photon},
description={is an elementary particle that is a quantum of the electromagnetic field, including electromagnetic radiation such as light and radio waves, and the force carrier for the electromagnetic force. Photons are massless, so they always move at the speed of light in vacuum, 299,792,458 meters/second.%
\footnote{\cite{enwiki:Photon}}
}}
\newglossaryentry{software repository}
{ name={software repository},
description={or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source control or repository managers. Package managers allow automatically installing and updating repositories (sometimes called ``packages'').%
\footnote{\cite{enwiki:Software_repository}}
}}
\newglossaryentry{upstream}
{ name={upstream},
description={refers to a direction toward the original authors or maintainers of software that is distributed as source code, and is a qualification of either a version (released by the original authors, based on their upstream source code), a bug or a patch.%
\footnote{\cite{enwiki:Upstream}}
}}
\newglossaryentry{daemon}
{ name={daemon},
description={a service in a \gls{Unix} \gls{OS}.%
\footnote{\cite{enwiki:Daemon}}
}}
\newglossaryentry{Teledyne FLIR}
{ name={Teledyne FLIR},
description={a subsidiary of Teledyne Technologies, specializes in the design and production of thermal imaging cameras and sensors. The name is based on the acronym \gls{FLIR}.%
\footnote{\cite{enwiki:Teledyne_FLIR}}
}}
% TO ADD
% stphot
% giza (pgplot?)
% iOptron
% hamlib
% allsky
% Ekos
% RamSat
% Dashboard
% photon
% decay
% astrometry.net
% astap
% Source Extractor
% Watney
% PiCamera
% IMX174
% f-stop etc.
% sat constellations
% fork
% port
% pier
% ham
% star trails
% EQ equitorial
% fork software, fork mount
% sidereal
% List of Software ?
% Sky-Watcher
% Intel
% Kowa
% Odroid
% List of Companies
% Yaesu
% git
% all commands run
% numpy
% stellarium
% Galileo
% U-blox
% systemd
% gpsmon
% cgps
% indiserver
% ntpd
% lsusb
% copyleft
% epoch
% debris
% network
% noise
% workstation
% mean
% standard deviation
% max
% timestamp
% frame
% IOD
% COSPAR
% track = tracking mount
% track = satellite black line drawn on PNG...

View File

@ -11,61 +11,54 @@
\section{Overview of Ground Stations}
\label{sec:overview-groundstations}
\index{ground station}\index{SDR}\index{antenna}\index{camera}
\index{receiver}\index{embedded system}
\Glspl{ground-station} are a setup of equipment such as \glspl{embedded system}, cameras,
\index{camera}
\index{receiver}
\Glspl{ground-station} are a setup of equipment such as \glspl{embedded-system}, cameras,
\glspl{SDR}, \glspl{antenna}, and receivers, located on Earth, observing space.
\section{SatNOGS Ground Stations}
\index{ground station}\index{Libre Space Foundation}
\index{rotator}
The \gls{LSF} built the \gls{SatNOGS} network using distributed,
volunteer-run, \gls{RF} \glspl{ground-station} using \glspl{SDR}, such as in
figure \ref{fig:spacecruft-rotator}, page \pageref{fig:spacecruft-rotator}.%
\footnote{\url{https://spacecruft.org/assets/i/spacecruft-rotator.png}}
It shows a \gls{SatNOGS} \gls{ground-station} with \gls{VHF} (right) and \gls{UHF} (left)
\glspl{antenna} on a \gls{mast} with an \gls{Alt-Az} \gls{rotator}.
\glspl{antenna} on a \gls{mast} with an \gls{alt-az-mount} \gls{rotator}.
\glspl{SDR} can be used as \gls{RF} receivers.%
\footnote{\cite{Wiki22:softwdefinradiowikipfreeencyc}}
\index{radio}\index{SDR}\index{RF}\index{VHF}\index{UHF}\index{rotator}\index{antenna}
\begin{figure}[p!]
\begin{center}
\centering
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{spacecruft-rotator.png}
\caption{SatNOGS ground station with antennas.}
\caption{\gls{SatNOGS} \gls{ground-station} with antennas.}
\label{fig:spacecruft-rotator}
\index{radio}\index{RF}\index{rotator}\index{antenna}\index{ground station}
\end{center}
\end{figure}
Ground stations can be viewed on the \gls{SatNOGS} network website, such as
\Glspl{ground-station} can be viewed on the \gls{SatNOGS} network website, such as
as the example in figure \ref{fig:satnogs-ground-station-web}, page \pageref{fig:satnogs-ground-station-web}.%
\footnote{\url{https://network.satnogs.org/stations/2733/}}
\begin{figure}[h!]
\begin{framed}
\begin{sidewaysfigure}[p!]
\begin{center}
\centering
\includegraphics[keepaspectratio=true,height=0.60\textheight,width=0.60\textwidth,angle=0]{satnogs-ground-station-web.png}
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{satnogs-ground-station-web.png}
\caption{Ground station viewed on SatNOGS website, example.}
\label{fig:satnogs-ground-station-web}
\index{ground station}
\end{center}
\end{framed}
\end{figure}
\end{sidewaysfigure}
\section{SatNOGS Optical Ground Stations}
\index{ground station}\index{Libre Space Foundation}
The \gls{LSF} is developing \gls{SatNOGS-Optical} to add
\glspl{optical-ground-station} to the network.
Prototype \glspl{optical-ground-station} are being developed. An example
setup, using a Sky-Watcher EQ6-R Pro \gls{telescope} tripod and tracking mount,
\index{Sky-Watcher}\index{telescope}\index{tripod}\index{mount}\index{enclosure}
\index{Sky-Watcher}\index{tripod}\index{mount}\index{enclosure}
\index{mount}\index{track}
can be seen in figure
\ref{fig:video-enclosure-mount-tripod}, page \pageref{fig:video-enclosure-mount-tripod}.
@ -74,9 +67,9 @@ can be seen in figure
\begin{center}
\centering
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{video-enclosure-mount-tripod.png}
\caption{SatNOGS Optical ground station prototype.}
\caption{\gls{SatNOGS-Optical} \gls{ground-station} prototype.}
\label{fig:video-enclosure-mount-tripod}
\index{telescope}\index{tripod}\index{mount}\index{enclosure}
\index{tripod}\index{mount}\index{enclosure}
\end{center}
\end{figure}

View File

@ -11,25 +11,25 @@
\section{Overview of Hardware}
\label{sec:hardware-overview}
\index{hardware}\index{ground station}
\index{hardware}
Hardware considerations for a \gls{SatNOGS-Optical} \gls{ground-station}.
Main hardware components in an optical \gls{ground-station}:
Main hardware components in an \gls{optical-ground-station}:
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{itemize}
\item Lens. \index{lens}
\item Camera. \index{camera}
\item \Gls{embedded system} (computer). \index{embedded system}
\item \Gls{embedded-system} (computer).
\end{itemize}
\end{mdframed}
\index{lens}\index{camera}\index{embedded system}
\index{lens}\index{camera}
Other components:
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{itemize}
\item Ethernet cable. \index{ethernet}
\item \gls{USB} cable. \index{USB}
\item \gls{USB} cable.
\item Enclosure. \index{enclosure}
\item Power supply. \index{power supply}
\item Tripod. \index{tripod}
@ -38,12 +38,13 @@ Other components:
\item Internet, wifi or ethernet.\index{ethernet}
\end{itemize}
\end{mdframed}
\index{ethernet}\index{USB}\index{enclosure}\index{power supply}
\index{ethernet}\index{enclosure}\index{power supply}
\index{tripod}\index{mount}\index{wifi}
\section{Camera}
\label{sec:hardware-camera}
\index{camera}
% XXX aravis
Cameras being evaluated:
@ -52,7 +53,7 @@ Cameras being evaluated:
\item The Imaging Source IMX174 based, monochrome. \index{The Imaging Source}\index{IMX174}
\item ZWO ASI174MM, monochrome. \index{ZWO ASI}
\item ZWO ASI1600MM Pro, monochrome. \index{ZWO ASI}
\item \gls{DSLR} camera. \index{DSLR}
\item \gls{DSLR} camera.
\item PiCamera. \index{PiCamera}
\end{itemize}
\end{mdframed}
@ -61,7 +62,7 @@ Cameras being evaluated:
\parbox{\linewidth}{
\textcolor{red}{NOTICE:} \\
ZWO/ASI cameras require proprietary non-\gls{libre} software on host computer and is not \gls{DFSG} compatible.
\index{proprietary}\index{DFSG}
\index{proprietary}
}
}
@ -70,7 +71,7 @@ Cameras being evaluated:
\index{lens}
For lenses, the faster the better.
F1.2 works well.
F1.8 is the maxmimum recommended.
F1.8 is the maximum recommended.
Lenses being tested:
@ -83,23 +84,21 @@ Lenses being tested:
\section{Embedded System}
\label{sec:hardware-computer}
\index{hardware}\index{embedded system}
\Glspl{embedded system}, such as \gls{Raspberry Pi}, that can be used.
\index{Raspberry Pi}
\index{hardware}
\Glspl{embedded-system}, such as \gls{Raspberry-Pi}, that can be used.
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{description}
\item [Odroid N2] --- Confirmed working. \index{Odroid}
\item [Odroid M1] --- Testing.
\item [\gls{Raspberry Pi} 3] --- ? \index{Raspberry Pi}
\item [\gls{Raspberry Pi} 4] --- ? \index{Raspberry Pi}
\item [\gls{Raspberry-Pi} 3] --- ?
\item [\gls{Raspberry-Pi} 4] --- ?
\item [Intel \gls{NUC}] --- ? \index{Intel}
\end{description}
\end{mdframed}
\subsection{Embedded Systems Comparison}
Comparing \glspl{embedded system} for \gls{SatNOGS-Optical}.
\index{embedded system}
Comparing \glspl{embedded-system} for \gls{SatNOGS-Optical}.
\begin{center}
\begin{table}[ht]
@ -126,7 +125,7 @@ Comparing \glspl{embedded system} for \gls{SatNOGS-Optical}.
\section{Example Optical Ground Station with Tracking}
\label{sec:hardware-tracking-ground-station}
\index{ground station}\index{mount}\index{track}
\index{mount}\index{track}
\index{tripod}
This is an example of a tracking \gls{ground-station}.
@ -140,23 +139,23 @@ A close up of the setup can be seen at
showing the Sky-Watcher \gls{telescope} tracking mount,
a Bosch \gls{PoE} camera enclosure,
and through the glass the camera lens.
\index{Sky-Watcher}\index{telescope}\index{mount}\index{Bosch}\index{PoE}\index{camera}
\index{Sky-Watcher}\index{mount}\index{Bosch}\index{camera}
\index{lens}
In the background is a white \gls{antenna} for \gls{GNSS} (\gls{GPS}) and a solar power setup.
\index{GNSS}\index{GPS}\index{solar power}
\index{solar power}
\begin{figure}[p!]
\begin{center}
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{video-enclosure-mount.png}
\caption{SatNOGS-Optical ground station prototype.}
\label{fig:video-enclosure-mount}
\index{telescope}\index{mount}\index{camera}
\index{mount}\index{camera}
\end{center}
\end{figure}
The camera lens is protected by the enclosure glass, which is \gls{IP67} (XXX) rated.
See a close up of the front of the enclosure and camera lens in figure
\index{enclosure}\index{lens}\index{IP67}\index{camera}
\index{enclosure}\index{lens}\index{camera}
\ref{fig:video-enclosure-front}, page \pageref{fig:video-enclosure-front}.
\begin{figure}[h!]
@ -173,8 +172,8 @@ See a close up of the front of the enclosure and camera lens in figure
As seen in figure
\ref{fig:video-enclosure-left}, page \pageref{fig:video-enclosure-left},
the left side of the enclosure has a hinge for opening.
The bottom white component is part of the telescope mount.
\index{mount}\index{telescope}
The bottom white component is part of the \gls{telescope} mount.
\index{mount}
\begin{figure}[h!]
\begin{framed}
@ -227,23 +226,23 @@ is:
\begin{itemize}
\item The Imaging Source DMX camera with Sony IMX174 \gls{CMOS}. \index{The Imaging Source}\index{IMX174}
\item Kowa 50mm f1.4 C-mount lens.\index{Kowa}
\item Odroid N2 running \gls{Debian} \gls{GNU} \gls{Linux} system. \index{Odroid}\index{Debian}\index{GNU}\index{Linux}
\item Odroid N2 running \gls{Debian} \gls{GNU} \gls{Linux} system. \index{Odroid}
\item Odroid N2 plastic enclosure, large half, hole drilled for ad-hoc mounting.
\item Blower fan on top, with power cable (came with Bosch enclosure). \index{fan}
\item Fan, maybe not so useful, with power cable (came with Bosch enclosure).
\item Camera mounting plate (came with Bosch enclosure). \index{camera}
\item Camera mounting screws, M6x25 (?).
\item Ethernet cable, internal, short white (came with Bosch enclosure). \index{ethernet}\index{Bosch}
\item \gls{PoE} ethernet cable, external, plugged into \gls{PoE} switch for data and power. \index{PoE}
\item \gls{PoE} ethernet cable, external, plugged into \gls{PoE} switch for data and power.
\item \gls{USB} 3 cable, internal, way too long, needs replacing, from Odroid to camera. XXX flat connector
\item \gls{USB} 3 cable, external, from Odroid to \gls{telescope} mount. XXX large rectangle connector \index{USB}
\item \gls{USB} 3 cable, external, from Odroid to \gls{telescope} mount. XXX large rectangle connector
\item ``Custom'' 12\gls{V} \gls{DC} power cable from Bosch \gls{PoE} to Odroid.
\item Assorted nuts, bolts, and washers for an ad-hoc standoff height.
\end{itemize}
\end{mdframed}
\index{camera}\index{Kowa}\index{The Imaging Source}\index{Odroid}\index{Debian}
\index{camera}\index{Kowa}\index{The Imaging Source}\index{Odroid}
\index{fan}\index{power cable}\index{mount plate}\index{Bosch}
\index{ethernet}\index{PoE}\index{USB}\index{power cable}
\index{ethernet}\index{power cable}
\begin{sidewaysfigure}[p!]
\begin{center}
@ -255,7 +254,7 @@ is:
\end{sidewaysfigure}
The top of the enclosure shows weather protection and a sun visor.
\index{enclosure}
\index{enclosure}\index{weather}
See figure \ref{fig:video-enclosure-top}, page \pageref{fig:video-enclosure-top}.
\begin{figure}[h!]
@ -272,7 +271,7 @@ See figure \ref{fig:video-enclosure-top}, page \pageref{fig:video-enclosure-top}
\section{Tripods}
\label{sec:hardware-tripod}
\index{hardware}\index{tripod}\index{camera}
\index{hardware}\index{tripod}\index{camera}\index{pier}
The camera setup can be mounted a wide variety of ways,
from just setting the camera somewhere (worst option), to a heavy duty
@ -287,12 +286,12 @@ Tripod and similar options include:
\begin{description}
\item [No mount] --- Quick and dirty, just hang the camera out somewhere sitting on something.
\item [Small tripod] --- There are small desk tripods than can be used with lighter
setups, such as used with a \gls{Raspberry Pi} PiCamera.\index{tripod}
setups, such as used with a \gls{Raspberry-Pi} PiCamera.\index{tripod}
\item [Photography Tripod] --- Using a common camera tripod, of which there is a wide
variety, from light to heavy.\index{tripod}
\item [\Gls{telescope} Tripod] --- Similar to photography tripods, but typically heavier weight.\index{tripod}\index{telescope}
\item [\Gls{telescope} Tripod] --- Similar to photography tripods, but typically heavier weight.\index{tripod}
\item [\Gls{telescope} Portable Pier] --- Similar to a \gls{telescope} tripod, but much heavier, typically
with a larger center pier post. Still movable, and folds up similar to a photography tripod.\index{pier}\index{telescope}
with a larger center pier post. Still movable, and folds up similar to a photography tripod.\index{pier}
\item [\Gls{telescope} Pier] --- A wide variety, such as making a roughly 1.5 meter permanent cement post.
\end{description}
\end{mdframed}
@ -333,44 +332,43 @@ Tracking mount options to consider include:
\item [\gls{INDI} \Gls{telescope} Mounts] --- A wide variety of other \gls{INDI} compatible \gls{telescope} mounts.
\item [Yaesu G-5500] --- Antenna \gls{rotator}.
\item [hamlib] --- Other hamlib compatible \glspl{rotator}.
\item [\gls{Teledyne FLIR} PTU-5] --- High Performance \gls{PTZ} Unit designed for security cameras (untested, no drivers?).
\item [\gls{Teledyne-FLIR} PTU-5] --- High Performance \gls{PTZ} Unit designed for security cameras (untested, no drivers?).
\item [Misc \gls{PTZ}] --- Other security camera \gls{PTZ} mounts.
\end{description}
\end{mdframed}
\index{track}\index{mount}\index{Sky-Watcher}\index{INDI}\index{Celestron}
\index{Yaesu}\index{rotator}\index{hamlib}\index{FLIR}\index{PTZ}
\index{iOptron}
\index{track}\index{mount}\index{Sky-Watcher}\index{Yaesu}\index{hamlib}\index{iOptron}
\index{G-5500}
Tracking mounts aren't widely used, but there is support for them in
\texttt{stvid} when acquiring data.
\texttt{\gls{stvid}} when acquiring data.
The tracking needs to be set up independently of \texttt{stvid}.
At present, I use \gls{KStars} with Ekos to control a Sky-Watcher EQ6-R Pro
tracking mount.
\index{KStars}\index{Ekos}\index{Sky-Watcher}\index{stvid}\index{track}
\index{Ekos}\index{Sky-Watcher}\index{track}
For tracking, there a few different ways to track:
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{description}
\item [Static] --- No tracking, just point at one place in the sky.
Generates \glspl{star trail}.\index{star trail}
Generates \glspl{star-trail}.
Generates satellite trails.
\item [Sidereal tracking] --- Tracks stars.
Generates stars as points.
Generates satellite trails.
\item [Satellite tracking] --- Tracks satellites.
Generates \glspl{star trail}.
Generates \glspl{star-trail}.
Generates satellites as points or potentially larger images
of the satellite structure.
\end{description}
\end{mdframed}
\subsection{Sidereal Tracking Mounts}
\index{track}\index{Celestron}\index{COTS}\index{GoTo}
\index{track}\index{mount}
Sidereal tracking (``telescope tracking'') is what \gls{COTS} tracking ``\gls{GoTo}''
\glspl{telescope} from \gls{Celestron} or Sky-Watcher do, for example. They track
the stars, countering the rotation of the Earth to keep the same view
of the sky in the camera's \gls{FOV}. Stars remain as points, even after multi-minute
of the sky in the camera's \gls{FoV}. Stars remain as points, even after multi-minute
or multi-hour imaging. This is what is used for ``pretty'' pictures
of stars, nebula, galaxies, etc.
This is the most common tracking set up, as it has been widely used in
@ -383,7 +381,7 @@ Within sidereal tracking mounts, there are yet more options:
\item [Fork] --- Fork mount.
\item [\gls{EQ} fork] --- Fork on \gls{EQ} mount.
\item [German \gls{EQ}] --- Most common \gls{EQ} mount.
\item [More] --- Endless variety of available telescope mounts.
\item [More] --- Endless variety of available \gls{telescope} mounts.
\end{description}
\end{mdframed}
\index{German \gls{EQ}}\index{fork} %XXX
@ -395,9 +393,9 @@ tracking, but for our uses all three will be included under sidereal tracking.
To use a sidereal tracking mount for imaging satellites, the camera
must ``leap frog'' the satellite.
At present, my practice is to use a sidereal mount, point at a location with \gls{KStars},
start stvid. Then stop stvid, move to new location using \gls{KStars},
start stvid.
\index{track}\index{KStars}\index{stvid}\index{camera}
start \gls{stvid}. Then stop \gls{stvid}, move to new location using \gls{KStars},
start \gls{stvid}.
\index{track}\index{camera}
See Software section \ref{sec:software-tracking}, \pageref{sec:software-tracking}
for information on using tracking mounts.
@ -412,7 +410,7 @@ It requires, such as:
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{description}
\item [Time] --- Accurate time, such as from \gls{GNSS}.
\item [Time] --- Accurate time, such as from \gls{GNSS} or \gls{NTP}.
\item [Location] --- Accurate location, also available from \gls{GNSS}.
\item [\gls{TLE}] --- Need to know the \glspl{satellite}' orbit (accurately!).
\item [Variable speed tracking] --- \Glspl{satellite} are moving at different
@ -421,32 +419,28 @@ It requires, such as:
the equipment needs to be accurately aligned.
\end{description}
\end{mdframed}
\index{GNSS}\index{TLE}\index{orbit}\index{alignment}\index{track}
% Some skilled amateurs track by hand.
\index{alignment}\index{track}
Most tracking equipment for \glspl{telescope},
cameras, and \glspl{antenna} usually has just a few speeds, such as a \gls{slew} speed
and a sidereal star tracking speed. Sometimes there will be a few steps
of these speeds (e.g. \gls{slew} speeds from 1-9), but not the finely tuned tracking
speeds needed to track a satellite. Oftentimes the \gls{telescope} tracking maximum
speed will be too slow for satellite tracks.
\index{track}\index{telescope}
speed will be too slow for satellite tracking.
\index{track}
Variable speed tracking (XXX phrase?) is needed for tracking satellites if
the goal is to keep the satellite in the (near) center of the image frame
and leave \glspl{star trail}. The speed the mount moves needs to be calculated
based upon a recent orbit calcuation, such as from a \gls{TLE}.
\index{star trail}
and leave \glspl{star-trail}. The speed the mount moves needs to be calculated
based upon a recent \gls{orbit} calcuation, such as from a \gls{TLE}.
There are highly skilled amateur astronomers that have captured detailed
pictures of artificial satellites, such as the \gls{ISS} and astronauts doing
space walks, using hand guided \glspl{telescope} with low cost \gls{CCD} imagers.
\index{CCD}\index{ISS}
% XXX ref
There are few options for satellite tracking mounts.
Some new iOptron telescope mount \gls{firmware} supports tracking
Some new iOptron \gls{telescope} mount \gls{firmware} supports tracking
satellites. This has been largely untested so far, but at present
is likely the best option, if a satellite tracking mount is wanted.
\index{iOptron}\index{track}\index{mount}
@ -454,8 +448,8 @@ is likely the best option, if a satellite tracking mount is wanted.
\section{Future Designs}
\label{sec:hardware-future}
\index{RASA}\index{telescope}\index{astrograph}
\index{rotator}\index{antenna}\index{track}
\index{track}
\index{camera}
There is some discussion of using much larger ``lenses'', such as

View File

@ -11,8 +11,7 @@
\section{Overview of Satellite Identification}
\label{sec:overview-identify}
\index{identify}\index{SIDLOC}\index{orbit}
\index{SSA}
\index{identify}\index{locate}
The \gls{LSF} is developing a project called \gls{SIDLOC},
for \gls{satellite} identification and localization. With the
@ -22,11 +21,11 @@ for \gls{SSA}.
\section{\texttt{stvid}'s \texttt{process.py} for Identification}
\label{sec:process-identify}
\index{identify}\index{FITS}\index{stvid}\index{process}
\index{identify}\index{process}
The best tool for identifying \glspl{satellite} from \gls{FITS} files
is the \texttt{process.py}
script from \texttt{stvid}, available here:
script from \texttt{\gls{stvid}}, available here:
* \url{https://github.com/cbassa/stvid}
@ -36,8 +35,7 @@ My fork is here:
\section{Identifying Satellites with \texttt{satid}}
\index{satid}\index{sattools}\index{identify}
\index{C}\index{Giza}
\index{identify}\index{Giza}
The deprecated \gls{C} application, \texttt{satid} from the \texttt{\gls{sattools}}
package can help identify \glspl{satellite}.
@ -56,41 +54,40 @@ My fork is here:
\begin{center}
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{satid-giza-3.png}
\caption{\texttt{satid} example.}
\index{satid}\index{sattools}
\label{fig:satid-giza-3}
\end{center}
\end{figure}
\section{Identification with stvid}
\index{identify}\index{stvid}
\index{identify}
See section \ref{sec:satellite-detection}, page \pageref{sec:satellite-detection}
for details on identification with stvid.
for details on identification with \gls{stvid}.
The detection and identification steps are both done in one script.
See figure \ref{fig:stvid-process}, page \pageref{fig:stvid-process}
for an example of from \gls{stvid} automated processing of an input \gls{FITS}
file. The output image is in \gls{PNG} format.
\gls{stvid} will also output other files with results, such as \gls{CSV} files.
\index{stvid}\index{FITS}\index{PNG}\index{CSV}\index{process}
\index{process}
\begin{sidewaysfigure}[p!]
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{stvid/2022-08-23T11:21:34.290.fits.png}
\caption{Example satellite image processed by \texttt{stvid}.}
\label{fig:stvid-process}
\index{stvid}\index{process}
\index{process}
\end{sidewaysfigure}
\section{Review of Images}
\index{stvid}
See the following subsections for example output from \gls{stvid}.
\subsection{Unidentified Satellites}
\index{unidentified}\index{identify}\index{FITS}\index{stvid}
\index{unidentified}\index{identify}
When \gls{stvid} runs the \texttt{process.py} (or new) script and
it encounters a satellite it cannot identify, it gives it the
\gls{NORAD ID} \texttt{90000}. If more unidentified satellites are
\gls{NORAD-ID} \texttt{90000}. If more unidentified satellites are
detected in the same image, each detection is incremented by one.
See figure \ref{fig:stvid-unidentified}, page \pageref{fig:stvid-unidentified},
@ -98,79 +95,77 @@ See figure \ref{fig:stvid-unidentified}, page \pageref{fig:stvid-unidentified},
One is on the left, the other two on the right, next to each other.
See figures \ref{fig:stvid-unidentified-90000}, \ref{fig:stvid-unidentified-90001}, and \ref{fig:stvid-unidentified-90002}, pages \pageref{fig:stvid-unidentified-90000}, \pageref{fig:stvid-unidentified-90001}, and \pageref{fig:stvid-unidentified-90002},
to see an example of \texttt{stvid} labelling three identified satellites
with \glspl{NORAD ID} \texttt{90000}, \texttt{90001}, \texttt{90002}.
to see an example of \texttt{\gls{stvid}} labelling three identified satellites
with \glspl{NORAD-ID} \texttt{90000}, \texttt{90001}, \texttt{90002}.
\begin{sidewaysfigure}[p!]
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{id-new-sats/2022-08-23T11:18:12.531.fits.png}
\caption{stvid processed image, with three unidentified satellites.}
\label{fig:stvid-unidentified}
\index{stvid}\index{unidentified}
\index{unidentified}
\end{sidewaysfigure}
\begin{sidewaysfigure}[p!]
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{id-new-sats/2022-08-23T11:18:12.531_90000_unid.png}
\caption{stvid processed image, with three unidentified satellites, the first labeled with NORAD ID \texttt{90000}.}
\label{fig:stvid-unidentified-90000}
\index{stvid}\index{unidentified}
\index{unidentified}
\end{sidewaysfigure}
\begin{sidewaysfigure}[p!]
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{id-new-sats/2022-08-23T11:18:12.531_90001_unid.png}
\caption{stvid processed image, with three unidentified satellites, the second labeled with NORAD ID \texttt{90001}.}
\label{fig:stvid-unidentified-90001}
\index{stvid}\index{unidentified}
\index{unidentified}
\end{sidewaysfigure}
\begin{sidewaysfigure}[p!]
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{id-new-sats/2022-08-23T11:18:12.531_90002_unid.png}
\caption{stvid processed image, with three unidentified satellites, the third labeled with NORAD ID \texttt{90002}.}
\label{fig:stvid-unidentified-90002}
\index{stvid}\index{unidentified}
\index{unidentified}
\end{sidewaysfigure}
\subsection{Airplanes}
\index{airplane}\index{FITS}\index{noise}\index{stvid}
\index{airplane}\index{noise}
Airplanes are noise in the data.
Airplanes will appear not infrequently in images.
See figure \ref{fig:stvid-airplane1}, page \pageref{fig:stvid-airplane1}
for an example with an airplane in the left side, forming two parallel
lines from the aircrafts' lights.
trails from the aircrafts' lights.
In figure \ref{fig:stvid-airplane2}, page \pageref{fig:stvid-airplane2},
is shown an example image with an airplane with a very distinct blinking light.
In figure \ref{fig:stvid-airplane3}, page \pageref{fig:stvid-airplane3},
airplane solid parallel lights can be seen with blinking lights.
airplane solid parallel trails can be seen with blinking lights.
\begin{sidewaysfigure}[p!]
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{airplane/2022-08-23T04:17:27.161.fits.png}
\caption{Airplane, bold left side, in stvid processed image.}
\label{fig:stvid-airplane1}
\index{stvid}\index{airplane}
\index{airplane}
\end{sidewaysfigure}
\begin{sidewaysfigure}[p!]
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{airplane/2022-08-24T03:05:30.370.fits.png}
\caption{Airplane, blinking, in stvid processed image.}
\label{fig:stvid-airplane2}
\index{stvid}\index{airplane}
\index{airplane}
\end{sidewaysfigure}
\begin{sidewaysfigure}[p!]
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{airplane/2022-08-24T09:18:02.277.fits.png}
\caption{Airplane, two solid lights plus blinking, in stvid processed image.}
\label{fig:stvid-airplane3}
\index{stvid}\index{airplane}
\index{airplane}
\end{sidewaysfigure}
\subsection{Configuration and Setup Errors in Images}
\index{stvid}\index{process}\index{identify}\index{FITS}
\index{process}\index{identify}
See figure \ref{fig:stvid-misconfigured}, page \pageref{fig:stvid-misconfigured},
for an example of an image processed by a mis-configured system.
@ -180,12 +175,12 @@ This, and similar issues, can be addressed by checking:
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{itemize}
\item Recent \glspl{TLE} on both the processing workstation and the
\gls{embedded system}.\index{TLE}
\gls{embedded-system}.
\item Correct, \gls{NTP} (or better) synchronized time on on the processing
workstation and the \gls{embedded system}.
workstation and the \gls{embedded-system}.
\item Correct latitude, longitude, and altitude are set in configuration
files, typically based on \gls{GNSS} readings.
\index{latitude}\index{longitude}\index{altitude}\index{GNSS}
\index{latitude}\index{longitude}\index{altitude}
\end{itemize}
\end{mdframed}
@ -194,7 +189,7 @@ This, and similar issues, can be addressed by checking:
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{stvid/2022-08-25T03\:40\:03.853.fits.png}
\caption{\texttt{stvid} processed image, showing mis-configured/setup system.}
\label{fig:stvid-misconfigured}
\index{stvid}\index{airplane}
\index{airplane}
\end{sidewaysfigure}
\subsection{Image Processed with Bad TLE}
@ -202,25 +197,40 @@ In figure \ref{fig:stvid-process-bad-tle}, page \pageref{fig:stvid-process-bad-t
can be seen a \gls{FITS} file that has been processed by stvid, but with \glspl{TLE}
that are around two days old. As can be seen, the satellites don't quite line up
where they should.
\index{TLE}\index{FITS}\index{stvid}
\begin{sidewaysfigure}[p!]
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{stvid/2022-09-04T03:40:07.923.fits.png}
\caption{\texttt{stvid} processed image, alignment off due to use of old TLE.}
\label{fig:stvid-process-bad-tle}
\index{stvid}\index{TLE}
\end{sidewaysfigure}
\subsection{Image Acquired During Slew}
\index{acquire}\index{stvid}\index{slew}
\index{acquire}
See figured \ref{fig:stvid-process-bad-slew}, page \pageref{fig:stvid-process-bad-slew},
for an example image that is bad due to slewing during acquisition.
for an example image that is bad due to \gls{slew}[ing] during acquisition.
\begin{sidewaysfigure}[p!]
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{stvid/2022-09-04T04\:56\:37.072.fits.png}
\caption{\texttt{stvid} processed image, tracks due to slewing during acquire.}
\caption{\texttt{stvid} processed image, trails due to slewing during acquire.}
\label{fig:stvid-process-bad-slew}
\index{stvid}\index{TLE}
\end{sidewaysfigure}
\subsection{Light Outside FoV Artifact}
\index{acquire}
See figured \ref{fig:stvid-light-fov}, page \pageref{fig:stvid-light-fov},
for an example of an artifact, visible crossing the left and center,
generated by light outside the \gls{FoV}, in
this case the moon!%
\footnote{Pierros in SatNOGS Optical Matrix}
This is also an example image that detects classified satellites.
This is how the main upstream \texttt{\gls{stvid}} works.
\begin{sidewaysfigure}[p!]
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{stvid/stvid-light-fov.png}
\caption{\texttt{stvid} processed image, with classified satellites and light artifact.}
\label{fig:stvid-light-fov}
\end{sidewaysfigure}

View File

@ -11,7 +11,6 @@
The SatNOGS Optical Unofficial Guide documents how to set up and run an
\gls{optical-ground-station} for the \gls{LSF}'s \gls{SatNOGS} network.
\index{ground station}\index{Libre Space Foundation}
% https://network.satnogs.org/
\begin{figure}[h!]
@ -20,7 +19,6 @@ The SatNOGS Optical Unofficial Guide documents how to set up and run an
\includegraphics[keepaspectratio=true,height=0.60\textheight,width=0.60\textwidth,angle=0]{satnogs-network-web.png}
\caption{SatNOGS Network.}
\label{fig:satnogs-network-web}
\index{SatNOGS}
\end{framed}
\end{figure}
@ -32,47 +30,45 @@ A cursory review of \glspl{satellite} and existing \gls{RF} \glspl{ground-statio
will be followed by a big picture view of acquiring and processing
images of \glspl{satellite}. Hardware is reviewed, then software to run
on it, with many options, including what is best. Finally,
what to do with the data (\gls{IDK}!).
what to do with the data.
The chapters that follow are listed below.
\index{RF}\index{ground station}
% Perhaps more LaTeXy ref XXX
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{description}
\item [\Glspl{satellite}] --- What are we looking at?
\item [Ground Stations] --- How Earth talks to \glspl{satellite} and back.\index{ground station}
\item [\Glspl{ground-station}] --- How Earth talks to \glspl{satellite} and back.
\item [\Gls{toolchain} and Process] --- The big picture of what
hardware and software is needed to set up an optical ground station
for use on the distributed network.\index{toolchain}
hardware and software is needed to set up an \gls{optical-ground-station}
for use on the network.
\item [Hardware] --- Details on appropriate hardware configurations,
and example setups.
\item [Software] --- A look at the myriad software related to \glspl{satellite},
and what works best at present for SatNOGS Optical.
and what works best at present for \gls{SatNOGS-Optical}.
\item [Acquire] --- Convert \glspl{photon} to bits. Pointing a camera at the
sky works.\index{camera}
\item [Solve] --- Pictures of stars reveal the time and location of
the photo. Plate solvers reviewed.\index{plate solver}
\item [Detect] --- The plate solver says where the photo is,
now detect if are there moving tracks that aren't \glspl{star trail} that could
be \glspl{satellite}.\index{star trail}
the photo. \Glspl{plate-solver} reviewed.
\item [Detect] --- The \gls{plate-solver} says where the photo is,
now detect if are there moving trails that aren't \glspl{star-trail} that could
be \glspl{satellite}.
\item [Identify] --- With time, location, \gls{satellite} detection, \glspl{TLE}
are overlaid and compared with detected \glspl{satellite}.\index{identify}
\Gls{satellite} identification by computers and humans.
\item [Upload] --- When ready, data will be pushed to the SatNOGS network.
\item [Upload] --- When ready, data will be pushed to the \gls{SatNOGS} network.
\item [Support] --- Where development is occurring and questions answered!
\end{description}
\end{mdframed}
\index{ground station}\index{process}\index{hardware}\index{software}
\index{acquire}\index{solve}\index{detect}\index{identify}\index{upload}
\index{support}\index{plate solver}
\index{process}\index{hardware}\index{software}
\index{acquire}\index{detect}\index{identify}\index{upload}
\index{support}
\section{Libre Space Foundation}
\index{Libre Space Foundation}
The \gls{LSF} supports
``free and accessible space for all, creating \gls{open-source} space technologies.''%
\footnote{\url{https://libre.space}}
\index{Open Source}
\begin{figure}[h!]
\begin{framed}
@ -80,7 +76,6 @@ The \gls{LSF} supports
\includegraphics[keepaspectratio=true,height=0.60\textheight,width=0.60\textwidth,angle=0]{lsf-web.png}
\caption{Libre Space Foundation Website.}
\label{fig:lsf-web}
\index{Libre Space Foundation}
\end{framed}
\end{figure}
@ -98,8 +93,7 @@ Select \gls{LSF} projects:
\section{SatNOGS Network}
SatNOGS is the \gls{LSF}'s global network of \gls{satellite} ground stations.
\index{ground station}
\gls{SatNOGS} is the \gls{LSF}'s global network of \gls{satellite} ground stations.
\begin{figure}[h!]
\begin{framed}
@ -107,20 +101,17 @@ SatNOGS is the \gls{LSF}'s global network of \gls{satellite} ground stations.
\includegraphics[keepaspectratio=true,height=0.60\textheight,width=0.60\textwidth,angle=0]{satnogs-web.png}
\caption{SatNOGS Website.}
\label{fig:satnogs-web}
\index{SatNOGS}
\end{framed}
\end{figure}
\section{Optical Network Status}
\index{RF}
The SatNOGS \gls{RF} network has been running successfully for years.
Adding an optical network is a new development. At present there
The \gls{SatNOGS} \gls{RF} network has been running successfully for years.
Adding a \gls{SatNOGS-Optical} network is a new development. At present there
are zero nodes on the network.
Some software already exists,
some is being ported from \gls{C} to \gls{Python}, and other parts remain to be done.
There is software available for acquiring optical data of \glspl{satellite}.
There is no facility at present for pushing data back to the network.
\index{C}\index{Python}

View File

@ -1,6 +1,29 @@
# Makefile
all:
xelatex \
-halt-on-error \
-shell-escape \
-interaction=nonstopmode \
-no-pdf \
SNOUG.tex
biber SNOUG
#makeglossaries SNOUG
bib2gls SNOUG
xelatex \
-halt-on-error \
-shell-escape \
-interaction=nonstopmode \
-no-pdf \
SNOUG.tex
bib2gls SNOUG
xelatex \
-halt-on-error \
-shell-escape \
-interaction=nonstopmode \
-no-pdf \
SNOUG.tex
bib2gls SNOUG
xelatex \
-halt-on-error \
-shell-escape \
@ -21,7 +44,6 @@ all:
-no-pdf \
SNOUG.tex
makeindex SNOUG
biber SNOUG
xelatex \
-halt-on-error \
-shell-escape \
@ -33,11 +55,6 @@ all:
-shell-escape \
-interaction=nonstopmode \
SNOUG.tex
xelatex \
-halt-on-error \
-shell-escape \
-interaction=nonstopmode \
Cover.tex
cover:
xelatex \

View File

@ -605,4 +605,22 @@
year = {2022},
}
@Misc{enwiki:Docker,
author = {{Wikipedia contributors}},
title = {Docker (software) --- {Wikipedia}{,} The Free Encyclopedia},
howpublished = {\url{https://en.wikipedia.org/w/index.php?title=Docker_(software)&oldid=1108127182}},
note = {[Online; accessed 4-September-2022]},
modificationdate = {2022-09-04T17:25:07},
year = {2022},
}
@Misc{enwiki:Pixel_binning,
author = {{Wikipedia contributors}},
title = {Pixel binning --- {Wikipedia}{,} The Free Encyclopedia},
howpublished = {\url{https://en.wikipedia.org/w/index.php?title=Pixel_binning&oldid=1085651660}},
note = {[Online; accessed 4-September-2022]},
modificationdate = {2022-09-04T17:53:02},
year = {2022},
}
@Comment{jabref-meta: databaseType:biblatex;}

View File

@ -79,7 +79,6 @@ leftmargin=1cm,rightmargin=1cm
\setmonofont{LMMono12-Regular}
% Linux Biolinum
\setsansfont[Ligatures=TeX]{Linux Biolinum O}
%%% END PREAMBLE FONTS %%%
%%% MISC %%%
@ -216,11 +215,137 @@ leftmargin=1cm,rightmargin=1cm
%%% END INDEX %%%
%%% GLOSSARY %%%
\usepackage[toc,indexcrossrefs,translate=babel,nopostdot=true,nonumberlist,nogroupskip]{glossaries-extra}
\GlsXtrLoadResources
\setabbreviationstyle[acronym]{short-long}
\loadglsentries{Glossary}
\makenoidxglossaries
\let\printindex\relax % or conflicts with memoir
\usepackage[
automake, % Automatically create glossary files when compiling
acronyms, % Allow the use of acronyms as a separate glossary type
abbreviations, % Allow the use of abbreviations as a separate glossary type
nonumberlist,record=hybrid,index,toc,indexcrossrefs,translate=babel, % TODO comment what each of these does
]{glossaries-extra}
%%% Multiple Columns (Abbreviations)
\usepackage{glossary-mcols}
\renewcommand{\abbreviationsname}{List of Abbreviations} % Change the default name of the abbreviations
\makeindex
% Specify the in-text glossary abbreviation style for each glossary type
\setabbreviationstyle{long-short}
\setabbreviationstyle[acronym]{long-short} % The first time an acronym is used in text, display it as <long> (<short>), e.g. "Network Time Protocol (NTP)"
% Load all glossary type entries from separate .bib files. Acronyms and abbreviations are input using @dual<acronym/abbreviation> entries which the code below duplicates and puts into 2 separate glossary types: 1) acronym/abbreviation and 2) main. The former populate the acronyms/abbreviations and the latter populates the main glossary.
% Main glossary
\GlsXtrLoadResources[
src={Glossary.bib},
sort={en-US}, % Default sorting
type=main, % Glossary type of main (primary) entries (e.g. @entry)
dual-sort={combine}, % TODO this should be working but it's not >_< it also doesn't work in \GlsXtrLoadResources for the main glossary where it might need to go instead
dual-sort-field={sort}, % TODO not working
]
% Acronyms
\GlsXtrLoadResources[
src={Acronyms.bib}, % Source bib file containing acronym entries
sort={letter-nocase}, % Default sorting
type=acronym, % Glossary type of main (primary) entries (e.g. @acronym)
dual-type=main, % Glossary type of dual (secondary) entries, dual entries are only created with @dual* entries in the .bib file
dual-abbrv-map={{long}, {name}}, % Map the long field in the @dualacronym entry to the name field used in the main glossary
abbreviation-sort-fallback={name}, % Sort entries by the long field (check this in .glstex by looking at the dual entry sort= values)
dual-sort={combine}, % TODO this should be working but it's not >_< it also doesn't work in \GlsXtrLoadResources for the main glossary where it might need to go instead
dual-sort-field={sort}, % TODO not working
]
% Abbreviations
\GlsXtrLoadResources[
src={Abbreviations.bib}, % Source bib file containing abbreviations entries
sort={letter-nocase}, % Default sorting
type=abbreviations, % Glossary type of main (primary) entries (e.g. @abbreviation)
dual-type=main, % Glossary type of dual (secondary) entries, dual entries are only created with @dual* entries in the .bib file
dual-abbrv-map={{long}, {name}}, % Map the long field in the @dualabbreviation entry to the name field used in the main glossary
abbreviation-sort-fallback={name}, % Sort entries by the long field (check this in .glstex by looking at the dual entry sort= values)
dual-sort={combine}, % TODO this should be working but it's not >_< it also doesn't work in \GlsXtrLoadResources for the main glossary where it might need to go instead
dual-sort-field={sort}, % TODO not working
]
% Another approach that uses just the normal @abbreviation and @acronym entries but doesn't format entries in the main glossary correctly
%\GlsXtrLoadResources[
% src={Glossary.bib},
% sort={en-US}, % Default sorting
% type=main, % Glossary type of main (primary) entries (e.g. @entry)
%]
%% Acronyms
%\GlsXtrLoadResources[
% src={Acronyms.bib}, % Source bib file containing acronym entries
% sort={letter-nocase}, % Default sorting
% type=acronym, % Glossary type of main (primary) entries (e.g. @acronym)
% secondary={en-US:long:main},
%]
%% Abbreviations
%\GlsXtrLoadResources[
% src={Abbreviations.bib}, % Source bib file containing abbreviations entries
% sort={letter-nocase}, % Default sorting
% type=abbreviations, % Glossary type of main (primary) entries (e.g. @abbreviation)
% secondary={en-US:long:main},
%]
\GlsXtrEnableIndexFormatOverride
\glsdefpostname{acronym}{ (\glsentryshort{\glscurrententrylabel})} % Add " (<short>) to acronym entries in the main glossary
\glsdefpostname{abbreviation}{ (\glsentryshort{\glscurrententrylabel})} % Add " (<short>) to abbreviation entries in the main glossary
% Define a new glossary style that outputs short and long fields from glossary entries in a description list environment
\newglossarystyle{shortlongglossary}{%
% Put glossary entries into a description environment
\renewenvironment{theglossary}{
\begin{multicols}{2}
\begin{description}
}{
\end{description}
\end{multicols}
}%
% Define which fields are output for each glossary entry
\renewcommand*{\glossentry}[2]{%
\item[\glstarget{##1}{\glsentryshort{##1}}] \glsentrylong{##1} % Each glossary entry is output as a description item in the format: \item[<short>] <long>
}%
}
% Adds acronym to index like:
% World Coordinate System (WCS), 67, 116
% Adds glossary to index like:
% photon, xii
\renewcommand*{\glsxtrautoindexentry}[1]{%
\ifglshasshort{#1}%
{\string\glsentrylong{#1} (\glsentryshort{#1})}%
{\string\glsentrylong{#1}}%
}
% use long form for the sort value in the index, if provided:
\renewcommand*{\glsxtrautoindexassignsort}[2]{%
\ifglshaslong{#2}%
{\glsletentryfield{#1}{#2}{long}}%
{\glsletentryfield{#1}{#2}{sort}}%
}
% OK, ACRONYM shows description, then short.
% Showshort first better.
% Shows both when desc=long, only one needed...
% OK, but me. XXX borken?
%\glsdefpostname{acronym}{TEST} % This outputs something after the name, e.g. NTPTEST
%\renewcommand*{\glsxtrpostdescacronym}{\glsentrylong{\glscurrententrylabel}} % This outputs something after the description
% crossref for see:
\renewcommand*{\glsxtrpostdescgeneral}{%
\ifglshasfield{see}{\glscurrententrylabel}
{, \glsxtrusesee{\glscurrententrylabel}}%
{}%
}
% Index glossary, abbreviations, acronyms
\glssetcategoryattribute{general}{dualindex}{hyperpage}
\glssetcategoryattribute{abbreviation}{dualindex}{hyperpage}
\glssetcategoryattribute{acronym}{dualindex}{hyperpage}
% First letter upper
%\glssetcategoryattribute{general}{glossname}{firstuc}
%%% END GLOSSARY %%%
%%% DEBUG %%%
@ -333,6 +458,10 @@ leftmargin=1cm,rightmargin=1cm
%\include{Acknowledgements}
%%% END ACKNOWLEDGEMENTS PAGE %%%
%%% ACRONYM %%%
\printunsrtglossary[type={acronym}, style={shortlongglossary}]
%%% END ACRONYM %%%
% Format:
% \chapterconf{Name of file to include}{Title of Chapter}
\chapterconf{Introduction}{Introduction}{SatNOGS Optical}
@ -365,7 +494,6 @@ leftmargin=1cm,rightmargin=1cm
\chapterconf{Support}{Support}{Help!}
\chapterconf{Contact}{Contact}{Email, Chat, Forum}
%% END MAINMATTER CHAPTERS %%%
% Hardware, Software, Acquire, Plate Solver, Detect, Identify
%%% END MAINMATTER %%%
@ -377,11 +505,12 @@ leftmargin=1cm,rightmargin=1cm
%\chapterconf{Appendix}{Appendix}{Even More for Free}
%%% END APPENDIX %%%
%%% ABBREVIATIONS %%%
\printunsrtglossary[type={abbreviations}, style={shortlongglossary}]
%%% END ABBREVIATIONS %%%
%%% GLOSSARY %%%
% Set font for glossary word.
%\renewcommand*{\glsnamefont}[1]{\fontspec{GemunuLibre-Bold.otf}{#1}}
\clearpage
\printnoidxglossaries
\printunsrtglossary[type={main}, style={indexgroup}]
%%% END GLOSSARY %%%
%%% BIBLIOGRAPHY %%%

View File

@ -12,16 +12,15 @@
\label{sec:optical-howto}
\gls{SatNOGS-Optical} is the nascent distributed network of optical
ground stations.
\glspl{ground-station}.
This chapter gives a top level review what is needed in terms of hardware and
software to build an operating optical ground station.
\index{hardware}\index{software}\index{ground station}
software to build an operating optical \gls{ground-station}.
\index{hardware}\index{software}
\section{Toolchain}
\label{sec:toolchain}
\index{toolchain}
See below for a \gls{SatNOGS-Optical} Process Overview.%
\footnote{\url{https://spacecruft.org/spacecruft/SNOPO}}
@ -29,7 +28,7 @@ See figure \ref{fig:snopo}, page \pageref{fig:snopo}, described below.
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{description}
\item [Hardware] --- Hardware, such as cameras and \glspl{embedded system}, is to be selected and set up.
\item [Hardware] --- Hardware, such as cameras and \glspl{embedded-system}, is to be selected and set up.
\item [Software] --- The best currently available software is to be downloaded, installed, and configured.
\item [Acquire] --- Data samples, typically in the form of \gls{FITS} file photographs, need to be acquired by running a camera outside at night taking pictures of the sky.
\item [\Gls{plate-solver}] --- Acquired data samples in \gls{FITS} files need to be processed by a \gls{plate-solver}. See section \ref{sec:plate-solver}, page \pageref{sec:plate-solver}.
@ -38,14 +37,12 @@ See figure \ref{fig:snopo}, page \pageref{fig:snopo}, described below.
\end{description}
\end{mdframed}
\index{hardware}\index{software}\index{acquire}\index{detect}\index{identify}
\index{embedded system}\index{FITS}\index{camera}\index{plate solver}
\index{TLE}
\index{plate solver}
\index{camera}
\begin{sidewaysfigure}[p!]
\begin{center}
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{SNOPO.png}
\caption{SatNOGS Optical Process Overview}
\caption{\gls{SatNOGS-Optical} Process Overview}
\label{fig:snopo}
\index{process}
\end{center}
@ -58,9 +55,9 @@ See figure \ref{fig:snopo}, page \pageref{fig:snopo}, described below.
Discussed in this section are some of the hardware options to be
explored. More explicit instructions of a particular hardware installation
can be see in section \ref{sec:hardware-overview}, page \pageref{sec:hardware-overview}.
Discussed below are camera options, for details on \glspl{embedded system} and other parts,
Discussed below are camera options, for details on \glspl{embedded-system} and other parts,
also see hardware in section \ref{sec:hardware-overview}, page \pageref{sec:hardware-overview}
\index{embedded system}\index{camera}
\index{camera}
For the purposes here, there are three main categories of hardware. Depending which
category of equipment is selected, it impacts everything else, such as the
@ -80,31 +77,28 @@ Some can be used in multiple setups, most just in one.
If available, using motion video cameras will work best for
detecting \glspl{satellite} with the developing \gls{SatNOGS} \gls{toolchain}.
Examples of motion video camera sources that could be used:
\index{toolchain}
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{description}
\item [The Imaging Source Cameras based on IMX174] --- Known to work. Recommended.
High quality cameras, believed to be usable following \gls{DFSG}.
\item [ZWO ASI based on IMX174] --- Known to work. Not \gls{DFSG} compatible.
Uses proprietary \gls{SDK}. Currently in prototype development.
Uses proprietary \gls{SDK}. Currently in prototype development. \index{proprietary}
\item [\gls{UVC}/\gls{V4L2}] --- ``Any'' video camera that works with the \gls{Linux} kernel.
Typically, the device will appear similar to \texttt{/dev/video0}. A camera
that works with the software isn't necessarily sensitive enough to detect
satellites, however, as most are designed for brighter environments.
\item [\gls{OpenCV}] --- cameras that work with \gls{OpenCV} can be used, same as \gls{UVC}.
To work well, they need to be sensitive.
\item [\gls{Raspberry Pi}] --- The PiCamera can be used. A good lower cost option.
Recommended. Many non-\gls{Raspberry Pi} devices, such as Odroid are also compatible with the Pi
\gls{MIPI} interface.
\item [\gls{Raspberry-Pi}] --- The PiCamera can be used. A good lower cost option.
Recommended. Many non-\gls{Raspberry-Pi} devices, such as Odroid are also compatible with the Pi
\gls{MIPI} interface.\index{PiCamera}\index{Odroid}
\end{description}
\end{mdframed}
\index{The Imaging Source}\index{ZWO ASI}\index{UVC}\index{V4L2}\index{OpenCV}
\index{Raspberry Pi}\index{Odroid}\index{MIPI}\index{DFSG}\index{MIPI}
\index{The Imaging Source}\index{ZWO ASI}
Still cameras can also be used productively. The current \gls{Python} \gls{toolchain}
is in very early development and not completely usable yet.
\index{Python}
See the list below for still camera options:
@ -112,7 +106,7 @@ See the list below for still camera options:
\begin{description}
\item [\Glspl{telescope}] --- Can definitely take images of \glspl{satellite}.
Not the best tool at present, as it isn't well integrated into the \gls{SatNOGS-Optical} toolchain.
The \gls{FOV} is generally too small. The mounts are optimized for
The \gls{FoV} is generally too small. The mounts are optimized for
different types of tracking than satellites. This is changing, and longer
term could be well-supported. Using \gls{RASA} style \glspl{astrograph}
is likely the best option.
@ -131,10 +125,7 @@ See the list below for still camera options:
used with \gls{gPhoto}.
\end{description}
\end{mdframed}
\index{telescope}\index{INDI}\index{gPhoto}\index{DSLR}
\index{KStars}\index{Ekos}\index{track}\index{mount}
\index{FITS}\index{Linux}\index{Debian}
\index{Canon}\index{Nikon}
\index{Ekos}\index{track}\index{mount}\index{Canon}\index{Nikon}
Considering the hardware options above, they need to be matched with
corresponding software. Not all options work (at all), and some cannot be
@ -166,12 +157,11 @@ There are also broader ``paths'' that need to be considered:
the basis for future \gls{SatNOGS-Optical} development.
The difficulty with all sky cameras is the \gls{plate-solver} isn't
written to use images from the ``fish-eye'' view of an all sky camera.
\item [Other] --- There are many other satellite and telescope software
\item [Other] --- There are many other satellite and \gls{telescope} software
packges freely available on the Internet. Perhaps some could be adapted for
usage.
\end{description}
\end{mdframed}
\index{sattools}\index{Python}\index{C}\index{stvid}\index{motion video}
\index{motion video}
\index{still camera}\index{allsky}\index{stphot}\index{allsky}
\index{plate solver}

View File

@ -11,39 +11,36 @@
\section{Overview of Satellites}
\label{sec:overview-satellite}
\index{satellite}\index{RF}\index{amateur radio}
This chapter gives a brief overview of \glspl{satellite}, with particular
antention to ones using \gls{amateur radio} bands.
\index{amateur radio}
antention to ones using \gls{amateur-radio} bands.
\section{SatNOGS DB}
\label{sec:satnogs-db}
The SatNOGS \gls{DB} is a database that lists \glspl{satellite},
many of which can be tracked by ground station operators on the
The \gls{SatNOGS-DB} is a database that lists \glspl{satellite},
many of which can be tracked by \gls{ground-station} operators on the
\gls{SatNOGS} network.
\index{SatNOGS DB}
\begin{figure}[h!]
\begin{framed}
\centering
\includegraphics[keepaspectratio=true,height=0.60\textheight,width=0.60\textwidth,angle=0]{satnogs-db-web.png}
\caption{SatNOGS DB website.}
\includegraphics[keepaspectratio=true,height=0.80\textheight,width=0.80\textwidth,angle=0]{satnogs-db-web.png}
\caption{\gls{SatNOGS-DB} website.}
\label{fig:satnogs-db-web}
\index{SatNOGS DB}
\end{framed}
\end{figure}
Individual \glspl{satellite} can be viewed, such as the RamSat \Gls{cubesat}.
\index{RamSat}\index{CubeSat}
\index{RamSat}
% https://db.satnogs.org/satellite/YJWC-7364-7085-7563-0113
\begin{figure}[h!]
\begin{framed}
\centering
\includegraphics[keepaspectratio=true,height=0.60\textheight,width=0.60\textwidth,angle=0]{satnogs-db-ramsat-web.png}
\caption{SatNOGS DB RamSat CubeSat web page.}
\caption{\gls{SatNOGS-DB} RamSat \gls{cubesat} web page.}
\label{fig:satnogs-db-ramsat-web}
\index{RamSat}
\end{framed}
@ -51,25 +48,23 @@ Individual \glspl{satellite} can be viewed, such as the RamSat \Gls{cubesat}.
For some \glspl{satellite}, \gls{telemetry} is available in a \gls{Grafana} dashboard.
See the RamSat \gls{telemetry} dashboard.
\index{RamSat}\index{telemetry}\index{Grafana}\index{dashboard}
\index{RamSat}\index{dashboard}
% https://dashboard.satnogs.org/d/XZQTCYznz/ramsat?orgId=1&refresh=30s&var-suid=48850
\begin{figure}[h!]
\begin{framed}
\begin{sidewaysfigure}[p!]
\centering
\includegraphics[keepaspectratio=true,height=0.60\textheight,width=0.60\textwidth,angle=0]{satnogs-telemetry-ramsat-web.png}
\caption{SatNOGS DB RamSat CubeSat telemetry web page.}
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{satnogs-telemetry-ramsat-web.png}
\caption{\gls{SatNOGS-DB} RamSat \gls{cubesat} \gls{telemetry} web page.}
\label{fig:satnogs-telemetry-ramsat-web}
\index{RamSat}
\end{framed}
\end{figure}
\end{sidewaysfigure}
\section{Libre Satellites}
\label{sec:libre-satellites}
Below are \glspl{satellite} in \gls{orbit}, decayed, or designs on Earth that generally support the \gls{libre} way.
These are some select \gls{libre} \glspl{satellite}:
\index{orbit}\index{decay}
\index{decay}
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{description}
@ -78,12 +73,12 @@ These are some select \gls{libre} \glspl{satellite}:
\url{https://upsat.gr/}
\end{description}
\end{mdframed}
\index{UPSat}\index{Libre Space Foundation}
\index{UPSat}
\begin{figure}[h!]
\begin{framed}
\centering
\includegraphics[keepaspectratio=true,height=0.60\textheight,width=0.60\textwidth,angle=0]{upsat-web.png}
\includegraphics[keepaspectratio=true,height=0.80\textheight,width=0.80\textwidth,angle=0]{upsat-web.png}
\caption{UPSat Website.}
\label{fig:upsat-web}
\index{UPSat}
@ -94,37 +89,34 @@ These are some select \gls{libre} \glspl{satellite}:
See figure \ref{fig:satnogs-obs-list-ramsat-web}, page \pageref{fig:satnogs-obs-list-ramsat-web}
for a example list of observations of the RamSat \Gls{cubesat}.%
\footnote{\url{https://network.satnogs.org/observations/?future=0&norad=48850&observer=&station=&start=&end=&transmitter_mode=&page=2}}
\index{RamSat}\index{CubeSat}\index{RF}\index{observation}\index{schedule}
\index{RamSat}\index{observation}\index{schedule}
\begin{figure}[h!]
\begin{framed}
\centering
\includegraphics[keepaspectratio=true,height=0.60\textheight,width=0.60\textwidth,angle=0]{satnogs-obs-list-ramsat-web.png}
\caption{List of observations of the RamSat CubeSat, example.}
\includegraphics[keepaspectratio=true,height=0.80\textheight,width=0.80\textwidth,angle=0]{satnogs-obs-list-ramsat-web.png}
\caption{List of observations of the RamSat \gls{cubesat}, example.}
\label{fig:satnogs-obs-list-ramsat-web}
\index{RamSat}\index{observation}\index{CubeSat}
\index{RamSat}\index{observation}
\end{framed}
\end{figure}
Individual \gls{RF} observations are uploaded to the SatNOGS network,
as can be seen in the example observation of the RamSat \gls{cubesat} by SatNOGS
ground station ``2380 - Piszkesteto \gls{UHF}'' run by volunteer bcsak (username).
\index{RF}\index{RamSat}\index{UHF}\index{bcsak}
Individual \gls{RF} observations are uploaded to the \gls{SatNOGS} network,
as can be seen in the example observation of the RamSat \gls{cubesat} by \gls{SatNOGS}
\gls{ground-station} ``2380 - Piszkesteto \gls{UHF}'' run by volunteer bcsak (username).
\index{RamSat}\index{bcsak}
\begin{figure}[h!]
\begin{framed}
\begin{sidewaysfigure}[p!]
\centering
\includegraphics[keepaspectratio=true,height=0.60\textheight,width=0.60\textwidth,angle=0]{satnogs-obs-6401760-web.png}
\caption{Sample observation of RamSat CubeSat on SatNOGS website.}
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{satnogs-obs-6401760-web.png}
\caption{Sample observation of RamSat \gls{cubesat} on SatNOGS website.}
\label{fig:satnogs-obs-6401760-web}
\index{RamSat}\index{observation}\index{CubeSat}
\end{framed}
\end{figure}
\index{RamSat}\index{observation}
\end{sidewaysfigure}
\section{Satellite Orbits}
\label{sec:satellite-orbits}
\index{orbit}\index{SGP}\index{SDP}\index{TLE}
Satellite \glspl{orbit}.
See \gls{SGP} and \gls{SDP}.

View File

@ -26,29 +26,32 @@ for a diagram with an overview of the software process.
back arrow distance=0.75,
}
\smartdiagram[flow diagram:horizontal]{Acquire, Process, Analyze, Upload}
\caption{SatNOGS Optical Operation Pipeline}
\caption{\gls{SatNOGS-Optical} Operation Pipeline}
\label{fig:operation}
\index{operation}
% \end{framed}
\end{figure}
\end{center}
\index{acquire}\index{process}\index{analyz}\index{upload}
\index{acquire}\index{process}\index{analyze}\index{upload}
\section{Setup Optical Ground Station Software}
\label{sec:software-setup}
\index{software}
HOWTO set up and configure a \gls{SatNOGS-Optical} \gls{ground-station} prototype.
Note: the SatNOGS network is not yet ready for optical data.
Note: the \gls{SatNOGS} network is not yet ready for optical data.
Setup an \gls{embedded system}, such as a \gls{Raspberry Pi} or an Odroid N2,
For a description of installation using \gls{Docker}, see
section \ref{sec:software-docker}, page \pageref{sec:software-docker}.
For a ``manual'' install, see immediately below.
Setup an \gls{embedded-system}, such as a \gls{Raspberry-Pi} or an Odroid N2,
with \gls{Debian} stable (11/Bullseye) or testing (Bookworm).
\index{embedded system}\index{Odroid}\index{Debian}
\index{Raspberry Pi}
\index{Odroid}
See each \gls{software repository} for latest documentation.
See each \gls{software-repository} for latest documentation.
\index{repository}
Install dependencies from the \gls{Debian} \gls{software repository}:
Install dependencies from the \gls{Debian} \gls{software-repository}:
\begin{minted}{sh}
sudo apt update
@ -59,11 +62,10 @@ sudo apt install python3-virtualenv python3-pip python3-dev \
astrometry-data-tycho2-08 astrometry-data-tycho2-09 \
astrometry-data-tycho2-10-19
\end{minted}
\index{Python}\index{virtualenv}\index{PIP}\index{astrometry.net}
\index{virtualenv}\index{PIP}
\index{Giza}\index{Source Extractor}
Next, install the \texttt{\gls{hough3d-code}} dependency.
\index{hough3d-code}
\begin{minted}{sh}
git clone https://gitlab.com/pierros/hough3d-code
@ -71,11 +73,10 @@ cd hough3d-code
make all
sudo cp -p hough3dlines /usr/local/bin/hough3dlines
\end{minted}
\index{hough3dlines}
Install \texttt{\gls{satpredict}} from using either the cbassa or spacecruft
\gls{software repository}.
\index{satpredict}\index{repository}
\gls{software-repository}.
\index{repository}
\begin{minted}{sh}
cd ../
@ -87,10 +88,10 @@ make
sudo make install
\end{minted}
Now install \texttt{stvid}, the main acquisition and processing
Now install \texttt{\gls{stvid}}, the main acquisition and processing
application. It is written in \gls{Python}. Either use the spacecruft
\texttt{git} \gls{software repository} or the cbassa one.
\index{stvid}\index{Python}\index{acquire}
\texttt{git} \gls{software-repository} or the cbassa one.
\index{acquire}
\begin{minted}{sh}
cd ../
@ -100,7 +101,7 @@ git clone https://spacecruft.org/spacecruft/stvid
\end{minted}
Optionally, set up a \gls{Python} virtual environment and use \gls{PIP}:
\index{Python}\index{virtualenv}\index{PIP}
\index{virtualenv}
\begin{minted}{sh}
cd stvid
@ -116,7 +117,7 @@ install fails.
pip install --upgrade numpy
pip install --upgrade -r requirements.txt
\end{minted}
\index{numpy}\index{PIP}
\index{numpy}
If the system \texttt{python3-numpy} conflicts, you could try installing
numpy with \gls{PIP} in the virtualenv thusly:
@ -128,7 +129,7 @@ pip install --upgrade --ignore-installed numpy
\gls{Debian} in bug \texttt{\#941466} changed the name of the
\texttt{sextractor} dependency to \texttt{source-extractor},
so a symlink is needed for now:
\index{Debian}\index{Source Extractor}\index{SExtractor}
\index{Source Extractor}\index{SExtractor}
\begin{minted}{sh}
sudo ln -s /usr/bin/source-extractor /usr/local/bin/sextractor
@ -136,8 +137,7 @@ sudo ln -s /usr/bin/source-extractor /usr/local/bin/sextractor
\section{Configure Software}
\label{sec:software-configure}
Configure the \gls{embedded system}.
\index{embedded system}
Configure the \gls{embedded-system}.
\begin{minted}{sh}
cd stvid/
@ -147,7 +147,7 @@ cp -p configuration.ini-dist configuration.ini
# Set:
vi configuration.ini
\end{minted}
\index{stvid}\index{configuration.ini}
\index{configuration.ini}
Edit various \texttt{configuration.ini} fields:
\begin{minted}{sh}
@ -168,7 +168,7 @@ st-password = bar
# Path to source-extractor
sex_config = /usr/share/source-extractor/default.sex
\end{minted}
\index{Source Extractor}\index{TLE}\index{COSPAR}
\index{Source Extractor}\index{COSPAR}\index{TLE}
Store downloads here:
@ -178,7 +178,7 @@ mkdir -p ./data/obs ./data/tle ./data/results
The \texttt{ST\_DATADIR} variable is still used, from \texttt{sattools}.
Maybe set all these in \texttt{\~/.bashrc} (suit to fit directory setup):
\index{bashrc}\index{sattools}
\index{bashrc}
\begin{minted}{sh}
export ST_DATADIR=$HOME/sattools
@ -186,25 +186,23 @@ export ST_TLEDIR=$HOME/TLE
export ST_OBSDIR=$HOME/satobs
export ST_LOGIN="identity=foo@no:pass"
\end{minted}
\index{sattools}\index{TLE}
Set \texttt{astrometry.net} to run in parallel, assuming you have enough \gls{RAM}:
(This doesn't appear to work? Breaks?).
\index{astrometry.net}
\begin{minted}{sh}
sudo vim /etc/astrometry.cfg
# Uncomment:
inparallel
\end{minted}
\index{astrometry.net}
\section{skymap}
\label{sec:skymap}
\index{skymap}\index{orbit}\index{sattools}
Use \gls{skymap} for viewing \gls{satellite} \glspl{orbit} tracks
projected on a map of of the sky. Skymap is part of \gls{sattools}.
Use \gls{skymap} for viewing \gls{satellite} \glspl{orbit} trails
projected on a map of of the sky. \Gls{skymap} is part of \gls{sattools}.
\Gls{skymap} isn't a required part of the \gls{toolchain}, but it is useful
to see what \glspl{satellite} are visible at a particular time and
location.
@ -220,9 +218,8 @@ My fork:
\begin{sidewaysfigure}[p!]
\begin{center}
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{skymap-giza-21.png}
\caption{\texttt{skymap} example screenshot.}
\index{skymap}\index{sattools}
\label{fig:skymap-giza-21}
\caption{\texttt{\gls{skymap}} example screenshot.}
\label{fig:skymap-giza-21}
\end{center}
\end{sidewaysfigure}
@ -230,16 +227,15 @@ My fork:
\parbox{\linewidth}{
\textcolor{red}{NOTICE:} \\
The main upstream \gls{sattools} package requires non-\gls{libre} \texttt{pgplot} on the host computer which is not \gls{DFSG} compatible.
\index{proprietary}\index{DFSG}\index{pgplot}
\index{proprietary}\index{pgplot}
}
}
Described below is how to build and install my fork of \gls{sattools} to use
\gls{skymap} instead of upstream. \Gls{upstream} requires non-\gls{libre} software which
also happens to be very difficult for most users to compile. My fork uses the
Giza library which replaces pgplot. It is much easier to build.
\index{fork}\index{sattools}\index{skymap}\index{Giza}\index{pgplot}
\index{fork}\index{Giza}\index{pgplot}
\begin{minted}{sh}
# Install dependencies
@ -270,7 +266,7 @@ sudo make uninstall
\end{minted}
See below for \gls{skymap} (fork) usage:
\index{TLE}\index{skymap}
\begin{minted}{sh}
tleupdate
@ -306,7 +302,6 @@ Visualize satellites on a map of the sky.
-B, --latitude manual site latitude (deg)
-H, --elevation manual site elevation (m)
\end{minted}
\index{TLE}
\section{Tracking Software}
@ -328,7 +323,7 @@ software:
\item [Cameras] --- Controlling \gls{PTZ} cameras remotely.
\end{description}
\end{mdframed}
\index{telescope}\index{antenna}\index{hamlib}\index{PTZ}
\index{hamlib}
\index{camera}
@ -339,28 +334,77 @@ Software that can be used with \gls{telescope} tracking mounts:
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{description}
\item [\gls{INDI}] --- Main client/server used by other applications.
\item [\gls{KStars}] --- \Glspl{sky chart}, \gls{INDI} control.
\item [\gls{KStars}] --- \Glspl{sky-chart}, \gls{INDI} control.
\item [Ekos] --- Application used within \gls{KStars} for remote control
of \glspl{telescope} and related hardware via \gls{INDI}.
\item [Stellarium] --- \Glspl{sky chart}, has \gls{INDI} plugin.
\item [Stellarium] --- \Glspl{sky-chart}, has \gls{INDI} plugin.
\item [Other \gls{INDI}] --- Many more applications work with \gls{INDI}.
\item [INDIGO] --- Positions itself as a next-generation \gls{INDI} (?).
\end{description}
\end{mdframed}
\index{telescope}\index{INDI}\index{KStars}\index{Ekos}\index{Stellarium}
\index{INDIGO}\index{sky chart}
\index{Ekos}\index{Stellarium}
\index{INDIGO}
Using \gls{INDI} with \gls{KStars} and Ekos on a Sky-Watcher or \gls{Celestron}
\gls{telescope} mount is a known working solution.
\index{Sky-Watcher}\index{Celestron}
\index{Sky-Watcher}\index{Ekos}
\gls{Celestron} \glspl{telescope} are widely used and available for many years.
There is a variety of software written to control the mounts. The below list
covers the drivers (e.g. \gls{INDI}), not the software on top (e.g \gls{KStars}).
\gls{Celestron} Nexstar \gls{telescope} tracking mount drivers:%
\footnote{\url{https://www.indilib.org/telescopes/celestron.html}}%
\footnote{\url{https://github.com/indigo-astronomy/libnexstar}}%
\footnote{\url{https://github.com/indigo-astronomy/indigo/blob/master/indigo_drivers/mount_nexstar/README.md}}
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{description}
\item [Celestron INDI] --- \gls{Celestron} \gls{INDI}
\item [libnexstar INDIGO] --- libnexstar INDIGO.
\end{description}
\end{mdframed}
Sky-Watcher EQ6-R Pro \gls{telescope} tracking mount drivers:%
\footnote{\url{https://www.indilib.org/telescopes/skywatcher.html}}%
\footnote{\url{https://www.indilib.org/telescopes/skywatcher/eqmod.html}}%
\footnote{\url{https://www.indilib.org/telescopes/skywatcher/synscan-telescope.html}}
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{description}
\item [EQMod Mount INDI] --- Drives Sky-Watcher protocol.
\item [Synscan INDI] --- Drives Synscan hand controller.
\gls{INDI} recommends using EQMod Mount over Synscan.
\item [libnexstar INDIGO] --- libnexstar INDIGO.
\end{description}
\end{mdframed}
\subsection{INDI}
\gls{INDI} does much, \gls{KStars}, etc.
One option to consider is making \gls{stvid} an \gls{INDI} client.
\subsection{INDIGO}
INDIGO%
\footnote{\url{https://www.indigo-astronomy.org/}}
works with libnexstar, which supports many mounts:%
\footnote{\url{https://github.com/indigo-astronomy/libnexstar}}
\begin{quote}
This library implements the serial commands supported by the Celestron
NexStar hand control (HC) and SkyWatcher/Orion SynScan HC. This applies
to the Celestron: NexStar GPS, NexStar GPS-SA, NexStar iSeries, NexStar
SE Series, NexStar GT, CPC, SLT, Advanced-VX, Advanced-GT, CGE, CGEM etc.
SkyWatcher: EQ5, HEQ5, EQ6 (Pro), AZ-EQ5 GT, AZ-EQ6 GT, EQ8 etc. and the
corresponding Orion mounts.
\end{quote}
\subsection{Antenna Tracking Software}
At present, for the \gls{SatNOGS} network \gls{RF} \glspl{ground-station},
hamlib is typically used for tracking, if directional \glspl{antenna} are
used. Hamlib was originally created for \gls{amateur radio} equipment, but has
expanded to control many more devices.
\index{hamlib}\index{antenna}\index{RF}\index{amateur radio}
used. Hamlib was originally created for \gls{amateur-radio} equipment, but has
expanded to control many more devices. Hamlib can be used for some
telescope mounts.
\index{hamlib}
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{description}
@ -368,15 +412,26 @@ expanded to control many more devices.
\end{description}
\end{mdframed}
\subsection{Hamlib}
I don't know of anyone prototyping a satellite tracking mount with hamlib,
but it should be possible using the ``leap frog'' method, perhaps on the
same mount as existing \gls{SatNOGS} \glspl{antenna}. The mount may not
be steady enough.
\index{hamlib}\index{mount}\index{track}
Hamlib lists support for the following tracking mounts, usually
used with \glspl{telescope}.%
\footnote{Output from version 4.3.1 of \texttt{rotctl --list}}
\begin{minted}{sh}
1401 Celestron NexStar 20110821.0 Untested ROT_MODEL_NEXSTAR
1801 Meade LX200/Autostar 20200610.0 Stable ROT_MODEL_MEADE
1901 iOptron iOptron 20191209.0 Alpha ROT_MODEL_IOPTRON
\end{minted}
\subsection{Camera Tracking Software}
\index{PTZ}
There are applications for using \gls{PTZ} control of cameras, such as used in
``security'' cameras.
@ -392,8 +447,7 @@ at present.
\section{GNSS with \texttt{gpsd}}
\label{sec:software-gnss}
\index{GNSS}\index{GPS}\index{Galileo}\index{GLONASS}\index{Beidou}
\index{gpsd}
\index{Galileo}
\gls{GNSS} is used for time synchronization and for (somewhat)
accurately determining the location of the observation.
@ -401,23 +455,21 @@ accurately determining the location of the observation.
\gls{GNSS} collectively includes the USA \gls{GPS}, Europe's Galileo,
Russia's \gls{GLONASS}, and China's \gls{BDS}, as well as other
regional systems.
\index{GPS}\index{Galileo}\index{GLONASS}\index{Beidou}
\index{Galileo}
\index{USA}\index{Europe}\index{Russia}\index{China}
A basic, widely available \gls{COTS} \gls{USB} \gls{GNSS} device
with a basic (or no!) \gls{antenna} plugged into the \gls{embedded system}
with a basic (or no!) \gls{antenna} plugged into the \gls{embedded-system}
can get time and location accurate enough for the
purposes here. See various U-Blox devices, for example.
\index{COTS}\index{USB}\index{U-Blox}
\index{U-Blox}
In \gls{Debian} \gls{GNSS} service with a \gls{USB} device can be provided
by the \texttt{\gls{gpsd}} application.
\index{Debian}\index{GNSS}\index{gpsd}
\begin{minted}{sh}
sudo apt install gpsd gpsd-tools
\end{minted}
\index{gpsd}
Edit the configuration file, \texttt{/etc/default/gpsd} like:
@ -433,7 +485,7 @@ acquire and process are on different machines). Using the
device \texttt{/dev/ttyACM0} can be problematic if there are multiple
\texttt{/dev/ttyACM*} devices. Perhaps something like this could be
used in that case:
\index{/dev/ttyACM}\index{gpsd}
\index{/dev/ttyACM}
\begin{minted}{sh}
DEVICES="/dev/serial/by-id/usb-u-blox_AG_-_www.u-blox.com_u-blox_GNSS_receiver-if00"
@ -449,7 +501,6 @@ systemctl edit --full gpsd.socket
\index{systemd}
And create a \gls{gpsd} configuration like this (I have \gls{IPv6} disabled, in this case):
\index{gpsd}
\begin{minted}{sh}
[Unit]
@ -465,14 +516,14 @@ BindIPv6Only=no
[Install]
WantedBy=sockets.target
\end{minted}
\index{GPS}\index{gpsd}\index{systemd}
\index{systemd}
(Re)start:
\begin{minted}{sh}
sudo systemctl restart gpsd.service gpsd.socket
\end{minted}
\index{systemctl}\index{gpsd}
\index{systemctl}
Test all is good:
@ -481,14 +532,14 @@ gpsmon -n
# or
cgps -u m
\end{minted}
\index{gpsmon}\index{cgps}\index{GPS}\index{gpsd}
\index{gpsmon}\index{cgps}
Enable to start on boot:
\begin{minted}{sh}
sudo systemctl enable gpsd.service gpsd.socket
\end{minted}
\index{systemctl}\index{gpsd}
\index{systemctl}
See below for sample output from \texttt{cgps}.
@ -518,19 +569,18 @@ See below for sample output from \texttt{cgps}.
│ Grid Square: DN70jn26 ││GA 15 315 17.0 232.0 43.0 Y │
└───────────────────────────────────────────┘└More...──────────────────────────┘
\end{minted}
\index{cgps}\index{GPS}\index{gpsd}
\index{cgps}
\section{NTP}
\label{sec:software-ntp}
\index{NTP}
With all the above, time still needs to be configured.
Configuring \texttt{\gls{gpsd}} isn't enough for correct system time.
The main system on the Internet used for time synchronization is \gls{NTP}.
In \gls{Debian} there are a few options for \gls{NTP}.
The best is to use a hardware \gls{GNSS} (\gls{GPS}), with \gls{PPS} for improved
accuracy. The easiest is to just use \gls{NTP}.
\index{PPS}\index{Debian}\index{GNSS}\index{GPS}
All systems in the \gls{pipeline} need to have the correct time and
location. It is best if they all pull from the same \gls{NTP}
@ -553,6 +603,9 @@ sudo ntpdate time.mit.edu
# Get time from local server, such as router (made up IP):
sudo ntpdate 192.168.1.1
# If above complains, to do an initial sync at boot (force ntpdate):
sudo ntpdate -b 192.168.1.1
# Restart daemon
sudo systemctl start ntp
\end{minted}
@ -562,11 +615,12 @@ Go through each of the systems used in the \gls{toolchain} and make
sure they all have accurate time or processing will be off.
\section{KStars}
\section{KStars with Tracking Mount}
\label{sec:software-kstars}
\index{software}\index{KStars}\index{Debian}
\index{software}\index{track}\index{mount}
\index{Ekos}
\gls{KStars} is an application that has been used for years in the astronomy
community. It is well established, well supported and included in \gls{Debian}.
community. It is well established, well supported, and included in \gls{Debian}.
\gls{KStars} has multiple uses for imaging \glspl{satellite}.
One main use is to control a \gls{telescope} tracking mount, such as the
@ -577,23 +631,23 @@ For the purposes here, described below will be using \gls{KStars} with a
Sky-Watcher tracking mount with \gls{INDI} and Ekos.
See figure \ref{fig:video-enclosure-mount-tripod}, page \pageref{fig:video-enclosure-mount-tripod}
for a photo of the setup used with \gls{KStars} below.
\index{INDI}\index{Ekos}\index{KStars}
\index{Ekos}
The \gls{telescope} mount will be used in sidereal tracking mode,
where the stars will appear as
``points'', and the \glspl{satellite} will appear as trails.
The mount is not used in a satellite tracking mode.
Sidereal is the ``standard'' tracking mode of \glspl{telescope}.
\index{Sky-Watcher}\index{INDI}\index{Ekos}
\index{Sky-Watcher}\index{Ekos}
\gls{KStars} is the ``main'' application, but it depends on other key parts.
\gls{INDI} is the protocol that \gls{KStars} uses for \gls{telescope} control.
\gls{INDI} itself is a collection of applications.
While \gls{KStars} has the main \gls{sky chart} and Ekos is launched within it,
While \gls{KStars} has the main \gls{sky-chart} and Ekos is launched within it,
the actual mount control is done with the Ekos application.
While it may sound complex, all of this is set up pretty easily in
\gls{Debian}.
\index{INDI}\index{Debian}\index{Ekos}\index{mount}
\index{Ekos}\index{mount}
\begin{minted}{sh}
# Quick and dirty from memory, something like:
@ -601,20 +655,19 @@ sudo apt update
sudo apt install kstars indi-bin indi-eqmod indi-gpsd
\end{minted}
\gls{KStars} has a \gls{sky chart}, as can be see in figure \ref{fig:kstars-skychart},
\gls{KStars} has a \gls{sky-chart}, as can be see in figure \ref{fig:kstars-skychart},
page \pageref{fig:kstars-skychart}.
When mount control is functioning, a location on the \gls{sky chart}, such as a star,
When mount control is functioning, a location on the \gls{sky-chart}, such as a star,
can be clicked on and the mount will \gls{GoTo} that location and optionally track it.
Using this, a \gls{telescope} mount can be used to easily point the camera at a location
and track it to observe \glspl{telescope}. It should also provide a superior \gls{FITS} file
for extracting data than using a static mount (XXX made up).
\index{KStars}\index{sky chart}\index{GoTo}\index{mount}\index{track}
and track it to observe \glspl{satellite}. It should also provide a superior \gls{FITS} file
for extracting data than using a static mount with \glspl{star-trail} (XXX made up).
\index{mount}\index{track}
\index{camera}
To use a \gls{telescope} tracking mount for use with \texttt{stvid}, the following steps need to be performed in
To use a \gls{telescope} tracking mount for use with \texttt{\gls{stvid}}, the following steps need to be performed in
roughly this order, assuming everything has been configured.
An overview of steps:
\index{stvid}
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{enumerate}
@ -625,9 +678,10 @@ An overview of steps:
See section \ref{sec:software-gnss}, page \pageref{sec:software-gnss}.
\item Confirm time is correct on all systems in the \gls{toolchain}
(e.g. \texttt{date}).
See section \ref{sec:software-ntp}, page \pageref{sec:software-ntp}.
See section \ref{sec:software-ntp}, page \pageref{sec:software-ntp},
for information about \gls{NTP}.
\item Run camera configuration script (e.g. \texttt{v4l2-ctl} commands).
\item Start \texttt{indiserver} on the \gls{embedded system}, using scripts to
\item Start \texttt{indiserver} on the \gls{embedded-system}, using scripts to
include a camera (such as \texttt{indi\_v4l2\_ccd}.
\item Start \gls{KStars} on the workstation.
\item Launch Ekos within \gls{KStars}, under \texttt{Tools}.
@ -635,48 +689,46 @@ An overview of steps:
and \texttt{\gls{V4L2}} for the \gls{CCD}, which will work with The Imaging Source
camera used in this example. Alternatively, the ZWO ASI could be used with a similar configuration.
\item The Ekos configuration should also be set to use the remote \texttt{indiserver}
\gls{IP} address of the embedded system \gls{USB} connected to the Sky-Watcher mount.
\gls{IP} address of the \gls{embedded-system} \gls{USB} connected to the Sky-Watcher mount.
\item Hit the start button to start Ekos/\gls{INDI}.
\item On the screen that pops up, confirm all the tabs are good.
\item Check the last configuration tab for the camera, it often
resets the size.
\item Hit close on the screen with the \gls{INDI} devices.
\item Click the mount icon, and start tracking.
\item Perhaps do some focusing... XXX
\item Perhaps do some focusing... XXX \index{focus}
\item Click the solver icon.
\item Click the Sync radio button.
\item Click Capture and Solve. XXX what is it.
\item If everything is tracking happily, good.
\item If not, do all the alignment steps.
\item If not, do all the alignment steps. \index{alignment}
\item When alignment is good and tracking is accurate, stop Ekos and close it.
\item Stop the \texttt{indiserver} running on the \gls{embedded system}.
\item Start the \texttt{indiserver} on the \gls{embedded system},
\item Stop the \texttt{indiserver} running on the \gls{embedded-system}.
\item Start the \texttt{indiserver} on the \gls{embedded-system},
but without using a camera (e.g. remove \texttt{indi\_v4l2\_ccd}.
\item Select the \gls{INDI} configuration with a remote \texttt{indiserver},
the \gls{EQ} Mount, and the Simulated \gls{CCD}.
\item Hit start in Ekos to get \gls{INDI} connections going.
\item Confirm all is ok in hardware tabs, then hit close.
\item Now in the \gls{KStars} \gls{sky chart} window there is
\item Now in the \gls{KStars} \gls{sky-chart} window there is
control of the mount without interfering with the camera.
\item Start \texttt{stvid}. See XXX for more info.
\item When done capturing that part of the sky with \texttt{stvid},
stop \texttt{stvid}
\item Go to the \gls{KStars} \gls{sky chart} and right-click
\item Start \texttt{\gls{stvid}}. See XXX for more info.
\item When done capturing that part of the sky with \texttt{\gls{stvid}},
stop \texttt{\gls{stvid}}
\item Go to the \gls{KStars} \gls{sky-chart} and right-click
on the new location, and \gls{slew} to it.
\item Start \texttt{stvid} again, pointing at the new location.
\item Start \texttt{\gls{stvid}} again, pointing at the new location.
\item Repeat the last few steps each time a new sky location is desired.
\end{enumerate}
\end{mdframed}
\index{v4l2-ctl}\index{mount}\index{KStars}\index{telescope}\index{track}
\index{lsusb}\index{cgps}\index{GNSS}\index{NTP}\index{indiserver}
\index{Ekos}\index{Sky-Watcher}\index{V4L2}\index{The Imaging Source}
\index{stvid}\index{sky chart}
\index{v4l2-ctl}\index{mount}\index{track}
\index{lsusb}\index{cgps}\index{indiserver}
\index{Ekos}\index{Sky-Watcher}\index{The Imaging Source}
\begin{sidewaysfigure}[p!]
\begin{center}
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{kstars-skychart.png}
\caption{KStars sky chart, example screenshot.}
\index{KStars}\index{sky chart}
\caption{\gls{KStars} \gls{sky-chart}, example screenshot.}
\label{fig:kstars-skychart}
\end{center}
\end{sidewaysfigure}
@ -684,8 +736,7 @@ An overview of steps:
\begin{sidewaysfigure}[p!]
\begin{center}
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{kstars-profile-edit-v4l2.png}
\caption{KStars using V4L2, example screenshot.}
\index{KStars}\index{V4L2}
\caption{\gls{KStars} using \gls{V4L2}, example screenshot.}
\label{fig:kstars-profile-edit-v4l2}
\end{center}
\end{sidewaysfigure}
@ -693,16 +744,14 @@ An overview of steps:
\begin{sidewaysfigure}[p!]
\begin{center}
\includegraphics[keepaspectratio=true,height=1.00\textheight,width=1.00\textwidth,angle=0]{kstars-profile-edit-simulator.png}
\caption{KStars using simulated CCD, example screenshot.}
\index{KStars}\index{CCD}
\caption{\gls{KStars} using simulated \gls{CCD}, example screenshot.}
\label{fig:kstars-profile-edit-simulator}
\end{center}
\end{sidewaysfigure}
If the camera and mount are connected to the \gls{embedded system} OK, it will
If the camera and mount are connected to the \gls{embedded-system} OK, it will
look like below, in this case with The Imaging Source camera and Sky-Watcher
mount:
\index{embedded system}
\begin{minted}{sh}
jebba@odroid-01:~$ lsusb
@ -713,7 +762,7 @@ Bus 001 Device 003: ID 067b:23d3 Prolific Technology, Inc. USB-Serial Controller
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
\end{minted}
\index{The Imaging Source}\index{USB}
\index{The Imaging Source}\index{Sky-Watcher}
Note the \texttt{The Imaging Source Europe GmbH DMK 33UX174} device is the
camera and the
@ -738,3 +787,19 @@ so three devices are appearing. The The Imaging Source camera appears
as two \texttt{/dev/video} devices.
\index{Odroid}\index{The Imaging Source}
\section{\texttt{stvid} with Docker}
\label{sec:software-docker}
\index{Ekman, Daniel}
Daniel Ekman has created a \gls{Docker} setup for easier installation
and configuration.
The \gls{Docker} source code repo is available here:
* \url{https://github.com/kng/stvid-docker}
The \gls{Docker} itself is here:
* \url{https://hub.docker.com/repository/docker/knegge/stvid}

View File

@ -11,17 +11,15 @@
\section{Plate Solver}
\label{sec:plate-solver}
\index{plate solver}\index{FITS}
A ``\gls{plate-solver}'' will take an image of stars and detect the time and place
of the picture. There are two main steps:
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{enumerate}
\item Extract stars from an image, such as a \gls{FITS} file generated by \texttt{stvid}.
\item Extract stars from an image, such as a \gls{FITS} file generated by \texttt{\gls{stvid}}.
\item ``Solve'' the image of the stars in the image against vast databases in a
\gls{star catalogue}.
\index{stvid}\index{FITS}
\gls{star-catalogue}.
\end{enumerate}
\end{mdframed}
@ -36,7 +34,7 @@ images (e.g. \gls{FITS}).
\item \gls{KStars} with Ekos adds \texttt{Builtin method for solver}.
\end{itemize}
\end{mdframed}
\index{Source Extractor}\index{KStars}\index{Ekos}
\index{Source Extractor}\index{Ekos}
See below for a list of \glspl{plate-solver} that can be used.
@ -48,7 +46,7 @@ See below for a list of \glspl{plate-solver} that can be used.
\item Watney.
\end{itemize}
\end{mdframed}
\index{astrometry.net}\index{astap}\index{Watney}
\index{astap}\index{Watney}\index{astrometry.net}
\section{Source Extractor}
@ -63,10 +61,10 @@ widely used for many years.
\section{astrometry.net}
\index{astrometry.net}
Astrometry.net is a website and software that can be run locally to solve
a plate of stars that has been extracted from \texttt{Source Extractor}. XXX
\index{Source Extractor}
\index{Source Extractor}\index{astrometry.net}
% https://nova.astrometry.net/
\begin{figure}[h!]
@ -75,11 +73,9 @@ a plate of stars that has been extracted from \texttt{Source Extractor}. XXX
\includegraphics[keepaspectratio=true,height=0.60\textheight,width=0.60\textwidth,angle=0]{astrometry-web.png}
\caption{nova.astrometry.net website.}
\label{fig:astrometry-web-web}
\index{astrometry.net}
\end{framed}
\end{figure}
\fbox{
\parbox{\linewidth}{
\textcolor{red}{NOTICE:} \\
@ -92,32 +88,26 @@ a plate of stars that has been extracted from \texttt{Source Extractor}. XXX
\section{Star Catalogues}
\label{sec:star-catalogues}
\index{star catalogue}\index{plate solver}\index{stvid}
To use a \gls{plate-solver}, you will need \glspl{star catalogue}. They can get large.
The \texttt{stvid} application includes a basic \gls{star catalogue}.
To use a \gls{plate-solver}, you will need \glspl{star-catalogue}. They can get large.
The \texttt{stvid} application includes a basic \gls{star-catalogue}.
XXX The \texttt{4200} index series is also recommended.
\section{World Coordinate System}
\label{sec:wcs}
\index{WCS}
\gls{WCS} info. XXX
\section{SIP}
\label{sec:sip}
\index{SIP}
\gls{SIP} info. XXX
\section{Plate Solving with \texttt{stvid}}
\label{sec:plate-solving-stvid}
\index{plate solver}\index{stvid}\index{process}
\index{process}
Use the \texttt{process.py} scripts described in section \ref{sec:plate-solver},
page \pageref{sec:plate-solver}, to solve plates
with \texttt{stvid}.
with \texttt{\gls{stvid}}.

View File

@ -11,10 +11,8 @@
\section{Support}
\label{sec:support}
\index{community}
\index{support}
\index{forum}
\index{Matrix}
\index{community}\index{support}\index{forum}\index{help}
\setlength{\parindent}{0pt}
How to get help.

View File

@ -19,24 +19,24 @@ development.
\section{File Extensions}
\label{sec:upload-extensions}
\index{formats}
\index{.cal}\index{.cat}\index{.csv}\index{.dat}\index{.fits}\index{.png}
The following file extensions are in use:
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!30]
\begin{description}
\item [.cal] --- Cal % XXX
\item [.cat] --- Cat % XXX
\item [.cal] --- Cal % XXX \index{.cal}
\item [.cat] --- Cat % XXX \index{.cat}
\item [.csv] --- \gls{CSV}
\item [.dat] --- Data.
\item [.dat] --- Data. \index{.dat}
\item [.fits] --- \gls{FITS}.
\item [.png] --- \gls{PNG}.
\end{description}
\end{mdframed}
\index{FITS}\index{PNG}\index{CSV}
\section{Data Files}
\label{sec:upload-data}
\index{data}\index{stvid}\index{process}\index{acquire}
\index{data}\index{process}\index{acquire}
After the \texttt{stvid} acquisition and processing steps have been
run, files such as below will be generated:
@ -55,32 +55,36 @@ run, files such as below will be generated:
2022-08-23T04:16:26.633_predict.csv
2022-08-23T04:16:26.633_threshold.csv
\end{minted}
\index{.cal}\index{.cat}\index{.csv}\index{.dat}\index{.fits}\index{.png}
\subsection{\texttt{.fits} FITS Files}
\gls{FITS} files are the main files created during acquisition and
are the main files used in processing. It has the data of
the actual image taken with the camera. \gls{FITS} files will be significantly
larger than the other files, at around 35 megabytes each, depending
on sample rate and frame size.
\index{FITS}\index{acquire}\index{process}
larger than the other files, at around 8 to 35 megabytes each, depending
on sample rate, frame size, and \gls{binning}.
\index{acquire}\index{process}
\index{frame size}\index{sample rate}
The \texttt{stvid} program creates it's customized \gls{FITS} format
The \texttt{\gls{stvid}} program creates it's customized \gls{FITS} format
file, which is a stack up of multiple images.
I'll leave explanation of the \texttt{stvid} \gls{FITS} file structure
I'll leave explanation of the \texttt{\gls{stvid}} \gls{FITS} file structure
to the program's author, Cees Bassa:
\begin{quote}
With stvid, I typically store 10 seconds worth of video frames, 100 frames at 10 \gls{Hz} frame rate or 250 frames at 25 \gls{Hz} frame rate into a so-called ``four frame''. Here, for each pixel of the initial 100 or 250 frames, the mean, standard deviation, maximum and argmax are stored, each as its own frame. Objects that move will stand out because they will have a high (max - mean) / standard deviation, which allows me to detect trails. Once a trail is detected, the argmax frame tells me the frame number and hence the motion of the trail, and using the timestamps of the individual 100 or 250 frames, I can reconstruct the pixel position as a function of time during the 10 second exposure, using only 4 frames instead of the 100 or 250 individual video frames.
With \gls{stvid}, I typically store 10 seconds worth of video frames, 100 frames at 10 \gls{Hz} frame rate or 250 frames at 25 \gls{Hz} frame rate into a so-called ``four frame''. Here, for each pixel of the initial 100 or 250 frames, the mean, standard deviation, maximum and argmax are stored, each as its own frame. Objects that move will stand out because they will have a high (max - mean) / standard deviation, which allows me to detect trails. Once a trail is detected, the argmax frame tells me the frame number and hence the motion of the trail, and using the timestamps of the individual 100 or 250 frames, I can reconstruct the pixel position as a function of time during the 10 second exposure, using only 4 frames instead of the 100 or 250 individual video frames.
\end{quote}
\index{Bassa, Cees}
\index{Bassa, Cees}\index{four frame}
\index{.fits}
\subsection{\texttt{.cal} CAL Files}
\index{.cal}
Example \texttt{.cal} filename:\\
\texttt{2022-08-23T04:16:26.633.fits.cal}\\
Sample data from \texttt{.cat} file, just the top select lines of a 577 line file:
Sample data from \texttt{.cal} file, just the top select lines of a 577 line file:
\begin{minted}{sh}
1172.876 11.776 7.1775 221.117561 45.185979 6.761
@ -98,7 +102,8 @@ Sample data from \texttt{.cat} file, just the top select lines of a 577 line fil
\subsection{\texttt{.cat} CAT Files}
\texttt{stvid} generates \texttt{.cat} files, generated from \gls{FITS} files, such as:\\
\index{.cat}
\texttt{\gls{stvid}} generates \texttt{.cat} files, generated from \gls{FITS} files, such as:\\
\texttt{2022-08-23T04:16:26.633.fits.cat} \\
Sample data from \texttt{.cat} file, just the top select lines of a 1,033 line file:
@ -126,8 +131,9 @@ Sample data from \texttt{.cat} file, just the top select lines of a 1,033 line f
\subsection{\texttt{.fits.png} FITS PNG Files}
\index{FITS}\index{PNG}\index{stvid}
The \texttt{stvid} application can generate multiple \gls{PNG} files,
\index{.fits.png}
The \texttt{\gls{stvid}} application can generate multiple \gls{PNG} files,
depending how many satellites it finds. In every case it creates at
least one \gls{PNG} file, with a name like:
@ -138,31 +144,33 @@ no detected satellites are indicated.
The blue lines are from the ``Catalog'', which in this case means \glspl{TLE}.
The blue lines are drawn whether no, a few, or many satellites are detected.
They are generated by taking data from the \gls{plate-solver} about where the picture
\gls{FOV} is, and overlaying satellite \glspl{orbit} that are calculated from
\gls{FoV} is, and overlaying satellite \glspl{orbit} that are calculated from
\glspl{TLE}.
\index{detect}
The main blue line is slightly offset from where the satellite is calculated to
appear.
The blue line forms a small \texttt{L} shape.
The smaller segment indicates the area where the satellite may pass.
Next to the small segment line is the \gls{NORAD ID} for the satellite.
If it is unknown, it will be given the number 90000 or larger.
Next to the small segment line is the \gls{NORAD-ID} for the satellite.
If it is unknown, it will be given the number \texttt{90000} or larger.
\begin{figure}[h!]
\begin{center}
\includegraphics[keepaspectratio=true,height=0.85\textheight,width=0.85\textwidth,angle=0]{stvid/data/2022-08-23T04:16:26.633.fits.png}
\caption{\texttt{stvid} PNG.}
\caption{\texttt{\gls{stvid}} PNG.}
\label{fig:stvid-png}
\index{stvid}\index{PNG}\index{FITS}
\end{center}
\end{figure}
\index{.fits.png}
\subsection{\texttt{catalog.png} catalog PNG Files}
\index{FITS}\index{PNG}\index{stvid}\index{NORAD ID}
When \texttt{stvid} identifies a satellite, it creates a new \gls{PNG} file for each
\index{detect}\index{identify}
When \texttt{\gls{stvid}} identifies a satellite, it creates a new \gls{PNG} file for each
satellite detected in the image. A file name example follows, with satellite
NORAID ID 48473 detected, also shown in figure
\gls{NORAD-ID} 48473 identified, also shown in figure
\ref{fig:stvid-png-48473-catalog}, page \pageref{fig:stvid-png-48473-catalog}.
\texttt{2022-08-23T04:16:26.633\_48473\_catalog.png}
@ -170,14 +178,14 @@ NORAID ID 48473 detected, also shown in figure
\begin{figure}[h!]
\begin{center}
\includegraphics[keepaspectratio=true,height=0.85\textheight,width=0.85\textwidth,angle=0]{stvid/data/2022-08-23T04:16:26.633_48473_catalog.png}
\caption{\texttt{stvid} PNG of the satellite track of NORAD ID 48473 identified in red.}
\caption{\texttt{\gls{stvid}} \gls{PNG} of the satellite trail of \gls{NORAD-ID} 48473 identified in red.}
\label{fig:stvid-png-48473-catalog}
\index{stvid}\index{PNG}\index{FITS}\index{NORAD ID}
\end{center}
\end{figure}
\index{identify}
If multiple satellites are detected in the image, they will each get a \gls{PNG} file.
For the example image, a satellite with \gls{NORAD ID} 52718 was also identified.
For the example image, a satellite with \gls{NORAD-ID} 52718 was also identified.
The file name is:
\texttt{2022-08-23T04:16:26.633\_52718\_catalog.png}
@ -185,46 +193,44 @@ The file name is:
\begin{figure}[h!]
\begin{center}
\includegraphics[keepaspectratio=true,height=0.85\textheight,width=0.85\textwidth,angle=0]{stvid/data/2022-08-23T04:16:26.633_52718_catalog.png}
\caption{\texttt{stvid} PNG of the satellite track of NORAD ID 52718 identified in red.}
\caption{\texttt{\gls{stvid}} \gls{PNG} of the satellite trail of \gls{NORAD-ID} 52718 identified in red.}
\label{fig:stvid-png-52718-catalog}
\index{stvid}\index{PNG}\index{FITS}\index{NORAD ID}
\index{identify}
\end{center}
\end{figure}
\subsection{\texttt{unid.png} Unidentified PNG Files}
\index{FITS}\index{PNG}\index{stvid}\index{NORAD ID}
As shown previously, \texttt{stvid} will create a new \gls{PNG} with a
\index{unidentified}
As shown previously, \texttt{\gls{stvid}} will create a new \gls{PNG} with a
red line when it identifies a satellite.
When \texttt{stvid} finds a track it can't identify in the
\gls{TLE} catalogs, it gives it a \gls{NORAD ID} starting with 90000,
When \texttt{\gls{stvid}} finds a trail it can't identify in the
\gls{TLE} catalogs, it gives it a \gls{NORAD-ID} starting with \texttt{90000},
incrementing by one.
See figure \ref{fig:stvid-png-90000-unid}, page \pageref{fig:stvid-png-90000-unid},
for an example of \texttt{stvid} marking an unidentified track red.
In this case, the track was created by an airplane, but \texttt{stvid} would
do the same with an unknown satellite track.
\index{airplane}
for an example of \texttt{\gls{stvid}} marking an unidentified trail red.
In this case, the trail was created by an airplane, but \texttt{\gls{stvid}} would
do the same with an unidentified satellite trail.
\index{airplane}\index{unidentified}
\begin{figure}[h!]
\begin{center}
\includegraphics[keepaspectratio=true,height=0.85\textheight,width=0.85\textwidth,angle=0]{stvid/data/2022-08-23T04:16:26.633_90000_unid.png}
\caption{\texttt{stvid} PNG of an unidentified track in red.}
\caption{\texttt{\gls{stvid}} \gls{PNG} of an unidentified trail in red.}
\label{fig:stvid-png-90000-unid}
\index{stvid}\index{PNG}\index{FITS}\index{NORAD ID}
\end{center}
\end{figure}
\end{figure}\index{unidentified}
\subsection{\texttt{.dat} Data Files}
For each track detected as shown in previous sections, such as for which
\index{.dat}
For each trail detected as shown in previous sections, such as for which
a \gls{PNG} file was created,
\texttt{stvid} will output a \texttt{.dat} file. The \texttt{.dat} filenames
\texttt{\gls{stvid}} will output a \texttt{.dat} file. The \texttt{.dat} filenames
corresponding to the figures at \ref{fig:stvid-png-48473-catalog}, \ref{fig:stvid-png-52718-catalog},
and \ref{fig:stvid-png-90000-unid} are:
%\texttt{2022-08-23T04:16:26.633\_48473\_catalog.dat}
%\texttt{2022-08-23T04:16:26.633\_52718\_catalog.dat}
%\texttt{2022-08-23T04:16:26.633\_90000\_unid.dat}
\begin{minted}{sh}
2022-08-23T04:16:26.633_48473_catalog.dat
2022-08-23T04:16:26.633_52718_catalog.dat
@ -233,27 +239,29 @@ and \ref{fig:stvid-png-90000-unid} are:
Note, there is no \texttt{.dat} file created corresponding to the
\texttt{2022-08-23T04:16:26.633.fits.png} file, since it doesn't show
detected tracks.
detected trails.
The \texttt{.dat} file contents look like this, for \gls{NORAD ID} 48473:
The \texttt{.dat} file contents look like this, for \gls{NORAD-ID} 48473:
\begin{minted}{sh}
48473 21 040AX 9999 G 20220823041631625 17 25 1533406+483563 37 S
\end{minted}
XXX This is the IOD ? XXX
The first field is the \gls{NORAD ID}. The fourth field looks like COSPAR. XXX
The first field is the \gls{NORAD-ID}. The fourth field looks like COSPAR. XXX
Large number starting with 2022 is date and time stamp.
\index{IOD}\index{COSPAR}
The \texttt{.dat} file contents look like this, for \gls{NORAD ID} 52718:
The \texttt{.dat} file contents look like this, for \gls{NORAD-ID} 52718:
\index{.dat}
\begin{minted}{sh}
52718 22 056C 9999 G 20220823041631625 17 25 1527277+381243 37 S
\end{minted}
The \texttt{.dat} file contents look like this, for the unidentified track
The \texttt{.dat} file contents look like this, for the unidentified trail
(the airplane):
\index{airplane}
\index{airplane}\index{unidentified}
\begin{minted}{sh}
90000 22 500A 9999 G 20220823041631625 17 25 1457613+535844 37 S
@ -261,7 +269,8 @@ The \texttt{.dat} file contents look like this, for the unidentified track
\subsection{\texttt{stvid} \texttt{.csv} Files}
During processing, \texttt{stvid} generates (at least!) three \gls{CSV} files.
\index{.csv}\index{hough}\index{predict}\index{threshold}
During processing, \texttt{\gls{stvid}} generates (at least!) three \gls{CSV} files.
For the observation discussed above, staring with figure \ref{fig:stvid-png},
the following \gls{CSV} files are generated:
@ -273,6 +282,7 @@ the following \gls{CSV} files are generated:
\subsubsection{\texttt{stvid} \texttt{hough.csv} Files}
\index{.csv}\index{hough}
Full contents of the \texttt{2022-08-23T04:16:26.633\_hough.csv} file:
\begin{minted}{sh}
@ -282,7 +292,9 @@ ax,ay,az,bx,by,bz,n
1297.660777,432.469965,52.989399,0.923059,0.193205,0.332617,283
\end{minted}
\subsubsection{\texttt{stvid} \texttt{predict.csv} Files}
\index{.csv}\index{predict}
The \texttt{2022-08-23T04:16:26.633\_predict.csv} is 3,764 lines long.
Below is an extract of the lines. I shortened the path, which
included the full path to my home directory, for clarity:
@ -307,10 +319,12 @@ satno,cospar,mjd,ra,dec,state,tlefile,age
32706,08010A ,59814.17811171,169.564400,+50.077336,sunlit,/data/tle/inttles.tle,0.624
...
\end{minted}
\index{.csv}\index{COSPAR}
\subsubsection{\texttt{stvid} \texttt{threshold.csv} Files}
\texttt{stvid} creates a \texttt{threshold.csv} file with a filename like:
\index{.csv}\index{threshold}
\texttt{\gls{stvid}} creates a \texttt{threshold.csv} file with a filename like:
\texttt{2022-08-23T04:16:26.633\_threshold.csv}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1024 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.