GithubHelp home page GithubHelp logo

projecthorus / chasemapper Goto Github PK

View Code? Open in Web Editor NEW
97.0 97.0 21.0 3.19 MB

Browser-Based High-Altitude Balloon Chase Map

License: GNU General Public License v3.0

Python 30.17% CSS 6.71% JavaScript 52.87% HTML 9.90% Dockerfile 0.35%

chasemapper's People

Contributors

darksidelemm avatar dbrooke avatar fkemps avatar g7gpr avatar llnz avatar miketango avatar snh 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

Watchers

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

chasemapper's Issues

Sound signal if burst

When the balloon bursts it would be great if a sound signal could be heard, like a beep or ding.

Better handling of Multiple telemetry sources from one balloon flight.

On many Horus flights we may have redundant telemetry payloads. Usually these are fed into OziMux, where an operator can observe which is providing the 'best' data (best = highest update rate, with valid position), and select that payload to feed into the map.

It would be better if this selection was handled automatically.

The idea would be you would configure a set of telemetry sources (be it either a Horus_UDP type source, or an ozimux type source... really need to unify this stuff), and define them to be from the same 'flight'. Some algorithm would then monitor the frequency of updates and pick the best source to use for mapping. If that source has a gap in data, it then drops back to the next source. and so on.

DF Bearing Support

Add direction finding bearing support, for foxhunt comps.

  • Add support for receiving DF bearings from some pointing device via one of the input streams (probably best to make a new horus_udp message type). Bearing inputs could be in a few forms:
    • 'Relative': Just a raw azimuth relative to the front of the car. The backend will need to fuse this with incoming GPS (and possibly compass?) data to determine the absolute bearing line to plot
    • 'True': A 'true' bearing, still using the cars position, but with a true azimuth (perhaps the DF device contains a compass?)
    • 'Absolute': Where the start position and true azimuth is provided. This could be used for plotting 'remote' bearings.
  • Bearings may come from multiple sources (multiple DF systems in the same car). We need some way of telling these sources apart (colour?)
  • Store up to X historical bearings in the backend (X = maybe 200-300?). Store the timestamp of each bearing.
  • Display Y bearings on the map, where Y is determined based on an 'age' selection (i.e. only show last 10 minutes of bearings)
  • 'Age-out' bearings as they get older. This could be done by changing the tint of the bearing (older = darker)

Dark Mode

Some kind of Dark Mode for chasemapper would be useful. Something that can be used on a tablet, in a car, at night - without blinding the operator.

Maybe @LukePrior has some ideas on this one?

Main things to do would be:

  • Find a map tile-set that is usable in a dark environment, and that has enough contrast to be useful. Dark Matter isn't really good enough - the contrast is not really good. Something like the OSMAnd 'dark' maps (see here https://osmand.net/features/start and here https://osmand.net/images/features/StyleOsmAnd2.jpg ) would be excellent.
  • Make a second set of icons that provide enough contrast on the selected map.
  • Figure out all the CSS changes required to invert the colours (mostly) and make the page look good.

Unable to display auto_rx data

No weather balloons locations are appearing on Chasemapper. I'm wanting to pull the data from auto_rx and I thought it'd work automatically because of the info in the wiki:
"ChaseMapper is configured to listen for these packets by default, so auto_rx and ChaseMapper should 'just work'."

In the auto_rx directory in station.cfg, I have the following variables set:
payload_summary_enabled = True
payload_summary_port = 55673

In the chase mapper directory in hoursmapper.cfg, I have set the following:
default_profile = 2
[profile_2]
profile_name = auto_rx
telemetry_source_type = horus_udp
telemetry_source_port = 55673
car_source_type = horus_udp (changed this, thinking it may show my vehicle location)
car_source_port = 55672

Also, my vehicle location isn't appearing. Are there conditions that must be met for this to appear (speed)? I don't have a GPSD, so is this even possible?

Feature request: Keep screen awake

On some platforms such as iPhone there is no way to set a global wake lock to stop the device from dimming / turning off / locking the screen while using the chasemapper web interface. This is a problem.

Reportedly nosleep.js works on iOS: https://github.com/richtr/NoSleep.js

There is also a standardized wakelock API, currently in experimental status but supported by a few platforms:

https://caniuse.com/?search=wakelock

https://developer.mozilla.org/en-US/docs/Web/API/WakeLock

Show most recent telemetry location from most recent balloon after restart

After a restart, the location of the most recent balloon is lost if there is no more telemetry received. It would be great if the most recent balloon's last known location, and last predicted landing point could appear on the map. Happy to implement this, probably by scanning the tail of the last log for the relevant information. Is there a smarter way?

Numpy Import Error

Hi, using a raspberry pi zero with fresh bullseye install. I followed the steps to install the dockerfile, but am met with a numpy import error when I try to enter the environment with:

docker exec -it chasemapper /bin/bash

I followed every step listed in the docker guide but get an identical error as described in several online posts. It seems that python 3.7 and numpy 1.21 are incompatible. Any fixes? I've tried removing and reinstalling numpy, updating, stopping and restarting the container, and pulling latest version.

ImportError: libcblas.so.3: cannot open shared object file: No such file or directory

Looks like the latest docker image does not start. It shows the following error and keeps restarting:

Traceback (most recent call last):
  File "/root/.local/lib/python3.9/site-packages/numpy/core/__init__.py", line 23, in <module>
    from . import multiarray
  File "/root/.local/lib/python3.9/site-packages/numpy/core/multiarray.py", line 10, in <module>
    from . import overrides
  File "/root/.local/lib/python3.9/site-packages/numpy/core/overrides.py", line 6, in <module>
    from numpy.core._multiarray_umath import (
ImportError: libcblas.so.3: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/chasemapper/horusmapper.py", line 30, in <module>
    from chasemapper.geometry import *
  File "/opt/chasemapper/chasemapper/geometry.py", line 10, in <module>
    import numpy as np
  File "/root/.local/lib/python3.9/site-packages/numpy/__init__.py", line 140, in <module>
    from . import core
  File "/root/.local/lib/python3.9/site-packages/numpy/core/__init__.py", line 49, in <module>
    raise ImportError(msg)
ImportError: 

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.

We have compiled some common reasons and troubleshooting tips at:

    https://numpy.org/devdocs/user/troubleshooting-importerror.html

Please note and check the following:

  * The Python version is: Python3.9 from "/usr/local/bin/python3"
  * The NumPy version is: "1.23.3"

and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.

Original error was: libcblas.so.3: cannot open shared object file: No such file or directory
hans@DebHans:/data/chasemapper$ docker pull ghcr.io/projecthorus/chasemapper:latest
latest: Pulling from projecthorus/chasemapper
Digest: sha256:22bfb103c98180fdc91a31bc97a3577564370a1ce7065bbf54c59e951bb9a1f0
Status: Image is up to date for ghcr.io/projecthorus/chasemapper:latest
ghcr.io/projecthorus/chasemapper:latest

Whitespace breaks config

Whitespace preceding a line in horusmapper.cfg prevents the line from being read correctly.

This arose for me by uncommenting the map path line for a docker install. I accidentally left a whitespace before the line:
tile_server_path = /home/pi/Maps/

This resulted in no maps being accessible on the web interface.

I understand that the solution to this could be that the user get the config syntax correct, but from a user experience perspective, I think it would be good if chasemapper ignored preceding whitespace in the config file.

Www no refresh data, no get data.

I am sorry my English.
My www browser no get data from chasemapper. No refresh data.
The situation it is on my RPI4 , my AMD PC, my android mobile www browser and my friends.
With old version chasemapper was good.

Pred Landing coordinates

Hello Mark,

Just a simple question, Where can I get the predicted landing coordinates easier? Digging in "~/chasemapper/log_files" I have found that those log files contains something called "pred_landing" with that info, and I think for now is the only way to get them. But, for instance, in Habhub you can put the mouse over the predicted landing icon and a pop up appears with that info.
When you click on "Mark as recovered" you get the latest coordinates in flight. Just as an idea...would there be a chance to add a new button with the predicted landing coordinates somewhere?

Regards.
Fernando

Variable defined twice in horusmapper.cfg

Hi,

i can't get GPS to work and noticed that car_source_type seems to be defined twice, once in line 38 and then again in line 64. Is this intentional?

Chasemapper also ignores my request to find the USB GPS on /dev/ttyusb6 and tries calling /dev/TTYUSB0 all the time.

Arbitrary Markers with replication

The ability for a client to drop markers on the map, and have them show up on other clients displays would be very useful for chasing.

Example Scenario:

  • Driver has a tablet showing chasemapper on the dash. This is set into 'follow-car' mode.
  • Navigator has a laptop showing the same chasemapper instance. The navigator can drop a waypoint to indicate where the driver should turn next.

A few different marker types would be useful, and maybe even the ability to annotate them. Markers should be easily deletable from any client.

gpsd speed is not what my car say

Hi,
i tried it out in my roadtrip, but chasemapper things i drive with something about 26000kph my car say i drive 80kph ..

i have a second gps dongle an that works sometime with right values but my chasecar moving everytime with 0 - 16kps and its rotating .. also if i rest in bed ^^

what can i do to debug this to fix it?

best regards

Mark-as-recovered Button

We can leave temporary 'messages' on the habhub map by uploading a receiver position. The Radio and Antenna fields are free-text, so could be used to indicate a sonde is recovered.

Suggest:

  • On double-tap of entry in telemetry table, popup a list of options (maybe we can do some other things with this?), one of which is 'mark as recovered'.
  • Upload a receiver position to Habhub, with the location set to the last position of the sonde, and either the Antenna or Radio field set to ' Recovered'.

Feature Suggestion: Tile Servers in config

I think it would be useful if tile servers could be configured in the horusmapper.cfg file (or another config file).

My friends and I are about to start using topographic maps from getlost.com.au, and while we have downloaded them and intend to use them from the offline map folder, I think it would be useful to be able to specify tile servers from the config.

I understand that the tile server details are included in the frontend template, so I get this ins't necessarily trivial.

Range Rings

Add the option to display range rings (i.e. circles of radius 1, 2, 3, 4, 5 km) around the current car position.
This is useful for the navigator to get some sense of distance from a turn or waypoint.

The number of rings, and the distance between each ring should be configurable.

Add decode percentage for indication of signal quality

For the LMS-6 sondes at least, there is a serial number for each telemetry report. To get a heads-up of a weakening signal, the percentage of the reports decoded in the last 30 or 60 seconds would be an indicator it's time to start adjusting the antenna.

Click on prediction point should open a maps application

When i chase a sonde i see the prediction dot on the map, this is fine.

can you make it possible when i tap it on my ipad, that it opens a map application for navigation?

Data URI Scheme

geo:latitude,longitude

for Android

i think it works for iOS too

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.