{"id":19624638,"url":"https://github.com/nature40/batrack","last_synced_at":"2026-06-07T21:01:16.810Z","repository":{"id":97594486,"uuid":"266635947","full_name":"Nature40/BatRack","owner":"Nature40","description":"Sense and record bats based on visuals, audio and VHF signals","archived":false,"fork":false,"pushed_at":"2022-05-02T13:18:48.000Z","size":99504,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-09T11:59:32.702Z","etag":null,"topics":["camera-trap","ecology","movement-ecology","wildlife-tracker"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nature40.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-05-24T22:34:03.000Z","updated_at":"2022-04-27T16:18:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"ab5c6185-6762-49b1-a5ba-8378ddc65de9","html_url":"https://github.com/Nature40/BatRack","commit_stats":{"total_commits":88,"total_committers":4,"mean_commits":22.0,"dds":0.375,"last_synced_commit":"a30e19a149f6e498564951b7bb950c917af0b492"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nature40%2FBatRack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nature40%2FBatRack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nature40%2FBatRack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nature40%2FBatRack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nature40","download_url":"https://codeload.github.com/Nature40/BatRack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240925765,"owners_count":19879732,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["camera-trap","ecology","movement-ecology","wildlife-tracker"],"created_at":"2024-11-11T11:38:33.932Z","updated_at":"2026-06-07T21:01:16.055Z","avatar_url":"https://github.com/Nature40.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"BatRack\n===\n\nSense and record bats based on visuals, audio and VHF signals.\n\n## Configuring BatRack\n\nBatRack is configured through a configuration file, which is loaded on startup.\n\n### Continous Operation Mode\n\nIn the basic *continuous operation mode*, BatRack is configured through the options available in the `[BatRack]` section.\n\n```ini\n[BatRack]\nlogging_level = INFO\ndata_path = /data/\nduty_cycle_s = 10\nalways_on = False\n\n; analysis units to instantiate\nuse_vhf = True\nuse_audio = True\nuse_camera = True\n\n; triggers to be evaluated\nuse_trigger_vhf = True\nuse_trigger_audio = True\nuse_trigger_camera = True\n\n[CameraAnalysisUnit]\nlight_pin = 14\n\n[AudioAnalysisUnit]\nthreshold_dbfs = 40\nhighpass_hz = 15000\nwave_export_len_s = 300\n\nquiet_threshold_s = 1.0\nnoise_threshold_s = 0.15\n\n[VHFAnalysisUnit]\nfreq_center_hz = 150100001\nfreq_bw_hz = 8000\nuntrigger_duration_s = 10\n\n; properties of the signals\nsig_freqs_mhz = [150.077, 150.038, 150.225, 150.203]\nsig_threshold_dbm = 50\nsig_duration_threshold_s = 0.02\nsig_poll_interval_s = 0.1\n\n; properties for frequency active / passive classification \nfreq_active_window_s = 60\nfreq_active_var = 2.0\nfreq_active_count = 10\n```\n\nIn the configuration presented above, BatRack runs continuously 24h a day. \nAll of the three analysis units (audio, vhf and camera) are evaluated and in the case that one of those detected a bat, a recording would be triggered. \n\n### Scheduled Operation Mode\n\nIf the `BatRack.conf` configuration file contains any `[run.*]` sections, the software runs in the *scheduled operation mode*, which allows the configuration to change over time. \nIn this case BatRack runs as a daemon and instancitates varying configurations at the requested times. \n\nIn the `[run]` sections there are two mandatory variables `start` and `stop`.\nIn addition to this, all variables of the `[BatRack]` section can be customized in each individual run.\n\n\n```ini\n; define scheduled instances with start and stop parameters\n; variables defined in [run.*]-sections override those of [BatRack]\n[run.1]\nstart = 20:00\nstop = 01:00\n\n[run.2]\nstart = 05:00\nstop = 06:00\n\nuse_trigger_vhf = False\nuse_trigger_audio = False\nuse_trigger_camera = False\n```\n\nIn the examples presented above, a trigger-based run (as defined in the `[BatRack]` section defined in the first example) would be running starting 8 pm until 1 am at night.\n\nSecond, a continuous recording would run from 5 until 6 am. \nIn this second example none of the triggers are actually used (`use_trigger_* = False`), which is internally interpreted as a continuous recording.\n\n#### Overlapping schedulings\n\nSince some of the sensors are mutual exclusive, only one instance of BatRack is allowed to run at a time. \nThis is also the case for scheduled runs.\nIf a run is configured to start before an ongoing job ends, it will wait for the running job to finish.\n\n## Installation\n\nBatRack is currently only supported on the Raspberry Pi platform, since it depends on its GPIO port interface. \nThe required python libraries are defined as dependecies and are automatically installed when using `pip`.\n`numpy` as well as `pyaudio` require binaray libraries, which need to be installed manually. \nIn the case of Raspbian / Raspberry Pi OS, this can be achieved using `apt`:\n\n```bash\napt-get install -y python3-numpy python3-pyaudio\npython3 -m pip install .\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnature40%2Fbatrack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnature40%2Fbatrack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnature40%2Fbatrack/lists"}