External tools for City Energy Analyst, mainly containing C++ components e.g. DAYSIM and CRAX
Project description
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 fileDaysimConfig.cmake- DAYSIM-specific configuration and build logicCraxConfig.cmake- CRAX-specific configuration and build logic
Components
DAYSIM
Daylighting simulation tool that provides various radiation calculation utilities.
Executables built:
ds_illum- Illuminance calculationepw2wea- Weather file conversiongen_dc- Daylight coefficient generationoconv- Octree conversionradfiles2daysim- Radiance file conversionrtrace_dc- Ray tracing for daylight coefficients
CRAX
City Radiation Accelerator for fast urban radiation simulations.
Executables built:
radiation- Main radiation calculation enginemesh-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 wheelsCRAX_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
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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cea_external_tools-0.2.3.tar.gz.
File metadata
- Download URL: cea_external_tools-0.2.3.tar.gz
- Upload date:
- Size: 74.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a045b0ebafe5abe1d0bc30e77eb04feca55b27d0adf2f8a13d88b0f1dd66292a
|
|
| MD5 |
e88421f63c0c784a396db9fbac3e48dd
|
|
| BLAKE2b-256 |
e3f775f1fd36b8fef9cf78f19b19cfbbb391fee691f9c53eddd320f81f03b2d4
|
Provenance
The following attestation bundles were made for cea_external_tools-0.2.3.tar.gz:
Publisher:
build-external-tools.yml on architecture-building-systems/CityEnergyAnalyst
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cea_external_tools-0.2.3.tar.gz -
Subject digest:
a045b0ebafe5abe1d0bc30e77eb04feca55b27d0adf2f8a13d88b0f1dd66292a - Sigstore transparency entry: 1239499450
- Sigstore integration time:
-
Permalink:
architecture-building-systems/CityEnergyAnalyst@354ea013a5a9313c9e2f91ccfd952df2cdc7e903 -
Branch / Tag:
refs/tags/external-v0.2.3 - Owner: https://github.com/architecture-building-systems
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-external-tools.yml@354ea013a5a9313c9e2f91ccfd952df2cdc7e903 -
Trigger Event:
push
-
Statement type:
File details
Details for the file cea_external_tools-0.2.3-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: cea_external_tools-0.2.3-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ead5b14aca10223aa7920029c4ac86f89052a140ed2c3ec2f89722fd677d9569
|
|
| MD5 |
6c0dde6e63fdf876fdb2361c8a56824f
|
|
| BLAKE2b-256 |
94c47df3633954579b66e72634044fede5d8eddd02b0e88e4751b0e690f56b6a
|
Provenance
The following attestation bundles were made for cea_external_tools-0.2.3-cp312-cp312-win_amd64.whl:
Publisher:
build-external-tools.yml on architecture-building-systems/CityEnergyAnalyst
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cea_external_tools-0.2.3-cp312-cp312-win_amd64.whl -
Subject digest:
ead5b14aca10223aa7920029c4ac86f89052a140ed2c3ec2f89722fd677d9569 - Sigstore transparency entry: 1239499457
- Sigstore integration time:
-
Permalink:
architecture-building-systems/CityEnergyAnalyst@354ea013a5a9313c9e2f91ccfd952df2cdc7e903 -
Branch / Tag:
refs/tags/external-v0.2.3 - Owner: https://github.com/architecture-building-systems
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-external-tools.yml@354ea013a5a9313c9e2f91ccfd952df2cdc7e903 -
Trigger Event:
push
-
Statement type:
File details
Details for the file cea_external_tools-0.2.3-cp312-cp312-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: cea_external_tools-0.2.3-cp312-cp312-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 28.1 MB
- Tags: CPython 3.12, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e15bc32e46d9df2d630eb5e9660b6f4f3ce5c99c86c740321d286619a8cff80
|
|
| MD5 |
a1f722523c9fde07cc7fb5d402a01087
|
|
| BLAKE2b-256 |
2e004c4f269f35ca7492f7715bcd961da3ebec615330a11a06d9fecbe6b834f0
|
Provenance
The following attestation bundles were made for cea_external_tools-0.2.3-cp312-cp312-manylinux_2_39_x86_64.whl:
Publisher:
build-external-tools.yml on architecture-building-systems/CityEnergyAnalyst
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cea_external_tools-0.2.3-cp312-cp312-manylinux_2_39_x86_64.whl -
Subject digest:
0e15bc32e46d9df2d630eb5e9660b6f4f3ce5c99c86c740321d286619a8cff80 - Sigstore transparency entry: 1239499462
- Sigstore integration time:
-
Permalink:
architecture-building-systems/CityEnergyAnalyst@354ea013a5a9313c9e2f91ccfd952df2cdc7e903 -
Branch / Tag:
refs/tags/external-v0.2.3 - Owner: https://github.com/architecture-building-systems
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-external-tools.yml@354ea013a5a9313c9e2f91ccfd952df2cdc7e903 -
Trigger Event:
push
-
Statement type:
File details
Details for the file cea_external_tools-0.2.3-cp312-cp312-macosx_13_0_arm64.whl.
File metadata
- Download URL: cea_external_tools-0.2.3-cp312-cp312-macosx_13_0_arm64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.12, macOS 13.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6bb419d5ff54841d6b07ba63d293a331b2651552a15736f122120bfd9b0e4eb
|
|
| MD5 |
9e9abc3ac4c66c666c8e13057b1c9bbc
|
|
| BLAKE2b-256 |
70486ff50ae531c4684ca634790818d64497ffe91f6b06637cbd5b6bdcdb7943
|
Provenance
The following attestation bundles were made for cea_external_tools-0.2.3-cp312-cp312-macosx_13_0_arm64.whl:
Publisher:
build-external-tools.yml on architecture-building-systems/CityEnergyAnalyst
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cea_external_tools-0.2.3-cp312-cp312-macosx_13_0_arm64.whl -
Subject digest:
d6bb419d5ff54841d6b07ba63d293a331b2651552a15736f122120bfd9b0e4eb - Sigstore transparency entry: 1239499460
- Sigstore integration time:
-
Permalink:
architecture-building-systems/CityEnergyAnalyst@354ea013a5a9313c9e2f91ccfd952df2cdc7e903 -
Branch / Tag:
refs/tags/external-v0.2.3 - Owner: https://github.com/architecture-building-systems
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-external-tools.yml@354ea013a5a9313c9e2f91ccfd952df2cdc7e903 -
Trigger Event:
push
-
Statement type: