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

Uploaded CPython 3.12Windows x86-64

cea_external_tools-0.2.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: cea_external_tools-0.2.1.tar.gz
  • Upload date:
  • Size: 54.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for cea_external_tools-0.2.1.tar.gz
Algorithm Hash digest
SHA256 30d090b0b9516f71ec80f62f0f35b2ffef304bb97ec6ff0813adec2f5cc1b816
MD5 b2fe8809e055dc46bfe6ef4ccb65d420
BLAKE2b-256 ed0f2ea566dc74148e1a72ca35e243cdc23c8d8dd55a8138beeb9e6a061d9039

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cea_external_tools-0.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 237b0cd41a1b325485b93962372e2f5b2284a58c340d0e07581d9cb3d6327a40
MD5 eea690e4e565da2d57154a3ac2297fe3
BLAKE2b-256 87d62a25b2ef9ec0fab19126c43178aceaf11c01e63261ac13c7416a5ca11f61

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cea_external_tools-0.2.1-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 3216e66afd0bc9677724ef94dd3fe249131b5d6b73b5771da8c623bf31917427
MD5 3055cded07ef1cd9fa88f7e44a61988f
BLAKE2b-256 2f6f7d753faea2db4df7c13e14e2e65cfffac89bad7b11f00ce4903c50324835

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cea_external_tools-0.2.1-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 6cc9916ff0add47cb602f36b38a4ab4ee907be6dd95844f1f79661b00d225281
MD5 4da65c0c1bc3c1f132ed2b8ce4b36975
BLAKE2b-256 d600bf784fdbd5e2c6e91a92414c29a7fa52a0a77ce67fb8e76cba1ead57bc13

See more details on using hashes here.

Provenance

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