Oroscope: terrain site search for particle-astrophysics observatories

tests Code Quality Documentation PyPI License: GPL v3 Python 3.9+ Code style: ruff

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.

_images/index_1_0.svg

What it does

  1. Screens terrain by slope, aspect, altitude and exclusion zones.

  2. 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.

  3. Scores the result against per-experiment criteria, each a named component.

  4. Cleans up morphologically, labels sites, and places detectors on a lattice in real ground coordinates.

  5. 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:

Author

Written by Mauricio Bustamante (mbustamante@gmail.com). Bug reports and questions are best raised as GitHub issues.

License

Released under the GNU General Public License v3. The full text ships with the source, as LICENSE in the repository root.

Indices and tables