Fixed configuration and README

Signed-off-by: Pierros Papadeas <pierros@papadeas.gr>
pull/33/head
Pierros Papadeas 2019-08-02 12:11:21 +03:00
parent 569b840dc0
commit d753ce4695
6 changed files with 37 additions and 18 deletions

7
.gitignore vendored
View File

@ -1,8 +1,9 @@
# Python compiled objects # Python compiled objects
*.pyc *.pyc
# Emacs backup files # IDE files
*~ *~
settings.json
# Configuration file # Configuration files
configuration.ini *.ini

View File

@ -1,19 +1,32 @@
# STVID # STVID
**stvid** is a set of *python* programs to detect and identify satellite tracks on video observations of the night sky, and measure the satellite positions to determine and/or update their orbits. **stvid** is a set of *python* programs to detect and identify satellite tracks on observations of the night sky, and measure the satellite positions to determine and/or update their orbits.
This software will take over the satellite tracking functionality of my [sattools](https://github.com/cbassa/sattools). By porting the functionality to *python*, and using [astropy](https://github.com/astropy/astropy), and [opencv](https://opencv-python-tutroals.readthedocs.io/en/latest/), the software is easier to install and operate. ## Background
This software will take over the satellite tracking functionality of C.Bassa's [sattools](https://github.com/cbassa/sattools). By porting the functionality to *python*, and using [astropy](https://github.com/astropy/astropy), and [opencv](https://opencv-python-tutroals.readthedocs.io/en/latest/), the software is indented to be easier to install and operate.
This repository is currently used for development, and relies, for the moment, on programs from the [sattools](https://github.com/cbassa/sattools) repository. This repository is currently used for development, and relies, for the moment, on programs from the [sattools](https://github.com/cbassa/sattools) repository (namely `satid`).
## Installation ## Installation
**stvid** handles requirements using pip. You can install requirements by running `pip install -r requirements.txt`. You should consider using a VirtualEnv to run stvid on a separate python virtual environment. You will also need to download the [Tycho 2 catalog](https://www.dropbox.com/s/isbq1wsmfr24zx5/tyc2.fits?dl=0). **stvid** handles requirements using pip. You can install requirements by running :
You will also need to build and install [Hough3dLines](https://gitlab.com/pierros/hough3d-code) code, and have sextractor installed in your system. `pip install -r requirements.txt`
Consider using a VirtualEnv to run stvid on a separate python virtual environment.
### Additional requirements
* [Hough3dLines](https://gitlab.com/pierros/hough3d-code)
* `hough3dlines` needs to be executable in your path
* [Sextractor](https://github.com/astromatic/sextractor)
* `sextractor` needs to be executable in your path
* [Astromentry.net](https://github.com/dstndstn/astrometry.net)
* `solve-field` needs to be executable in your path, with index files appropriate for your FOV
* Download the [Tycho 2 catalog](https://www.dropbox.com/s/isbq1wsmfr24zx5/tyc2.fits?dl=0) and specify its path in configuration
## Configuration ## Configuration
* Copy the `configuration.ini-dist` file to `configuration.ini` * Copy the `configuration.ini-dist` file to `configuration.ini`
* Edit `configuration.ini` with your preferred settings * Edit `configuration.ini` with your preferred settings
* Make sure ST_DATADIR is set as an env variable pointing to the /data folder of sattools
## Running ## Running
TBD TBD
@ -42,7 +55,7 @@ Features to be implemented.
* Add user to video group (`sudo adduser <username> video`). * Add user to video group (`sudo adduser <username> video`).
* Add video device to udev rules (add `SUBSYSTEM=="video1", GROUP="video", MODE="0660"` in `/etc/udev/rules.d/10-webcam.rules`). * Add video device to udev rules (add `SUBSYSTEM=="video1", GROUP="video", MODE="0660"` in `/etc/udev/rules.d/10-webcam.rules`).
* Create start up script in `/etc/init.d`. Call capture script as user with `su <username> -c "capture_1.sh"`. * Create start up script in `/etc/init.d`. Call capture script as user with `su <username> -c "acquire.py"`.
## License ## License
&copy; 2018-2019 Cees Bassa &copy; 2018-2019 Cees Bassa

View File

@ -7,9 +7,10 @@ observer_lat = 19.8956 # Latitude of location in decimal degrees
observer_lon = -155.2342 # Longitude of location in decimal degrees observer_lon = -155.2342 # Longitude of location in decimal degrees
observer_el = 100 # Elevation of location in meters observer_el = 100 # Elevation of location in meters
observations_path = /path/to/obs/ observations_path = /path/to/obs/ # Path for raw acquisitions
tle_path = /path/to/tle/ tle_path = /path/to/tle/ # Path where TLEs are stored (and updated)
results_path = /path/to/results results_path = /path/to/results # Path for results of processed obs
tyc2_path = ./tyc2.fits # Path to Tycho 2 catalogue
[Credentials] [Credentials]
st-username = username # Space-track.org username st-username = username # Space-track.org username
@ -44,5 +45,5 @@ high_speed = 1 # High speed mode (0 for False, 1 for True)
[Astrometry] [Astrometry]
sex_config = /path/to/solve.sex sex_config = /path/to/solve.sex
low_app = 18 # Arcsec per pixel low scale low_app = 18 # Arcsec per pixel low scale - Resolution of camera
high_app = 20 # Arcsec per pixel high scale high_app = 20 # Arcsec per pixel high scale - Resolution of camera

View File

@ -2,7 +2,6 @@ astropy
numpy numpy
opencv-python opencv-python
scipy scipy
git+https://github.com/haavee/ppgplot.git@master
cycler==0.10.0 cycler==0.10.0
kiwisolver==1.0.1 kiwisolver==1.0.1
matplotlib==2.2.2 matplotlib==2.2.2
@ -13,3 +12,4 @@ six
spacetrack==0.13.0 spacetrack==0.13.0
termcolor termcolor
zwoasi zwoasi
git+https://github.com/haavee/ppgplot.git@master

View File

@ -6,6 +6,7 @@ import numpy as np
import subprocess import subprocess
import shutil import shutil
import astropy.units as u import astropy.units as u
import configparser
from astropy.io import fits from astropy.io import fits
from astropy import wcs from astropy import wcs
from astropy.coordinates import SkyCoord, FK5, ICRS from astropy.coordinates import SkyCoord, FK5, ICRS
@ -18,8 +19,10 @@ class tycho2_catalog:
"""Tycho2 catalog""" """Tycho2 catalog"""
def __init__(self, maxmag=9.0): def __init__(self, maxmag=9.0):
hdu = fits.open(os.path.join(os.getenv("ST_DATADIR"), cfg = configparser.ConfigParser(inline_comment_prefixes=('#', ';'))
"data/tyc2.fits")) cfg.read('../configuration.ini')
tyc2 = cfg.get('Common', 'tyc2_path')
hdu = fits.open(tyc2)
ra = hdu[1].data.field('RA')*u.deg ra = hdu[1].data.field('RA')*u.deg
dec = hdu[1].data.field('DEC')*u.deg dec = hdu[1].data.field('DEC')*u.deg
@ -220,6 +223,7 @@ def is_calibrated(ff):
else: else:
return True return True
def generate_reference_with_anet(fname, cmd_args, reffname="test.fits", tempfroot="cal"): def generate_reference_with_anet(fname, cmd_args, reffname="test.fits", tempfroot="cal"):
# Copy file to generic name # Copy file to generic name
shutil.copy2(fname, tempfroot + ".fits") shutil.copy2(fname, tempfroot + ".fits")
@ -248,4 +252,3 @@ def generate_reference_with_anet(fname, cmd_args, reffname="test.fits", tempfroo
pass pass
return solved return solved

View File

@ -29,6 +29,7 @@ class pixel_catalog:
self.flag = None self.flag = None
self.nstars = 0 self.nstars = 0
def generate_star_catalog(fname): def generate_star_catalog(fname):
# Skip if file already exists # Skip if file already exists
if not os.path.exists(os.path.join(fname, ".cat")): if not os.path.exists(os.path.join(fname, ".cat")):