Skip to main content

Fast Python library for terrain visibility analysis

Project description

Banner

AetherPy

Python library for very fast and flexible terrain visibility analysis.

Supports real GeoTIFF DEMs, LOS, viewsheds (including constrained sectors, curvature correction), complex multiview observer calculation, and more. It also provides the tools for finding the optimal observer localization.


🚀 Features

  • Real GeoTIFF support: arbitrary CRS, resolution, out‑of‑core tiling
  • High‑performance LOS & viewshed: single and multi‑observer
  • Constrained analysis: range, azimuth sector, elevation angle
  • Earth‑curvature correction (k‑factor)
  • Coverage metrics: show which area can be seen from a target

📦 Installation

# From PyPI
pip install aetherpy

# Or from GitHub
pip install git+https://github.com/SchmidL/aetherpy.git

📝 Quickstart

from aetherpy.data.loader   import DEM
from aetherpy.core          import is_visible, viewshed_sweep
from aetherpy.io.plotting   import plot_viewshed

# load a GeoTIFF DEM (or pass a NumPy array)
dem = DEM("swisssurface3d-raster_2023_2600-1199_0.5_2056_5728.tif") 

# define your observer in map coords (x, y) or pixel coords
lon, lat = 2600410.30, 1199452.00            
obs_rc   = dem.index(lon, lat) 

# quick LOS check to a target
lon2, lat2 = 2600754.88, 1199416.56
tgt_rc = dem.index(lon2, lat2)
print("Visible?", is_visible(dem, obs_rc, tgt_rc, obs_h=1.75))

# compute a 5 km viewshed at 1.75 m observer height
vs = viewshed_sweep(dem, obs_rc, obs_h=1.75, max_dist=500.0,interpolation="bilinear")

# visualize
plot_viewshed(dem, vs, observer=obs_rc, hillshade=True) 

# Save Boolean mask as GeoTIFF
save_raster("viewshed.tif",vs,dem)

⚖️ License

AetherPy is offered under a dual‑license:

  1. MIT License – Free for:
    • Personal, academic, and non‑commercial use
    • Companies with annual revenue ≤1000000USD
  2. Commercial License – Required for:
    • Any organization or individual with annual revenue >1000000USDUSD
    • Contact us to obtain terms and pricing.

Please see LICENSE‑MIT for details of the MIT terms, or contact us for commercial licensing.

Threshold is a guideline; please get in touch if your use case is unclear.


☕ Support this project

I maintain aetherpy in my free time. If you find it valuable—especially in a commercial setting—please consider supporting my work:

Buy me a coffee

Or contact me to discuss sponsorship, custom features, or commercial collaboration:

📧 lorenzdschmid@gmail.com

🔗 Links


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aetherpy-1.0.0.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aetherpy-1.0.0-py3-none-any.whl (18.3 kB view details)

Uploaded Python 3

File details

Details for the file aetherpy-1.0.0.tar.gz.

File metadata

  • Download URL: aetherpy-1.0.0.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for aetherpy-1.0.0.tar.gz
Algorithm Hash digest
SHA256 59c267e589503452ff367acd379b52e7bc87a99e1f7e8b0e948f8c5a5cc979a4
MD5 3b135df4cbcf7795a70a27a30223f06f
BLAKE2b-256 4abe0d0189bfe09d01ed72b77f6af9cfd210037eca4efe1cd52705a6fe68b99d

See more details on using hashes here.

File details

Details for the file aetherpy-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: aetherpy-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 18.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for aetherpy-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1cb31ee40e76f5c1fe0687cd5450e4e185c979cc831e9436851efff9ca0f8754
MD5 eedc9a967efabb52a2ac6abd003f365a
BLAKE2b-256 b15b79ab440d520ae53f788f224f31af3f21866cb4bb449f8f0f5b1dc94a1d75

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page