# # Project Horus Chase-Mapper Configuration File # # Copy this file to horusmapper.cfg and modify as required. # # This is the default config file for chasemapper 1.5.0, be aware there might be changes and it might not run on older/newer versions. # # # Telemetry Source Profiles # Multiple Telemetry source profiles can be defined, and can be selected from # the web GUI. # [profile_selection] # How many profiles have been defined profile_count = 2 # Index of the default profile (indexing from 1) default_profile = 1 [profile_1] # An example configuration which displays telemetry from auto_rx, and obtains chase car positions from GPSD. # Profile name - will be shown in the web client. profile_name = auto-rx # Telemetry source type: # ozimux - Read data in OziMux format (TELEMETRY,HH:MM:SS,lat,lon,alt\n) # horus_udp - Read Horus UDP Broadcast 'Payload Summary' messages, as emitted by auto_rx and the horus-gui software. telemetry_source_type = horus_udp # Telemetry source port (UDP) (auto_rx defauts to 55673) telemetry_source_port = 55673 # Car Position Source # none - No Chase-Car GPS # horus_udp - Read Horus UDP Broadcast 'Car GPS' messages # serial - Read GPS positions from a serial-connected GPS receiver. RECOMMENDED # gpsd - Poll a local GPSD instance for positions. (Known to have some reliability issues...) # station - Stationary position (set in the [map] section below) car_source_type = serial # Car position source port (UDP) - only used if horus_udp is selected, but still needs to be provided. car_source_port = 55672 # Online Tracker System # Where to upload chase-car positions and balloon recovery notifications to. # Note - you can only select one of these at a time. # # sondehub = Sondehub v2 Database, for viewing on the SondeHub tracker (https://tracker.sondehub.org) # Use this for chasing meteorological radiosondes! # # sondehubamateur = SondeHub Amateur Database, for viewing on the SondeHub-Amateur Tracker (https://amateur.sondehub.org) # Use this when chasing your own flights, and you want to show up on the sondehub-amateur tracker. # online_tracker = sondehub # Other profiles can be defined in sections like the following: [profile_2] # Example profile to take telemetry data from an instance of horus-gui, which defaults to # emitting hrous_udp messages on port 55672, and using a Serial-connected GPS, with settings defined further below. # The horusdemodlib command-line utilites emit telemetry on the same port, so this profile will work with that too. profile_name = horus-gui telemetry_source_type = horus_udp telemetry_source_port = 55672 # Car Position Source car_source_type = serial # Since we are using a serial GPS, the car_source_port argument isn't used, but still has to be defined. # Make sure to update the gps_serial settings further down in the configuration file! car_source_port = 55672 # Online Tracker System # Where to upload chase-car positions and balloon recovery notifications to. # sondehub = Sondehub v2 Database, for viewing on the SondeHub tracker (https://tracker.sondehub.org) # sondehubamateur = SondeHub Amateur Database, for viewing on the SondeHub-Amateur Tracker (https://amateur.sondehub.org) online_tracker = sondehubamateur # If you want add more profiles, you can do so here, e.g. # [profile_3] # ... # [profile_4] # ... [gpsd] # GPSD Host/Port - Only used if selected in a telemetry profile above. # Note that GPSD support is somewhat buggy. gpsd_host = localhost gpsd_port = 2947 [gps_serial] # Serial GPS Settings - Only used if selected in a telemetry profile above. # GPS serial device (i.e. /dev/ttyUSB0, COM1, etc...) gps_port = /dev/ttyUSB0 # GPS baud rate gps_baud = 9600 # Map Settings [map] # Host/port to host webserver on flask_host = 0.0.0.0 flask_port = 5001 # Default Map Centre & Stationary Position # If the profile's car_source_type is set to station, the following position will be indicated on the map # as a stationary receiver. default_lat = -34.9 default_lon = 138.6 default_alt = 0.0 # How long to keep payload data (minutes) payload_max_age = 180 # ThunderForest API Key # NOTE: OpenTopoMaps is now available by default, and is a good alternative to ThunderForest's outdoors map. # If you still want to use ThunderForest's Outdoors map (Topographic maps), you will need to # register for an API key here: https://manage.thunderforest.com/users/sign_up?plan_id=5 # Once you have a key, enter it below: thunderforest_api_key = none # Stadia Maps API Key # Stadia provides an excellent Dark map layer (Alidade Smooth Dark), which is looking promising for use in a 'dark mode' theme. # Accessing this requires registering at https://client.stadiamaps.com/signup/ then creating a 'property' # and obtaining an API key. Once you have a key, enter it below: stadia_api_key = none # Predictor Settings # By default this will attempt to get predictions from the online Tawhiri Predictions API. # Optionally, you can enable offline predictions below. [predictor] # Enable Predictor (True/False) - This can also be enabled from the web client. predictor_enabled = True # Predictor defaults - these can also be modified at runtime in the web interface. default_burst = 30000 default_descent_rate = 5.0 # Offline Predictions # Use of the offline predictor requires installing the CUSF Predictor Python Wrapper from here: # https://github.com/darksidelemm/cusf_predictor_wrapper # You also need to compile the predictor binary, and copy it into this directory. # # Note: This setting turns offline predictions *on* by default, which assumes there is a valid # GFS dataset already present and available. # If you will be using the 'Download Model' button, then leave this at False, and Offline predictions # will be enabled once a valid model is available. offline_predictions = False # Predictory Binary Location # Where to find the built CUSF predictor binary. This will usually be ./pred or pred.exe (on Windows) pred_binary = ./pred # Directory containing GFS model data. gfs_directory = ./gfs/ # Wind Model Download Command # Optional command to enable downloading of wind data via a web client button. # Example: (this will require copying the get_wind_data.py script to this dirctory) # model_download = python3 -m cusfpredict.gfs --lat=-33 --lon=139 --latdelta=10 --londelta=10 -f 24 -m 0p50 -o gfs # The gfs directory (above) will be cleared of all .dat files prior to the above command being run. model_download = none # # Offline Tile Server # # Allows serving of map tiles from a directory. # Each subdirectory is assumed to be a separate layer of map tiles, i.e. 'OSM', 'opencyclemap', # and is added to the map interface as a separate layer. # This feature can be used to serve up FoxtrotGPS's tile cache as layers, usually located in ~/Maps/ # [offline_maps] # Enable serving up maps from a directory of map tiles. tile_server_enabled = False # Path to map tiles. For FoxtrotGPS, this is usually ~/Maps/ # NOTE: This must be an ABSOLUTE directory, i.e. /home/pi/Maps/ , using ~/Maps/ will not work. tile_server_path = /home/pi/Maps/ # If running chasemapper within a docker container, comment out the above line, and uncomment the following: #tile_server_path = /opt/chasemapper/Maps/ # # SondeHub Chase-Car Position Upload # If you want, this application can upload your chase-car position to the SondeHub/SondeHub-Amateur trackers, # for those follwing along at home. # The settings below can be modified from the web interface, but they will default to what is set below on startup. # # Note - Variables in this section still refer to habitat to avoid breaking existing configurations. [habitat] # Enable uploading of chase-car position to SondeHub / SondeHub-Amateur (True / False) # Which tracker positions are uploaded to depends on the online_tracker setting of the selected # profile (further up in this config file). habitat_upload_enabled = False # Callsign to use when uploading. Note that _chase is automatically appended to this callsign # when displayed on the tracker maps. # i.e. N0CALL will show up as N0CALL_chase on sondehub.org habitat_call = N0CALL # Attempt to upload position to SondeHub every x seconds. habitat_update_rate = 30 # # Range Rings # [range_rings] range_rings_enabled = False # Number of range rings to display. The first ring starts at the spacing set below. range_ring_quantity = 5 # Spacing between rings, in metres. range_ring_spacing = 1000 # Weight of the ring, in pixels. range_ring_weight = 1.5 # Color of the range rings. # Valid options are: red, black, blue, green, custom range_ring_color = red # Custom range ring color, in hexadecimal #RRGGBB range_ring_custom_color = #FF0000 # # Chase Car Speedometer # If enabled display the chase car speed at the bottom left of the display. # [speedo] chase_car_speed = True # # Bearing Processing # [bearings] # Number of bearings to store max_bearings = 300 # Maximum age of bearings, in *minutes*. max_bearing_age = 10 # Car heading speed gate # Only consider car headings to be valid if the car speed is greater than this value in *kph* car_speed_gate = 10 # Turn rate threshold # Only plot bearings if the turn rate of the vehicle is less than this value, in degrees/second # This helps avoid plotting bearings when the heading and bearind data might be misaligned during # a turn (e.g. around a roundabout) # 4 degrees/second seems to work fairly well. turn_rate_threshold = 4.0 # Visual Settings - these can be adjust in the Web GUI during runtime # Bearing length in km bearing_length = 10 # Weight of the bearing lines, in pixels. bearing_weight = 1.0 # Color of the bearings. # Valid options are: red, black, blue, green, white, custom bearing_color = red # Custom bearing color, in hexadecimal #RRGGBB bearing_custom_color = #FF0000 [units] # unitselection allows choice of metric - the default or imperial - horizontal miles and feet for short distances, horizontal miles per hour, vertical feet, vertical feet per minute # this is applied only to the indications and to the range ring settings unitselection = metric #unitselection = imperial # Sensible choice of unit selection (all thresholds set in metric) # This is the threshold for switching from miles to feet, set in metres. switch_miles_feet = 400 [history] # Enable load of last position from log files (True/False) reload_last_position = False