Report retrofit impacts#80
Open
prsh5175 wants to merge 375 commits into
Open
Conversation
initial commit for testing with OpenStudio 3.8.0
initial commit to setup ee gem for OS 3.9
…asures-gem Will be adding addition ee window measure(s) in addition to this one. Will added ability to add embodied carbon.
Now when measure is updated with `openstudio measure -u` updates to description will get pushed to measure.xml and to readme.md
…t and save models
…eparate helper file.
…nstudio-ee-gem into report_retrofit_impacts
- Add openpyxl, requests, python-dotenv, plotly, pandas - Fixes ModuleNotFoundError in Python measure tests - Resolves failing CI check in PR
- Fix weather file parameter in run_energyplus_simulation() - Add weather_file parameter to function signature - Pass weather file path to both baseline and modified simulations - Fixes modified simulation failure due to missing weather file - Fix embodied carbon extraction - Update extract_embodied_carbon() to check subsurfaces and surfaces - Support multiple naming conventions (embodied_carbon_kg_co2_eq, etc.) - Now correctly extracts 896.63 kgCO2eq from window retrofits - Improve spider chart visualization - Remove bar chart, show only spider plot for cleaner display - Move legend to bottom to prevent obstruction - Add proper margins (l=120, r=150, t=100, b=100) to prevent text cropping - Increase figure size to 900x700 for better readability - Fix Windows encoding issues - Replace Unicode symbols (✓, ✗) with ASCII ([OK], [ERROR]) - Prevents UnicodeEncodeError on Windows terminals Resolves issue where modified operational energy and embodied carbon showed zero due to simulation failures and incorrect data extraction.
- Add *.log pattern to ignore log files like workflow_run.log - Remove EC3_lookup.cpython-39.pyc from git tracking - Already had *.pyc pattern but file was previously tracked
- Add apt-get install python3-pip before pip commands - Fixes 'pip: command not found' error in CI - Resolves failing job 59174811380
Resolved conflicts by keeping current branch versions. Excluded .pyc files that should be gitignored.
- Change from 'pip' to 'python3 -m pip' for reliable package installation - Ensures packages are installed for the correct Python version - Fixes ImportError for openpyxl and requests in CI tests
…ckies/openstudio-ee-gem into report_retrofit_impacts
…nstudio-ee-gem into report_retrofit_impacts
…ed the measure documentation.
…on and RSMeans integration - Add Inputs/ folder with optimization.xlsx and retrofit_report_template.html - Add Outputs/ folder with generated retrofit_analysis_report.html and retrofit_measure_report.csv - Add retrofit material extraction using OSM AdditionalProperties - Implement RSMeans API batch query for dynamic material cost lookup - Update measure.py with material cost integration into HTML reports - Add call_RSmeans.py client library for authenticated API access - Add add_retrofit_materials.py utility for test model population - Add retrofit materials to example_model_2_with_AdditionalProperties.osm - Update test suite with final verification steps - Implement memory leak fixes with proper resource cleanup - Verified workflow: 450.50 GJ baseline → 380.25 GJ with retrofit (70.25 GJ savings, 15.6% reduction) - Annual cost savings: $1,053.75 at $15/GJ energy cost
- Update call_RSmeans.py search_materials_batch() to accept optional save_search_results_path parameter - Add search_log tracking with material name, search results count, and cost data status - Save JSON results with aggregated costs, materials list, errors, and search log to Outputs/search_results.json - Update measure.py pull_rsmeans_cost_from_api() to pass Outputs/search_results.json path to API client - Add logging confirmation when search results are saved - Results include all search attempts, API responses, and any errors for debugging and auditing
- Change add_retrofit_materials.py to use simplified, searchable terms: Concrete, Drywall, Insulation - Updated to match common RSMeans material categories for better API discoverability - Materials are now added with realistic quantities and units for each material type - Search results JSON continues to log all API queries and responses for debugging - Workflow is fully functional; RSMeans search results depend on API sandbox environment and available catalogs
… chart - Added create_optimization_data.py to generate optimization.xlsx with 3 retrofit scenarios - Updated measure.py to: - Extract unit_cost and total_cost from AdditionalProperties - Skip RSMeans API calls when cost data already present - Fix optimization() method path from tests_dir to Outputs/ - Generate interactive Plotly spider chart with 5 comparison factors - Updated call_RSmeans.py to use production API (gb-mf catalog, 2025-q4 release) - Updated add_retrofit_materials.py with manual RSMeans cost data (.85-.50/SF) - Added optimization.xlsx with 3 scenarios: Basic (.5k), Comprehensive (5k), Balanced (3.75k) - Generated optimization_visualization.html (3.6 MB interactive Plotly chart) - Updated retrofit_analysis_report.html to embed spider chart via iframe - Spider chart compares: Initial Cost, Energy Savings, Embodied Carbon, Payback Period, Annual Cost Savings
- Renamed and refactored call_RSmeans.py to call_rsmeans_api.py for clarity - Made RSMeansAPIClient fully modular for reuse in other OpenStudio measures - Removed write-back functionality (model remains unmodified) - Extract retrofit materials directly from AdditionalProperties - Auto-detect MasterFormat division codes from material type names - Support for optional pre-computed costs (skip API if cost_present) - Returns aggregated results with total cost and per-material breakdown - Can be imported as standalone helper by any OpenStudio measure - Verified measure still runs successfully with new modular helper
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Continued from
gh pr checkout 68