Oroscope: terrain site search for particle-astrophysics observatories
Oroscope searches digital elevation models for ground that can host a particle-astrophysics observatory. Greek oros, mountain, and skopein, to look at.
It answers one structural question, and that is what lets a single engine serve experiments that look nothing alike:
From this patch of ground, is there a target surface at the right range, in the right direction, at the right relative orientation, with the right matter behind it?
GRAND wants terrain a few degrees below the horizon and tens of kilometres away, to catch radio from air showers started by Earth-skimming tau neutrinos. TAMBO wants a canyon wall two to five kilometres across, to catch the particles themselves. They differ in their numbers, not in their structure — so both are configurations of the same scan, and a search can report where each is viable and where the two coincide.
What it does
Screens terrain by slope, aspect, altitude and exclusion zones.
Scans arrival directions from every surviving pixel, finding where a tau could exit and how much rock lies behind it — one profile walk per (candidate, azimuth), serving every elevation bin at once.
Scores the result against per-experiment criteria, each a named component.
Cleans up morphologically, labels sites, and places detectors on a lattice in real ground coordinates.
Writes GeoTIFF, KML, PNG and JSON, plus a selection funnel, a provenance record, and a plain-language account of what was found and why.
What it is not
Not a shower simulation. Development comes from a Gaisser–Hillas profile and an isothermal atmosphere. No Monte Carlo, no detector response, no trigger model.
Not a flux or exposure calculation. It reports geometry and acceptance-shaped quantities; turning those into an event rate needs a flux and a response table.
Not a substitute for a site visit. There is no slope stability, land access, power or cost.
Not externally validated. The physics is checked against closed-form synthetic terrain and against itself. It has not been compared with any collaboration’s own simulated acceptance. Assumptions and limitations is blunt about what that means.
Getting started
pip install oroscope
or, for a clone with the notebooks, the configurations and the test suite:
git clone https://github.com/mbustama/oroscope.git
cd oroscope
pip install -e .
oroscope --config_path config/grand_colca_config.json
See Installation and Quickstart for the longer version, and The physics for what is actually being computed.
User Guide:
- Installation
- Quickstart
- How the search works
- The command line
- Everything here can be done from code
oroscope— run a searchoroscope-crop— cut a window out of a DEMoroscope-combine— overlay two or more searchesoroscope-sensitivity— how firm is the answer?oroscope-fetch-dem— download the elevation modelsoroscope-fetch-roads— road geometry for the maptools/make_animations.py— animations of the mechanismtools/run_full_dem.py— the full-DEM runs- Where things are resolved from
- Every option, in full
- Getting the data
- Tutorial notebooks
- The physics
- Assumptions and limitations
- Numbers that are assumptions, not measurements
- The two that dominate a canyon result
- Reported area is not physics-accepted area
- Using published effective areas: what is corrected, and what is not
- Physics that is not modelled
- Terrain and data limitations
- Where the results have been checked
- A prediction worth falsifying
- Glossary
- Implementation notes
- API reference
- References
License
Released under the GNU General Public License v3. The full text ships with the source, as
LICENSE in the repository root.