Installation

Requirements

  • Python ≥ 3.8

  • Access to the EUROCONTROL PRISME / NM Oracle database

  • Oracle credentials exposed as environment variables (see Environment variables)

Core install

pip install eurocontrolpy

This installs the SQLAlchemy backend (EUROCONTROLpy) and all required runtime dependencies (pandas, sqlalchemy, oracledb, requests).

Optional extras

Install additional extras as needed:

Extra

Command

Enables

geo

pip install "eurocontrolpy[geo]"

Accurate geodesic distances in generate_so6() via geopy (falls back to Haversine otherwise).

geo_shapes

pip install "eurocontrolpy[geo_shapes]"

Airspace geometry methods: acc_sf(), ansp_sf(), es_sf(), fir_sf().

h3

pip install "eurocontrolpy[h3]"

H3 hexagon polyfill via polyfill_h3().

spark

pip install "eurocontrolpy[spark]"

EUROCONTROLSpark PySpark backend.

dev

pip install "eurocontrolpy[dev]"

Development tools: ruff linter/formatter and all docs dependencies.

Combine extras with commas:

pip install "eurocontrolpy[geo,geo_shapes,h3]"

Installing from source

git clone https://github.com/eurocontrol/eurocontrolpy.git
cd eurocontrolpy
pip install -e ".[dev]"

Environment variables

The library reads Oracle credentials from environment variables. The prefix (PRU_DEV by default) can be changed via the schema parameter of EUROCONTROLpy or build_sqlalchemy_oracle_engine().

Variable

Value

PRU_DEV_USR

Oracle username

PRU_DEV_PWD

Oracle password

PRU_DEV_DBNAME

Full Oracle connection string in the form {host}:{port}/{service}

Set them in your shell or .env file before running any queries:

export PRU_DEV_USR="myuser"
export PRU_DEV_PWD="mypassword"
export PRU_DEV_DBNAME="oracle.example.int:1521/PRISME"