Giter Site home page Giter Site logo

csete / gpredict Goto Github PK

View Code? Open in Web Editor NEW
812.0 58.0 242.0 14.75 MB

Gpredict satellite tracking application

Home Page: http://gpredict.oz9aec.net/

License: GNU General Public License v2.0

Shell 0.37% Python 0.26% C 98.08% Makefile 0.82% AMPL 0.01% M4 0.21% ReScript 0.26%
c satellite tracking space ham-radio amsat gtk3 linux

gpredict's Introduction

Gpredict is a real time satellite tracking and orbit prediction program
for the Linux desktop. It uses the SGP4/SDP4 propagation algorithms together
with NORAD two-line element sets (TLE).

Some core features of Gpredict include:

- Tracking of a large number of satellites only limited by the physical
  memory and processing power of the computer
- Display the tracking data in lists, maps, polar plots and any combination
  of these
- Have many modules open at the same either in a notebook or in their own
  windows. The modules can also run in full-screen mode
- You can use many ground stations
- Predict upcoming passes
- Gpredict can run in real-time, simulated real-time (fast forward and
  backward), and manual time control
- Detailed information both the real time and non-real time modes
- Doppler tuning of radios via Hamlib rigctld
- Antenna rotator control via Hamlib rotctld

Visit the gpredict homepage at http://gpredict.oz9aec.net/ for more info.


Requirements
------------

Gpredict is written using the Gtk+ 3 widget set, which is available for most
Unix like operating systems, Mac and Windows. Following libraries are required
for successful compilation of Gpredict:

- Gtk+ 3 or later
- GLib 2.32 or later
- GooCanvas 2
- Libcurl 7.16 or later
- Hamlib (runtime only, not required for build)

If you compile Gpredict from source you will also need the development packages
often with -dev or -devel in the package name, e.g. libgtk-3-dev. On Debian and
Ubuntu systems you can install the build dependencies using:

  sudo apt install libtool intltool autoconf automake libcurl4-openssl-dev
  sudo apt install pkg-config libglib2.0-dev libgtk-3-dev libgoocanvas-2.0-dev


To build and install gpredict from source, first unpack the source package:

  tar -xvf gpredict-x.y.z.tar.gz

Then change to the gpredict-x.y.z directory and build gpredict:

  ./configure
  make
  make install

The last step usually requires you to become root, otherwise you may not have
the required permissions to install gpredict. If you can not or do not want to
install gpredict as root, you can install gpredict into a custom directory by
adding --prefix=somedir to the ./configure step. For example

  ./configure --prefix=/home/user/predict
  
will configure the build to install the files into /home/user/gpredict folder.

If you are building directly from the git repository, you have to run
./autogen.sh instead of of configure. You can pass the same options to the
autogen.sh script as you would to the configure script.

If you want to know more about installation options refer to the INSTALL file
(not for beginners).


Using Gpredict
--------------

Gpredict comes bundled with some example data and will run "out of the box".
Once you got the idea of the UI, you can either modify the settings of the
default module (click on the small down-arrow in the top right corner), or
create a new module through File -> New Module.

You are highly encouraged to have a look at the user manual available at
http://gpredict.oz9aec.net/documents.php


User support
------------

User support is provided through the Gpredict forum hosted by the Libre Space
Foundation: https://community.libre.space/c/gpredict


Terms and conditions
--------------------

Gpredict is released under the GNU General Public License and comes with
NO WARRANTY whatsoever. If you have problems installing or using Gpredict,
feel free to ask for support for example on the Gpredict forum hosted by
the Libre Space Foundation https://community.libre.space/c/gpredict


Note that the development environment is being migrated from Sourceforge to
Github: https://github.com/csete/gpredict

Mailing lists, old bug trackers, etc, are still available on Sourceforge:
http://sourceforge.net/projects/gpredict


Happy Tracking!

Alexandru Csete
OZ9AEC

gpredict's People

Contributors

7m3tjz avatar aa1vs avatar barisdinc avatar brookst avatar csete avatar cureton avatar daniestevez avatar dl4pd avatar dl7oap avatar drid avatar hamarituc avatar jasonuher avatar kacomet avatar kerel-fs avatar kukabu avatar longnoserob avatar mdblack98 avatar mistermatt2u avatar nsdecicco avatar phlash avatar rednamic avatar rufnut avatar schneider42 avatar somewhere-or-other avatar spsvihla avatar timgates42 avatar tniessen avatar tomswartz07 avatar yashi avatar zxa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gpredict's Issues

Time controller freezes on Win7

On my laptop (Win7 64 bits), the time controller freezes each time I want to move to a prior or future day. Here is my "method" to make this happen:

  • Open the time controller.
  • Stop it.
  • Move (for instance) to the next day.
  • Win7 freezes :(

Here is a screenshot that may help. Everything is written in French but this is what I called a "freeze".

sans titre

Update trsp data

It would be a nice idea to update trsp data together with tle data update.

Right-click of satellite only works the first time

After launching, I am able to right click on any satellite and pull up the menu. Once I have done that, however, any other satellite I right-click still shows the menu for the first I selected. ie. Start the application, right-click ISS, ISS footprint turns white and I can choose "Ground Track". Now I right-click AO-85 but see the menu for ISS.

Ubuntu 16.04

Run TRSP update in its own thread

Currently the TRSP update function runs in the main GUI thread and this can cause the GUI to freeze. TRSP update should run in its own thread and report progress and status through appropriate channels.

Ground station is not changed until restart of program

After changing the ground station in the settings, it is not changed in the program until restart of the program. This is irritating. Maybe a simple "fix" would be to note this behavior in the settings window as, i guess, it's not a often needed feature to change the location on run time.

Migrate to Gtk+ 3

Update Gpredict to work with the latest Glib, Gtk+ and Goocanvas.

Update AUTHORS file

The list of contributors must be updated before the next release.

Consider listing people alphabetically and without too much details to make the file easier to maintain.

Initial rotator position

Initial rotator position should be read from hamlib and not forced to (180,45), unless tracking is enabled.

Rig control after introduction of trsp download possibility

With the introduction of the TRSP data the rig-control seems somehow broken.
I already found out that for some sats trsp->downlow or downhigh is 0, but I havent discovered the details why this causes the rigcontrol not to show the proper frequenca of the selected transponder..

Image formats not being recognized when being loaded

Mac OS X 10.11.2 (El Capitan)
Using Homebrew ports of GDK2, GDK3, etc.

I wasn't sure where to document this or how to contact you, but I thought I would pass on this FYI for other folks who run into this problem.

After pulling gpredict from the repo and configuring to run with goocanvas 1.0, I was seeing the following errors when running gpredict:

pascal@Kusanagi <44> gpredict
2016/01/10 12:38:30   INFO  sat_log_init: Session started
2016/01/10 12:38:30  DEBUG  sat_cfg_load: Everything OK.
2016/01/10 12:38:31  ERROR  gtk-sat-map.c:1247: Error loading map file (Couldn't recognize the image file format for file '/usr/local/Cellar/gpredict/1.3/share/pixmaps/gpredict/maps/nasa-bmng-07_1024.jpg')
2016/01/10 12:38:31  ERROR  gtk-sat-map.c:1247: Error loading map file (Couldn't recognize the image file format for file '/usr/local/Cellar/gpredict/1.3/share/pixmaps/gpredict/maps/nasa-bmng-07_1024.jpg')

(gpredict:8736): Gtk-WARNING **: Error loading icon from file '/usr/local/Cellar/gpredict/1.3/share/pixmaps/gpredict/icons/gpredict-icon.png':
    Couldn't recognize the image file format for file '/usr/local/Cellar/gpredict/1.3/share/pixmaps/gpredict/icons/gpredict-icon.png'
(gpredict:7788): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(gpredict:7788): Gtk-WARNING **: Error loading icon from file '/usr/local/Cellar/gpredict/1.3/share/pixmaps/gpredict/icons/gpredict-sat-pref.png':
    Couldn't recognize the image file format for file '/usr/local/Cellar/gpredict/1.3/share/pixmaps/gpredict/icons/gpredict-sat-pref.png'
2016/01/10 12:38:35  ERROR  gtk-sat-map.c:1247: Error loading map file (Couldn't recognize the image file format for file '/usr/local/Cellar/gpredict/1.3/share/pixmaps/gpredict/maps/nasa-bmng-07_1024.jpg')

(gpredict:7788): Gtk-WARNING **: Error loading icon from file '/usr/local/Cellar/gpredict/1.3/share/pixmaps/gpredict/icons/gpredict-sat-pref.png':
    Couldn't recognize the image file format for file '/usr/local/Cellar/gpredict/1.3/share/pixmaps/gpredict/icons/gpredict-sat-pref.png'

The file command verified that the files were installed and were indeed the indicated format. A bit of Googling returned the following solution:

# GDK_PIXBUF_MODULEDIR=/usr/local/lib/gdk-pixbuf-2.0/2.10.0/loaders gdk-pixbuf-query-loaders --update-cache

Problems with loading any images in any Gtk app have vanished.

Finish gpsd support

Support for gpsd has been added since v1.3 but there are still some outstanding issues:

  • Update to support the latest version of the API and remove support for legacy versions
  • Some gpsd-related code is active even when gpredict is compiled without gpsd support (e.g. config).
  • Need a GPS status indicator in the module header.
  • Update user manual

FT-847 support

We need to verify whether FT-847 support works as it should (i.e. full duplex) using the latest hamlib package. Fix it if it doesn't, and document how to set it up.

Access to an FT-847 is required.

Finish solar terminator

Painting of solar terminator and nightshade has been added since v1.3 and there are some remaining issues that should be fixed before it is made available through the user interface:

  • Option to disable it
  • Make it work with maps centered around longitudes other than 0
  • Re-organize the color settings so that the "Shadow" slider does not come after the terminator settings (Shadow is not related to Global Shadow).
  • Integrate with time controller
  • Finalize visual look and feel

Problem starting Gpredict 1.3

Gpredict stopped working for me. I am wondering where is the issue and how should I solve it.
As soon as I start gpredict, it ends with a "Segmentation fault (core dumped)" message.

My system is an Ubuntu 16.04.3 LTS (Xenial Xerus).

Next, I attach the gdb trace:

Thread 1 "gpredict" received signal SIGSEGV, Segmentation fault.
Checksum_Good (tle_set=0x0, tle_set@entry=0x2841ab4d570a9000 <error: Cannot access memory at address 0x2841ab4d570a9000>) at sgpsdp/sgp_in.c:59
59 if ( (tle_set[i] >= '0') && (tle_set[i] <= '9') )

Thanks in advance!

Improve TLE data management

There are several flaws in the way Gpredict manages TLE data. A summary of how the application behaves now:

  1. Gpredict is distributed with a copy of almost all satellites from http://celestrak.com -- This data becomes out of date within a few weeks and for this to work would require a monthly release.
  2. The first time gpredict is started it checks the user config for satellite data and copies all data from the distribution into user config (regardless of age).
  3. Gpredict also creates a default .qth and a default .mod file.
  4. If the user manually deletes unwanted satellites from the user config, gpredict will recreate these data the next time it is started.
  5. There is no way to remove satellites from the user config and the user ends up with tons of decayed objects in the local config.
  6. When TLE is updated new sats are added (if configured) but obsolete sats are not deleted.
  7. There is no easy way to remove a satellite or a category.
  8. There is no easy way to add a new satellite or a category.

Possible solutions to the flaws:

  1. Don't distribute any satellite data with gpredict.
  2. The first time gpredict is run or if there are no TLE data in the user config, offer to download data from celestrak or import file from local file. If the user chooses to import data from celestrak (one or more of the predefined files e.g. amateur.txt) add those files to the list of files to be fetched when updating TLE from the web. Also create a category based on the name of the imported file.
  3. Default QTH is ok and I suppose we should create a default module using a random satellite from the imported data.
  4. Solved by item 2.
  5. Solved by item 2.
  6. Improve the TLE updater to first update the existing satellites then offer the option to add new satellites and remove obsolete ones. The choices are remembered in the config.
  7. Need a basic satellite editor (perhaps after v1.4)
  8. Need a basic satellite editor (perhaps after v1.4)

Add ICOM CIV control

Because gpredict does not support serial port doppler correction for an ICOM radio I am forced to use macdoppler that does.

Add button to stop rotator motion

Add a button to the rotator controller that disables tracking and stops any ongoing motion, either by sending a stop command or by setting a new target angle. This would be useful in situations when the rotator starts a cable unwrap motion in the middle of a contact.

Fetching error from SatNOGS DB

On latest build I am trying to fetch SatNOGS DB transponder data and although the fetch of the JSON is successful, the parsing is not.

2017/01/02 00:20:37   INFO  Ready to fetch modes list from satnogs...
2017/01/02 00:20:37   INFO  modes_update_from_network: File to open /home/liknus/.config/Gpredict/trsp/modes.json
2017/01/02 00:20:37   INFO  modes_update_from_network: Successfully fetched https://db.satnogs.org/api/modes/?format=json
2017/01/02 00:20:37   INFO  modes_update_from_network: Fetched 1 files from network; updating...
2017/01/02 00:20:37   INFO  Ready to fetch transponder list from satnogs
2017/01/02 00:20:37   INFO  trsp_update_from_network: File to open /home/liknus/.config/Gpredict/trsp/transmitters.json
2017/01/02 00:20:38   INFO  trsp_update_from_network: Successfully fetched https://db.satnogs.org/api/transmitters/?format=json
2017/01/02 00:20:38   INFO  trsp_update_from_network: Fetched 1 files from network; updating...
NXJSON PARSE ERROR (345): unexpected chars at }
NXJSON PARSE ERROR (345): unexpected chars at }
NXJSON PARSE ERROR (345): unexpected chars at }
NXJSON PARSE ERROR (345): unexpected chars at }
NXJSON PARSE ERROR (345): unexpected chars at }
NXJSON PARSE ERROR (345): unexpected chars at }
NXJSON PARSE ERROR (345): unexpected chars at }
NXJSON PARSE ERROR (345): unexpected chars at }
NXJSON PARSE ERROR (345): unexpected chars at }
NXJSON PARSE ERROR (345): unexpected chars at }
NXJSON PARSE ERROR (345): unexpected chars at }
NXJSON PARSE ERROR (345): unexpected chars at }

Additions to manual about installation MAC OS X

Hello

I found some issues with the install

On MAC OS X, if you download the source using ZIP download you run into issues.

I used git instead of ZIP download and got success

Also git has to be run as root

sudo git clone < source.git >

cd gpredict

I then had to do a 'chmod 777 *'

The next command is './configure.ac' not './configure'

And then it bombs out

MacBook:gpredict vk4tec$ ./configure.ac
./configure.ac: line 1: syntax error near unexpected token [gpredict],' ./configure.ac: line 1: AC_INIT([gpredict],'
MacBook:gpredict vk4tec$

Andrew Aug 2017 VK4TEC

Finish Gtk+ 3 migration

Replace all deprecated Gtk+ function calls.


  • gtk-freq-knob
  • gtk-rot-knob
  • gtk-rig-ctrl
  • gtk-rot-ctrl
  • gtk-sat-module
  • gtk-sat-module-popup
  • gtk-sat-module-tmg
  • gtk-sat-popup-common
  • gtk-sat-selector
  • gtk-single-sat
  • loc-tree
  • map-selector
  • menubar
  • pass-popup-menu
  • qth-editor
  • sat-info
  • sat-log-browser
  • sat-pref
  • sat-pref-formats
  • sat-pref-qth
  • sat-pref-qth-editor
  • sat-pref-tle
  • sat-pref-debug
  • sat-pref-layout
  • sat-pref-refresh
  • sat-pref-map-view
  • sat-pref-list-view
  • sat-pref-polar-view
  • sat-pref-single-sat
  • sat-pref-rig
  • sat-pref-rig-editor
  • sat-pref-rot
  • sat-pref-rot-editor
  • sat-pref-conditions
  • sat-pref-multi-pass
  • sat-pref-single-pass
  • sat-pref-sky-at-glance

Run TLE update in its own thread

Currently the TLE update function runs in the main GUI thread and this can cause the GUI to freeze. TLE update should run in its own thread and report progress and status through appropriate channels.

Port Mismatch with gqrx remote control

I was debugging a connection issue between gpredict and gqrx

The gqrx website and software says use port 7356

http://gqrx.dk/doc/remote-control

When I run up gpredict it is hard coded to port 4532

I used wireshark on localhost to spot this port mismatch

Can we align the two as to not confuse people

I am writing a gpredict to ICOM CIV program

Andrew VK4TEC

autotrack does not update radio control

with GPREDICT 1.3.460-6fc0-dirty:

activating autotrack before radio control still works as intended.
however starting radio control and then selecting autotrack does not update the sat selection in radio control.

could this be caused by the latest changes regarding threading?

IC-9100 support

Info received from Dimitris, VK1SV/VK2COW on May 12, 2017:

I am helping the local university with setting up a
ground station for a QB50 satellite which will be in orbit soon. Our
satellite uses the same UHF frequency for both up and downlinking, of
course, the doppler needs to have the opposite sign when changing from
RX to TX. We use an Icom IC-9100 and I have set it up as Simplex TRX
and Read PTT. This works fine however there must be some race
condition because every now and then, Gpredict things that there has
been a dial change, and starts using that dial change resulting in a
random frequency jump. I found that this is more likely to happen when
using a digital mode (such as our satellite), where the time of
transmission is very short and transmissions happen very often.

I have downloaded the git master version and I have found in
gtk-rig-ctrl.c the if statement code that detects that change. I have
commented it out, for both rx and tx, and now it works perfectly. I
can spin the VFO dial and gpredict will immediately go back to the
correct frequency. If I want to make an offset change, I can do it
from the "Radio Control" window.

Given there will be other IC-9100 users with UHF/UHF Up/Downlink
digital satellites, I think others will come across this problem.
Could I suggest you implement something like an "Ignore dial knob"
checkbox in the "Radio Control" window? The user then can check this
when using the Icom IC-9100 radio and not have that random frequency
change problem. Other users can leave that unchecked and it will work
as it used to.

call an external script to set rig frequency

Give an option to call a user shell script to set rig uplink and downlink frequency, also passing all useful variables to the script ( satellite catalog, doppler shift , satellite position, etc). In this manner one can integrate rigs not managed by rigctld. DO the same for rotor control.
Thank you for the excellent work !

Translation issues

I noticed that some strings that are translated on launchpad don't show up in gpredict. The problem seem to be that the strings are set as variables. Here are two files where this issue occurs:

/src/sat-pref-tle.c

Line:
#define ADBUT_TEXT N_("Add new satellites to local database")
#define ADBUT_TIP N_("Note that selecting this option may cause previously "
"deleted satellites to be re-added to the database.")

/src/sat-pass-dialogs.c
The lists at the beginning.

And there's a file missing in the potfiles.in:
gtk-sat-popup-common.c

Jan, DL2ZXA

Switch to GooCanvasItem-based drawing

According to GooCanvas documentation, the model based item creation is deprecated and may be removed in a future release. We should switch to item based drawing.

Following widgets need to be updated:

  • GtkSatMap
  • GtkPolarPlot
  • GtkPolarView
  • GtkSkyGlance
  • GtkAzelPlot

possible TLE parsing problem

The current TLE for IRIDIUM 114 is this:

[Satellite]
VERSION=1.1
NAME=IRIDIUM 114
NICKNAME=IRIDIUM 114
TLE1=1 41923U 17003G 17034.00118558 -.13702181 00000-0 -27963+1 0 9995
TLE2=2 41923 86.6009 78.0456 0058911 258.0713 74.8913 14.67777747 2854

as of 2017-02-05 12:32:00 this produces an current altitude of 473km.

My own calculations produce an Apogee and Perigree of
Ra [km]: 7087.81620154
Rp [km]: 7004.7952184
which put the satellite at somewhere between 625 and 710 km.

I suspect gpredict is making a mistake somewhere. - I verified with heavens-above.com which shows a completely different current position than gpredict.

Unexplained options in Satlist

Maybe not a real "issue": In the preferences for the satellite list there are the options "Decay" and "BOLD" with no tooltips. In the satlist Decay seems to be "True" all the time and Bold is 400 for not visible sats and 700 for visible. What do these values tell me?

Reclassify log messages

Many log messages that can be classified as INFO are logged as ERROR or WARNING and this generates a lot of noise. A typical example is when an optional config record is not present.

Review the log messages and reclassify them as necessary.

IC-910 support

We need to verify whether IC-910 support works as it should (i.e. full duplex) using the latest hamlib package. Fix it if it doesn't, and document how to set it up.

Access to an IC-910 is required to complete this taks.

Windows: Radio interface shows port 7356 , uses port 7777

I was experimenting with gpredict under windows 10 towards my macpc

I set a radio interface on port 7777 then used 7356

The radio interface showed as using port 7356 but wirshark traces show 7777 in use

I am unsure why gpredict hung onto the original port 7777 I was testing on

Please test by cycling Radio interface port and network traces on "engage" button

Andrew VK4TEC

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.