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.2.tar.gz (74.3 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.2-cp312-cp312-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.12Windows x86-64

cea_external_tools-0.2.2-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.2-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.2.tar.gz.

File metadata

  • Download URL: cea_external_tools-0.2.2.tar.gz
  • Upload date:
  • Size: 74.3 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.2.tar.gz
Algorithm Hash digest
SHA256 c296b6b272f7a5db59cf3b5c20ced7d2707743c18cdc6f662501c853c419826d
MD5 31c7eb5fa8504e92907aa7a8578dbb01
BLAKE2b-256 5ad30a4b280e9e71c9d932aa69e057b86c47dfed1497fb7d7df2fca2d6dcd33f

See more details on using hashes here.

Provenance

The following attestation bundles were made for cea_external_tools-0.2.2.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.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for cea_external_tools-0.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a20e59387b9b13c6e72f5f66d57cfe3f2e1f22edd1b3d26c4b5399e5bfe05dc0
MD5 4d9c441d2247bab54b6c8bdbe524ae2b
BLAKE2b-256 8940b7c4a9e1f687103057aef34c4656601dd58c79b8f2e291859da9eed5eb12

See more details on using hashes here.

Provenance

The following attestation bundles were made for cea_external_tools-0.2.2-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.2-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for cea_external_tools-0.2.2-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 623ccd588b61cd6eea0e04e6f12652240b6055035dea0169c950bc81970793eb
MD5 25bd95223f8f7c24621ee374af485dd3
BLAKE2b-256 81e229c07d707371ea8515d46924d2ae2219271650969deea04815d191148c97

See more details on using hashes here.

Provenance

The following attestation bundles were made for cea_external_tools-0.2.2-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.2-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for cea_external_tools-0.2.2-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 b47cbdea18d18da91a0df243c4f679a0ff1088fa1e49b94f986e91db09cc4710
MD5 f3a75878206568fd7be41625082dd28e
BLAKE2b-256 22538206beab322a315b41121f1886eb04ad164b61b6168724c7a7755b7f289c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cea_external_tools-0.2.2-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