Skip to content

Commit e680221

Browse files
authored
Merge pull request #511 from projecthorus/testing
v1.5.3 Release - New Historical View
2 parents 21ba420 + 663b954 commit e680221

31 files changed

+2624
-102
lines changed

.devcontainer.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"build": { "dockerfile": "Dockerfile.dev" },
3+
"forwardPorts": [ 5000 ],
4+
"runArgs": [ "--hostname=radiosonde_auto_rx", "--network=host", "--privileged" ]
5+
}

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,8 @@ venv
2222
*.autosave
2323
.scannerwork
2424

25-
2625
# Custom config file
27-
auto_rx/config/station.cfg
26+
auto_rx/station.cfg
2827
auto_rx/log/
2928

3029
auto_rx/log_power.csv

Dockerfile.dev

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
FROM python:3.7-buster
2+
3+
EXPOSE 5000/tcp
4+
5+
# Upgrade base packages and install dependencies.
6+
RUN case $(uname -m) in \
7+
"armv6l") extra_packages="libatlas3-base libgfortran5" ;; \
8+
"armv7l") extra_packages="libatlas3-base libgfortran5" ;; \
9+
esac && \
10+
apt-get update && \
11+
apt-get upgrade -y && \
12+
apt-get install -y \
13+
libatomic1 \
14+
rng-tools \
15+
rtl-sdr \
16+
sox \
17+
tini \
18+
usbutils \
19+
${extra_packages} && \
20+
rm -rf /var/lib/apt/lists/*
21+
22+
# Copy in requirements.txt.
23+
COPY auto_rx/requirements.txt \
24+
/tmp/requirements.txt
25+
26+
# Install Python packages.
27+
RUN pip3 --no-cache-dir install \
28+
--extra-index-url https://www.piwheels.org/simple \
29+
-r /tmp/requirements.txt
30+
31+
# Run bash.
32+
WORKDIR /root
33+
CMD ["/bin/bash"]

README.md

Lines changed: 29 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -3,75 +3,54 @@
33

44
**Please refer to the [auto_rx wiki](https://github.com/projecthorus/radiosonde_auto_rx/wiki) for the latest information.**
55

6-
This fork of [rs1279's RS](https://github.com/rs1729/RS) codebase
7-
provides a set of utilities ('auto_rx') to allow automatic reception
8-
and uploading of
9-
[Radiosonde](https://en.wikipedia.org/wiki/Radiosonde) telemetry to
10-
multiple services, including:
6+
This fork of [rs1279's RS](https://github.com/rs1729/RS) codebase provides a set of utilities ('auto_rx') to allow automatic reception and uploading of [Radiosonde](https://en.wikipedia.org/wiki/Radiosonde) positions to multiple services, including:
117

128
* The [SondeHub Radiosonde Tracker](https://tracker.sondehub.org) - a tracking website specifically designed for tracking radiosondes!
13-
149
* APRS-IS (for display on sites such as [radiosondy.info](https://radiosondy.info) and [aprs.fi](https://aprs.fi)
15-
1610
* [ChaseMapper](https://github.com/projecthorus/chasemapper) for mobile
1711
radiosonde chasing.
1812

19-
There is also a web interface available on http://localhost:5000 ,
20-
allowing display of station status and basic tracking of the sonde
21-
position.
13+
Auto-RX's [Web Interface](https://github.com/projecthorus/radiosonde_auto_rx/wiki/Web-Interface-Guide) provides a way of seeing the live status of your station, and also a means of reviewing and analysing previous radiosonde flights. Collected meteorological data can be plotted in the common 'Skew-T' format.
2214

23-
Currently we support the following radiosonde types:
24-
* Vaisala RS92
25-
* Vaisala RS41
26-
* Graw DFM06/DFM09/DFM17/PS-15
27-
* Meteomodem M10 & M20
28-
* Intermet iMet-4 (and 'narrowband' iMet-1 sondes)
29-
* Intermet iMet-54
30-
* Lockheed Martin LMS6 (400 MHz and 1680 MHz variants, including the new 'LMS-X' unreleased type)
31-
* Meisei iMS-100
32-
* Meteo-Radiy MRZ (400 MHz versions)
15+
### Radiosonde Support Matrix
3316

34-
Support for other radiosondes may be added as required (please send us
35-
sondes to test with!)
17+
Manufacturer | Model | Position | Temperature | Humidity | Pressure
18+
-------------|-------|----------|-------------|----------|----------
19+
Vaisala | RS92-SGP/NGP | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark:
20+
Vaisala | RS41-SG/SGP/SGM | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: (for -SGP)
21+
Graw | DFM06/09/17 | :heavy_check_mark: | :heavy_check_mark: | :x: | :x:
22+
Meteomodem | M10 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Not Sent
23+
Meteomodem | M20 | :heavy_check_mark: | :x: | :x: | Not Sent
24+
Intermet Systems | iMet-4 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Not Sent
25+
Intermet Systems | iMet-54 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Not Sent
26+
Lockheed Martin | LMS6-400/1680 | :heavy_check_mark: | :x: | :x: | :x:
27+
Meisei | iMS-100 | :heavy_check_mark: | :x: | :x: | :x:
28+
Meteo-Radiy | MRZ (400 MHz) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x:
3629

37-
This software performs the following steps:
30+
Support for other radiosondes may be added as required - please send us sondes to test with! If you have any information about telemetry formats, we'd love to hear from you (see our contact details below).
3831

39-
1. Use rtl_power to scan across a user-defined frequency range, and
40-
detect peaks in the spectrum.
32+
Improvements from the upstream RS codebase will be merged into this codebase when/where appropriate. A big thanks to rs1729 for continuing to develop and improve these decoders, and working with us to make auto_rx decode *all* the radiosondes!
4133

42-
2. For each detected peak frequency, run the rs_detect utility, which
43-
determines if a radiosonde signal is present, and what type it is.
34+
### Updates
4435

45-
3. If a radiosonde signal is found, start demodulating it, and upload
46-
data to various internet services.
36+
**This software is under regular development. Please [update regularly](https://github.com/projecthorus/radiosonde_auto_rx/wiki/Performing-Updates) to get bug-fixes and improvements!**
4737

48-
4. If no peaks are found, or if no packets are heard from the
49-
radiosonde in a given amount of time (2 minutes by default), go back
50-
to step 1.
38+
Please consider joining the Google Group to receive updates on new software features:
39+
https://groups.google.com/forum/#!forum/radiosonde_auto_rx
5140

52-
The latest version can make use of multiple RTLSDRs to allow for
53-
tracking of many radiosondes simultaneously. The number of
54-
simultaneous radiosondes you can track is limited only by the number
55-
of RTLSDRs you have setup!
41+
## Presentations
42+
* Linux.conf.au 2019 - https://www.youtube.com/watch?v=YBy-bXEWZeM
43+
* UKHAS Conference 2019 - [Presented via Skype](https://youtu.be/azDJmMywBgw?t=643) which had some audio issues at the start. Slides [here](https://rfhead.net/sondes/auto_rx_presentation_UKHAS2019.pdf).
5644

57-
Refer to the wiki for the [latest updates, and installation/setup
58-
instructions](https://github.com/projecthorus/radiosonde_auto_rx/wiki).
45+
## Contacts
46+
* [Mark Jessop](https://github.com/darksidelemm) - [email protected]
47+
* [Michaela Wheeler](https://github.com/TheSkorm) - [email protected]
5948

60-
**This software is under regular development. Please [update
61-
regularly](https://github.com/projecthorus/radiosonde_auto_rx/wiki/Performing-Updates)
62-
to get bug-fixes and improvements!**
6349

64-
### Licensing Information
50+
## Licensing Information
6551
All software within this repository is licensed under the GNU General Public License v3. Refer this repositories LICENSE file for the full license text.
6652

6753
Radiosonde telemetry data captured via this software and uploaded into the [Sondehub](https://sondehub.org/) Database system is licensed under [Creative Commons BY-SA v2.0](https://creativecommons.org/licenses/by-sa/2.0/).
6854
Telemetry data uploaded into the APRS-IS network is generally considered to be released into the public domain.
6955

70-
By uploading data into these systems (by enabling the relevant uploaders within the `station.cfg` file) you as the user agree for your data to be made available under these licenses. Note that uploading to Sondehub and Habitat is enabled by default.
71-
72-
### Contacts
73-
* [Mark Jessop](https://github.com/darksidelemm) - [email protected]
74-
* [Michaela Wheeler](https://github.com/TheSkorm) - [email protected]
75-
76-
You can often find us in the #highaltitude IRC Channel on
77-
[Freenode](https://webchat.freenode.net/).
56+
By uploading data into these systems (by enabling the relevant uploaders within the `station.cfg` file) you as the user agree for your data to be made available under these licenses. Note that uploading to Sondehub is enabled by default.

auto_rx/auto_rx.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ def start_scanner():
158158
min_distance=config["min_distance"],
159159
quantization=config["quantization"],
160160
scan_dwell_time=config["scan_dwell_time"],
161+
scan_delay=config["scan_delay"],
161162
detect_dwell_time=config["detect_dwell_time"],
162163
max_peaks=config["max_peaks"],
163164
rs_path=RS_PATH,
@@ -721,6 +722,9 @@ def main():
721722
# Using print because logging may not be established yet
722723
print("Invalid logging path, using default. Does the folder exist?")
723724

725+
# Update Global logging path, used by other modules.
726+
autorx.logging_path = logging_path
727+
724728
# Configure logging
725729
_log_suffix = datetime.datetime.utcnow().strftime("%Y%m%d-%H%M%S_system.log")
726730
_log_path = os.path.join(logging_path, _log_suffix)

auto_rx/autorx/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
# MINOR - New sonde type support, other fairly big changes that may result in telemetry or config file incompatability issus.
1818
# PATCH - Small changes, or minor feature additions.
1919

20-
__version__ = "1.5.2"
20+
__version__ = "1.5.3"
2121

2222

2323
# Global Variables
@@ -49,3 +49,6 @@
4949
scan_results = Queue()
5050
# Global scan inhibit flag, used by web interface.
5151
scan_inhibit = False
52+
53+
# Logging Directory
54+
logging_path = "./log/"

auto_rx/autorx/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"snr_threshold": 10,
2121
"station_lat": 0.0,
2222
"station_lon": 0.0,
23+
"station_alt": 0.0,
2324
}
2425

2526
# Web interface credentials

auto_rx/autorx/email_notification.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def __init__(
7272
# Dictionary to track sonde IDs
7373
self.sondes = {}
7474

75-
self.max_age = 3600*2 # Only store telemetry for 2 hours
75+
self.max_age = 3600 * 2 # Only store telemetry for 2 hours
7676

7777
# Input Queue.
7878
self.input_queue = Queue()
@@ -261,7 +261,10 @@ def process_telemetry(self, telemetry):
261261

262262
msg += "\n"
263263
msg += "https://sondehub.org/%s\n" % strip_sonde_serial(_id)
264-
msg += "https://sondehub.org/card/%s\n" % strip_sonde_serial(_id)
264+
msg += (
265+
"https://sondehub.org/card/%s\n"
266+
% strip_sonde_serial(_id)
267+
)
265268

266269
_subject = "Nearby Radiosonde Landing Detected - %s" % _id
267270

auto_rx/autorx/geometry.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from .utils import position_info
1313

1414

15-
def getDensity(altitude):
15+
def getDensity(altitude, get_pressure=False):
1616
"""
1717
Calculate the atmospheric density for a given altitude in metres.
1818
This is a direct port of the oziplotter Atmosphere class
@@ -75,6 +75,9 @@ def getDensity(altitude):
7575
# Finally, work out the density...
7676
speedOfSound = math.sqrt(gamma * R * temperature)
7777
pressure = pressureRel * pressureSL
78+
if get_pressure:
79+
return pressure
80+
7881
density = densitySL * pressureRel * temperatureSL / temperature
7982

8083
return density

0 commit comments

Comments
 (0)