stvid/README.md

6.3 KiB

stvid

Fork/clone of cbassa's stvid.

stvid processed image

NOTE: Unless you have a particular reason to use this, you should use the main upstream repository.

https://github.com/cbassa/stvid

Installation

Debian. Install package dependencies:

sudo apt install python3-virtualenv python3-pip python3-dev \
    source-extractor astrometry.net \
    libeigen3-dev giza-dev libx11-dev

Perhaps need some of the astrometry.net data files:

sudo apt install \
    astrometry-data-tycho2 astrometry-data-tycho2-07 \
    astrometry-data-tycho2-08 astrometry-data-tycho2-09 \
    astrometry-data-tycho2-10-19
git clone https://spacecruft.org/spacecruft/stvid
# Or use upstream:
git clone https://github.com/cbassa/stvid

Optionally, set up python virtual environment:

cd stvid
virtualenv -p python3 env
source env/bin/activate
pip install --upgrade pip

Install dependencies. Numpy needs to be installed first, or the install fails.

pip install --upgrade numpy
pip install --upgrade -r requirements.txt

If the system python3-numpy conflicts, you could try installing numpy in the virtualenv thusly:

pip install --upgrade --ignore-installed numpy

Debian in bug #941466 changed the name of the sextractor dependency to source-extractor, so a symlink is needed for now:

sudo ln -s /usr/bin/source-extractor /usr/local/bin/sextractor

Install hough3d-code dependency:

cd ../
git clone https://gitlab.com/pierros/hough3d-code
cd hough3d-code
make all
sudo cp -p hough3dlines /usr/local/bin/hough3dlines

Install satpredict:

cd ../
git clone https://spacecruft.org/spacecruft/satpredict
# Or
#git clone https://github.com/cbassa/satpredict
cd satpredict/
make
sudo make install

Configure

Thusly...

cd stvid/
cp -p configuration.ini-dist configuration.ini
# Edit
# Note for fields st-username and st-password, *don't* use quotes.
# Set:
vi configuration.ini

Edit various configuration.ini fields:

# For example:
observer_cospar = 9999        # COSPAR number of observer's site
observer_name = Jeff Moe      # Name of observer
observer_lat = 40.568912      # Latitude of location in decimal degrees
observer_lon = -105.225852    # Longitude of location in decimal degrees
observer_height = 1860         # Elevation of location in meters

observations_path = ./data/obs # Path for raw acquisitions
tle_path = ./data/tle          # Path where TLEs are stored (and updated)
results_path = ./data/results   # Path for results of processed obs

st-username = foo
st-password = bar

# Path to source-extractor
sex_config = /usr/share/source-extractor/default.sex

Store downloads here:

mkdir -p ./data/obs ./data/tle ./data/results

The ST_DATADIR variable is still used, from sattools. Maybe set all these in ~/.bashrc (suit to fit directory setup):

export ST_DATADIR=$HOME/sattools
export ST_TLEDIR=$HOME/TLE
export ST_OBSDIR=$HOME/satobs
export ST_LOGIN="identity=foo@no:pass"

Set astrometry.net to run in parallel, assuming you have enough RAM: (This doesn't appear to work? Breaks?).

sudo vim /etc/astrometry.cfg
# Uncomment:
inparallel

Hardware

Setup with various hardware.

Specs:

  • Sony IMX174 or similar.
  • 50mm lens.
  • f1.2 to f1.6 (faster the better).
  • 10Hz image sampling.
  • USB-3 (or ethernet?).

For permanent mounts, considerations:

  • IP-66 or better.
  • PoE?
  • 12V.
  • Raspberry Pi, Intel NUC, Traverse Ten64.
  • Hardware shutter during sunlight (?).

Proprietary examples with IMX174:

  • QHYCCD QHY174GPS.
  • ZWO ASI174MM.

The Imaging Source

The Imaging Source camera confirmed works well, such as this:

See README-TIS.md for more info.

Libre

Trying to find libre setup that can be used.

Solutions with gphoto or other non-video camera setups should use stphot not stvid.

Proprietary

The ASI ZWO and QHY cameras use a proprietary SDK. There are no libre implementations found.

Web Cam

Perhaps like this using a web cam and OpenCV

Set up udev:

echo 'SUBSYSTEM=="video1", GROUP="video", MODE="0660"' |
  sudo tee /etc/udev/rules.d/10-webcam.rules

Testing with Logitech BRIO usb web cam. No udev configuration needed. Camera runs with stvid but isn't sensitive enough to be used.

Usage

Enter virtualenv, if used:

cd stvid/
source env/bin/activate

Get the latest TLEs:

./update_tle.py

Configure a position (example). XXX Best way to generate ?

echo \
 '2022-08-07T23:44:14 R: 00:00:00.00 D:  00:00:00.0 H: -152.691 A: 180.000 E: 90.000 q: -28.18' |
 > data/obs/control/position.txt

# Maybe
echo \
 '2022-08-07T23:44:14 R: 00:00:00.00 D:  00:00:00.0 H: -152.691 A: 180.000 E: 90.000 q: -28.18' |
 > $ST_DATADIR/data/position.txt

Acquire image, first download archives:

./acquire.py

stvid acquired image stvid acquired image, viewed with astroimagej.

Preview

This scriptlet isn't in upstream. It does a preview of the camera using the standard configuration file. So you can get a preview similar to what it actually looks like for focus, perhaps. Does not require X running, but it does need xinit installed. Also need to set X11Forwarding yes in /etc/ssh/sshd_config. Then login to your host with -XY ala:

ssh -XY odroidn2
cd stvid
source env/bin/activate
./preview.py

Fixed

When running acquire.py on amd64 architecture it gives this error:

OSError: libbcm_host.so: cannot open shared object file: No such file or directory

The libbcm_host.so is a (non-libre?) firmware file that is part of Raspberry Pi.

https://github.com/raspberrypi/firmware/blob/master/opt/vc/lib/libbcm_host.so

That error comes from installing picamerax on amd64, which was added to requirements.txt, but should really just be when on Raspberry Pi.

env/lib/python3.10/site-packages/picamerax/bcm_host.py:_lib = ct.CDLL('libbcm_host.so')

For now, just import the library that calls for that binary if the Pi camera is used. No need to call it (and crash) if CV2 is used on non-Pi.

Upstream

See README-upstream.md.

stvid:

© 2018-2022 Cees Bassa

License

Same as upstream license, GPLv3.

© 2022, Jeff Moe