How wri/cities-thermal-comfort-modeling works
CTCM is a city-scale thermal-comfort processing framework: users configure an area, input rasters and meteorology, validate the setup, then generate tiled SOLWEIG results and review or publish outputs. Its runtime also retrieves CIF data, prepares ERA5 inputs, supports UMEP and UPenn processing, and validates staged or completed results. The graph follows the visible entry point and worker dispatch; some subsystem links rely on SOURCE INDEX references or README descriptions because their implementation was not excerpted.
Main entry points: job_manager.py Job manager · main.py CLI entry · worker_tile_processor.py Tile processor · manager.py Validation manager
Components 22
Run orchestration
- CLI entry
main.py - City configuration
src/workers/city_data.py - Job manager
src/worker_manager/job_manager.py - Tile processor
src/workers/worker_tile_processor.py
Configuration validation
- Validation manager
src/data_validation/manager.py - AOI evaluation
src/data_validation/aoi_evaluator.py - Meteorology checks
src/data_validation/meteorological_data_validator.py
Inputs and staging
- CIF retrieval
src/workers/source_cif_data_downloader.py - UMEP ERA5 prep
src/workers/model_umep/worker_umep_met_processor.py - UPenn ERA5 prep
src/workers/model_upenn/worker_upenn_met_processor.py - Raster and S3 data
src/workers/worker_dao.py - CTCM staging
src/worker_manager/ctcm_layer_staging.py
Thermal models
- UMEP plugin
src/workers/model_umep/umep_plugin_processor.py - UPenn model
src/workers/model_upenn/upenn_module_processor.py - Vegetation SVF
src/workers/model_upenn/svfsCalculator_veg.py - Mean radiant temperature
src/workers/model_upenn/weather_meanRadiantT.py - SOLWEIG library
src/workers/model_upenn/libraries/solweiglib.py
Results and review
- Ancillary outputs
src/worker_manager/ancillary_files.py - Run reporting
src/worker_manager/reporter.py - Result validation
src/data_validation/s3_postproc_results_validation.py - QGIS results viewer
src/worker_manager/ancillary_files.py
Other components
- City operator
Connections 23
- City operator → CLI entry: runs
- CLI entry → City configuration: builds configuration
main.py - CLI entry → Validation manager: validates setup
main.py - CLI entry → Job manager: starts processing
main.py - CLI entry → CTCM staging: checks or publishes
main.py - CLI entry → Result validation: validates results
main.py - Validation manager → AOI evaluation: evaluates AOI
src/data_validation/manager.py - Validation manager → Meteorology checks: checks meteorology
src/data_validation/manager.py - Job manager → Validation manager: validates configuration
src/worker_manager/job_manager.py - Job manager → Tile processor: dispatches tiles
src/worker_manager/job_manager.py - Job manager → Ancillary outputs: prepares outputs
src/worker_manager/job_manager.py - Job manager → Run reporting: reports status
src/worker_manager/job_manager.py - Job manager → UMEP ERA5 prep: prepares UMEP meteorology
src/worker_manager/job_manager.py - Job manager → UPenn ERA5 prep: prepares UPenn meteorology
src/worker_manager/job_manager.py - Tile processor → CIF retrieval: retrieves CIF data
src/workers/worker_tile_processor.py - Tile processor → UMEP plugin: runs UMEP steps
src/workers/worker_tile_processor.py - Tile processor → UPenn model: runs UPenn model
src/workers/worker_tile_processor.py - UPenn model → Vegetation SVF: calculates vegetation SVF
src/workers/model_upenn/upenn_module_processor.py - UPenn model → Mean radiant temperature: computes radiant temperature
src/workers/model_upenn/upenn_module_processor.py - Mean radiant temperature → SOLWEIG library: uses library
src/workers/model_upenn/weather_meanRadiantT.py - CTCM staging → Raster and S3 data: reads or writes data
src/worker_manager/ctcm_layer_staging.py - Result validation → Raster and S3 data: checks stored results
src/data_validation/s3_postproc_results_validation.py - Ancillary outputs → QGIS results viewer: creates QGIS viewer
src/worker_manager/ancillary_files.py