Skip to main content

CEA External Tools

A standalone Python package containing compiled C++ tools for the City Energy Analyst (CEA).

This package provides pre-compiled binary executables for radiation calculations and urban energy modeling, including DAYSIM (daylighting simulation) and CRAX (City Radiation Accelerator).

By separating these computationally intensive C++ components into their own package, we enable faster CEA installations and reduce build complexity.

Installation

pip install cea-external-tools

Usage

import cea_external_tools

# Get path to binary tools
bin_path = cea_external_tools.get_bin_path()
print(f"External tools located at: {bin_path}")

Package Contents

This package includes compiled binaries for:

  • DAYSIM - Advanced daylighting simulation tools
  • CRAX - Fast urban radiation calculation engine

Development & Build Configuration

This directory contains the CMake configuration for building external tools required by the City Energy Analyst (CEA).

Structure

The build system has been modularized into separate configuration files:

  • CMakeLists.txt - Main build configuration file
  • DaysimConfig.cmake - DAYSIM-specific configuration and build logic
  • CraxConfig.cmake - CRAX-specific configuration and build logic

Components

DAYSIM

Daylighting simulation tool that provides various radiation calculation utilities.

Executables built:

  • ds_illum - Illuminance calculation
  • epw2wea - Weather file conversion
  • gen_dc - Daylight coefficient generation
  • oconv - Octree conversion
  • radfiles2daysim - Radiance file conversion
  • rtrace_dc - Ray tracing for daylight coefficients

CRAX

City Radiation Accelerator for fast urban radiation simulations.

Executables built:

  • radiation - Main radiation calculation engine
  • mesh-generation - 3D mesh generation utility

Build Options

You can control which components to build using CMake options:

# Build both components (default)
cmake -DBUILD_DAYSIM=ON -DBUILD_CRAX=ON ..

# Build only DAYSIM
cmake -DBUILD_DAYSIM=ON -DBUILD_CRAX=OFF ..

# Build only CRAX  
cmake -DBUILD_DAYSIM=OFF -DBUILD_CRAX=ON ..

CRAX-specific Options

CRAX has additional configuration options for Python wheel builds:

  • CRAX_USE_DYNAMIC_ARROW (default: ON) - Enable dynamic Arrow linking to save space in wheels
  • CRAX_USE_AUTOMATED_DEPENDENCIES (default: ON) - Use automated dependency fetching

Source Configuration

Both tools support local source directories or automatic fetching from GitHub:

DAYSIM

  • DAYSIM_SOURCE_DIR - Path to local DAYSIM source (default: ./daysim)
  • DAYSIM_GIT_REPOSITORY - Git repository URL (default: https://github.com/reyery/Daysim.git)
  • DAYSIM_GIT_TAG - Git tag/branch to use

CRAX

  • CRAX_SOURCE_DIR - Path to local CRAX source (default: ./crax)
  • CRAX_GIT_REPOSITORY - Git repository URL (default: https://github.com/wanglittlerain/CityRadiation-Accelerator-CRAX-V1.0.git)
  • CRAX_GIT_TAG - Git tag/branch to use

Installation

The built executables are installed to the CEA resources directory:

  • CRAX tools: cea_external_tools/bin

Build Targets

The build system includes a custom target cea_all that builds all required CEA components:

# Configure build
cmake -B build -S .

# Build all CEA targets (recommended)
cmake --build build --target cea_all

# Or build all targets
cmake --build build

# Install to CEA resources
cmake --install build

Compiler Warnings

The build system automatically suppresses common warnings for cleaner output:

  • GNU/Clang: Suppresses missing prototypes, unused variables, sign comparison, and deprecated declarations
  • MSVC: Suppresses warning C4127 to prevent build failures on Windows

Release files for cea-external-tools 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cea-external-tools 0.2.3
File Size Uploaded
cea_external_tools-0.2.3.tar.gz 74.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for cea-external-tools 0.2.3
File Interpreter ABI Platform
cea_external_tools-0.2.3-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
cea_external_tools-0.2.3-cp312-cp312-manylinux_2_39_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.39+ x86-64 Details
cea_external_tools-0.2.3-cp312-cp312-macosx_13_0_arm64.whl CPython 3.12 CPython 3.12 macOS 13.0+ ARM64 Details

Total release size: 31.7 MB

Release files / cea_external_tools-0.2.3.tar.gz

Download URL cea_external_tools-0.2.3.tar.gz
Size 74.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a045b0ebafe5abe1d0bc30e77eb04feca55b27d0adf2f8a13d88b0f1dd66292a
BLAKE2b-256 checksum
How to use checksums
e3f775f1fd36b8fef9cf78f19b19cfbbb391fee691f9c53eddd320f81f03b2d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 5, 2026.

Transparency log

Release files / cea_external_tools-0.2.3-cp312-cp312-win_amd64.whl

Download URL cea_external_tools-0.2.3-cp312-cp312-win_amd64.whl
Size 2.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
ead5b14aca10223aa7920029c4ac86f89052a140ed2c3ec2f89722fd677d9569
BLAKE2b-256 checksum
How to use checksums
94c47df3633954579b66e72634044fede5d8eddd02b0e88e4751b0e690f56b6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 5, 2026.

Transparency log

Release files / cea_external_tools-0.2.3-cp312-cp312-manylinux_2_39_x86_64.whl

Download URL cea_external_tools-0.2.3-cp312-cp312-manylinux_2_39_x86_64.whl
Size 28.1 MB
Tags CPython 3.12 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
0e15bc32e46d9df2d630eb5e9660b6f4f3ce5c99c86c740321d286619a8cff80
BLAKE2b-256 checksum
How to use checksums
2e004c4f269f35ca7492f7715bcd961da3ebec615330a11a06d9fecbe6b834f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 5, 2026.

Transparency log

Release files / cea_external_tools-0.2.3-cp312-cp312-macosx_13_0_arm64.whl

Download URL cea_external_tools-0.2.3-cp312-cp312-macosx_13_0_arm64.whl
Size 1.4 MB
Tags CPython 3.12 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
d6bb419d5ff54841d6b07ba63d293a331b2651552a15736f122120bfd9b0e4eb
BLAKE2b-256 checksum
How to use checksums
70486ff50ae531c4684ca634790818d64497ffe91f6b06637cbd5b6bdcdb7943
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.3 This release

4 release files

0.2.2

4 release files

0.2.1

4 release files

0.2.0

5 release files

0.1.0

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page