Skip to main content

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

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

cea_external_tools-0.2.3.tar.gz (74.4 kB view details)

Uploaded Source

Built Distributions

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

cea_external_tools-0.2.3-cp312-cp312-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.12Windows x86-64

cea_external_tools-0.2.3-cp312-cp312-manylinux_2_39_x86_64.whl (28.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

cea_external_tools-0.2.3-cp312-cp312-macosx_13_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

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

Hashes for cea_external_tools-0.2.3.tar.gz
Algorithm Hash digest
SHA256 a045b0ebafe5abe1d0bc30e77eb04feca55b27d0adf2f8a13d88b0f1dd66292a
MD5 e88421f63c0c784a396db9fbac3e48dd
BLAKE2b-256 e3f775f1fd36b8fef9cf78f19b19cfbbb391fee691f9c53eddd320f81f03b2d4

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cea_external_tools-0.2.3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for cea_external_tools-0.2.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ead5b14aca10223aa7920029c4ac86f89052a140ed2c3ec2f89722fd677d9569
MD5 6c0dde6e63fdf876fdb2361c8a56824f
BLAKE2b-256 94c47df3633954579b66e72634044fede5d8eddd02b0e88e4751b0e690f56b6a

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cea_external_tools-0.2.3-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for cea_external_tools-0.2.3-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 0e15bc32e46d9df2d630eb5e9660b6f4f3ce5c99c86c740321d286619a8cff80
MD5 a1f722523c9fde07cc7fb5d402a01087
BLAKE2b-256 2e004c4f269f35ca7492f7715bcd961da3ebec615330a11a06d9fecbe6b834f0

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cea_external_tools-0.2.3-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for cea_external_tools-0.2.3-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 d6bb419d5ff54841d6b07ba63d293a331b2651552a15736f122120bfd9b0e4eb
MD5 9e9abc3ac4c66c666c8e13057b1c9bbc
BLAKE2b-256 70486ff50ae531c4684ca634790818d64497ffe91f6b06637cbd5b6bdcdb7943

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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