Skip to content

danielk333/SORTS

Repository files navigation

SORTS

Feature list

  • TO BE ADDED

Install SORTS

To install SORTS

git clone https://github.com/danielk333/SORTS
cd sorts
pip install .

The installation can be automatically tested if pytest is also installed

pytest

From scratch

Make sure you have Python >= 3.6

To install Python 3.7 (from the deadsnakes ppa) on Ubuntu 16 (WARNING: This method differs on Ubuntu 18/20)

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.7
sudo apt install python3.7-venv

It is recommended to use virtual environments when installing sorts

python3.7 -m venv /path/to/new/sorts/environment
source /path/to/new/sorts/environment/bin/activate

Now you should be inside the new virtual environment. Check this by

pip --version

And you should see the path to "/path/to/new/sorts/environment".

Alternatively if you want to use pip with Python 3.7 without using venv, the get-pip.py method can be used. WARNING: Using the bootstrap solution will break your current Python 2.7/3.5 pip, It is not recommended.

Now, regardless of the method, you should make sure you have an up to date pip:

pip install --upgrade pip

If you do not have git, install it first:

sudo apt install git

To install SORTS

git clone https://github.com/danielk333/SORTS
cd sorts
pip install .

In case "pyant" or "pyorb" requirements fail on auto-install, run the following commands manually and try again:

pip install git+https://github.com/danielk333/pyant
pip install git+https://github.com/danielk333/pyorb

Install MPI

Open MPI on Ubuntu

sudo apt update
sudo apt install openmpi-bin libopenmpi-dev
pip install mpi4py

MPICH on Ubuntu

sudo apt-get update
sudo apt install mpich
pip install mpi4py

Install Orekit

Using install script while a virtual environment is active on Ubuntu (from inside the SORTS repository)

sudo apt-get update
sudo apt-get install openjdk-8-jdk
./install_orekit.sh

Install Pyglow

Taken from "https://github.com/timduly4/pyglow/"

git clone git://github.com/timduly4/pyglow.git pyglow

cd pyglow/
pip install -r requirements.txt
make -C src/pyglow/models source
python setup.py install

Example

Finding passes over radar system

#!/usr/bin/env python

import numpy as np
import pyorb

import sorts
from sorts.propagator import SGP4

eiscat3d = sorts.radars.eiscat3d

prop = SGP4(
      settings = dict(
          out_frame='ITRS',
      ),
  )

orb = pyorb.Orbit(
    M0 = pyorb.M_earth,
    direct_update=True,
    auto_update=True,
    degrees=True,
    a=7200e3,
    e=0.05,
    i=75,
    omega=0,
    Omega=79,
    anom=72,
    epoch=53005.0,
)
print(orb)

t = sorts.equidistant_sampling(
    orbit = orb,
    start_t = 0,
    end_t = 3600*24*1,
    max_dpos=1e3,
)

states = prop.propagate(t, orb.cartesian[:,0], orb.epoch)

passes = eiscat3d.find_passes(t, states)

print(passes)

For developers

To install developer dependencies

#NOT YET AVALIBLE

To test

pytest

To make doc

THIS MAKE TARGET NEEDS UPDATE (currently manually handled with make html instead)

git checkout gh-pages
git cd docsrc
make github

When used for publications

@article{
autor="", title=""

}