gut-space / satnogs

The goal of this project is to create a functional satellite ground station, able to receive VHF transmissions from NOAA sats and more!
https://aquarius.klub.com.pl
MIT License
10 stars 0 forks source link

Pass tools, typing improves #47

Closed fivitti closed 4 years ago

fivitti commented 4 years ago

Some useful changes for better work with station

  1. Add command for print logs

    You may type station logs. It is the same as cat ~/.config/satnogs-gut/log.

  2. Add command for print pass details. You may now easy print information about planned pass including azimuth/elevation graph from CLI.

    I often need check AOS, LOS, max elevation and Az/El chart. Now I need to open gPredict, open time tool, check AOS in RPi and retype it on my computer.
    Now you can type: station pass 5 where 5 is position on station plan list and see information about pass.
    You may also type station pass "NOAA 18" for next pass of specified satellite.
    You may provide AOS for display pass in other time: station pass "NOAA 18" --aos 2020-03-21T08:00. The time is in ISO 8601 format (UTC). 2020-03-21-231932_841x864_scrot Library for plot in terminal don't allow to draw second Y axis. Therefore by default I scale elevation diagram 4 times (for better Y axis resolution). EDIT: Now we support also polar plot. 2020-03-22-164828_271x263_scrot

    Comparison between our graphs and gPredict:

    2020-03-22-170332_958x1020_scrot

  3. Improve types in strategies. I use PyRight and I got error messages.

  4. Refactor configuration using. Some information (e.g. in satellites) may be inherited from global settings. Global settings may be optionally. When developer want use it then he needs check satellite level configuration, next global level and next use default value. I added a function for fill satellite level configuration with inherited values (if needed) on demand.

  5. Move commands in Meteor recipe for better cleanup. After each command we check error level and if it isn't equal 0 then we break script. But cleanup section is at end. I split cleanup section and remove temporary files as speed as possible. It isn't ideal yet, but better then further.

tomaszmrugalski commented 4 years ago

First of all, this is most impressive work. It will take a bit for me to thoroughly review the change.

tomaszmrugalski commented 4 years ago

The code fails on python 3.6: See travis log

Traceback (most recent call last):
  File "./cli.py", line 104, in <module>
    pass_parser.add_argument("--aos", help="AOS in ISO format. If not provided then display next pass", type=datetime.datetime.fromisoformat, required=False)
AttributeError: type object 'datetime.datetime' has no attribute 'fromisoformat'