From 596ee19144db95c048eae4130c0b60dfd8e65511 Mon Sep 17 00:00:00 2001 From: "David P. Chassin" Date: Mon, 31 Jul 2023 16:17:45 -0700 Subject: [PATCH] Add group tool (#1319) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Release chiba-02 (#1298) - Fixed help script for subcommands and tools - Update CYME converter to resolve new issues (#1299) - Fix diesel torque unit (#1301) - Fix metar2glm (#1302) Signed-off-by: David P. Chassin * Update version.h Signed-off-by: David P. Chassin * Add support for accessing ISO New England hourly market data (#1307) Signed-off-by: David P. Chassin * Add group tool Signed-off-by: David P. Chassin * Update group.py Signed-off-by: David P. Chassin * Update group.py Signed-off-by: David P. Chassin * Update group.py Signed-off-by: David P. Chassin * Update group.py Signed-off-by: David P. Chassin * Update group.py Signed-off-by: David P. Chassin * Update group.py Signed-off-by: David P. Chassin * Update group.py Signed-off-by: David P. Chassin * Create test_group_assets_opt.glm Signed-off-by: David P. Chassin * Create test_group_network_opt.glm Signed-off-by: David P. Chassin * Add wheel install (#1310) * Update Makefile.mk * Update Python.md Signed-off-by: David P. Chassin * Add shell subcommand (#1312) * Add shell subcommand * Update Python.md * Update Shell.md * Update Shell.md * Update Python.md * Update Shell.md * Add support for shell options Signed-off-by: David P. Chassin * Update Geodata.md (#1314) Signed-off-by: Alyona Teyber Co-authored-by: David P. Chassin Signed-off-by: David P. Chassin * Fixed group Signed-off-by: David P. Chassin * Update test_group_assets_opt.glm * Update test_group_assets_opt.glm * Update test_group_assets_opt.glm * Bump pillow from 9.0.1 to 9.3.0 in /converters (#1224) Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.0.1 to 9.3.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/9.0.1...9.3.0) --- updated-dependencies: - dependency-name: pillow dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: David P. Chassin * Release 4.3.1 (chiba-1) (#1145) * Remove gldcore (again) * Update version.h * Change version to 4.3.1 (chiba-1) and fix resulting autotest errors * Add Windows gridlabd.bat to README * Fixing typo in cooling_cop units (#1152) * Add support for module template folder (#1159) * Add support for module template folder * Add support for blocking load of module template files * Update gridlabd-template * Update gridlabd-geodata (#1153) * Remove deprecated variables (#1151) * Fix bad autotest timezones * Fix generators module deprecated properties * Update recorder.cpp * Fix powerflow deprecations * Fix market deprecations * Fix autotests with deprecated usage * Fix powerflow autotests * Fix reliability autotests * Fix source autotest * Fix powerflow autotest failures * Update triplex_node.cpp * Add missing powerflow switch autotests (#1156) * Add switch tests * Update powerflow switch coordinator autotest * Change slacgismo to hipas (#1155) * Fix build folder (#1154) * Update main.cpp (#1147) * Add powerflow violation detection (#1164) * Update property.cpp * Add module global variable and node property to set voltage violation threshold * Add default continuous and emergency ratings * Add DER voltage fluctuation test implementation to powerflow now * Update docs * Add node voltage violation watch test * Fix node voltage fluctuation DER test * Create test_node_voltage_fluctuation.glm * Update powerflow_object.cpp * Rename test_node_voltage_violation * Add powerflow commits for all links * Add test_link_overcurrent to powerflow module * Add actual voltage values to violation reports * Fix current violation detection * Fix voltage fluctuation checks * Fix timezones in violation tests * Update test_node_voltage_fluctuation.csv * Fix incorrect timezone usage in violation record * Update test results * Fix switch_coordinator precommit definition * Fix violation counter * Update gridlabd-version (#1166) * Add support for spidacalc equipment (#1160) * Create test_xls-spida2csv-network.csv * Create test_xls-spida2csv-network.glm * Update xls-spida2csv-geodata.py * Update xls-spida2csv-geodata.py Co-authored-by: David P. Chassin Co-authored-by: Alyona Teyber * Add service_level flag to powerflow meters (#1162) * Add is_critical flag to powerflow meter * Update Meter.md * Change to service_level instead of is_critical Co-authored-by: Alyona Teyber * Fix python solver (#1058) * Update solver_py.cpp * Update solver_py.cpp * Added numpy array creation support * Implement MLE solver bus mapping * Fix busdata mapping errors * Change output to dataframe for improved readability * Update test_IEEE_13_MLE.glm * Update setup-Linux-amzn-2.sh * Create setup-Linux-ubuntu-20.sh * Update setup-Linux-ubuntu-20.sh * Update setup-Linux-ubuntu-20.sh * Update setup-Darwin-20.sh * Update setup-Linux-ubuntu-20.sh * Update version.sh * Update setup-Linux-amzn-2.sh * Update setup-Linux-ubuntu-20.sh * Update solver_py.cpp * Update test_IEEE_13_MLE.glm * Update solver_py.cpp * Update solver_py.cpp * Update solver_nr.cpp * Update solver_py.cpp * Fix python solver copyback NR initialization error * Update solver_nr.cpp * Update solver_nr.cpp * Fix NR profiler formatting * Create Solver_profile_csv.md * Update solver_nr.cpp Co-authored-by: Alyona Teyber * Fix voltage violation detection implementation errors (#1170) * Update gridlabd-version * Fix missing voltage_fluctuation_threshold global in powerflow * Fixes to variable names * Fix voltage violation logic * Add hosting capacity documentation * Add DER_violation_test global * Fix child node voltage fluctuation test Co-authored-by: Alyona Teyber * Update nsrdb_weather.py (#1168) Co-authored-by: Alyona Teyber * Add fire danger tool (#1146) * Create fire_danger.py * Update Makefile.mk * Update fire_danger.py * Update fire_danger.py * Update fire_danger.py * Update fire_danger.py * Update fire_danger.py * Update fire_danger.py * Update fire_danger.py * Update fire_danger.py * Add show option to fire_danger tool * Update fire_danger.py * Update requirements.txt * Adding geodata_firerisk package * Modified unit test & general clean up * Rename geodata_fireRisk.py to geodata_firerisk.py * Create Fire_danger.md * Add fire_danger autotest and documentation Co-authored-by: ktehranchi <83722342+ktehranchi@users.noreply.github.com> Co-authored-by: Alyona Teyber * Update gridlabd-version * Add fire incident report tool (#1143) * Add fire report tool * Update setup.py * Update fire_report.py * Update fire_report.py * Update fire_report.py * Create Fire_report.md * Create test_fire_report.csv * Create test_fire_report.glm * Update fire_report.py * Update fire_report.py * Update geodata_vegetation.py * Update geodata_vegetation.py * Update Fire_report.md Co-authored-by: Fuhong Xie Co-authored-by: Alyona Teyber * Update gridlabd-version * Update gridlabd-version * Develop fix voltage violation detection (#1173) * Update gridlabd-version * Fix missing voltage_fluctuation_threshold global in powerflow * Fixes to variable names * Fix voltage violation logic * Add hosting capacity documentation * Add DER_violation_test global * Fix child node voltage fluctuation test * Update node.cpp * Update Dockerfile * Update load.cpp (#1177) * Add missing default fuse replacement time (#1176) * Fix copyright dates/info on splash screen * Update version number in docs * Update json2md.py * Update load.cpp * Update market documentation * Update node.cpp * Add support for reverse geocode (#1182) * Add airport lookup (#1181) * Add meteostat tool (#1180) * Add session 1 tutorials (#1185) * Add session 1 tutorials * Update Resources.md * Update tutorial landing page * Update Makefile.mk * Update tutorial player * Update to use library.csv data * Update Makefile.mk * Update and rename Datetime.md to Timestamp.md * Update load.cpp * Fix meteostat autotest * Update load.cpp * Update object.cpp * Update gridlabd-template * Update gridlabd-template * Create README.md * Fix meteostat autotest * Update gridlabd-template * Stop meteostat instability from causing autotest failures * Fix class event handlers (#1192) * Add xlsx-workbook2csv-table converter (#1191) * Add 'read_dlp' tool (#1188) * Add setup for version.gridlabd.us server (#1178) * Update library.csv * Update gridlabd-template * Fix node undervoltage violation limit (#1199) * Update node.cpp * Update node.cpp * Update Node.md * Removing print statement from test_class_event_handler.py Co-authored-by: Alyona Teyber * Update python.cpp * Update object.cpp * Fix sprintf vulnerabilities (#1195) * Fix core sprintf vulnerabilities * Update climate.cpp * Fix battery module * Fix market module * Fix powerflow module * Fix revenue module * Fix tape module * Update test_table2glm.glm * Update test_table2glm_noclass.glm * Update test_assert.glm * Fix tape flush validation procedure * Update convert.cpp * Update test_class_event_handler.py * Update climate.h * Fix improper use of return value from snprintf * Finished fixing the sprintf problems. * Update test_assert.glm * Update assert.cpp * Update test_assert.glm * Update gridlabd.h * Update assert.cpp Co-authored-by: Alyona Teyber * Enhance pole analysis (#1186) * Create test_xls-spida2csv-network.csv * Create test_xls-spida2csv-network.glm * Update xls-spida2csv-geodata.py * Update xls-spida2csv-geodata.py * Update xls-spida2csv-geodata.py * Update pole.cpp * Update pole.h * Update pole_configuration.cpp * Update pole_configuration.h * Update pole_mount.cpp * Update pole_mount.h * Update pole.cpp * Update pole.h * Update pole_mount.cpp * Update pole_mount.h * Update test_pole.csv * Update pole.cpp * Update pole_mount.cpp * Update pole_mount.h * Update Makefile.mk * Create pole_analysis.py * Update pole_analysis.py * Create test_pole_analysis.glm * Create test_pole_analysis_opt.csv * Create test_pole_analysis_opt.glm * Update pole_analysis.py * Update pole_analysis.py * Fixed Pandas read_excel xlsx issue * Fix pandas version across all requirements.txt * Changed autotests affected by pandas rounding Co-authored-by: David P. Chassin Co-authored-by: Mitchell Victoriano * Update Meter.md (#1207) * Updating docker image base (#1208) * Update Dockerfile * Update develop.yml * Update master.yml * Fix expansions for loader (#1206) * Update load.cpp * Create Expansion.md Co-authored-by: David P. Chassin * Update requirements.txt (#1209) * Update requirements.txt * Upgrading to py 3.9.6 * Updating base from slacgismo to hipas for github actions * Upgrade shapely * Develop fix template load errors (#1215) * Update README.md (#1217) * Update README.md * Update README.md * Update README.md Co-authored-by: Alyona Teyber * Fix deferred initialization in python on_init event handlers (#1219) * Update object.cpp * Update python.cpp * Update README.md * Update LICENSE * Fiona requirements.py update (#1222) * Fix json error in version output (#1223) * Fix tmy32glm (#1229) * Update requirements.txt * Update tmy32glm.py * Add gridlabd-model subcommand (#1230) * Add gridlabd-model subcommand * Add validation test * Add create_meters tool (#1226) * Fix 'gridlabd help' command output * Pole module fixes for validation (#1221) * Fix subcommand and tool help data * Update fit_filter.py * Update gridlabd-job * Fix json save (#1235) * Add global variable initialization support * Fix json globals to include initial value * Add support for fast install (#1017) * adjusted subcommand syntax due to unknown autoscan error * tested restoring relevant shebang line * adjusted script call method * readjusted remaining subcommands * reversed missed changes * test variable useage * adjusted shell subcommands python to use GLD_BIN variable for path * Adjusted setup to track version build in each versions directory * Updated build script for easier maintenance, readability, and error checking * Updated Python Version to 3.9.13 to see if patch fixes occasional build bugs * adjusted make commands for potential fix in script python build * potential make fix * added check to see if requirements is installing correctly * changed test * changed platform.h to error if PYTHON_EXEC is undefined * adjusted python build to properly overwrite top bin links on new sourcebuild * adjusted python hashbang for testing * tweaked configure.ac * added PYTHON_EXEC to CFLAGS * updated configure, added check test notices * adjusted variables and declaration order in configure * changed to correct variable * updated exec call * Restored original hashbang point to opt/gridlabd/bin/python3 * additional python adjustments * adjusted reference to python3-config location * adjusted variable call in python3 script * added echo to check output of various variables * testing alternative variable * adjusted variable call * updated python makefile variables * updated reference format for variable * adjusted variables again * adjusted additional variables * more adjustments * tweaked makefile * testing variables * further tests * corrected syntax * fixed additional makefile python references * fixed another hardcoded python reference * testing define * adjusted calling command for python selector script * appropriate replacement for python hashbang * Implemented fix for variable python execution path * added missed exec line in convert * Corrected autotests to use version specific python version * corrected more improper python references * Final tweaks for dynamic python implementation. * fully finished code cleanup for darwin installers * updated missed improper python3 call format * Cleaned up debian installers to use new variable system for faster script updates * Minor version adjustments for packages in debian, updated ubuntu install script * Updated documentation and made minor edits * various tweaks * added installs for docker containers, adjusted ldconfig for linux * updated m4sh file to dynamically adjust between linux and darwin python installs * bugfix * fixed minor typo * tweaked test * updated linux images to only build from docker containers * removed unused variable * minor tweak to install-dev * updated reference to find docker if in docker container * added -r for cp, and rm for system files * updated build-image to remove all default libraries from saved libs * tweaked libraries linux fast install * added link to /usr/local/bin for current gridlabd executable * ensured g++ is installed for debian docker * added autoconf build for debian 9 docker * update ubuntu 20 install * tweaks * updated pandas version * Updated install.sh script for web install to include latest updates from dev * removed test output to prevent adding to repository * created readme for fast-install * updated readme, tweaked scripts * Updated install to allow user to submit version for fast install * added flags section to readme * adjusted autoconf version * minor adjustments to update autoconf version used in actions runner * adjusted syntax * added install for sudo package on runner * attempting with apt-get instead of apt * potential fix for github actions * modified actions to use ubuntu container * adjusted apt install order to circumvent tzdata location issue * modified tzdata install line * potential tzdata workaround * potential workaround for git repository issue * fix git repo owner issue on runner * adjusted linux scripts for fast builds using a prepared container * testing container for faster builds * removed environment updates as not used in new container * minor tweaks to enable faster builds * adjusted check path for doxygen so test can actually work * updated monterey x86 installer * updated chown command for site packages * added missing logic to make home/temp directory * Added check for $USER variable to exist, to work around docker container bug * updated fast install scripts with potential fix for python package issues * added potential script for ubuntu 22 * minor tweak * Adjusted chown for all gridlabd package dirs * Added link to /usr/local/bin for installed gridlabd * removed 22 * readd with permissions * fixed minor missed element from build-aux * fixed openssl install on arm to use arm Configure * Added checks to update ownership for install in case of multi-user computers. * Change file permissions/update readme * Removed line from develop workflow due to fixed bug * homebrew deprecated old install command, replaced * testing * adjusted * brought install up to date with install-dev * corrected a pair of bugs in the install script. * minor tweak to optimize build image script * Removed unnecessary extra install script * Directory overhaul and major variable additions * added creation of directory * updated m4sh * fixed minor structural issue * fixed variable * reorganized declarations * adjusted definition method for vars * reformatted to fix char and char const concat * updated strcat for gld var * adjusted syntax * restructured getenv again * adjusted var * changed to braces? * adjusted braces * potential fix * other fix? * adjusted again * adjustment * use getenv without std * other method * wild fix attempt * this hurts * maybe? * maybe? * new version * test * added braces * mirror potential fix * hmmm * test * now? pls? * chance? * try * hum? * hoh? * new try * hmm * giving up after this * updated method for quick test * updated install-dev, added brace * more directory updates * tried removing the -1 for testing * adjusted char types * additional char type mod * removed the * * ugh * adjusted char type * this? * i * minor adjust * PLEASE * test more fixes * and awaaaaaay we go! * additionals * test configname fix * probably wont work * this wont work * test fixies * potential billing library fix * test * revert * mayhaps * revert * adjusted script find function for ca-certs * corrected ca-cert install to account for package version updates * potential fix for module implementation * test fix test for cert.pem * change to -f * corrected implementation in powerflow * theoretical fix to gridlabd version subcommand * corrected link typo in install.sh * test * changed basename to dirname * potential fix install.sh * changed from os.environ to os.getenv * corrected python string syntax * fixed remaining string needing f" * fix path issue * added updated cert check to all darwin installs * fixed bug in change to fast install image build * final fix install-dev * bringing install.sh current with dev * fixed build image for linux * syntax correction * adjust name * potential fix to image build script bug on docker systems * updated ldconfig command install-dev * updated chown to default to root when user undefined * adjusted fast install and build image to separate system libs from package libs * made minor adjustments to scripts * added procps to docker fast install. changed default branch for dev install to develop. * updated readme documentation * fixed mismatch * updated docs, added -r to mac cp commands * test variable passthrough to subshell * retest * test with export * Added prefix support to script install * potential fix install for configure * adjusted directory issue with prefix settings * testing configure update * corrected syntax * fixed minor bug * adjusted variables for dynamic use * potential configure fix * corrected non-variable line in fire danger test * adjusted darwin cp command to darwin standards * updated install.md instructions * updated cloud documentation * fixed typo * tweaked configure.ac to set minimum default python as 3.9 * removed link to python pymalloc * updated ca-cert check to account for multiple directories available at one time * adjusted unnecessary basename * updated installation scripts to clean out unecessary code, package missing dependencies in intel macs * link gettext to lib for dependency resolution * updated install to match dev, and et defaults appropriately * added error check to build image to exit out and prevent strange bugs if version does not exist when run * added ownership update to install script * tweaked command for install and tweaked message for post-install user actions * updated installer scripts * added extra ownership line to ensure smooth install * tweaked install script * tweaked install script * Added a couple tweaks for m1 install and version.sh bug * Update requirements.txt Added pymysql to requirements per the TESS API tech transfer to-do list. * added automated clean before install script runs Co-authored-by: Thistleman Co-authored-by: Duncan Ragsdale <88173870+Thistleman@users.noreply.github.com> * Update load.cpp (#1239) Co-authored-by: Alyona Teyber * Add install tool (#1237) * Add gridlabd install tool * Update Makefile.mk * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py Co-authored-by: Alyona Teyber * Update cmdarg.cpp (#1211) Co-authored-by: Alyona Teyber * Develop update dockerbase (#1245) * Updating base image to an ubuntu based image * Update Dockerfile * Revert "Merge branch 'develop' into develop-fix-help" This reverts commit 675cbb17784958716e0ea0aabbf2f994696ce8ab, reversing changes made to 2f0faab2346d8fae6f19572ad965149bcb324bea. * Bump ipython from 7.31.1 to 8.10.0 in /module/resilience/docs (#1249) * Bump pillow from 9.0.1 to 9.3.0 in /converters (#1224) Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.0.1 to 9.3.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/9.0.1...9.3.0) --- updated-dependencies: - dependency-name: pillow dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump ipython from 7.31.1 to 8.10.0 in /module/resilience/docs Bumps [ipython](https://github.com/ipython/ipython) from 7.31.1 to 8.10.0. - [Release notes](https://github.com/ipython/ipython/releases) - [Commits](https://github.com/ipython/ipython/compare/7.31.1...8.10.0) --- updated-dependencies: - dependency-name: ipython dependency-type: direct:production ... Signed-off-by: dependabot[bot] * Cleaning up double-entered requirements * More dependency clean up * Update test_fire_danger.tif --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alyona Teyber * Fix ICA violation test speed issues (#1183) * Move node violation scan from sync to commit * Update node.cpp * Add check to avoid unneeded bus voltage fluctuation tests --------- Co-authored-by: Alyona Teyber * Fix error message when branch is not found in repo (#1214) * Fix error message when branch is not found in repo * Update gridlabd-template * Pole module fixes for validation (#1221) * Fix json save (#1235) * Add global variable initialization support * Fix json globals to include initial value * Add support for fast install (#1017) * adjusted subcommand syntax due to unknown autoscan error * tested restoring relevant shebang line * adjusted script call method * readjusted remaining subcommands * reversed missed changes * test variable useage * adjusted shell subcommands python to use GLD_BIN variable for path * Adjusted setup to track version build in each versions directory * Updated build script for easier maintenance, readability, and error checking * Updated Python Version to 3.9.13 to see if patch fixes occasional build bugs * adjusted make commands for potential fix in script python build * potential make fix * added check to see if requirements is installing correctly * changed test * changed platform.h to error if PYTHON_EXEC is undefined * adjusted python build to properly overwrite top bin links on new sourcebuild * adjusted python hashbang for testing * tweaked configure.ac * added PYTHON_EXEC to CFLAGS * updated configure, added check test notices * adjusted variables and declaration order in configure * changed to correct variable * updated exec call * Restored original hashbang point to opt/gridlabd/bin/python3 * additional python adjustments * adjusted reference to python3-config location * adjusted variable call in python3 script * added echo to check output of various variables * testing alternative variable * adjusted variable call * updated python makefile variables * updated reference format for variable * adjusted variables again * adjusted additional variables * more adjustments * tweaked makefile * testing variables * further tests * corrected syntax * fixed additional makefile python references * fixed another hardcoded python reference * testing define * adjusted calling command for python selector script * appropriate replacement for python hashbang * Implemented fix for variable python execution path * added missed exec line in convert * Corrected autotests to use version specific python version * corrected more improper python references * Final tweaks for dynamic python implementation. * fully finished code cleanup for darwin installers * updated missed improper python3 call format * Cleaned up debian installers to use new variable system for faster script updates * Minor version adjustments for packages in debian, updated ubuntu install script * Updated documentation and made minor edits * various tweaks * added installs for docker containers, adjusted ldconfig for linux * updated m4sh file to dynamically adjust between linux and darwin python installs * bugfix * fixed minor typo * tweaked test * updated linux images to only build from docker containers * removed unused variable * minor tweak to install-dev * updated reference to find docker if in docker container * added -r for cp, and rm for system files * updated build-image to remove all default libraries from saved libs * tweaked libraries linux fast install * added link to /usr/local/bin for current gridlabd executable * ensured g++ is installed for debian docker * added autoconf build for debian 9 docker * update ubuntu 20 install * tweaks * updated pandas version * Updated install.sh script for web install to include latest updates from dev * removed test output to prevent adding to repository * created readme for fast-install * updated readme, tweaked scripts * Updated install to allow user to submit version for fast install * added flags section to readme * adjusted autoconf version * minor adjustments to update autoconf version used in actions runner * adjusted syntax * added install for sudo package on runner * attempting with apt-get instead of apt * potential fix for github actions * modified actions to use ubuntu container * adjusted apt install order to circumvent tzdata location issue * modified tzdata install line * potential tzdata workaround * potential workaround for git repository issue * fix git repo owner issue on runner * adjusted linux scripts for fast builds using a prepared container * testing container for faster builds * removed environment updates as not used in new container * minor tweaks to enable faster builds * adjusted check path for doxygen so test can actually work * updated monterey x86 installer * updated chown command for site packages * added missing logic to make home/temp directory * Added check for $USER variable to exist, to work around docker container bug * updated fast install scripts with potential fix for python package issues * added potential script for ubuntu 22 * minor tweak * Adjusted chown for all gridlabd package dirs * Added link to /usr/local/bin for installed gridlabd * removed 22 * readd with permissions * fixed minor missed element from build-aux * fixed openssl install on arm to use arm Configure * Added checks to update ownership for install in case of multi-user computers. * Change file permissions/update readme * Removed line from develop workflow due to fixed bug * homebrew deprecated old install command, replaced * testing * adjusted * brought install up to date with install-dev * corrected a pair of bugs in the install script. * minor tweak to optimize build image script * Removed unnecessary extra install script * Directory overhaul and major variable additions * added creation of directory * updated m4sh * fixed minor structural issue * fixed variable * reorganized declarations * adjusted definition method for vars * reformatted to fix char and char const concat * updated strcat for gld var * adjusted syntax * restructured getenv again * adjusted var * changed to braces? * adjusted braces * potential fix * other fix? * adjusted again * adjustment * use getenv without std * other method * wild fix attempt * this hurts * maybe? * maybe? * new version * test * added braces * mirror potential fix * hmmm * test * now? pls? * chance? * try * hum? * hoh? * new try * hmm * giving up after this * updated method for quick test * updated install-dev, added brace * more directory updates * tried removing the -1 for testing * adjusted char types * additional char type mod * removed the * * ugh * adjusted char type * this? * i * minor adjust * PLEASE * test more fixes * and awaaaaaay we go! * additionals * test configname fix * probably wont work * this wont work * test fixies * potential billing library fix * test * revert * mayhaps * revert * adjusted script find function for ca-certs * corrected ca-cert install to account for package version updates * potential fix for module implementation * test fix test for cert.pem * change to -f * corrected implementation in powerflow * theoretical fix to gridlabd version subcommand * corrected link typo in install.sh * test * changed basename to dirname * potential fix install.sh * changed from os.environ to os.getenv * corrected python string syntax * fixed remaining string needing f" * fix path issue * added updated cert check to all darwin installs * fixed bug in change to fast install image build * final fix install-dev * bringing install.sh current with dev * fixed build image for linux * syntax correction * adjust name * potential fix to image build script bug on docker systems * updated ldconfig command install-dev * updated chown to default to root when user undefined * adjusted fast install and build image to separate system libs from package libs * made minor adjustments to scripts * added procps to docker fast install. changed default branch for dev install to develop. * updated readme documentation * fixed mismatch * updated docs, added -r to mac cp commands * test variable passthrough to subshell * retest * test with export * Added prefix support to script install * potential fix install for configure * adjusted directory issue with prefix settings * testing configure update * corrected syntax * fixed minor bug * adjusted variables for dynamic use * potential configure fix * corrected non-variable line in fire danger test * adjusted darwin cp command to darwin standards * updated install.md instructions * updated cloud documentation * fixed typo * tweaked configure.ac to set minimum default python as 3.9 * removed link to python pymalloc * updated ca-cert check to account for multiple directories available at one time * adjusted unnecessary basename * updated installation scripts to clean out unecessary code, package missing dependencies in intel macs * link gettext to lib for dependency resolution * updated install to match dev, and et defaults appropriately * added error check to build image to exit out and prevent strange bugs if version does not exist when run * added ownership update to install script * tweaked command for install and tweaked message for post-install user actions * updated installer scripts * added extra ownership line to ensure smooth install * tweaked install script * tweaked install script * Added a couple tweaks for m1 install and version.sh bug * Update requirements.txt Added pymysql to requirements per the TESS API tech transfer to-do list. * added automated clean before install script runs Co-authored-by: Thistleman Co-authored-by: Duncan Ragsdale <88173870+Thistleman@users.noreply.github.com> * Update load.cpp (#1239) Co-authored-by: Alyona Teyber * Add install tool (#1237) * Add gridlabd install tool * Update Makefile.mk * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py Co-authored-by: Alyona Teyber * Update cmdarg.cpp (#1211) Co-authored-by: Alyona Teyber * Develop update dockerbase (#1245) * Updating base image to an ubuntu based image * Update Dockerfile * Bump ipython from 7.31.1 to 8.10.0 in /module/resilience/docs (#1249) * Bump pillow from 9.0.1 to 9.3.0 in /converters (#1224) Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.0.1 to 9.3.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/9.0.1...9.3.0) --- updated-dependencies: - dependency-name: pillow dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump ipython from 7.31.1 to 8.10.0 in /module/resilience/docs Bumps [ipython](https://github.com/ipython/ipython) from 7.31.1 to 8.10.0. - [Release notes](https://github.com/ipython/ipython/releases) - [Commits](https://github.com/ipython/ipython/compare/7.31.1...8.10.0) --- updated-dependencies: - dependency-name: ipython dependency-type: direct:production ... Signed-off-by: dependabot[bot] * Cleaning up double-entered requirements * More dependency clean up * Update test_fire_danger.tif --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alyona Teyber * Fix ICA violation test speed issues (#1183) * Move node violation scan from sync to commit * Update node.cpp * Add check to avoid unneeded bus voltage fluctuation tests --------- Co-authored-by: Alyona Teyber * Reverting unwanted commit to develop 9f68226 --------- Signed-off-by: dependabot[bot] Co-authored-by: Alyona Teyber Co-authored-by: Thistleman Co-authored-by: Duncan Ragsdale <88173870+Thistleman@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Resetting to develop-add-ductbank branch due to merge issues (#1254) * Add link to ductbank from underground lines * Add ductbank to underground line class * Update underground_line.cpp * Add cable temp calcs * Ductbank work in progress * Update Ductbank model.ipynb * Update Ductbank model.ipynb * Ductbank implementation substantially complete * Update Ductbank.md * Update test_ductbank_1of6.glm * Create test_ductbank_2of6.glm * Update test_ductbank.glm * Update Ductbank model.ipynb * Create ductbank.py * Update Underground_line_conductor.md * Update Underground_line.md * Update Ductbank.md * Create box3x2.png * Create Ductbank model reduction.ipynb * Update ductbank work * Update ductbank model reduction docs --------- Co-authored-by: David P. Chassin * Develop add aws install (#1255) * tested restoring relevant shebang line * adjusted script call method * readjusted remaining subcommands * reversed missed changes * test variable useage * adjusted shell subcommands python to use GLD_BIN variable for path * Adjusted setup to track version build in each versions directory * Updated build script for easier maintenance, readability, and error checking * Updated Python Version to 3.9.13 to see if patch fixes occasional build bugs * adjusted make commands for potential fix in script python build * potential make fix * added check to see if requirements is installing correctly * changed test * changed platform.h to error if PYTHON_EXEC is undefined * adjusted python build to properly overwrite top bin links on new sourcebuild * adjusted python hashbang for testing * tweaked configure.ac * added PYTHON_EXEC to CFLAGS * updated configure, added check test notices * adjusted variables and declaration order in configure * changed to correct variable * updated exec call * Restored original hashbang point to opt/gridlabd/bin/python3 * additional python adjustments * adjusted reference to python3-config location * adjusted variable call in python3 script * added echo to check output of various variables * testing alternative variable * adjusted variable call * updated python makefile variables * updated reference format for variable * adjusted variables again * adjusted additional variables * more adjustments * tweaked makefile * testing variables * further tests * corrected syntax * fixed additional makefile python references * fixed another hardcoded python reference * testing define * adjusted calling command for python selector script * appropriate replacement for python hashbang * Implemented fix for variable python execution path * added missed exec line in convert * Corrected autotests to use version specific python version * corrected more improper python references * Final tweaks for dynamic python implementation. * fully finished code cleanup for darwin installers * updated missed improper python3 call format * Cleaned up debian installers to use new variable system for faster script updates * Minor version adjustments for packages in debian, updated ubuntu install script * Updated documentation and made minor edits * various tweaks * added installs for docker containers, adjusted ldconfig for linux * updated m4sh file to dynamically adjust between linux and darwin python installs * bugfix * fixed minor typo * tweaked test * updated linux images to only build from docker containers * removed unused variable * minor tweak to install-dev * updated reference to find docker if in docker container * added -r for cp, and rm for system files * updated build-image to remove all default libraries from saved libs * tweaked libraries linux fast install * added link to /usr/local/bin for current gridlabd executable * ensured g++ is installed for debian docker * added autoconf build for debian 9 docker * update ubuntu 20 install * tweaks * updated pandas version * Updated install.sh script for web install to include latest updates from dev * removed test output to prevent adding to repository * created readme for fast-install * updated readme, tweaked scripts * Updated install to allow user to submit version for fast install * added flags section to readme * adjusted autoconf version * minor adjustments to update autoconf version used in actions runner * adjusted syntax * added install for sudo package on runner * attempting with apt-get instead of apt * potential fix for github actions * modified actions to use ubuntu container * adjusted apt install order to circumvent tzdata location issue * modified tzdata install line * potential tzdata workaround * potential workaround for git repository issue * fix git repo owner issue on runner * adjusted linux scripts for fast builds using a prepared container * testing container for faster builds * removed environment updates as not used in new container * minor tweaks to enable faster builds * adjusted check path for doxygen so test can actually work * updated monterey x86 installer * updated chown command for site packages * added missing logic to make home/temp directory * Added check for $USER variable to exist, to work around docker container bug * updated fast install scripts with potential fix for python package issues * added potential script for ubuntu 22 * minor tweak * Adjusted chown for all gridlabd package dirs * Added link to /usr/local/bin for installed gridlabd * removed 22 * readd with permissions * fixed minor missed element from build-aux * fixed openssl install on arm to use arm Configure * Added checks to update ownership for install in case of multi-user computers. * Change file permissions/update readme * Removed line from develop workflow due to fixed bug * homebrew deprecated old install command, replaced * testing * adjusted * brought install up to date with install-dev * corrected a pair of bugs in the install script. * minor tweak to optimize build image script * Removed unnecessary extra install script * Directory overhaul and major variable additions * added creation of directory * updated m4sh * fixed minor structural issue * fixed variable * reorganized declarations * adjusted definition method for vars * reformatted to fix char and char const concat * updated strcat for gld var * adjusted syntax * restructured getenv again * adjusted var * changed to braces? * adjusted braces * potential fix * other fix? * adjusted again * adjustment * use getenv without std * other method * wild fix attempt * this hurts * maybe? * maybe? * new version * test * added braces * mirror potential fix * hmmm * test * now? pls? * chance? * try * hum? * hoh? * new try * hmm * giving up after this * updated method for quick test * updated install-dev, added brace * more directory updates * tried removing the -1 for testing * adjusted char types * additional char type mod * removed the * * ugh * adjusted char type * this? * i * minor adjust * PLEASE * test more fixes * and awaaaaaay we go! * additionals * test configname fix * probably wont work * this wont work * test fixies * potential billing library fix * test * revert * mayhaps * revert * adjusted script find function for ca-certs * corrected ca-cert install to account for package version updates * potential fix for module implementation * test fix test for cert.pem * change to -f * corrected implementation in powerflow * theoretical fix to gridlabd version subcommand * corrected link typo in install.sh * test * changed basename to dirname * potential fix install.sh * changed from os.environ to os.getenv * corrected python string syntax * fixed remaining string needing f" * fix path issue * added updated cert check to all darwin installs * fixed bug in change to fast install image build * final fix install-dev * bringing install.sh current with dev * fixed build image for linux * syntax correction * adjust name * potential fix to image build script bug on docker systems * updated ldconfig command install-dev * updated chown to default to root when user undefined * adjusted fast install and build image to separate system libs from package libs * made minor adjustments to scripts * added procps to docker fast install. changed default branch for dev install to develop. * updated readme documentation * fixed mismatch * updated docs, added -r to mac cp commands * test variable passthrough to subshell * retest * test with export * Added prefix support to script install * potential fix install for configure * adjusted directory issue with prefix settings * testing configure update * corrected syntax * fixed minor bug * adjusted variables for dynamic use * potential configure fix * corrected non-variable line in fire danger test * adjusted darwin cp command to darwin standards * updated install.md instructions * updated cloud documentation * fixed typo * tweaked configure.ac to set minimum default python as 3.9 * removed link to python pymalloc * updated ca-cert check to account for multiple directories available at one time * adjusted unnecessary basename * updated installation scripts to clean out unecessary code, package missing dependencies in intel macs * link gettext to lib for dependency resolution * updated install to match dev, and et defaults appropriately * added error check to build image to exit out and prevent strange bugs if version does not exist when run * added ownership update to install script * tweaked command for install and tweaked message for post-install user actions * updated installer scripts * added extra ownership line to ensure smooth install * tweaked install script * tweaked install script * Added a couple tweaks for m1 install and version.sh bug * Update requirements.txt Added pymysql to requirements per the TESS API tech transfer to-do list. * added automated clean before install script runs --------- Co-authored-by: Thistleman Co-authored-by: Duncan Ragsdale <88173870+Thistleman@users.noreply.github.com> * Restoring missing commits (#1256) * Move node violation scan from sync to commit * Update node.cpp * Add check to avoid unneeded bus voltage fluctuation tests --------- Co-authored-by: David P. Chassin Co-authored-by: David P. Chassin * Add ductbank thermal model (#1257) * Add link to ductbank from underground lines * Add ductbank to underground line class * Update underground_line.cpp * Add cable temp calcs * Ductbank work in progress * Update Ductbank model.ipynb * Update Ductbank model.ipynb * Ductbank implementation substantially complete * Update Ductbank.md * Update test_ductbank_1of6.glm * Create test_ductbank_2of6.glm * Update test_ductbank.glm * Update Ductbank model.ipynb * Create ductbank.py * Update Underground_line_conductor.md * Update Underground_line.md * Update Ductbank.md * Create box3x2.png * Create Ductbank model reduction.ipynb * Update ductbank work * Update ductbank model reduction docs --------- Co-authored-by: David P. Chassin * Update vegetation geodata package to include contact (#1205) * Add vege contact Add the vege contact model * Update geodata_vegetation.py start to add strike model * Update geodata_vegetation.py Add a single tree strike function * Update geodata_vegetation.py Update the tree strike model consider tree numbers * Block template load of non-GLM files when module is loaded * Fix missing filename and bad line numbering when loading template GLM files * Update geodata_powerline.py Add vegetation contact and tree strike model * Update geodata_vegetation.py Recover the vegetation file --------- Co-authored-by: Alyona Teyber * Updating documentation to reflect config.csv converter use (#1259) * Add json2glm converter options to ignore the clock (#1233) * Add create_meters tool * Update create_meters.py * Update create_meters.py * Update load.cpp * Adding no clock option for json2glm * Update load.cpp * Update globals.cpp * Update globals.cpp * Update gridlabd-convert * Update json2glm.py * Update json2glm.py * Update load.cpp * Fixed meter creation issues * Update node.cpp * Fixing merge error * Update json2glm.py * Adding documentation * Update ieee13-meters.glm --------- Co-authored-by: David P. Chassin Co-authored-by: David P. Chassin * Add cyme converter (#1204) * Create test_xls-spida2csv-network.csv * Create test_xls-spida2csv-network.glm * Update xls-spida2csv-geodata.py * Update xls-spida2csv-geodata.py * Update xls-spida2csv-geodata.py * Update pole.cpp * Update pole.h * Update pole_configuration.cpp * Update pole_configuration.h * Update pole_mount.cpp * Update pole_mount.h * Update pole.cpp * Update pole.h * Update pole_mount.cpp * Update pole_mount.h * Update test_pole.csv * Update pole.cpp * Update pole_mount.cpp * Update pole_mount.h * Update Makefile.mk * Create pole_analysis.py * Update pole_analysis.py * Update json2png.py * Update Mdb_files.md * Update mdb-cyme2glm.py * Update mdb2glm.py * change test case IEEE-13-cyme to IEEE-13-cyme-object * add testcase for cyme converter Add autotest case for converter from CYME MDB to gridlabd GLM network * Update Mdb_files.md * Added options to MDB converter doc * Fixed small errors * Updated requirements txt for cyme converter * Removed duplicate dependency --------- Co-authored-by: Fuhong Xie Co-authored-by: David P. Chassin Co-authored-by: Alyona Teyber Co-authored-by: Mitchell Victoriano Co-authored-by: Mitchell Victoriano Co-authored-by: Mitchell Victoriano <47313912+MitchellAV@users.noreply.github.com> * Develop implement venv (#1253) * potential venv test 1 * corrected typos * additional modifications * modified routing * tweaked config test fix * testing fix * tweaked more * potential path fix for use with venv * refined pythonpath * debian 11 test version * fix for instance where home temp folder does not exist * testing change * adjusted pathing * fixed ldconfig * fixed * test using system python * tweaked script * fixed incorrect variable * tweak * uncommented python build * added exports for library paths to test build on debian * bugfixes and typo corrections * fixed typos for initial setup * corrected run order * added /usr/local to paths * test flags * potential loader fix * testing fix * tweaked syntax for intended meaning * adjusted c reference to bindir * Fixed m4sh python3 config reference * moved debian process to config.ac * adjusted command scripts * tweak for logging directory * fixed command * YEAST * tweaking commands * modified scripts * tweaked script for errors * adjusted prefix checks * tweaked script * adjusted configure script * testing rewrites * adjusted script * adjusted config.ac and linux build scripts for new process * removed case format due to bug with configure * removed -q flag from grep command for conditional tests * potential fix for version check bug * adjusted host_os check due to aarch64 particularities * testing * test this * more testing * alternative implementation * added missing ")" * bug/typo * testing alternate implementation * testing alternate implementation * updated for POSIX shell * testing * removed testing syntax checks * removed unnecessary code that occasionally wiped cloned directory * potential m1 setup venv * m1 install setup * adjusted config * potential fix * added venv support for mac * fixed reference in script * tweaks * fixed make system * retest tweaked fix * Create setup-Darwin-22.sh * testing * try 3 * fixed makefile.am * Update setup-Linux-debian-11.sh (#1269) * Update setup-Linux-debian-11.sh * Update setup-Linux-debian-10.sh * Update setup-Linux-debian-9.sh * Update setup-Linux-ubuntu-22.sh * Update setup-Linux-ubuntu-20.sh * Update setup-Linux-ubuntu-18.sh * Update setup-Linux-ubuntu-16.sh * Update setup-Linux-debian-11.sh (#1270) * Update setup-Linux-debian-11.sh * Update setup-Linux-debian-10.sh * Update setup-Linux-debian-9.sh * Update setup-Linux-ubuntu-22.sh * Update setup-Linux-ubuntu-20.sh * Update setup-Linux-ubuntu-18.sh * Update setup-Linux-ubuntu-16.sh * fixed arm brew rference in intel * Update develop.yml * Update develop.yml * Update develop.yml --------- Co-authored-by: Alyona Teyber * Update python.cpp (#1261) * Update unitfile.txt (#1263) * Fix issue with CYME converter for CYME 9 Rev 6 MDB files (#1271) * Create test_xls-spida2csv-network.csv * Create test_xls-spida2csv-network.glm * Update xls-spida2csv-geodata.py * Update xls-spida2csv-geodata.py * Update xls-spida2csv-geodata.py * Update pole.cpp * Update pole.h * Update pole_configuration.cpp * Update pole_configuration.h * Update pole_mount.cpp * Update pole_mount.h * Update pole.cpp * Update pole.h * Update pole_mount.cpp * Update pole_mount.h * Update test_pole.csv * Update pole.cpp * Update pole_mount.cpp * Update pole_mount.h * Update Makefile.mk * Create pole_analysis.py * Update pole_analysis.py * Update json2png.py * Update Mdb_files.md * Update mdb-cyme2glm.py * Update mdb2glm.py * change test case IEEE-13-cyme to IEEE-13-cyme-object * add testcase for cyme converter Add autotest case for converter from CYME MDB to gridlabd GLM network * Update Mdb_files.md * Added options to MDB converter doc * Fixed small errors * Updated requirements txt for cyme converter * Removed duplicate dependency --------- Co-authored-by: Fuhong Xie Co-authored-by: David P. Chassin Co-authored-by: Alyona Teyber Co-authored-by: Mitchell Victoriano * Fixing test_datasets.glm (#1267) * Update geodata_powerline.py * Update geodata_powerline.py * Update README.md Identify US Government Right per the original GridLAB-D license. * Update user manuals (#862) Co-authored-by: Alyona Teyber * Fix date/time handling in create_players tool (#1236) Co-authored-by: David P. Chassin * (#1277) Added additional check and errors for non-SPCT transformers that are connected to triplex_node objects, or have an "S" phase. (#1281) Migration of fix from gridlabd issue 1432 * Fix build warnings (#1279) * Fix warnings on Mac * Fix dg control error * Fix linux warning in source * Fixed incorrect buffer format limits * Fixed module warnings on linux * Update requirements * Update configure.ac * Update requirements.txt * Fix validation errors * Fix python config * Move configure commands that change environment to makefile * Fix makefile * Update gridlabd.in * Fix python clean * Update test_plot.png * Update makefiles * Update requirements.txt * Update requirements process * Added python requirements for alternate systems * Charge Darwin ARM64 requirements filename * Move python os/cpu requirements to python folder * Update version.sh * Add Darwin 19 python requirements * Add requirements.txt generator * Update develop.yml * Update version.sh * Update develop.yml * Update requirements-debian11-x86_64.txt * Delete requirements.txt * Update .gitignore * Remove static requirements * Update makefile to build requirements.txt * Update develop.yml * Move requirements.csv to python folder * Update python venv support * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update requirements.csv * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update Makefile.am * Update Makefile.am * Update Makefile.am * Update develop.yml * Update Makefile.am * Update develop.yml * Update develop.yml * Update develop.yml * fixed setuptools install * testing required installs before requirements can be run in batch.... * testing complete format import * if this works, I will cry inside * testing changing gdal version based on newer API available for debian 11 * testing unpinned raserio install * fixed rasterio, required newer version compatible with python3.10 * adjusted version * Move explicit pip installs to requirements.csv * Update requirements.py * Update requirements.py * Update requirements.csv * Fix test_fire_report autotest * Update develop.yml * Update Makefile.am * Fix Darwin 20 validation errors * Update gridlabd-plot * Update create_player.py * Update fit_filter.py * Update test_fit_filter_opt.glm * Update Makefile.am * Update market_model.py * Update test_market_model_opt.glm * Update requirements.csv * Update requirements.csv * Update README.md * Update README.md * Update requirements.py * Fix source error * Fix filename buffer overruns * Update Makefile.mk * Update metrics_collector_writer.cpp * Update requirements.csv * Update Makefile.am * Update Makefile.am * Update requirements.csv * Update requirements.py * Update requirements.py * Update requirements.py * Update requirements.csv * Update requirements.py * Update requirements.csv * Update requirements.py * Update develop.yml * Update Makefile.mk * Fix python-install * Update requirements.py * Update Makefile.am * Update Makefile.mk * Update Makefile.am * Update Makefile.mk * Update Makefile.mk * Update Makefile.mk * Update Makefile.mk * Update Makefile.mk * Update globals.cpp * Update globals.cpp * Update globals.cpp * Update Makefile.mk * Update globals.cpp * Update globals.cpp * Update cmdarg.cpp * Update gridlabd.m4sh * Update gridlabd.in * Fix pythonpath * Update globals.cpp * Update globals.cpp * Update globals.cpp * Fix pythonpath initialization * Update globals.cpp * Update requirements.csv * Update gridlabd.m4sh * Update gridlabd.in * Update globals.cpp --------- Co-authored-by: Duncan Ragsdale <127135808+Stanford-CVX-group@users.noreply.github.com> * Add advanced load model class to powerflow (#1216) * Add building class to powerflow * Add inputs to building * Simplify model * Update building implementation * Update building * Add building autotest * Fix main gridlabd build error from python setup * Add building subcommand * Update gridlabd-building * Update gridlabd-building * Update building subcommand and docs * Update gridlabd-building * Update Building.md * Update Building.md * Update Building.md * Update Building.md * Update building.h * Add jama125 * Add tnt126 * Work progress on building load model * Create tnt.h * Initial general building load model working * Update test_building.glm * Add building load autotest * Update building.h * Update Building.md * Update Building.md * Update Building.md * Update Building.md * Update test_building.glm * Update test_building.csv * Add power factor/fractions for phases * Update test_building.glm * Update building.cpp * Link weather to building loads * Create test_building_loadshapes.csv * Update building.cpp * Update meter interval implementation * Update test_building_10.glm * Create test_building_tmy.glm * Update building.cpp * Update gridlabd.h * Update building.cpp * Update test_building_tmy.glm * Create test_building_tmy.csv * Update tnt_array2d.h * Update tnt_cmat.h * Update building.cpp * Update building autotests * Update gridlabd.h * Update Makefile.mk * Create building_defaults.csv * Update building.h * Update building.cpp * Update test_building_1.glm * Update test_building_1.csv * Create .gitignore * Update building.h * Add CEUS loadshape data * Create .gitignore * Delete ceus_loadshapes.csv * Update README.md * Update README.md * Update data files * Add loadshape reader * Update building.cpp * Update loadshape * Fix loader error reporting of filename and line number * Update loadshape data * Update building docs * Update building model * Update loadshapes for Btu to kWh conversion of gas enduses * Add electrification and correct ZIP component units * Update building.cpp * Add occupancy support * Delete ceus_loadshapes 2.csv * Remove HVAC from enduse loadshape data * Update load calcs * Fixed electric heating flag * Finish occupancy model * Fix schedule * Stub in dynamic solver * Create .gitignore * Update Building.md * Update Building.md * Add PV export limits * Update autotests for power factor correction * Add support for energy storage and release * Add VAR controllers to support common DER interconnection standards * Update documentation * Finalize autotests * Code cleanup * Add industrial load model * Fix industrial module autotest conflicts with powerflow module * Create Advanced loads.md * Update Advanced loads.md * Add public_service loads * Update advanced load docs * Add agricultural loads * Update advanced loads * Update Advanced_loads.md * Update Public_service.md * Update public service code and autotest * Add house model for performance comparison to building model * Complete agricultural load implementation and autotesting * Update public_service.h * Update Agricultural.md * Start work on enduse load composition data * Update configure.ac * Update Building model.ipynb * Update Enduse load composition.ipynb * Update Enduse load composition.ipynb * Update building_defaults.csv * Change building_defaults.csv to provide thermal properties per unit floor area * Fix object_isa for buildings are detected as loads * Update object.cpp * Fix load update function for new loads * Add building data validation scripts and images * Correct CEUS gas loadshapes * Update resstock data * Update test_building_1.csv --------- Co-authored-by: Alyona Teyber * Add loaddata subcommand (#1272) * Create get_resstock.py * Create gridlabd-loaddata * Delete get_resstock.py * Update gridlabd-loaddata * Update gridlabd-loaddata * Update gridlabd-loaddata * Update Makefile.mk * Add autotest for loaddata * Update gridlabd-loaddata * Create Loaddata.md * Update to docs and glm output * Add docs * Add create_schedule tool (#1278) * Fix setup/build/install scripts (#1282) * Update gridlabd.h * Update setup.cpp * Update property.h * Update Makefile.am * Update Linux-ubuntu-20.sh * Create Linux-ubuntu-22.sh * Update Linux-ubuntu-22.sh * Update Linux-ubuntu-20.sh * Update Makefile.am * Update Makefile.am * Update README.md * Update Makefile.am * Update configure.ac * Add install folder * Update tape_plot.cpp * Update controller.cpp * Update tape_plot.cpp * Create Linux-debian-11.sh * Create debian-11.sh * Update Linux-debian-11.sh * Update Linux-ubuntu-20.sh * Update Linux-ubuntu-22.sh * Update setup.sh * Update setup.sh * Update README.md * Change to GRIDLABD_ORIGIN usage * Update setup.sh * Add no-cache option to curl calls * Work on fast install * Work progress on linux install images * Update Makefile.am * Work progress * Update build_number * Work progress * Work progress * Work progress * Update Linux.sh * Update Linux.sh * Update Linux.sh * Update Linux.sh * Update Darwin.sh * Update create.sh * Update Makefile.am * Update setup-dev.sh * Update Makefile.am * Update Makefile.am * Update Makefile.am * Update Makefile.am * Update version.sh * Update requirements.py * Update Makefile.am * Update build_number * Update Makefile.am * Update Makefile.am * Update build_number * Update Makefile.am * Update README.md * Update install.sh * Update ubuntu_22-x86_64.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Clean up root folder * More cleanup * Update install.sh * Update install.sh * Update build.sh * Update setup.sh * Update install.sh * Update README.md * Update build.sh * Update README.md * Update Makefile.am * Update build_number * Update Makefile.am * Update ubuntu_20-x86_64.sh * Update Makefile.am * Create ubuntu_20.sh * Update ubuntu_22.sh * Update Makefile.am * Update README.md * Change ~/.venv/gridlabd to ~/.gridlabd * work update * Update version.sh * Fix version name * Fix macos build on ventura * Fix additional ventura build errors * Update ubuntu_22-x86_64.sh * Update ubuntu_20-x86_64.sh * Update configure.ac * Fix python3.10-config link * Update configure.ac * Update Makefile.am * Update README.md * Work progress * Update setup scripts * Fix setup filename * Update darwin_22-x86_64.sh * Update setup.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update frequency_gen.cpp * Create darwin_20-x86_64.sh * Create darwin_21-x86_64.sh * Update ubuntu_20-x86_64.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update init.cpp * Update install.sh * Install script update * Update Makefile.am * Update Makefile.am * Fix system target links * Update setup scripts * Update setup scripts * Update scripts * Update scripts * Update build.sh * Update installer * Update .gitignore * Delete config.cache * Update README.md * Remove old setup scripts * Update README.md * Update README.md * Fix setup issues * Update build and setup help and options * Update Makefile.am * Update README.md * Update Linux.sh * Update build.sh * Update build.sh * Changed all instances of "hipas" to "slacgismo" in preparation for transfer to LF Energy * Update setup.sh * Update Makefile.am * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update workflows to use new setup/build process * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update workflows * Fix tnt_126 warnings * Fix tools/test_create_schedule.py * Update .gitignore * Update .gitignore * Reorganize .gitignore * Fix brackets in tnt_126 fortran headers * Undo erroneous namespace updates * Cosmetic updates * Documentation updates * Create README.md * Update .giti… * Fix repo name (#1296) * Remove gldcore (again) * Update version.h * Change version to 4.3.1 (chiba-1) and fix resulting autotest errors * Add Windows gridlabd.bat to README * Fixing typo in cooling_cop units (#1152) * Add support for module template folder (#1159) * Add support for module template folder * Add support for blocking load of module template files * Update gridlabd-template * Update gridlabd-geodata (#1153) * Remove deprecated variables (#1151) * Fix bad autotest timezones * Fix generators module deprecated properties * Update recorder.cpp * Fix powerflow deprecations * Fix market deprecations * Fix autotests with deprecated usage * Fix powerflow autotests * Fix reliability autotests * Fix source autotest * Fix powerflow autotest failures * Update triplex_node.cpp * Add missing powerflow switch autotests (#1156) * Add switch tests * Update powerflow switch coordinator autotest * Change slacgismo to hipas (#1155) * Fix build folder (#1154) * Update main.cpp (#1147) * Add powerflow violation detection (#1164) * Update property.cpp * Add module global variable and node property to set voltage violation threshold * Add default continuous and emergency ratings * Add DER voltage fluctuation test implementation to powerflow now * Update docs * Add node voltage violation watch test * Fix node voltage fluctuation DER test * Create test_node_voltage_fluctuation.glm * Update powerflow_object.cpp * Rename test_node_voltage_violation * Add powerflow commits for all links * Add test_link_overcurrent to powerflow module * Add actual voltage values to violation reports * Fix current violation detection * Fix voltage fluctuation checks * Fix timezones in violation tests * Update test_node_voltage_fluctuation.csv * Fix incorrect timezone usage in violation record * Update test results * Fix switch_coordinator precommit definition * Fix violation counter * Update gridlabd-version (#1166) * Add support for spidacalc equipment (#1160) * Create test_xls-spida2csv-network.csv * Create test_xls-spida2csv-network.glm * Update xls-spida2csv-geodata.py * Update xls-spida2csv-geodata.py Co-authored-by: David P. Chassin Co-authored-by: Alyona Teyber * Add service_level flag to powerflow meters (#1162) * Add is_critical flag to powerflow meter * Update Meter.md * Change to service_level instead of is_critical Co-authored-by: Alyona Teyber * Fix python solver (#1058) * Update solver_py.cpp * Update solver_py.cpp * Added numpy array creation support * Implement MLE solver bus mapping * Fix busdata mapping errors * Change output to dataframe for improved readability * Update test_IEEE_13_MLE.glm * Update setup-Linux-amzn-2.sh * Create setup-Linux-ubuntu-20.sh * Update setup-Linux-ubuntu-20.sh * Update setup-Linux-ubuntu-20.sh * Update setup-Darwin-20.sh * Update setup-Linux-ubuntu-20.sh * Update version.sh * Update setup-Linux-amzn-2.sh * Update setup-Linux-ubuntu-20.sh * Update solver_py.cpp * Update test_IEEE_13_MLE.glm * Update solver_py.cpp * Update solver_py.cpp * Update solver_nr.cpp * Update solver_py.cpp * Fix python solver copyback NR initialization error * Update solver_nr.cpp * Update solver_nr.cpp * Fix NR profiler formatting * Create Solver_profile_csv.md * Update solver_nr.cpp Co-authored-by: Alyona Teyber * Fix voltage violation detection implementation errors (#1170) * Update gridlabd-version * Fix missing voltage_fluctuation_threshold global in powerflow * Fixes to variable names * Fix voltage violation logic * Add hosting capacity documentation * Add DER_violation_test global * Fix child node voltage fluctuation test Co-authored-by: Alyona Teyber * Update nsrdb_weather.py (#1168) Co-authored-by: Alyona Teyber * Add fire danger tool (#1146) * Create fire_danger.py * Update Makefile.mk * Update fire_danger.py * Update fire_danger.py * Update fire_danger.py * Update fire_danger.py * Update fire_danger.py * Update fire_danger.py * Update fire_danger.py * Update fire_danger.py * Add show option to fire_danger tool * Update fire_danger.py * Update requirements.txt * Adding geodata_firerisk package * Modified unit test & general clean up * Rename geodata_fireRisk.py to geodata_firerisk.py * Create Fire_danger.md * Add fire_danger autotest and documentation Co-authored-by: ktehranchi <83722342+ktehranchi@users.noreply.github.com> Co-authored-by: Alyona Teyber * Update gridlabd-version * Add fire incident report tool (#1143) * Add fire report tool * Update setup.py * Update fire_report.py * Update fire_report.py * Update fire_report.py * Create Fire_report.md * Create test_fire_report.csv * Create test_fire_report.glm * Update fire_report.py * Update fire_report.py * Update geodata_vegetation.py * Update geodata_vegetation.py * Update Fire_report.md Co-authored-by: Fuhong Xie Co-authored-by: Alyona Teyber * Update gridlabd-version * Update gridlabd-version * Develop fix voltage violation detection (#1173) * Update gridlabd-version * Fix missing voltage_fluctuation_threshold global in powerflow * Fixes to variable names * Fix voltage violation logic * Add hosting capacity documentation * Add DER_violation_test global * Fix child node voltage fluctuation test * Update node.cpp * Update Dockerfile * Update load.cpp (#1177) * Add missing default fuse replacement time (#1176) * Fix copyright dates/info on splash screen * Update version number in docs * Update json2md.py * Update load.cpp * Update market documentation * Update node.cpp * Add support for reverse geocode (#1182) * Add airport lookup (#1181) * Add meteostat tool (#1180) * Add session 1 tutorials (#1185) * Add session 1 tutorials * Update Resources.md * Update tutorial landing page * Update Makefile.mk * Update tutorial player * Update to use library.csv data * Update Makefile.mk * Update and rename Datetime.md to Timestamp.md * Update load.cpp * Fix meteostat autotest * Update load.cpp * Update object.cpp * Update gridlabd-template * Update gridlabd-template * Create README.md * Fix meteostat autotest * Update gridlabd-template * Stop meteostat instability from causing autotest failures * Fix class event handlers (#1192) * Add xlsx-workbook2csv-table converter (#1191) * Add 'read_dlp' tool (#1188) * Add setup for version.gridlabd.us server (#1178) * Update library.csv * Update gridlabd-template * Fix node undervoltage violation limit (#1199) * Update node.cpp * Update node.cpp * Update Node.md * Removing print statement from test_class_event_handler.py Co-authored-by: Alyona Teyber * Update python.cpp * Update object.cpp * Fix sprintf vulnerabilities (#1195) * Fix core sprintf vulnerabilities * Update climate.cpp * Fix battery module * Fix market module * Fix powerflow module * Fix revenue module * Fix tape module * Update test_table2glm.glm * Update test_table2glm_noclass.glm * Update test_assert.glm * Fix tape flush validation procedure * Update convert.cpp * Update test_class_event_handler.py * Update climate.h * Fix improper use of return value from snprintf * Finished fixing the sprintf problems. * Update test_assert.glm * Update assert.cpp * Update test_assert.glm * Update gridlabd.h * Update assert.cpp Co-authored-by: Alyona Teyber * Enhance pole analysis (#1186) * Create test_xls-spida2csv-network.csv * Create test_xls-spida2csv-network.glm * Update xls-spida2csv-geodata.py * Update xls-spida2csv-geodata.py * Update xls-spida2csv-geodata.py * Update pole.cpp * Update pole.h * Update pole_configuration.cpp * Update pole_configuration.h * Update pole_mount.cpp * Update pole_mount.h * Update pole.cpp * Update pole.h * Update pole_mount.cpp * Update pole_mount.h * Update test_pole.csv * Update pole.cpp * Update pole_mount.cpp * Update pole_mount.h * Update Makefile.mk * Create pole_analysis.py * Update pole_analysis.py * Create test_pole_analysis.glm * Create test_pole_analysis_opt.csv * Create test_pole_analysis_opt.glm * Update pole_analysis.py * Update pole_analysis.py * Fixed Pandas read_excel xlsx issue * Fix pandas version across all requirements.txt * Changed autotests affected by pandas rounding Co-authored-by: David P. Chassin Co-authored-by: Mitchell Victoriano * Update Meter.md (#1207) * Updating docker image base (#1208) * Update Dockerfile * Update develop.yml * Update master.yml * Fix expansions for loader (#1206) * Update load.cpp * Create Expansion.md Co-authored-by: David P. Chassin * Update requirements.txt (#1209) * Update requirements.txt * Upgrading to py 3.9.6 * Updating base from slacgismo to hipas for github actions * Upgrade shapely * Develop fix template load errors (#1215) * Update README.md (#1217) * Update README.md * Update README.md * Update README.md Co-authored-by: Alyona Teyber * Fix deferred initialization in python on_init event handlers (#1219) * Update object.cpp * Update python.cpp * Update README.md * Update LICENSE * Fiona requirements.py update (#1222) * Fix json error in version output (#1223) * Fix tmy32glm (#1229) * Update requirements.txt * Update tmy32glm.py * Add gridlabd-model subcommand (#1230) * Add gridlabd-model subcommand * Add validation test * Add create_meters tool (#1226) * Fix 'gridlabd help' command output * Pole module fixes for validation (#1221) * Fix subcommand and tool help data * Update fit_filter.py * Update gridlabd-job * Fix json save (#1235) * Add global variable initialization support * Fix json globals to include initial value * Add support for fast install (#1017) * adjusted subcommand syntax due to unknown autoscan error * tested restoring relevant shebang line * adjusted script call method * readjusted remaining subcommands * reversed missed changes * test variable useage * adjusted shell subcommands python to use GLD_BIN variable for path * Adjusted setup to track version build in each versions directory * Updated build script for easier maintenance, readability, and error checking * Updated Python Version to 3.9.13 to see if patch fixes occasional build bugs * adjusted make commands for potential fix in script python build * potential make fix * added check to see if requirements is installing correctly * changed test * changed platform.h to error if PYTHON_EXEC is undefined * adjusted python build to properly overwrite top bin links on new sourcebuild * adjusted python hashbang for testing * tweaked configure.ac * added PYTHON_EXEC to CFLAGS * updated configure, added check test notices * adjusted variables and declaration order in configure * changed to correct variable * updated exec call * Restored original hashbang point to opt/gridlabd/bin/python3 * additional python adjustments * adjusted reference to python3-config location * adjusted variable call in python3 script * added echo to check output of various variables * testing alternative variable * adjusted variable call * updated python makefile variables * updated reference format for variable * adjusted variables again * adjusted additional variables * more adjustments * tweaked makefile * testing variables * further tests * corrected syntax * fixed additional makefile python references * fixed another hardcoded python reference * testing define * adjusted calling command for python selector script * appropriate replacement for python hashbang * Implemented fix for variable python execution path * added missed exec line in convert * Corrected autotests to use version specific python version * corrected more improper python references * Final tweaks for dynamic python implementation. * fully finished code cleanup for darwin installers * updated missed improper python3 call format * Cleaned up debian installers to use new variable system for faster script updates * Minor version adjustments for packages in debian, updated ubuntu install script * Updated documentation and made minor edits * various tweaks * added installs for docker containers, adjusted ldconfig for linux * updated m4sh file to dynamically adjust between linux and darwin python installs * bugfix * fixed minor typo * tweaked test * updated linux images to only build from docker containers * removed unused variable * minor tweak to install-dev * updated reference to find docker if in docker container * added -r for cp, and rm for system files * updated build-image to remove all default libraries from saved libs * tweaked libraries linux fast install * added link to /usr/local/bin for current gridlabd executable * ensured g++ is installed for debian docker * added autoconf build for debian 9 docker * update ubuntu 20 install * tweaks * updated pandas version * Updated install.sh script for web install to include latest updates from dev * removed test output to prevent adding to repository * created readme for fast-install * updated readme, tweaked scripts * Updated install to allow user to submit version for fast install * added flags section to readme * adjusted autoconf version * minor adjustments to update autoconf version used in actions runner * adjusted syntax * added install for sudo package on runner * attempting with apt-get instead of apt * potential fix for github actions * modified actions to use ubuntu container * adjusted apt install order to circumvent tzdata location issue * modified tzdata install line * potential tzdata workaround * potential workaround for git repository issue * fix git repo owner issue on runner * adjusted linux scripts for fast builds using a prepared container * testing container for faster builds * removed environment updates as not used in new container * minor tweaks to enable faster builds * adjusted check path for doxygen so test can actually work * updated monterey x86 installer * updated chown command for site packages * added missing logic to make home/temp directory * Added check for $USER variable to exist, to work around docker container bug * updated fast install scripts with potential fix for python package issues * added potential script for ubuntu 22 * minor tweak * Adjusted chown for all gridlabd package dirs * Added link to /usr/local/bin for installed gridlabd * removed 22 * readd with permissions * fixed minor missed element from build-aux * fixed openssl install on arm to use arm Configure * Added checks to update ownership for install in case of multi-user computers. * Change file permissions/update readme * Removed line from develop workflow due to fixed bug * homebrew deprecated old install command, replaced * testing * adjusted * brought install up to date with install-dev * corrected a pair of bugs in the install script. * minor tweak to optimize build image script * Removed unnecessary extra install script * Directory overhaul and major variable additions * added creation of directory * updated m4sh * fixed minor structural issue * fixed variable * reorganized declarations * adjusted definition method for vars * reformatted to fix char and char const concat * updated strcat for gld var * adjusted syntax * restructured getenv again * adjusted var * changed to braces? * adjusted braces * potential fix * other fix? * adjusted again * adjustment * use getenv without std * other method * wild fix attempt * this hurts * maybe? * maybe? * new version * test * added braces * mirror potential fix * hmmm * test * now? pls? * chance? * try * hum? * hoh? * new try * hmm * giving up after this * updated method for quick test * updated install-dev, added brace * more directory updates * tried removing the -1 for testing * adjusted char types * additional char type mod * removed the * * ugh * adjusted char type * this? * i * minor adjust * PLEASE * test more fixes * and awaaaaaay we go! * additionals * test configname fix * probably wont work * this wont work * test fixies * potential billing library fix * test * revert * mayhaps * revert * adjusted script find function for ca-certs * corrected ca-cert install to account for package version updates * potential fix for module implementation * test fix test for cert.pem * change to -f * corrected implementation in powerflow * theoretical fix to gridlabd version subcommand * corrected link typo in install.sh * test * changed basename to dirname * potential fix install.sh * changed from os.environ to os.getenv * corrected python string syntax * fixed remaining string needing f" * fix path issue * added updated cert check to all darwin installs * fixed bug in change to fast install image build * final fix install-dev * bringing install.sh current with dev * fixed build image for linux * syntax correction * adjust name * potential fix to image build script bug on docker systems * updated ldconfig command install-dev * updated chown to default to root when user undefined * adjusted fast install and build image to separate system libs from package libs * made minor adjustments to scripts * added procps to docker fast install. changed default branch for dev install to develop. * updated readme documentation * fixed mismatch * updated docs, added -r to mac cp commands * test variable passthrough to subshell * retest * test with export * Added prefix support to script install * potential fix install for configure * adjusted directory issue with prefix settings * testing configure update * corrected syntax * fixed minor bug * adjusted variables for dynamic use * potential configure fix * corrected non-variable line in fire danger test * adjusted darwin cp command to darwin standards * updated install.md instructions * updated cloud documentation * fixed typo * tweaked configure.ac to set minimum default python as 3.9 * removed link to python pymalloc * updated ca-cert check to account for multiple directories available at one time * adjusted unnecessary basename * updated installation scripts to clean out unecessary code, package missing dependencies in intel macs * link gettext to lib for dependency resolution * updated install to match dev, and et defaults appropriately * added error check to build image to exit out and prevent strange bugs if version does not exist when run * added ownership update to install script * tweaked command for install and tweaked message for post-install user actions * updated installer scripts * added extra ownership line to ensure smooth install * tweaked install script * tweaked install script * Added a couple tweaks for m1 install and version.sh bug * Update requirements.txt Added pymysql to requirements per the TESS API tech transfer to-do list. * added automated clean before install script runs Co-authored-by: Thistleman Co-authored-by: Duncan Ragsdale <88173870+Thistleman@users.noreply.github.com> * Update load.cpp (#1239) Co-authored-by: Alyona Teyber * Add install tool (#1237) * Add gridlabd install tool * Update Makefile.mk * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py Co-authored-by: Alyona Teyber * Update cmdarg.cpp (#1211) Co-authored-by: Alyona Teyber * Develop update dockerbase (#1245) * Updating base image to an ubuntu based image * Update Dockerfile * Revert "Merge branch 'develop' into develop-fix-help" This reverts commit 675cbb17784958716e0ea0aabbf2f994696ce8ab, reversing changes made to 2f0faab2346d8fae6f19572ad965149bcb324bea. * Bump ipython from 7.31.1 to 8.10.0 in /module/resilience/docs (#1249) * Bump pillow from 9.0.1 to 9.3.0 in /converters (#1224) Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.0.1 to 9.3.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/9.0.1...9.3.0) --- updated-dependencies: - dependency-name: pillow dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump ipython from 7.31.1 to 8.10.0 in /module/resilience/docs Bumps [ipython](https://github.com/ipython/ipython) from 7.31.1 to 8.10.0. - [Release notes](https://github.com/ipython/ipython/releases) - [Commits](https://github.com/ipython/ipython/compare/7.31.1...8.10.0) --- updated-dependencies: - dependency-name: ipython dependency-type: direct:production ... Signed-off-by: dependabot[bot] * Cleaning up double-entered requirements * More dependency clean up * Update test_fire_danger.tif --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alyona Teyber * Fix ICA violation test speed issues (#1183) * Move node violation scan from sync to commit * Update node.cpp * Add check to avoid unneeded bus voltage fluctuation tests --------- Co-authored-by: Alyona Teyber * Fix error message when branch is not found in repo (#1214) * Fix error message when branch is not found in repo * Update gridlabd-template * Pole module fixes for validation (#1221) * Fix json save (#1235) * Add global variable initialization support * Fix json globals to include initial value * Add support for fast install (#1017) * adjusted subcommand syntax due to unknown autoscan error * tested restoring relevant shebang line * adjusted script call method * readjusted remaining subcommands * reversed missed changes * test variable useage * adjusted shell subcommands python to use GLD_BIN variable for path * Adjusted setup to track version build in each versions directory * Updated build script for easier maintenance, readability, and error checking * Updated Python Version to 3.9.13 to see if patch fixes occasional build bugs * adjusted make commands for potential fix in script python build * potential make fix * added check to see if requirements is installing correctly * changed test * changed platform.h to error if PYTHON_EXEC is undefined * adjusted python build to properly overwrite top bin links on new sourcebuild * adjusted python hashbang for testing * tweaked configure.ac * added PYTHON_EXEC to CFLAGS * updated configure, added check test notices * adjusted variables and declaration order in configure * changed to correct variable * updated exec call * Restored original hashbang point to opt/gridlabd/bin/python3 * additional python adjustments * adjusted reference to python3-config location * adjusted variable call in python3 script * added echo to check output of various variables * testing alternative variable * adjusted variable call * updated python makefile variables * updated reference format for variable * adjusted variables again * adjusted additional variables * more adjustments * tweaked makefile * testing variables * further tests * corrected syntax * fixed additional makefile python references * fixed another hardcoded python reference * testing define * adjusted calling command for python selector script * appropriate replacement for python hashbang * Implemented fix for variable python execution path * added missed exec line in convert * Corrected autotests to use version specific python version * corrected more improper python references * Final tweaks for dynamic python implementation. * fully finished code cleanup for darwin installers * updated missed improper python3 call format * Cleaned up debian installers to use new variable system for faster script updates * Minor version adjustments for packages in debian, updated ubuntu install script * Updated documentation and made minor edits * various tweaks * added installs for docker containers, adjusted ldconfig for linux * updated m4sh file to dynamically adjust between linux and darwin python installs * bugfix * fixed minor typo * tweaked test * updated linux images to only build from docker containers * removed unused variable * minor tweak to install-dev * updated reference to find docker if in docker container * added -r for cp, and rm for system files * updated build-image to remove all default libraries from saved libs * tweaked libraries linux fast install * added link to /usr/local/bin for current gridlabd executable * ensured g++ is installed for debian docker * added autoconf build for debian 9 docker * update ubuntu 20 install * tweaks * updated pandas version * Updated install.sh script for web install to include latest updates from dev * removed test output to prevent adding to repository * created readme for fast-install * updated readme, tweaked scripts * Updated install to allow user to submit version for fast install * added flags section to readme * adjusted autoconf version * minor adjustments to update autoconf version used in actions runner * adjusted syntax * added install for sudo package on runner * attempting with apt-get instead of apt * potential fix for github actions * modified actions to use ubuntu container * adjusted apt install order to circumvent tzdata location issue * modified tzdata install line * potential tzdata workaround * potential workaround for git repository issue * fix git repo owner issue on runner * adjusted linux scripts for fast builds using a prepared container * testing container for faster builds * removed environment updates as not used in new container * minor tweaks to enable faster builds * adjusted check path for doxygen so test can actually work * updated monterey x86 installer * updated chown command for site packages * added missing logic to make home/temp directory * Added check for $USER variable to exist, to work around docker container bug * updated fast install scripts with potential fix for python package issues * added potential script for ubuntu 22 * minor tweak * Adjusted chown for all gridlabd package dirs * Added link to /usr/local/bin for installed gridlabd * removed 22 * readd with permissions * fixed minor missed element from build-aux * fixed openssl install on arm to use arm Configure * Added checks to update ownership for install in case of multi-user computers. * Change file permissions/update readme * Removed line from develop workflow due to fixed bug * homebrew deprecated old install command, replaced * testing * adjusted * brought install up to date with install-dev * corrected a pair of bugs in the install script. * minor tweak to optimize build image script * Removed unnecessary extra install script * Directory overhaul and major variable additions * added creation of directory * updated m4sh * fixed minor structural issue * fixed variable * reorganized declarations * adjusted definition method for vars * reformatted to fix char and char const concat * updated strcat for gld var * adjusted syntax * restructured getenv again * adjusted var * changed to braces? * adjusted braces * potential fix * other fix? * adjusted again * adjustment * use getenv without std * other method * wild fix attempt * this hurts * maybe? * maybe? * new version * test * added braces * mirror potential fix * hmmm * test * now? pls? * chance? * try * hum? * hoh? * new try * hmm * giving up after this * updated method for quick test * updated install-dev, added brace * more directory updates * tried removing the -1 for testing * adjusted char types * additional char type mod * removed the * * ugh * adjusted char type * this? * i * minor adjust * PLEASE * test more fixes * and awaaaaaay we go! * additionals * test configname fix * probably wont work * this wont work * test fixies * potential billing library fix * test * revert * mayhaps * revert * adjusted script find function for ca-certs * corrected ca-cert install to account for package version updates * potential fix for module implementation * test fix test for cert.pem * change to -f * corrected implementation in powerflow * theoretical fix to gridlabd version subcommand * corrected link typo in install.sh * test * changed basename to dirname * potential fix install.sh * changed from os.environ to os.getenv * corrected python string syntax * fixed remaining string needing f" * fix path issue * added updated cert check to all darwin installs * fixed bug in change to fast install image build * final fix install-dev * bringing install.sh current with dev * fixed build image for linux * syntax correction * adjust name * potential fix to image build script bug on docker systems * updated ldconfig command install-dev * updated chown to default to root when user undefined * adjusted fast install and build image to separate system libs from package libs * made minor adjustments to scripts * added procps to docker fast install. changed default branch for dev install to develop. * updated readme documentation * fixed mismatch * updated docs, added -r to mac cp commands * test variable passthrough to subshell * retest * test with export * Added prefix support to script install * potential fix install for configure * adjusted directory issue with prefix settings * testing configure update * corrected syntax * fixed minor bug * adjusted variables for dynamic use * potential configure fix * corrected non-variable line in fire danger test * adjusted darwin cp command to darwin standards * updated install.md instructions * updated cloud documentation * fixed typo * tweaked configure.ac to set minimum default python as 3.9 * removed link to python pymalloc * updated ca-cert check to account for multiple directories available at one time * adjusted unnecessary basename * updated installation scripts to clean out unecessary code, package missing dependencies in intel macs * link gettext to lib for dependency resolution * updated install to match dev, and et defaults appropriately * added error check to build image to exit out and prevent strange bugs if version does not exist when run * added ownership update to install script * tweaked command for install and tweaked message for post-install user actions * updated installer scripts * added extra ownership line to ensure smooth install * tweaked install script * tweaked install script * Added a couple tweaks for m1 install and version.sh bug * Update requirements.txt Added pymysql to requirements per the TESS API tech transfer to-do list. * added automated clean before install script runs Co-authored-by: Thistleman Co-authored-by: Duncan Ragsdale <88173870+Thistleman@users.noreply.github.com> * Update load.cpp (#1239) Co-authored-by: Alyona Teyber * Add install tool (#1237) * Add gridlabd install tool * Update Makefile.mk * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py * Update install.py Co-authored-by: Alyona Teyber * Update cmdarg.cpp (#1211) Co-authored-by: Alyona Teyber * Develop update dockerbase (#1245) * Updating base image to an ubuntu based image * Update Dockerfile * Bump ipython from 7.31.1 to 8.10.0 in /module/resilience/docs (#1249) * Bump pillow from 9.0.1 to 9.3.0 in /converters (#1224) Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.0.1 to 9.3.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/9.0.1...9.3.0) --- updated-dependencies: - dependency-name: pillow dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump ipython from 7.31.1 to 8.10.0 in /module/resilience/docs Bumps [ipython](https://github.com/ipython/ipython) from 7.31.1 to 8.10.0. - [Release notes](https://github.com/ipython/ipython/releases) - [Commits](https://github.com/ipython/ipython/compare/7.31.1...8.10.0) --- updated-dependencies: - dependency-name: ipython dependency-type: direct:production ... Signed-off-by: dependabot[bot] * Cleaning up double-entered requirements * More dependency clean up * Update test_fire_danger.tif --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alyona Teyber * Fix ICA violation test speed issues (#1183) * Move node violation scan from sync to commit * Update node.cpp * Add check to avoid unneeded bus voltage fluctuation tests --------- Co-authored-by: Alyona Teyber * Reverting unwanted commit to develop 9f68226 --------- Signed-off-by: dependabot[bot] Co-authored-by: Alyona Teyber Co-authored-by: Thistleman Co-authored-by: Duncan Ragsdale <88173870+Thistleman@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Resetting to develop-add-ductbank branch due to merge issues (#1254) * Add link to ductbank from underground lines * Add ductbank to underground line class * Update underground_line.cpp * Add cable temp calcs * Ductbank work in progress * Update Ductbank model.ipynb * Update Ductbank model.ipynb * Ductbank implementation substantially complete * Update Ductbank.md * Update test_ductbank_1of6.glm * Create test_ductbank_2of6.glm * Update test_ductbank.glm * Update Ductbank model.ipynb * Create ductbank.py * Update Underground_line_conductor.md * Update Underground_line.md * Update Ductbank.md * Create box3x2.png * Create Ductbank model reduction.ipynb * Update ductbank work * Update ductbank model reduction docs --------- Co-authored-by: David P. Chassin * Develop add aws install (#1255) * tested restoring relevant shebang line * adjusted script call method * readjusted remaining subcommands * reversed missed changes * test variable useage * adjusted shell subcommands python to use GLD_BIN variable for path * Adjusted setup to track version build in each versions directory * Updated build script for easier maintenance, readability, and error checking * Updated Python Version to 3.9.13 to see if patch fixes occasional build bugs * adjusted make commands for potential fix in script python build * potential make fix * added check to see if requirements is installing correctly * changed test * changed platform.h to error if PYTHON_EXEC is undefined * adjusted python build to properly overwrite top bin links on new sourcebuild * adjusted python hashbang for testing * tweaked configure.ac * added PYTHON_EXEC to CFLAGS * updated configure, added check test notices * adjusted variables and declaration order in configure * changed to correct variable * updated exec call * Restored original hashbang point to opt/gridlabd/bin/python3 * additional python adjustments * adjusted reference to python3-config location * adjusted variable call in python3 script * added echo to check output of various variables * testing alternative variable * adjusted variable call * updated python makefile variables * updated reference format for variable * adjusted variables again * adjusted additional variables * more adjustments * tweaked makefile * testing variables * further tests * corrected syntax * fixed additional makefile python references * fixed another hardcoded python reference * testing define * adjusted calling command for python selector script * appropriate replacement for python hashbang * Implemented fix for variable python execution path * added missed exec line in convert * Corrected autotests to use version specific python version * corrected more improper python references * Final tweaks for dynamic python implementation. * fully finished code cleanup for darwin installers * updated missed improper python3 call format * Cleaned up debian installers to use new variable system for faster script updates * Minor version adjustments for packages in debian, updated ubuntu install script * Updated documentation and made minor edits * various tweaks * added installs for docker containers, adjusted ldconfig for linux * updated m4sh file to dynamically adjust between linux and darwin python installs * bugfix * fixed minor typo * tweaked test * updated linux images to only build from docker containers * removed unused variable * minor tweak to install-dev * updated reference to find docker if in docker container * added -r for cp, and rm for system files * updated build-image to remove all default libraries from saved libs * tweaked libraries linux fast install * added link to /usr/local/bin for current gridlabd executable * ensured g++ is installed for debian docker * added autoconf build for debian 9 docker * update ubuntu 20 install * tweaks * updated pandas version * Updated install.sh script for web install to include latest updates from dev * removed test output to prevent adding to repository * created readme for fast-install * updated readme, tweaked scripts * Updated install to allow user to submit version for fast install * added flags section to readme * adjusted autoconf version * minor adjustments to update autoconf version used in actions runner * adjusted syntax * added install for sudo package on runner * attempting with apt-get instead of apt * potential fix for github actions * modified actions to use ubuntu container * adjusted apt install order to circumvent tzdata location issue * modified tzdata install line * potential tzdata workaround * potential workaround for git repository issue * fix git repo owner issue on runner * adjusted linux scripts for fast builds using a prepared container * testing container for faster builds * removed environment updates as not used in new container * minor tweaks to enable faster builds * adjusted check path for doxygen so test can actually work * updated monterey x86 installer * updated chown command for site packages * added missing logic to make home/temp directory * Added check for $USER variable to exist, to work around docker container bug * updated fast install scripts with potential fix for python package issues * added potential script for ubuntu 22 * minor tweak * Adjusted chown for all gridlabd package dirs * Added link to /usr/local/bin for installed gridlabd * removed 22 * readd with permissions * fixed minor missed element from build-aux * fixed openssl install on arm to use arm Configure * Added checks to update ownership for install in case of multi-user computers. * Change file permissions/update readme * Removed line from develop workflow due to fixed bug * homebrew deprecated old install command, replaced * testing * adjusted * brought install up to date with install-dev * corrected a pair of bugs in the install script. * minor tweak to optimize build image script * Removed unnecessary extra install script * Directory overhaul and major variable additions * added creation of directory * updated m4sh * fixed minor structural issue * fixed variable * reorganized declarations * adjusted definition method for vars * reformatted to fix char and char const concat * updated strcat for gld var * adjusted syntax * restructured getenv again * adjusted var * changed to braces? * adjusted braces * potential fix * other fix? * adjusted again * adjustment * use getenv without std * other method * wild fix attempt * this hurts * maybe? * maybe? * new version * test * added braces * mirror potential fix * hmmm * test * now? pls? * chance? * try * hum? * hoh? * new try * hmm * giving up after this * updated method for quick test * updated install-dev, added brace * more directory updates * tried removing the -1 for testing * adjusted char types * additional char type mod * removed the * * ugh * adjusted char type * this? * i * minor adjust * PLEASE * test more fixes * and awaaaaaay we go! * additionals * test configname fix * probably wont work * this wont work * test fixies * potential billing library fix * test * revert * mayhaps * revert * adjusted script find function for ca-certs * corrected ca-cert install to account for package version updates * potential fix for module implementation * test fix test for cert.pem * change to -f * corrected implementation in powerflow * theoretical fix to gridlabd version subcommand * corrected link typo in install.sh * test * changed basename to dirname * potential fix install.sh * changed from os.environ to os.getenv * corrected python string syntax * fixed remaining string needing f" * fix path issue * added updated cert check to all darwin installs * fixed bug in change to fast install image build * final fix install-dev * bringing install.sh current with dev * fixed build image for linux * syntax correction * adjust name * potential fix to image build script bug on docker systems * updated ldconfig command install-dev * updated chown to default to root when user undefined * adjusted fast install and build image to separate system libs from package libs * made minor adjustments to scripts * added procps to docker fast install. changed default branch for dev install to develop. * updated readme documentation * fixed mismatch * updated docs, added -r to mac cp commands * test variable passthrough to subshell * retest * test with export * Added prefix support to script install * potential fix install for configure * adjusted directory issue with prefix settings * testing configure update * corrected syntax * fixed minor bug * adjusted variables for dynamic use * potential configure fix * corrected non-variable line in fire danger test * adjusted darwin cp command to darwin standards * updated install.md instructions * updated cloud documentation * fixed typo * tweaked configure.ac to set minimum default python as 3.9 * removed link to python pymalloc * updated ca-cert check to account for multiple directories available at one time * adjusted unnecessary basename * updated installation scripts to clean out unecessary code, package missing dependencies in intel macs * link gettext to lib for dependency resolution * updated install to match dev, and et defaults appropriately * added error check to build image to exit out and prevent strange bugs if version does not exist when run * added ownership update to install script * tweaked command for install and tweaked message for post-install user actions * updated installer scripts * added extra ownership line to ensure smooth install * tweaked install script * tweaked install script * Added a couple tweaks for m1 install and version.sh bug * Update requirements.txt Added pymysql to requirements per the TESS API tech transfer to-do list. * added automated clean before install script runs --------- Co-authored-by: Thistleman Co-authored-by: Duncan Ragsdale <88173870+Thistleman@users.noreply.github.com> * Restoring missing commits (#1256) * Move node violation scan from sync to commit * Update node.cpp * Add check to avoid unneeded bus voltage fluctuation tests --------- Co-authored-by: David P. Chassin Co-authored-by: David P. Chassin * Add ductbank thermal model (#1257) * Add link to ductbank from underground lines * Add ductbank to underground line class * Update underground_line.cpp * Add cable temp calcs * Ductbank work in progress * Update Ductbank model.ipynb * Update Ductbank model.ipynb * Ductbank implementation substantially complete * Update Ductbank.md * Update test_ductbank_1of6.glm * Create test_ductbank_2of6.glm * Update test_ductbank.glm * Update Ductbank model.ipynb * Create ductbank.py * Update Underground_line_conductor.md * Update Underground_line.md * Update Ductbank.md * Create box3x2.png * Create Ductbank model reduction.ipynb * Update ductbank work * Update ductbank model reduction docs --------- Co-authored-by: David P. Chassin * Update vegetation geodata package to include contact (#1205) * Add vege contact Add the vege contact model * Update geodata_vegetation.py start to add strike model * Update geodata_vegetation.py Add a single tree strike function * Update geodata_vegetation.py Update the tree strike model consider tree numbers * Block template load of non-GLM files when module is loaded * Fix missing filename and bad line numbering when loading template GLM files * Update geodata_powerline.py Add vegetation contact and tree strike model * Update geodata_vegetation.py Recover the vegetation file --------- Co-authored-by: Alyona Teyber * Updating documentation to reflect config.csv converter use (#1259) * Add json2glm converter options to ignore the clock (#1233) * Add create_meters tool * Update create_meters.py * Update create_meters.py * Update load.cpp * Adding no clock option for json2glm * Update load.cpp * Update globals.cpp * Update globals.cpp * Update gridlabd-convert * Update json2glm.py * Update json2glm.py * Update load.cpp * Fixed meter creation issues * Update node.cpp * Fixing merge error * Update json2glm.py * Adding documentation * Update ieee13-meters.glm --------- Co-authored-by: David P. Chassin Co-authored-by: David P. Chassin * Add cyme converter (#1204) * Create test_xls-spida2csv-network.csv * Create test_xls-spida2csv-network.glm * Update xls-spida2csv-geodata.py * Update xls-spida2csv-geodata.py * Update xls-spida2csv-geodata.py * Update pole.cpp * Update pole.h * Update pole_configuration.cpp * Update pole_configuration.h * Update pole_mount.cpp * Update pole_mount.h * Update pole.cpp * Update pole.h * Update pole_mount.cpp * Update pole_mount.h * Update test_pole.csv * Update pole.cpp * Update pole_mount.cpp * Update pole_mount.h * Update Makefile.mk * Create pole_analysis.py * Update pole_analysis.py * Update json2png.py * Update Mdb_files.md * Update mdb-cyme2glm.py * Update mdb2glm.py * change test case IEEE-13-cyme to IEEE-13-cyme-object * add testcase for cyme converter Add autotest case for converter from CYME MDB to gridlabd GLM network * Update Mdb_files.md * Added options to MDB converter doc * Fixed small errors * Updated requirements txt for cyme converter * Removed duplicate dependency --------- Co-authored-by: Fuhong Xie Co-authored-by: David P. Chassin Co-authored-by: Alyona Teyber Co-authored-by: Mitchell Victoriano Co-authored-by: Mitchell Victoriano Co-authored-by: Mitchell Victoriano <47313912+MitchellAV@users.noreply.github.com> * Develop implement venv (#1253) * potential venv test 1 * corrected typos * additional modifications * modified routing * tweaked config test fix * testing fix * tweaked more * potential path fix for use with venv * refined pythonpath * debian 11 test version * fix for instance where home temp folder does not exist * testing change * adjusted pathing * fixed ldconfig * fixed * test using system python * tweaked script * fixed incorrect variable * tweak * uncommented python build * added exports for library paths to test build on debian * bugfixes and typo corrections * fixed typos for initial setup * corrected run order * added /usr/local to paths * test flags * potential loader fix * testing fix * tweaked syntax for intended meaning * adjusted c reference to bindir * Fixed m4sh python3 config reference * moved debian process to config.ac * adjusted command scripts * tweak for logging directory * fixed command * YEAST * tweaking commands * modified scripts * tweaked script for errors * adjusted prefix checks * tweaked script * adjusted configure script * testing rewrites * adjusted script * adjusted config.ac and linux build scripts for new process * removed case format due to bug with configure * removed -q flag from grep command for conditional tests * potential fix for version check bug * adjusted host_os check due to aarch64 particularities * testing * test this * more testing * alternative implementation * added missing ")" * bug/typo * testing alternate implementation * testing alternate implementation * updated for POSIX shell * testing * removed testing syntax checks * removed unnecessary code that occasionally wiped cloned directory * potential m1 setup venv * m1 install setup * adjusted config * potential fix * added venv support for mac * fixed reference in script * tweaks * fixed make system * retest tweaked fix * Create setup-Darwin-22.sh * testing * try 3 * fixed makefile.am * Update setup-Linux-debian-11.sh (#1269) * Update setup-Linux-debian-11.sh * Update setup-Linux-debian-10.sh * Update setup-Linux-debian-9.sh * Update setup-Linux-ubuntu-22.sh * Update setup-Linux-ubuntu-20.sh * Update setup-Linux-ubuntu-18.sh * Update setup-Linux-ubuntu-16.sh * Update setup-Linux-debian-11.sh (#1270) * Update setup-Linux-debian-11.sh * Update setup-Linux-debian-10.sh * Update setup-Linux-debian-9.sh * Update setup-Linux-ubuntu-22.sh * Update setup-Linux-ubuntu-20.sh * Update setup-Linux-ubuntu-18.sh * Update setup-Linux-ubuntu-16.sh * fixed arm brew rference in intel * Update develop.yml * Update develop.yml * Update develop.yml --------- Co-authored-by: Alyona Teyber * Update python.cpp (#1261) * Update unitfile.txt (#1263) * Fix issue with CYME converter for CYME 9 Rev 6 MDB files (#1271) * Create test_xls-spida2csv-network.csv * Create test_xls-spida2csv-network.glm * Update xls-spida2csv-geodata.py * Update xls-spida2csv-geodata.py * Update xls-spida2csv-geodata.py * Update pole.cpp * Update pole.h * Update pole_configuration.cpp * Update pole_configuration.h * Update pole_mount.cpp * Update pole_mount.h * Update pole.cpp * Update pole.h * Update pole_mount.cpp * Update pole_mount.h * Update test_pole.csv * Update pole.cpp * Update pole_mount.cpp * Update pole_mount.h * Update Makefile.mk * Create pole_analysis.py * Update pole_analysis.py * Update json2png.py * Update Mdb_files.md * Update mdb-cyme2glm.py * Update mdb2glm.py * change test case IEEE-13-cyme to IEEE-13-cyme-object * add testcase for cyme converter Add autotest case for converter from CYME MDB to gridlabd GLM network * Update Mdb_files.md * Added options to MDB converter doc * Fixed small errors * Updated requirements txt for cyme converter * Removed duplicate dependency --------- Co-authored-by: Fuhong Xie Co-authored-by: David P. Chassin Co-authored-by: Alyona Teyber Co-authored-by: Mitchell Victoriano * Fixing test_datasets.glm (#1267) * Update geodata_powerline.py * Update geodata_powerline.py * Update README.md Identify US Government Right per the original GridLAB-D license. * Update user manuals (#862) Co-authored-by: Alyona Teyber * Fix date/time handling in create_players tool (#1236) Co-authored-by: David P. Chassin * (#1277) Added additional check and errors for non-SPCT transformers that are connected to triplex_node objects, or have an "S" phase. (#1281) Migration of fix from gridlabd issue 1432 * Fix build warnings (#1279) * Fix warnings on Mac * Fix dg control error * Fix linux warning in source * Fixed incorrect buffer format limits * Fixed module warnings on linux * Update requirements * Update configure.ac * Update requirements.txt * Fix validation errors * Fix python config * Move configure commands that change environment to makefile * Fix makefile * Update gridlabd.in * Fix python clean * Update test_plot.png * Update makefiles * Update requirements.txt * Update requirements process * Added python requirements for alternate systems * Charge Darwin ARM64 requirements filename * Move python os/cpu requirements to python folder * Update version.sh * Add Darwin 19 python requirements * Add requirements.txt generator * Update develop.yml * Update version.sh * Update develop.yml * Update requirements-debian11-x86_64.txt * Delete requirements.txt * Update .gitignore * Remove static requirements * Update makefile to build requirements.txt * Update develop.yml * Move requirements.csv to python folder * Update python venv support * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update requirements.csv * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update Makefile.am * Update Makefile.am * Update Makefile.am * Update develop.yml * Update Makefile.am * Update develop.yml * Update develop.yml * Update develop.yml * fixed setuptools install * testing required installs before requirements can be run in batch.... * testing complete format import * if this works, I will cry inside * testing changing gdal version based on newer API available for debian 11 * testing unpinned raserio install * fixed rasterio, required newer version compatible with python3.10 * adjusted version * Move explicit pip installs to requirements.csv * Update requirements.py * Update requirements.py * Update requirements.csv * Fix test_fire_report autotest * Update develop.yml * Update Makefile.am * Fix Darwin 20 validation errors * Update gridlabd-plot * Update create_player.py * Update fit_filter.py * Update test_fit_filter_opt.glm * Update Makefile.am * Update market_model.py * Update test_market_model_opt.glm * Update requirements.csv * Update requirements.csv * Update README.md * Update README.md * Update requirements.py * Fix source error * Fix filename buffer overruns * Update Makefile.mk * Update metrics_collector_writer.cpp * Update requirements.csv * Update Makefile.am * Update Makefile.am * Update requirements.csv * Update requirements.py * Update requirements.py * Update requirements.py * Update requirements.csv * Update requirements.py * Update requirements.csv * Update requirements.py * Update develop.yml * Update Makefile.mk * Fix python-install * Update requirements.py * Update Makefile.am * Update Makefile.mk * Update Makefile.am * Update Makefile.mk * Update Makefile.mk * Update Makefile.mk * Update Makefile.mk * Update Makefile.mk * Update globals.cpp * Update globals.cpp * Update globals.cpp * Update Makefile.mk * Update globals.cpp * Update globals.cpp * Update cmdarg.cpp * Update gridlabd.m4sh * Update gridlabd.in * Fix pythonpath * Update globals.cpp * Update globals.cpp * Update globals.cpp * Fix pythonpath initialization * Update globals.cpp * Update requirements.csv * Update gridlabd.m4sh * Update gridlabd.in * Update globals.cpp --------- Co-authored-by: Duncan Ragsdale <127135808+Stanford-CVX-group@users.noreply.github.com> * Add advanced load model class to powerflow (#1216) * Add building class to powerflow * Add inputs to building * Simplify model * Update building implementation * Update building * Add building autotest * Fix main gridlabd build error from python setup * Add building subcommand * Update gridlabd-building * Update gridlabd-building * Update building subcommand and docs * Update gridlabd-building * Update Building.md * Update Building.md * Update Building.md * Update Building.md * Update building.h * Add jama125 * Add tnt126 * Work progress on building load model * Create tnt.h * Initial general building load model working * Update test_building.glm * Add building load autotest * Update building.h * Update Building.md * Update Building.md * Update Building.md * Update Building.md * Update test_building.glm * Update test_building.csv * Add power factor/fractions for phases * Update test_building.glm * Update building.cpp * Link weather to building loads * Create test_building_loadshapes.csv * Update building.cpp * Update meter interval implementation * Update test_building_10.glm * Create test_building_tmy.glm * Update building.cpp * Update gridlabd.h * Update building.cpp * Update test_building_tmy.glm * Create test_building_tmy.csv * Update tnt_array2d.h * Update tnt_cmat.h * Update building.cpp * Update building autotests * Update gridlabd.h * Update Makefile.mk * Create building_defaults.csv * Update building.h * Update building.cpp * Update test_building_1.glm * Update test_building_1.csv * Create .gitignore * Update building.h * Add CEUS loadshape data * Create .gitignore * Delete ceus_loadshapes.csv * Update README.md * Update README.md * Update data files * Add loadshape reader * Update building.cpp * Update loadshape * Fix loader error reporting of filename and line number * Update loadshape data * Update building docs * Update building model * Update loadshapes for Btu to kWh conversion of gas enduses * Add electrification and correct ZIP component units * Update building.cpp * Add occupancy support * Delete ceus_loadshapes 2.csv * Remove HVAC from enduse loadshape data * Update load calcs * Fixed electric heating flag * Finish occupancy model * Fix schedule * Stub in dynamic solver * Create .gitignore * Update Building.md * Update Building.md * Add PV export limits * Update autotests for power factor correction * Add support for energy storage and release * Add VAR controllers to support common DER interconnection standards * Update documentation * Finalize autotests * Code cleanup * Add industrial load model * Fix industrial module autotest conflicts with powerflow module * Create Advanced loads.md * Update Advanced loads.md * Add public_service loads * Update advanced load docs * Add agricultural loads * Update advanced loads * Update Advanced_loads.md * Update Public_service.md * Update public service code and autotest * Add house model for performance comparison to building model * Complete agricultural load implementation and autotesting * Update public_service.h * Update Agricultural.md * Start work on enduse load composition data * Update configure.ac * Update Building model.ipynb * Update Enduse load composition.ipynb * Update Enduse load composition.ipynb * Update building_defaults.csv * Change building_defaults.csv to provide thermal properties per unit floor area * Fix object_isa for buildings are detected as loads * Update object.cpp * Fix load update function for new loads * Add building data validation scripts and images * Correct CEUS gas loadshapes * Update resstock data * Update test_building_1.csv --------- Co-authored-by: Alyona Teyber * Add loaddata subcommand (#1272) * Create get_resstock.py * Create gridlabd-loaddata * Delete get_resstock.py * Update gridlabd-loaddata * Update gridlabd-loaddata * Update gridlabd-loaddata * Update Makefile.mk * Add autotest for loaddata * Update gridlabd-loaddata * Create Loaddata.md * Update to docs and glm output * Add docs * Add create_schedule tool (#1278) * Fix setup/build/install scripts (#1282) * Update gridlabd.h * Update setup.cpp * Update property.h * Update Makefile.am * Update Linux-ubuntu-20.sh * Create Linux-ubuntu-22.sh * Update Linux-ubuntu-22.sh * Update Linux-ubuntu-20.sh * Update Makefile.am * Update Makefile.am * Update README.md * Update Makefile.am * Update configure.ac * Add install folder * Update tape_plot.cpp * Update controller.cpp * Update tape_plot.cpp * Create Linux-debian-11.sh * Create debian-11.sh * Update Linux-debian-11.sh * Update Linux-ubuntu-20.sh * Update Linux-ubuntu-22.sh * Update setup.sh * Update setup.sh * Update README.md * Change to GRIDLABD_ORIGIN usage * Update setup.sh * Add no-cache option to curl calls * Work on fast install * Work progress on linux install images * Update Makefile.am * Work progress * Update build_number * Work progress * Work progress * Work progress * Update Linux.sh * Update Linux.sh * Update Linux.sh * Update Linux.sh * Update Darwin.sh * Update create.sh * Update Makefile.am * Update setup-dev.sh * Update Makefile.am * Update Makefile.am * Update Makefile.am * Update Makefile.am * Update version.sh * Update requirements.py * Update Makefile.am * Update build_number * Update Makefile.am * Update Makefile.am * Update build_number * Update Makefile.am * Update README.md * Update install.sh * Update ubuntu_22-x86_64.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Clean up root folder * More cleanup * Update install.sh * Update install.sh * Update build.sh * Update setup.sh * Update install.sh * Update README.md * Update build.sh * Update README.md * Update Makefile.am * Update build_number * Update Makefile.am * Update ubuntu_20-x86_64.sh * Update Makefile.am * Create ubuntu_20.sh * Update ubuntu_22.sh * Update Makefile.am * Update README.md * Change ~/.venv/gridlabd to ~/.gridlabd * work update * Update version.sh * Fix version name * Fix macos build on ventura * Fix additional ventura build errors * Update ubuntu_22-x86_64.sh * Update ubuntu_20-x86_64.sh * Update configure.ac * Fix python3.10-config link * Update configure.ac * Update Makefile.am * Update README.md * Work progress * Update setup scripts * Fix setup filename * Update darwin_22-x86_64.sh * Update setup.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update darwin_22-x86_64.sh * Update frequency_gen.cpp * Create darwin_20-x86_64.sh * Create darwin_21-x86_64.sh * Update ubuntu_20-x86_64.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update init.cpp * Update install.sh * Install script update * Update Makefile.am * Update Makefile.am * Fix system target links * Update setup scripts * Update setup scripts * Update scripts * Update scripts * Update build.sh * Update installer * Update .gitignore * Delete config.cache * Update README.md * Remove old setup scripts * Update README.md * Update README.md * Fix setup issues * Update build and setup help and options * Update Makefile.am * Update README.md * Update Linux.sh * Update build.sh * Update build.sh * Changed all instances of "hipas" to "slacgismo" in preparation for transfer to LF Energy * Update setup.sh * Update Makefile.am * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update workflows to use new setup/build process * Update develop.yml * Update develop.yml * Update develop.yml * Update develop.yml * Update workflows * Fix tnt_126 warnings * Fix tools/test_create_schedule.py * Update .gitignore * Update .gitignore * Reorganize .gitignore * Fix brackets in tnt_126 fortran headers * Undo erroneous namespace updates * Cosmetic updates * Documentation updates * Create README.md * Update .gitignore * D… * Release chiba-02 (#1298) - Fixed help script for subcommands and tools - Update CYME converter to resolve new issues (#1299) - Fix diesel torque unit (#1301) - Fix metar2glm (#1302) Signed-off-by: David P. Chassin * Update version.h Signed-off-by: David P. Chassin * Add support for accessing ISO New England hourly market data (#1307) Signed-off-by: David P. Chassin * Add group tool Signed-off-by: David P. Chassin * Update group.py Signed-off-by: David P. Chassin * Update group.py Signed-off-by: David P. Chassin * Update group.py Signed-off-by: David P. Chassin * Update group.py Signed-off-by: David P. Chassin * Update group.py Signed-off-by: David P. Chassin * Update group.py Signed-off-by: David P. Chassin * Update group.py Signed-off-by: David P. Chassin * Create test_group_assets_opt.glm Signed-off-by: David P. Chassin * Create test_group_network_opt.glm Signed-off-by: David P. Chassin * Add wheel install (#1310) * Update Makefile.mk * Update Python.md Signed-off-by: David P. Chassin * Add shell subcommand (#1312) * Add shell subcommand * Update Python.md * Update Shell.md * Update Shell.md * Update Python.md * Update Shell.md * Add support for shell options Signed-off-by: David P. Chassin * Update Geodata.md (#1314) Signed-off-by: Alyona Teyber Co-authored-by: David P. Chassin Signed-off-by: David P. Chassin * Fixed group Signed-off-by: David P. Chassin * Update test_group_assets_opt.glm Signed-off-by: David P. Chassin * Fix numerous edge cases * Fix group autotest * Add support for swingbus and isolated python variables. * Update group.py * Update group.py * Update group.py --------- Signed-off-by: David P. Chassin Signed-off-by: Alyona Teyber Signed-off-by: dependabot[bot] Signed-off-by: David P. Chassin Co-authored-by: Alyona Teyber Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Fuhong Xie Co-authored-by: ktehranchi <83722342+ktehranchi@users.noreply.github.com> Co-authored-by: johnsonhsiung <47260592+johnsonhsiung@users.noreply.github.com> Co-authored-by: Mitchell Victoriano Co-authored-by: Thistleman Co-authored-by: Duncan Ragsdale <88173870+Thistleman@users.noreply.github.com> Co-authored-by: Xiaochu Wang <98920916+xwang78su@users.noreply.github.com> Co-authored-by: Fuhong Xie Co-authored-by: Mitchell Victoriano Co-authored-by: Mitchell Victoriano <47313912+MitchellAV@users.noreply.github.com> Co-authored-by: Frank Tuffner Co-authored-by: Duncan Ragsdale <127135808+Stanford-CVX-group@users.noreply.github.com> --- tools/Makefile.mk | 1 + tools/autotest/.gitignore | 1 + tools/autotest/test_group.glm | 16 + tools/autotest/test_group_assets_opt.glm | 9756 +++++++++++++++++++++ tools/autotest/test_group_modify_opt.glm | 1244 +++ tools/autotest/test_group_network_opt.glm | 3087 +++++++ tools/group.py | 453 + 7 files changed, 14558 insertions(+) create mode 100644 tools/autotest/test_group.glm create mode 100644 tools/autotest/test_group_assets_opt.glm create mode 100644 tools/autotest/test_group_modify_opt.glm create mode 100644 tools/autotest/test_group_network_opt.glm create mode 100644 tools/group.py diff --git a/tools/Makefile.mk b/tools/Makefile.mk index 14b4ef87d..89cefc030 100644 --- a/tools/Makefile.mk +++ b/tools/Makefile.mk @@ -11,6 +11,7 @@ dist_pkgdata_DATA += tools/fire_danger.py dist_pkgdata_DATA += tools/fit_filter.py dist_pkgdata_DATA += tools/gridlabd-editor.png dist_pkgdata_DATA += tools/gridlabd-editor.py +dist_pkgdata_DATA += tools/group.py dist_pkgdata_DATA += tools/insights.py dist_pkgdata_DATA += tools/install.py dist_pkgdata_DATA += tools/isone.py diff --git a/tools/autotest/.gitignore b/tools/autotest/.gitignore index 312a30e9d..3dfb3b2d8 100644 --- a/tools/autotest/.gitignore +++ b/tools/autotest/.gitignore @@ -1,2 +1,3 @@ test_isone.csv test_isone_opt.glm +pole_configuration.glm diff --git a/tools/autotest/test_group.glm b/tools/autotest/test_group.glm new file mode 100644 index 000000000..75ecbe6d0 --- /dev/null +++ b/tools/autotest/test_group.glm @@ -0,0 +1,16 @@ +#ifexist ../test_group_network_opt.glm +#define DIR=.. +#endif + +#include "${DIR:-.}/test_group_network_opt.glm" +#include "${DIR:-.}/test_group_assets_opt.glm" + +#resolve now +#write test_group.json + +#python -m group -i=test_group.json --modify --force -o=test_group_modify_opt.glm +#include "test_group_modify_opt.glm" + +#ifexist ../test_group_modify_opt.glm +#on_exit 0 diff -I '^[#/].*' ../test_group_modify_opt.glm test_group_modify_opt.glm > gridlabd.diff +#endif diff --git a/tools/autotest/test_group_assets_opt.glm b/tools/autotest/test_group_assets_opt.glm new file mode 100644 index 000000000..59735b82e --- /dev/null +++ b/tools/autotest/test_group_assets_opt.glm @@ -0,0 +1,9756 @@ +// automatically generated model from command `/usr/local/opt/gridlabd/4.3.3-230727-develop_add_group_tool-darwin_22-x86_64/share/gridlabd/create_poles.py 123.glm --spacing=100 --pole_type=WOOD-EC-45/4 --weather=example --ignore_location --output=IEEE123_poles.glm` on 2023-07-27 15:54:55 +clock +{ + starttime "2000-01-01 00:00:00"; + stoptime "2000-02-01 00:00:00"; +} +class weather +{ + double temperature[degF]; + double wind_speed[mph]; + double wind_dir[deg]; +} + +object weather +{ + name "example"; +} + +#system curl -sL https://library.gridlabd.us/US/CA/SLAC/pole_configuration.glm > pole_configuration.glm +#include "pole_configuration.glm" + +object pole +{ + name "pole_node_6101"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_trans6101to610"; + equipment "trans6101to610"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_150"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_reg150to15001"; + equipment "reg150to15001"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_9"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_reg9to901"; + equipment "reg9to901"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line8to9_load_9"; + equipment "line8to9"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_25"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_reg25to2501"; + equipment "reg25to2501"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line23to25_node_25"; + equipment "line23to25"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line25to28_node_25"; + equipment "line25to28"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_160"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_reg160to16001"; + equipment "reg160to16001"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_13"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_sw13to152"; + equipment "sw13to152"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line8to13_node_13"; + equipment "line8to13"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line13to34_node_13"; + equipment "line13to34"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line13to18_node_13"; + equipment "line13to18"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_18"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_sw18to135"; + equipment "sw18to135"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line13to18_node_18"; + equipment "line13to18"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line18to19_node_18"; + equipment "line18to19"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line18to21_node_18"; + equipment "line18to21"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_54"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_sw54to94"; + equipment "sw54to94"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line53to54_node_54"; + equipment "line53to54"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line54to55_node_54"; + equipment "line54to55"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line54to57_node_54"; + equipment "line54to57"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_60"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_sw60to160"; + equipment "sw60to160"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line57to60_load_60"; + equipment "line57to60"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line60to61_load_60"; + equipment "line60to61"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_61"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_sw61to6101"; + equipment "sw61to6101"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line60to61_node_61"; + equipment "line60to61"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_97"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_sw97to197"; + equipment "sw97to197"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line67to97_node_97"; + equipment "line67to97"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line97to98_node_97"; + equipment "line97to98"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_151"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_sw151to300"; + equipment "sw151to300"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line51to151_node_151"; + equipment "line51to151"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_15001"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_sw15001to149"; + equipment "sw15001to149"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} + +object pole +{ + name "pole_load_1"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line1to2_load_1"; + equipment "line1to2"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line1to3_load_1"; + equipment "line1to3"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line1to7_load_1"; + equipment "line1to7"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line149to1_load_1"; + equipment "line149to1"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line1to2_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line1to2_100"; + equipment "line1to2"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_2"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line1to2_load_2"; + equipment "line1to2"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line1to3_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line1to3_100"; + equipment "line1to3"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line1to3_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line1to3_200"; + equipment "line1to3"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_3"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line1to3_node_3"; + equipment "line1to3"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line3to4_node_3"; + equipment "line3to4"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line3to5_node_3"; + equipment "line3to5"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line1to7_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line1to7_100"; + equipment "line1to7"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line1to7_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line1to7_200"; + equipment "line1to7"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_7"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line1to7_load_7"; + equipment "line1to7"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line7to8_load_7"; + equipment "line7to8"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line3to4_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line3to4_100"; + equipment "line3to4"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_4"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line3to4_load_4"; + equipment "line3to4"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line3to5_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line3to5_100"; + equipment "line3to5"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line3to5_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line3to5_200"; + equipment "line3to5"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line3to5_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line3to5_300"; + equipment "line3to5"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_5"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line3to5_load_5"; + equipment "line3to5"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line5to6_load_5"; + equipment "line5to6"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line5to6_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line5to6_100"; + equipment "line5to6"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line5to6_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line5to6_200"; + equipment "line5to6"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_6"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line5to6_load_6"; + equipment "line5to6"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line7to8_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line7to8_100"; + equipment "line7to8"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_8"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line7to8_node_8"; + equipment "line7to8"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line8to12_node_8"; + equipment "line8to12"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line8to9_node_8"; + equipment "line8to9"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line8to13_node_8"; + equipment "line8to13"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line8to12_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line8to12_100"; + equipment "line8to12"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line8to12_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line8to12_200"; + equipment "line8to12"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_12"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line8to12_load_12"; + equipment "line8to12"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line8to9_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line8to9_100"; + equipment "line8to9"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line8to9_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line8to9_200"; + equipment "line8to9"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line8to13_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line8to13_100"; + equipment "line8to13"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line8to13_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line8to13_200"; + equipment "line8to13"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_901"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line901to14_node_901"; + equipment "line901to14"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line901to14_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line901to14_100"; + equipment "line901to14"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line901to14_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line901to14_200"; + equipment "line901to14"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line901to14_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line901to14_300"; + equipment "line901to14"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line901to14_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line901to14_400"; + equipment "line901to14"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_14"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line901to14_node_14"; + equipment "line901to14"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line14to11_node_14"; + equipment "line14to11"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line14to10_node_14"; + equipment "line14to10"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line13to34_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line13to34_100"; + equipment "line13to34"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_34"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line13to34_load_34"; + equipment "line13to34"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line34to15_load_34"; + equipment "line34to15"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line13to18_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line13to18_100"; + equipment "line13to18"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line13to18_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line13to18_200"; + equipment "line13to18"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line13to18_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line13to18_300"; + equipment "line13to18"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line13to18_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line13to18_400"; + equipment "line13to18"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line13to18_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line13to18_500"; + equipment "line13to18"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line13to18_600"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line13to18_600"; + equipment "line13to18"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line13to18_700"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line13to18_700"; + equipment "line13to18"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line13to18_800"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line13to18_800"; + equipment "line13to18"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line14to11_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line14to11_100"; + equipment "line14to11"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line14to11_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line14to11_200"; + equipment "line14to11"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_11"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line14to11_load_11"; + equipment "line14to11"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line14to10_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line14to10_100"; + equipment "line14to10"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line14to10_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line14to10_200"; + equipment "line14to10"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_10"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line14to10_load_10"; + equipment "line14to10"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_15"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line15to16_node_15"; + equipment "line15to16"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line15to17_node_15"; + equipment "line15to17"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line34to15_node_15"; + equipment "line34to15"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line15to16_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line15to16_100"; + equipment "line15to16"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line15to16_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line15to16_200"; + equipment "line15to16"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line15to16_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line15to16_300"; + equipment "line15to16"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_16"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line15to16_load_16"; + equipment "line15to16"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line15to17_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line15to17_100"; + equipment "line15to17"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line15to17_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line15to17_200"; + equipment "line15to17"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line15to17_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line15to17_300"; + equipment "line15to17"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_17"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line15to17_load_17"; + equipment "line15to17"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line18to19_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line18to19_100"; + equipment "line18to19"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line18to19_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line18to19_200"; + equipment "line18to19"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_19"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line18to19_load_19"; + equipment "line18to19"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line19to20_load_19"; + equipment "line19to20"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line18to21_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line18to21_100"; + equipment "line18to21"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line18to21_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line18to21_200"; + equipment "line18to21"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_21"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line18to21_node_21"; + equipment "line18to21"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line21to22_node_21"; + equipment "line21to22"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line21to23_node_21"; + equipment "line21to23"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line19to20_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line19to20_100"; + equipment "line19to20"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line19to20_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line19to20_200"; + equipment "line19to20"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line19to20_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line19to20_300"; + equipment "line19to20"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_20"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line19to20_load_20"; + equipment "line19to20"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line21to22_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line21to22_100"; + equipment "line21to22"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line21to22_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line21to22_200"; + equipment "line21to22"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line21to22_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line21to22_300"; + equipment "line21to22"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line21to22_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line21to22_400"; + equipment "line21to22"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line21to22_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line21to22_500"; + equipment "line21to22"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_22"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line21to22_load_22"; + equipment "line21to22"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line21to23_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line21to23_100"; + equipment "line21to23"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line21to23_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line21to23_200"; + equipment "line21to23"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_23"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line21to23_node_23"; + equipment "line21to23"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line23to24_node_23"; + equipment "line23to24"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line23to25_node_23"; + equipment "line23to25"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line23to24_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line23to24_100"; + equipment "line23to24"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line23to24_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line23to24_200"; + equipment "line23to24"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line23to24_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line23to24_300"; + equipment "line23to24"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line23to24_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line23to24_400"; + equipment "line23to24"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line23to24_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line23to24_500"; + equipment "line23to24"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_24"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line23to24_load_24"; + equipment "line23to24"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line23to25_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line23to25_100"; + equipment "line23to25"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line23to25_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line23to25_200"; + equipment "line23to25"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_2501"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line2501to26_node_2501"; + equipment "line2501to26"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line2501to26_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line2501to26_100"; + equipment "line2501to26"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line2501to26_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line2501to26_200"; + equipment "line2501to26"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line2501to26_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line2501to26_300"; + equipment "line2501to26"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_26"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line2501to26_node_26"; + equipment "line2501to26"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line26to27_node_26"; + equipment "line26to27"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line26to31_node_26"; + equipment "line26to31"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line25to28_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line25to28_100"; + equipment "line25to28"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_28"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line25to28_load_28"; + equipment "line25to28"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line28to29_load_28"; + equipment "line28to29"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line26to27_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line26to27_100"; + equipment "line26to27"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line26to27_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line26to27_200"; + equipment "line26to27"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_27"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line26to27_node_27"; + equipment "line26to27"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line27to33_node_27"; + equipment "line27to33"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line26to31_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line26to31_100"; + equipment "line26to31"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line26to31_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line26to31_200"; + equipment "line26to31"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_31"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line26to31_load_31"; + equipment "line26to31"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line31to32_load_31"; + equipment "line31to32"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line27to33_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line27to33_100"; + equipment "line27to33"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line27to33_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line27to33_200"; + equipment "line27to33"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line27to33_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line27to33_300"; + equipment "line27to33"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line27to33_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line27to33_400"; + equipment "line27to33"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_33"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line27to33_load_33"; + equipment "line27to33"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line28to29_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line28to29_100"; + equipment "line28to29"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line28to29_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line28to29_200"; + equipment "line28to29"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_29"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line28to29_load_29"; + equipment "line28to29"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line29to30_load_29"; + equipment "line29to30"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line29to30_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line29to30_100"; + equipment "line29to30"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line29to30_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line29to30_200"; + equipment "line29to30"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line29to30_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line29to30_300"; + equipment "line29to30"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_30"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line29to30_load_30"; + equipment "line29to30"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line30to250_load_30"; + equipment "line30to250"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line30to250_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line30to250_100"; + equipment "line30to250"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line31to32_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line31to32_100"; + equipment "line31to32"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line31to32_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line31to32_200"; + equipment "line31to32"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_32"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line31to32_load_32"; + equipment "line31to32"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_35"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line35to36_load_35"; + equipment "line35to36"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line35to40_load_35"; + equipment "line35to40"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line135to35_load_35"; + equipment "line135to35"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line35to36_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line35to36_100"; + equipment "line35to36"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line35to36_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line35to36_200"; + equipment "line35to36"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line35to36_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line35to36_300"; + equipment "line35to36"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line35to36_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line35to36_400"; + equipment "line35to36"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line35to36_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line35to36_500"; + equipment "line35to36"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line35to36_600"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line35to36_600"; + equipment "line35to36"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_36"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line35to36_node_36"; + equipment "line35to36"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line36to37_node_36"; + equipment "line36to37"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line36to38_node_36"; + equipment "line36to38"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line35to40_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line35to40_100"; + equipment "line35to40"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line35to40_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line35to40_200"; + equipment "line35to40"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_40"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line35to40_node_40"; + equipment "line35to40"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line40to41_node_40"; + equipment "line40to41"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line40to42_node_40"; + equipment "line40to42"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line36to37_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line36to37_100"; + equipment "line36to37"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line36to37_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line36to37_200"; + equipment "line36to37"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_37"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line36to37_load_37"; + equipment "line36to37"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line36to38_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line36to38_100"; + equipment "line36to38"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line36to38_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line36to38_200"; + equipment "line36to38"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_38"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line36to38_load_38"; + equipment "line36to38"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line38to39_load_38"; + equipment "line38to39"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line38to39_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line38to39_100"; + equipment "line38to39"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line38to39_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line38to39_200"; + equipment "line38to39"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line38to39_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line38to39_300"; + equipment "line38to39"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_39"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line38to39_load_39"; + equipment "line38to39"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line40to41_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line40to41_100"; + equipment "line40to41"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line40to41_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line40to41_200"; + equipment "line40to41"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line40to41_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line40to41_300"; + equipment "line40to41"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_41"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line40to41_load_41"; + equipment "line40to41"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line40to42_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line40to42_100"; + equipment "line40to42"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line40to42_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line40to42_200"; + equipment "line40to42"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_42"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line40to42_load_42"; + equipment "line40to42"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line42to43_load_42"; + equipment "line42to43"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line42to44_load_42"; + equipment "line42to44"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line42to43_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line42to43_100"; + equipment "line42to43"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line42to43_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line42to43_200"; + equipment "line42to43"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line42to43_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line42to43_300"; + equipment "line42to43"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line42to43_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line42to43_400"; + equipment "line42to43"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_43"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line42to43_load_43"; + equipment "line42to43"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line42to44_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line42to44_100"; + equipment "line42to44"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_44"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line42to44_node_44"; + equipment "line42to44"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line44to45_node_44"; + equipment "line44to45"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line44to47_node_44"; + equipment "line44to47"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line44to45_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line44to45_100"; + equipment "line44to45"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_45"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line44to45_load_45"; + equipment "line44to45"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line45to46_load_45"; + equipment "line45to46"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line44to47_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line44to47_100"; + equipment "line44to47"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line44to47_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line44to47_200"; + equipment "line44to47"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_47"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line44to47_load_47"; + equipment "line44to47"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line47to48_load_47"; + equipment "line47to48"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line47to49_load_47"; + equipment "line47to49"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line45to46_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line45to46_100"; + equipment "line45to46"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line45to46_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line45to46_200"; + equipment "line45to46"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_46"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line45to46_load_46"; + equipment "line45to46"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line47to48_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line47to48_100"; + equipment "line47to48"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_48"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line47to48_load_48"; + equipment "line47to48"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line47to49_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line47to49_100"; + equipment "line47to49"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line47to49_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line47to49_200"; + equipment "line47to49"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_49"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line47to49_load_49"; + equipment "line47to49"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line49to50_load_49"; + equipment "line49to50"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line49to50_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line49to50_100"; + equipment "line49to50"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line49to50_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line49to50_200"; + equipment "line49to50"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_50"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line49to50_load_50"; + equipment "line49to50"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line50to51_load_50"; + equipment "line50to51"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line50to51_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line50to51_100"; + equipment "line50to51"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line50to51_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line50to51_200"; + equipment "line50to51"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_51"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line50to51_load_51"; + equipment "line50to51"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line51to151_load_51"; + equipment "line51to151"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line51to151_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line51to151_100"; + equipment "line51to151"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line51to151_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line51to151_200"; + equipment "line51to151"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line51to151_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line51to151_300"; + equipment "line51to151"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line51to151_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line51to151_400"; + equipment "line51to151"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_52"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line52to53_load_52"; + equipment "line52to53"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line152to52_load_52"; + equipment "line152to52"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line52to53_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line52to53_100"; + equipment "line52to53"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_53"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line52to53_load_53"; + equipment "line52to53"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line53to54_load_53"; + equipment "line53to54"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line53to54_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line53to54_100"; + equipment "line53to54"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line54to55_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line54to55_100"; + equipment "line54to55"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line54to55_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line54to55_200"; + equipment "line54to55"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_55"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line54to55_load_55"; + equipment "line54to55"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line55to56_load_55"; + equipment "line55to56"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line54to57_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line54to57_100"; + equipment "line54to57"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line54to57_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line54to57_200"; + equipment "line54to57"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line54to57_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line54to57_300"; + equipment "line54to57"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_57"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line54to57_node_57"; + equipment "line54to57"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line57to58_node_57"; + equipment "line57to58"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line57to60_node_57"; + equipment "line57to60"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line55to56_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line55to56_100"; + equipment "line55to56"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line55to56_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line55to56_200"; + equipment "line55to56"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_56"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line55to56_load_56"; + equipment "line55to56"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line57to58_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line57to58_100"; + equipment "line57to58"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line57to58_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line57to58_200"; + equipment "line57to58"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_58"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line57to58_load_58"; + equipment "line57to58"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line58to59_load_58"; + equipment "line58to59"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line57to60_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line57to60_100"; + equipment "line57to60"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line57to60_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line57to60_200"; + equipment "line57to60"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line57to60_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line57to60_300"; + equipment "line57to60"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line57to60_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line57to60_400"; + equipment "line57to60"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line57to60_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line57to60_500"; + equipment "line57to60"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line57to60_600"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line57to60_600"; + equipment "line57to60"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line57to60_700"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line57to60_700"; + equipment "line57to60"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line58to59_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line58to59_100"; + equipment "line58to59"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line58to59_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line58to59_200"; + equipment "line58to59"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_59"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line58to59_load_59"; + equipment "line58to59"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line60to61_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line60to61_100"; + equipment "line60to61"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line60to61_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line60to61_200"; + equipment "line60to61"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line60to61_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line60to61_300"; + equipment "line60to61"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line60to61_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line60to61_400"; + equipment "line60to61"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line60to61_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line60to61_500"; + equipment "line60to61"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_67"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line67to68_node_67"; + equipment "line67to68"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line67to72_node_67"; + equipment "line67to72"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line67to97_node_67"; + equipment "line67to97"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line16001to67_node_67"; + equipment "line16001to67"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line67to68_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line67to68_100"; + equipment "line67to68"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_68"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line67to68_load_68"; + equipment "line67to68"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line68to69_load_68"; + equipment "line68to69"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line67to72_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line67to72_100"; + equipment "line67to72"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line67to72_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line67to72_200"; + equipment "line67to72"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_72"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line67to72_node_72"; + equipment "line67to72"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line72to73_node_72"; + equipment "line72to73"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line72to76_node_72"; + equipment "line72to76"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line67to97_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line67to97_100"; + equipment "line67to97"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line67to97_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line67to97_200"; + equipment "line67to97"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line68to69_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line68to69_100"; + equipment "line68to69"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line68to69_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line68to69_200"; + equipment "line68to69"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_69"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line68to69_load_69"; + equipment "line68to69"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line69to70_load_69"; + equipment "line69to70"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line69to70_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line69to70_100"; + equipment "line69to70"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line69to70_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line69to70_200"; + equipment "line69to70"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line69to70_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line69to70_300"; + equipment "line69to70"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_70"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line69to70_load_70"; + equipment "line69to70"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line70to71_load_70"; + equipment "line70to71"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line70to71_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line70to71_100"; + equipment "line70to71"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line70to71_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line70to71_200"; + equipment "line70to71"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_71"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line70to71_load_71"; + equipment "line70to71"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line72to73_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line72to73_100"; + equipment "line72to73"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line72to73_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line72to73_200"; + equipment "line72to73"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_73"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line72to73_load_73"; + equipment "line72to73"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line73to74_load_73"; + equipment "line73to74"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line72to76_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line72to76_100"; + equipment "line72to76"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_76"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line72to76_load_76"; + equipment "line72to76"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line76to77_load_76"; + equipment "line76to77"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line76to86_load_76"; + equipment "line76to86"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line73to74_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line73to74_100"; + equipment "line73to74"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line73to74_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line73to74_200"; + equipment "line73to74"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line73to74_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line73to74_300"; + equipment "line73to74"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_74"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line73to74_load_74"; + equipment "line73to74"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line74to75_load_74"; + equipment "line74to75"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line74to75_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line74to75_100"; + equipment "line74to75"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line74to75_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line74to75_200"; + equipment "line74to75"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line74to75_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line74to75_300"; + equipment "line74to75"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_75"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line74to75_load_75"; + equipment "line74to75"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line76to77_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line76to77_100"; + equipment "line76to77"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line76to77_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line76to77_200"; + equipment "line76to77"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line76to77_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line76to77_300"; + equipment "line76to77"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_77"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line76to77_load_77"; + equipment "line76to77"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line77to78_load_77"; + equipment "line77to78"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line76to86_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line76to86_100"; + equipment "line76to86"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line76to86_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line76to86_200"; + equipment "line76to86"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line76to86_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line76to86_300"; + equipment "line76to86"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line76to86_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line76to86_400"; + equipment "line76to86"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line76to86_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line76to86_500"; + equipment "line76to86"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line76to86_600"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line76to86_600"; + equipment "line76to86"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_86"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line76to86_load_86"; + equipment "line76to86"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line86to87_load_86"; + equipment "line86to87"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_78"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line77to78_node_78"; + equipment "line77to78"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line78to79_node_78"; + equipment "line78to79"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line78to80_node_78"; + equipment "line78to80"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line78to79_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line78to79_100"; + equipment "line78to79"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line78to79_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line78to79_200"; + equipment "line78to79"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_79"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line78to79_load_79"; + equipment "line78to79"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line78to80_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line78to80_100"; + equipment "line78to80"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line78to80_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line78to80_200"; + equipment "line78to80"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line78to80_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line78to80_300"; + equipment "line78to80"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line78to80_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line78to80_400"; + equipment "line78to80"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_80"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line78to80_load_80"; + equipment "line78to80"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line80to81_load_80"; + equipment "line80to81"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line80to81_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line80to81_100"; + equipment "line80to81"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line80to81_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line80to81_200"; + equipment "line80to81"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line80to81_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line80to81_300"; + equipment "line80to81"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line80to81_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line80to81_400"; + equipment "line80to81"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_81"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line80to81_node_81"; + equipment "line80to81"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line81to82_node_81"; + equipment "line81to82"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line81to84_node_81"; + equipment "line81to84"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line81to82_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line81to82_100"; + equipment "line81to82"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line81to82_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line81to82_200"; + equipment "line81to82"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_82"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line81to82_load_82"; + equipment "line81to82"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line82to83_load_82"; + equipment "line82to83"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line81to84_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line81to84_100"; + equipment "line81to84"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line81to84_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line81to84_200"; + equipment "line81to84"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line81to84_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line81to84_300"; + equipment "line81to84"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line81to84_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line81to84_400"; + equipment "line81to84"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line81to84_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line81to84_500"; + equipment "line81to84"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line81to84_600"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line81to84_600"; + equipment "line81to84"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_84"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line81to84_load_84"; + equipment "line81to84"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line84to85_load_84"; + equipment "line84to85"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line82to83_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line82to83_100"; + equipment "line82to83"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line82to83_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line82to83_200"; + equipment "line82to83"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_83"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line82to83_load_83"; + equipment "line82to83"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line84to85_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line84to85_100"; + equipment "line84to85"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line84to85_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line84to85_200"; + equipment "line84to85"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line84to85_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line84to85_300"; + equipment "line84to85"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line84to85_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line84to85_400"; + equipment "line84to85"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_85"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line84to85_load_85"; + equipment "line84to85"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line86to87_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line86to87_100"; + equipment "line86to87"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line86to87_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line86to87_200"; + equipment "line86to87"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line86to87_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line86to87_300"; + equipment "line86to87"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line86to87_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line86to87_400"; + equipment "line86to87"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_87"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line86to87_load_87"; + equipment "line86to87"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line87to88_load_87"; + equipment "line87to88"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line87to89_load_87"; + equipment "line87to89"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line87to88_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line87to88_100"; + equipment "line87to88"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_88"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line87to88_load_88"; + equipment "line87to88"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line87to89_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line87to89_100"; + equipment "line87to89"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line87to89_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line87to89_200"; + equipment "line87to89"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_89"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line87to89_node_89"; + equipment "line87to89"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line89to90_node_89"; + equipment "line89to90"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line89to91_node_89"; + equipment "line89to91"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line89to90_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line89to90_100"; + equipment "line89to90"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line89to90_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line89to90_200"; + equipment "line89to90"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_90"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line89to90_load_90"; + equipment "line89to90"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line89to91_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line89to91_100"; + equipment "line89to91"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line89to91_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line89to91_200"; + equipment "line89to91"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_91"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line89to91_node_91"; + equipment "line89to91"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line91to92_node_91"; + equipment "line91to92"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line91to93_node_91"; + equipment "line91to93"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line91to92_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line91to92_100"; + equipment "line91to92"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line91to92_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line91to92_200"; + equipment "line91to92"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_92"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line91to92_load_92"; + equipment "line91to92"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line91to93_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line91to93_100"; + equipment "line91to93"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line91to93_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line91to93_200"; + equipment "line91to93"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_93"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line91to93_node_93"; + equipment "line91to93"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line93to94_node_93"; + equipment "line93to94"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line93to95_node_93"; + equipment "line93to95"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line93to94_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line93to94_100"; + equipment "line93to94"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line93to94_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line93to94_200"; + equipment "line93to94"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_94"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line93to94_load_94"; + equipment "line93to94"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line93to95_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line93to95_100"; + equipment "line93to95"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line93to95_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line93to95_200"; + equipment "line93to95"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line95to96_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line95to96_100"; + equipment "line95to96"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_96"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line95to96_load_96"; + equipment "line95to96"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line97to98_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line97to98_100"; + equipment "line97to98"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line97to98_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line97to98_200"; + equipment "line97to98"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_98"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line97to98_load_98"; + equipment "line97to98"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line98to99_load_98"; + equipment "line98to99"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line98to99_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line98to99_100"; + equipment "line98to99"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line98to99_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line98to99_200"; + equipment "line98to99"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line98to99_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line98to99_300"; + equipment "line98to99"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line98to99_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line98to99_400"; + equipment "line98to99"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line98to99_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line98to99_500"; + equipment "line98to99"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_99"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line98to99_load_99"; + equipment "line98to99"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line99to100_load_99"; + equipment "line99to100"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line99to100_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line99to100_100"; + equipment "line99to100"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line99to100_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line99to100_200"; + equipment "line99to100"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line99to100_load_100"; + equipment "line99to100"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line100to450_load_100"; + equipment "line100to450"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line100to450_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line100to450_100"; + equipment "line100to450"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line100to450_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line100to450_200"; + equipment "line100to450"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line100to450_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line100to450_300"; + equipment "line100to450"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line100to450_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line100to450_400"; + equipment "line100to450"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line100to450_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line100to450_500"; + equipment "line100to450"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line100to450_600"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line100to450_600"; + equipment "line100to450"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line100to450_700"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line100to450_700"; + equipment "line100to450"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_101"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line101to102_node_101"; + equipment "line101to102"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line101to105_node_101"; + equipment "line101to105"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line197to101_node_101"; + equipment "line197to101"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line101to102_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line101to102_100"; + equipment "line101to102"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line101to102_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line101to102_200"; + equipment "line101to102"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_102"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line101to102_load_102"; + equipment "line101to102"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line102to103_load_102"; + equipment "line102to103"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line101to105_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line101to105_100"; + equipment "line101to105"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line101to105_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line101to105_200"; + equipment "line101to105"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_105"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line101to105_node_105"; + equipment "line101to105"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line105to106_node_105"; + equipment "line105to106"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line105to108_node_105"; + equipment "line105to108"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line102to103_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line102to103_100"; + equipment "line102to103"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line102to103_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line102to103_200"; + equipment "line102to103"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line102to103_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line102to103_300"; + equipment "line102to103"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_103"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line102to103_load_103"; + equipment "line102to103"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line103to104_load_103"; + equipment "line103to104"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line103to104_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line103to104_100"; + equipment "line103to104"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line103to104_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line103to104_200"; + equipment "line103to104"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line103to104_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line103to104_300"; + equipment "line103to104"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line103to104_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line103to104_400"; + equipment "line103to104"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line103to104_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line103to104_500"; + equipment "line103to104"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line103to104_600"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line103to104_600"; + equipment "line103to104"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_104"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line103to104_load_104"; + equipment "line103to104"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line105to106_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line105to106_100"; + equipment "line105to106"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line105to106_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line105to106_200"; + equipment "line105to106"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_106"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line105to106_load_106"; + equipment "line105to106"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line106to107_load_106"; + equipment "line106to107"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line105to108_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line105to108_100"; + equipment "line105to108"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line105to108_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line105to108_200"; + equipment "line105to108"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line105to108_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line105to108_300"; + equipment "line105to108"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_108"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line105to108_node_108"; + equipment "line105to108"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line108to109_node_108"; + equipment "line108to109"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line108to300_node_108"; + equipment "line108to300"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line106to107_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line106to107_100"; + equipment "line106to107"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line106to107_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line106to107_200"; + equipment "line106to107"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line106to107_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line106to107_300"; + equipment "line106to107"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line106to107_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line106to107_400"; + equipment "line106to107"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line106to107_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line106to107_500"; + equipment "line106to107"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_107"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line106to107_load_107"; + equipment "line106to107"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line108to109_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line108to109_100"; + equipment "line108to109"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line108to109_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line108to109_200"; + equipment "line108to109"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line108to109_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line108to109_300"; + equipment "line108to109"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line108to109_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line108to109_400"; + equipment "line108to109"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_109"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line108to109_load_109"; + equipment "line108to109"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line109to110_load_109"; + equipment "line109to110"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line108to300_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line108to300_100"; + equipment "line108to300"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line108to300_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line108to300_200"; + equipment "line108to300"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line108to300_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line108to300_300"; + equipment "line108to300"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line108to300_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line108to300_400"; + equipment "line108to300"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line108to300_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line108to300_500"; + equipment "line108to300"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line108to300_600"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line108to300_600"; + equipment "line108to300"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line108to300_700"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line108to300_700"; + equipment "line108to300"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line108to300_800"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line108to300_800"; + equipment "line108to300"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line108to300_900"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line108to300_900"; + equipment "line108to300"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line109to110_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line109to110_100"; + equipment "line109to110"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line109to110_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line109to110_200"; + equipment "line109to110"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_110"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line109to110_node_110"; + equipment "line109to110"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line110to111_node_110"; + equipment "line110to111"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line110to112_node_110"; + equipment "line110to112"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line110to111_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line110to111_100"; + equipment "line110to111"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line110to111_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line110to111_200"; + equipment "line110to111"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line110to111_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line110to111_300"; + equipment "line110to111"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line110to111_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line110to111_400"; + equipment "line110to111"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line110to111_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line110to111_500"; + equipment "line110to111"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_111"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line110to111_load_111"; + equipment "line110to111"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line110to112_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line110to112_100"; + equipment "line110to112"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_112"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line110to112_load_112"; + equipment "line110to112"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line112to113_load_112"; + equipment "line112to113"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line112to113_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line112to113_100"; + equipment "line112to113"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line112to113_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line112to113_200"; + equipment "line112to113"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line112to113_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line112to113_300"; + equipment "line112to113"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line112to113_400"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line112to113_400"; + equipment "line112to113"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line112to113_500"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line112to113_500"; + equipment "line112to113"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_113"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line112to113_load_113"; + equipment "line112to113"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; + object pole_mount + { + name "mount_line113to114_load_113"; + equipment "line113to114"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line113to114_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line113to114_100"; + equipment "line113to114"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line113to114_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line113to114_200"; + equipment "line113to114"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line113to114_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line113to114_300"; + equipment "line113to114"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_load_114"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line113to114_load_114"; + equipment "line113to114"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_135"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line135to35_node_135"; + equipment "line135to35"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line135to35_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line135to35_100"; + equipment "line135to35"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line135to35_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line135to35_200"; + equipment "line135to35"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line135to35_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line135to35_300"; + equipment "line135to35"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_149"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line149to1_node_149"; + equipment "line149to1"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line149to1_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line149to1_100"; + equipment "line149to1"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line149to1_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line149to1_200"; + equipment "line149to1"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line149to1_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line149to1_300"; + equipment "line149to1"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_152"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line152to52_node_152"; + equipment "line152to52"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line152to52_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line152to52_100"; + equipment "line152to52"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line152to52_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line152to52_200"; + equipment "line152to52"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line152to52_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line152to52_300"; + equipment "line152to52"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_16001"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line16001to67_node_16001"; + equipment "line16001to67"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line16001to67_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line16001to67_100"; + equipment "line16001to67"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line16001to67_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line16001to67_200"; + equipment "line16001to67"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line16001to67_300"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line16001to67_300"; + equipment "line16001to67"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_node_197"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line197to101_node_197"; + equipment "line197to101"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line197to101_100"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line197to101_100"; + equipment "line197to101"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} +object pole +{ + name "pole_line197to101_200"; + configuration "WOOD-EC-45/4"; + weather "example"; + install_year "2000"; + tilt_angle "0 deg"; + tilt_direction "0 deg"; + object pole_mount + { + name "mount_line197to101_200"; + equipment "line197to101"; + pole_spacing "100.0 ft"; + height "40 ft"; + offset "0 ft"; + area "0 sf"; + direction "0 deg"; + weight "0 lb"; + }; +} diff --git a/tools/autotest/test_group_modify_opt.glm b/tools/autotest/test_group_modify_opt.glm new file mode 100644 index 000000000..26c55b505 --- /dev/null +++ b/tools/autotest/test_group_modify_opt.glm @@ -0,0 +1,1244 @@ +// generated by /usr/local/opt/gridlabd/4.3.3-230729-develop_add_group_tool-darwin_22-x86_64/share/gridlabd/group.py -i=test_group.json --modify --force -o=test_group_modify_opt.glm at 2023-07-29 10:35:54.839295 +#begin python +groups = {'island_1': ['node_3', 'node_8', 'node_13', 'node_14', 'node_15', 'node_18', 'node_21', 'node_23', 'node_25', 'node_26', 'node_27', 'node_149', 'node_250', 'node_901', 'node_2501', 'load_1', 'load_2', 'load_4', 'load_5', 'load_6', 'load_7', 'load_9', 'load_10', 'load_11', 'load_12', 'load_16', 'load_17', 'load_19', 'load_20', 'load_22', 'load_24', 'load_28', 'load_29', 'load_30', 'load_31', 'load_32', 'load_33', 'load_34', 'line1to2', 'line1to3', 'line1to7', 'line3to4', 'line3to5', 'line5to6', 'line7to8', 'line8to12', 'line8to9', 'line8to13', 'line901to14', 'line13to34', 'line13to18', 'line14to11', 'line14to10', 'line15to16', 'line15to17', 'line18to19', 'line18to21', 'line19to20', 'line21to22', 'line21to23', 'line23to24', 'line23to25', 'line2501to26', 'line25to28', 'line26to27', 'line26to31', 'line27to33', 'line28to29', 'line29to30', 'line30to250', 'line31to32', 'line34to15', 'line149to1', 'reg9to901', 'reg25to2501', 'pole_load_9', 'mount_reg9to901', 'mount_line8to9_load_9', 'pole_node_25', 'mount_reg25to2501', 'mount_line23to25_node_25', 'mount_line25to28_node_25', 'mount_line8to13_node_13', 'mount_line13to34_node_13', 'mount_line13to18_node_13', 'mount_line13to18_node_18', 'mount_line18to19_node_18', 'mount_line18to21_node_18', 'pole_load_1', 'mount_line1to2_load_1', 'mount_line1to3_load_1', 'mount_line1to7_load_1', 'mount_line149to1_load_1', 'pole_line1to2_100', 'mount_line1to2_100', 'pole_load_2', 'mount_line1to2_load_2', 'pole_line1to3_100', 'mount_line1to3_100', 'pole_line1to3_200', 'mount_line1to3_200', 'pole_node_3', 'mount_line1to3_node_3', 'mount_line3to4_node_3', 'mount_line3to5_node_3', 'pole_line1to7_100', 'mount_line1to7_100', 'pole_line1to7_200', 'mount_line1to7_200', 'pole_load_7', 'mount_line1to7_load_7', 'mount_line7to8_load_7', 'pole_line3to4_100', 'mount_line3to4_100', 'pole_load_4', 'mount_line3to4_load_4', 'pole_line3to5_100', 'mount_line3to5_100', 'pole_line3to5_200', 'mount_line3to5_200', 'pole_line3to5_300', 'mount_line3to5_300', 'pole_load_5', 'mount_line3to5_load_5', 'mount_line5to6_load_5', 'pole_line5to6_100', 'mount_line5to6_100', 'pole_line5to6_200', 'mount_line5to6_200', 'pole_load_6', 'mount_line5to6_load_6', 'pole_line7to8_100', 'mount_line7to8_100', 'pole_node_8', 'mount_line7to8_node_8', 'mount_line8to12_node_8', 'mount_line8to9_node_8', 'mount_line8to13_node_8', 'pole_line8to12_100', 'mount_line8to12_100', 'pole_line8to12_200', 'mount_line8to12_200', 'pole_load_12', 'mount_line8to12_load_12', 'pole_line8to9_100', 'mount_line8to9_100', 'pole_line8to9_200', 'mount_line8to9_200', 'pole_line8to13_100', 'mount_line8to13_100', 'pole_line8to13_200', 'mount_line8to13_200', 'pole_node_901', 'mount_line901to14_node_901', 'pole_line901to14_100', 'mount_line901to14_100', 'pole_line901to14_200', 'mount_line901to14_200', 'pole_line901to14_300', 'mount_line901to14_300', 'pole_line901to14_400', 'mount_line901to14_400', 'pole_node_14', 'mount_line901to14_node_14', 'mount_line14to11_node_14', 'mount_line14to10_node_14', 'pole_line13to34_100', 'mount_line13to34_100', 'pole_load_34', 'mount_line13to34_load_34', 'mount_line34to15_load_34', 'pole_line13to18_100', 'mount_line13to18_100', 'pole_line13to18_200', 'mount_line13to18_200', 'pole_line13to18_300', 'mount_line13to18_300', 'pole_line13to18_400', 'mount_line13to18_400', 'pole_line13to18_500', 'mount_line13to18_500', 'pole_line13to18_600', 'mount_line13to18_600', 'pole_line13to18_700', 'mount_line13to18_700', 'pole_line13to18_800', 'mount_line13to18_800', 'pole_line14to11_100', 'mount_line14to11_100', 'pole_line14to11_200', 'mount_line14to11_200', 'pole_load_11', 'mount_line14to11_load_11', 'pole_line14to10_100', 'mount_line14to10_100', 'pole_line14to10_200', 'mount_line14to10_200', 'pole_load_10', 'mount_line14to10_load_10', 'pole_node_15', 'mount_line15to16_node_15', 'mount_line15to17_node_15', 'mount_line34to15_node_15', 'pole_line15to16_100', 'mount_line15to16_100', 'pole_line15to16_200', 'mount_line15to16_200', 'pole_line15to16_300', 'mount_line15to16_300', 'pole_load_16', 'mount_line15to16_load_16', 'pole_line15to17_100', 'mount_line15to17_100', 'pole_line15to17_200', 'mount_line15to17_200', 'pole_line15to17_300', 'mount_line15to17_300', 'pole_load_17', 'mount_line15to17_load_17', 'pole_line18to19_100', 'mount_line18to19_100', 'pole_line18to19_200', 'mount_line18to19_200', 'pole_load_19', 'mount_line18to19_load_19', 'mount_line19to20_load_19', 'pole_line18to21_100', 'mount_line18to21_100', 'pole_line18to21_200', 'mount_line18to21_200', 'pole_node_21', 'mount_line18to21_node_21', 'mount_line21to22_node_21', 'mount_line21to23_node_21', 'pole_line19to20_100', 'mount_line19to20_100', 'pole_line19to20_200', 'mount_line19to20_200', 'pole_line19to20_300', 'mount_line19to20_300', 'pole_load_20', 'mount_line19to20_load_20', 'pole_line21to22_100', 'mount_line21to22_100', 'pole_line21to22_200', 'mount_line21to22_200', 'pole_line21to22_300', 'mount_line21to22_300', 'pole_line21to22_400', 'mount_line21to22_400', 'pole_line21to22_500', 'mount_line21to22_500', 'pole_load_22', 'mount_line21to22_load_22', 'pole_line21to23_100', 'mount_line21to23_100', 'pole_line21to23_200', 'mount_line21to23_200', 'pole_node_23', 'mount_line21to23_node_23', 'mount_line23to24_node_23', 'mount_line23to25_node_23', 'pole_line23to24_100', 'mount_line23to24_100', 'pole_line23to24_200', 'mount_line23to24_200', 'pole_line23to24_300', 'mount_line23to24_300', 'pole_line23to24_400', 'mount_line23to24_400', 'pole_line23to24_500', 'mount_line23to24_500', 'pole_load_24', 'mount_line23to24_load_24', 'pole_line23to25_100', 'mount_line23to25_100', 'pole_line23to25_200', 'mount_line23to25_200', 'pole_node_2501', 'mount_line2501to26_node_2501', 'pole_line2501to26_100', 'mount_line2501to26_100', 'pole_line2501to26_200', 'mount_line2501to26_200', 'pole_line2501to26_300', 'mount_line2501to26_300', 'pole_node_26', 'mount_line2501to26_node_26', 'mount_line26to27_node_26', 'mount_line26to31_node_26', 'pole_line25to28_100', 'mount_line25to28_100', 'pole_load_28', 'mount_line25to28_load_28', 'mount_line28to29_load_28', 'pole_line26to27_100', 'mount_line26to27_100', 'pole_line26to27_200', 'mount_line26to27_200', 'pole_node_27', 'mount_line26to27_node_27', 'mount_line27to33_node_27', 'pole_line26to31_100', 'mount_line26to31_100', 'pole_line26to31_200', 'mount_line26to31_200', 'pole_load_31', 'mount_line26to31_load_31', 'mount_line31to32_load_31', 'pole_line27to33_100', 'mount_line27to33_100', 'pole_line27to33_200', 'mount_line27to33_200', 'pole_line27to33_300', 'mount_line27to33_300', 'pole_line27to33_400', 'mount_line27to33_400', 'pole_load_33', 'mount_line27to33_load_33', 'pole_line28to29_100', 'mount_line28to29_100', 'pole_line28to29_200', 'mount_line28to29_200', 'pole_load_29', 'mount_line28to29_load_29', 'mount_line29to30_load_29', 'pole_line29to30_100', 'mount_line29to30_100', 'pole_line29to30_200', 'mount_line29to30_200', 'pole_line29to30_300', 'mount_line29to30_300', 'pole_load_30', 'mount_line29to30_load_30', 'mount_line30to250_load_30', 'pole_line30to250_100', 'mount_line30to250_100', 'pole_line31to32_100', 'mount_line31to32_100', 'pole_line31to32_200', 'mount_line31to32_200', 'pole_load_32', 'mount_line31to32_load_32', 'pole_node_149', 'mount_line149to1_node_149', 'pole_line149to1_100', 'mount_line149to1_100', 'pole_line149to1_200', 'mount_line149to1_200', 'pole_line149to1_300', 'mount_line149to1_300'], 'island_7': ['substation_meter'], 'island_8': ['node_36', 'node_40', 'node_44', 'node_135', 'node_151', 'load_35', 'load_37', 'load_38', 'load_39', 'load_41', 'load_42', 'load_43', 'load_45', 'load_46', 'load_47', 'load_48', 'load_49', 'load_50', 'load_51', 'line35to36', 'line35to40', 'line36to37', 'line36to38', 'line38to39', 'line40to41', 'line40to42', 'line42to43', 'line42to44', 'line44to45', 'line44to47', 'line45to46', 'line47to48', 'line47to49', 'line49to50', 'line50to51', 'line51to151', 'line135to35', 'mount_line51to151_node_151', 'pole_load_35', 'mount_line35to36_load_35', 'mount_line35to40_load_35', 'mount_line135to35_load_35', 'pole_line35to36_100', 'mount_line35to36_100', 'pole_line35to36_200', 'mount_line35to36_200', 'pole_line35to36_300', 'mount_line35to36_300', 'pole_line35to36_400', 'mount_line35to36_400', 'pole_line35to36_500', 'mount_line35to36_500', 'pole_line35to36_600', 'mount_line35to36_600', 'pole_node_36', 'mount_line35to36_node_36', 'mount_line36to37_node_36', 'mount_line36to38_node_36', 'pole_line35to40_100', 'mount_line35to40_100', 'pole_line35to40_200', 'mount_line35to40_200', 'pole_node_40', 'mount_line35to40_node_40', 'mount_line40to41_node_40', 'mount_line40to42_node_40', 'pole_line36to37_100', 'mount_line36to37_100', 'pole_line36to37_200', 'mount_line36to37_200', 'pole_load_37', 'mount_line36to37_load_37', 'pole_line36to38_100', 'mount_line36to38_100', 'pole_line36to38_200', 'mount_line36to38_200', 'pole_load_38', 'mount_line36to38_load_38', 'mount_line38to39_load_38', 'pole_line38to39_100', 'mount_line38to39_100', 'pole_line38to39_200', 'mount_line38to39_200', 'pole_line38to39_300', 'mount_line38to39_300', 'pole_load_39', 'mount_line38to39_load_39', 'pole_line40to41_100', 'mount_line40to41_100', 'pole_line40to41_200', 'mount_line40to41_200', 'pole_line40to41_300', 'mount_line40to41_300', 'pole_load_41', 'mount_line40to41_load_41', 'pole_line40to42_100', 'mount_line40to42_100', 'pole_line40to42_200', 'mount_line40to42_200', 'pole_load_42', 'mount_line40to42_load_42', 'mount_line42to43_load_42', 'mount_line42to44_load_42', 'pole_line42to43_100', 'mount_line42to43_100', 'pole_line42to43_200', 'mount_line42to43_200', 'pole_line42to43_300', 'mount_line42to43_300', 'pole_line42to43_400', 'mount_line42to43_400', 'pole_load_43', 'mount_line42to43_load_43', 'pole_line42to44_100', 'mount_line42to44_100', 'pole_node_44', 'mount_line42to44_node_44', 'mount_line44to45_node_44', 'mount_line44to47_node_44', 'pole_line44to45_100', 'mount_line44to45_100', 'pole_load_45', 'mount_line44to45_load_45', 'mount_line45to46_load_45', 'pole_line44to47_100', 'mount_line44to47_100', 'pole_line44to47_200', 'mount_line44to47_200', 'pole_load_47', 'mount_line44to47_load_47', 'mount_line47to48_load_47', 'mount_line47to49_load_47', 'pole_line45to46_100', 'mount_line45to46_100', 'pole_line45to46_200', 'mount_line45to46_200', 'pole_load_46', 'mount_line45to46_load_46', 'pole_line47to48_100', 'mount_line47to48_100', 'pole_load_48', 'mount_line47to48_load_48', 'pole_line47to49_100', 'mount_line47to49_100', 'pole_line47to49_200', 'mount_line47to49_200', 'pole_load_49', 'mount_line47to49_load_49', 'mount_line49to50_load_49', 'pole_line49to50_100', 'mount_line49to50_100', 'pole_line49to50_200', 'mount_line49to50_200', 'pole_load_50', 'mount_line49to50_load_50', 'mount_line50to51_load_50', 'pole_line50to51_100', 'mount_line50to51_100', 'pole_line50to51_200', 'mount_line50to51_200', 'pole_load_51', 'mount_line50to51_load_51', 'mount_line51to151_load_51', 'pole_line51to151_100', 'mount_line51to151_100', 'pole_line51to151_200', 'mount_line51to151_200', 'pole_line51to151_300', 'mount_line51to151_300', 'pole_line51to151_400', 'mount_line51to151_400', 'pole_node_135', 'mount_line135to35_node_135', 'pole_line135to35_100', 'mount_line135to35_100', 'pole_line135to35_200', 'mount_line135to35_200', 'pole_line135to35_300', 'mount_line135to35_300'], 'island_9': ['node_54', 'node_57', 'node_61', 'node_152', 'load_52', 'load_53', 'load_55', 'load_56', 'load_58', 'load_59', 'load_60', 'load_62', 'load_63', 'load_64', 'load_65', 'load_66', 'line52to53', 'line53to54', 'line54to55', 'line54to57', 'line55to56', 'line57to58', 'line57to60', 'line58to59', 'line60to61', 'line60to62', 'line62to63', 'line63to64', 'line64to65', 'line65to66', 'line152to52', 'mount_line53to54_node_54', 'mount_line54to55_node_54', 'mount_line54to57_node_54', 'mount_line57to60_load_60', 'mount_line60to61_load_60', 'mount_line60to61_node_61', 'pole_load_52', 'mount_line52to53_load_52', 'mount_line152to52_load_52', 'pole_line52to53_100', 'mount_line52to53_100', 'pole_load_53', 'mount_line52to53_load_53', 'mount_line53to54_load_53', 'pole_line53to54_100', 'mount_line53to54_100', 'pole_line54to55_100', 'mount_line54to55_100', 'pole_line54to55_200', 'mount_line54to55_200', 'pole_load_55', 'mount_line54to55_load_55', 'mount_line55to56_load_55', 'pole_line54to57_100', 'mount_line54to57_100', 'pole_line54to57_200', 'mount_line54to57_200', 'pole_line54to57_300', 'mount_line54to57_300', 'pole_node_57', 'mount_line54to57_node_57', 'mount_line57to58_node_57', 'mount_line57to60_node_57', 'pole_line55to56_100', 'mount_line55to56_100', 'pole_line55to56_200', 'mount_line55to56_200', 'pole_load_56', 'mount_line55to56_load_56', 'pole_line57to58_100', 'mount_line57to58_100', 'pole_line57to58_200', 'mount_line57to58_200', 'pole_load_58', 'mount_line57to58_load_58', 'mount_line58to59_load_58', 'pole_line57to60_100', 'mount_line57to60_100', 'pole_line57to60_200', 'mount_line57to60_200', 'pole_line57to60_300', 'mount_line57to60_300', 'pole_line57to60_400', 'mount_line57to60_400', 'pole_line57to60_500', 'mount_line57to60_500', 'pole_line57to60_600', 'mount_line57to60_600', 'pole_line57to60_700', 'mount_line57to60_700', 'pole_line58to59_100', 'mount_line58to59_100', 'pole_line58to59_200', 'mount_line58to59_200', 'pole_load_59', 'mount_line58to59_load_59', 'pole_line60to61_100', 'mount_line60to61_100', 'pole_line60to61_200', 'mount_line60to61_200', 'pole_line60to61_300', 'mount_line60to61_300', 'pole_line60to61_400', 'mount_line60to61_400', 'pole_line60to61_500', 'mount_line60to61_500', 'pole_node_152', 'mount_line152to52_node_152', 'pole_line152to52_100', 'mount_line152to52_100', 'pole_line152to52_200', 'mount_line152to52_200', 'pole_line152to52_300', 'mount_line152to52_300'], 'island_10': ['node_67', 'node_72', 'node_78', 'node_81', 'node_89', 'node_91', 'node_93', 'node_97', 'node_160', 'node_450', 'node_16001', 'load_68', 'load_69', 'load_70', 'load_71', 'load_73', 'load_74', 'load_75', 'load_76', 'load_77', 'load_79', 'load_80', 'load_82', 'load_83', 'load_84', 'load_85', 'load_86', 'load_87', 'load_88', 'load_90', 'load_92', 'load_94', 'load_95', 'load_96', 'load_98', 'load_99', 'load_100', 'line67to68', 'line67to72', 'line67to97', 'line68to69', 'line69to70', 'line70to71', 'line72to73', 'line72to76', 'line73to74', 'line74to75', 'line76to77', 'line76to86', 'line77to78', 'line78to79', 'line78to80', 'line80to81', 'line81to82', 'line81to84', 'line82to83', 'line84to85', 'line86to87', 'line87to88', 'line87to89', 'line89to90', 'line89to91', 'line91to92', 'line91to93', 'line93to94', 'line93to95', 'line95to96', 'line97to98', 'line98to99', 'line99to100', 'line100to450', 'line16001to67', 'reg160to16001', 'pole_node_160', 'mount_reg160to16001', 'mount_line67to97_node_97', 'mount_line97to98_node_97', 'pole_node_67', 'mount_line67to68_node_67', 'mount_line67to72_node_67', 'mount_line67to97_node_67', 'mount_line16001to67_node_67', 'pole_line67to68_100', 'mount_line67to68_100', 'pole_load_68', 'mount_line67to68_load_68', 'mount_line68to69_load_68', 'pole_line67to72_100', 'mount_line67to72_100', 'pole_line67to72_200', 'mount_line67to72_200', 'pole_node_72', 'mount_line67to72_node_72', 'mount_line72to73_node_72', 'mount_line72to76_node_72', 'pole_line67to97_100', 'mount_line67to97_100', 'pole_line67to97_200', 'mount_line67to97_200', 'pole_line68to69_100', 'mount_line68to69_100', 'pole_line68to69_200', 'mount_line68to69_200', 'pole_load_69', 'mount_line68to69_load_69', 'mount_line69to70_load_69', 'pole_line69to70_100', 'mount_line69to70_100', 'pole_line69to70_200', 'mount_line69to70_200', 'pole_line69to70_300', 'mount_line69to70_300', 'pole_load_70', 'mount_line69to70_load_70', 'mount_line70to71_load_70', 'pole_line70to71_100', 'mount_line70to71_100', 'pole_line70to71_200', 'mount_line70to71_200', 'pole_load_71', 'mount_line70to71_load_71', 'pole_line72to73_100', 'mount_line72to73_100', 'pole_line72to73_200', 'mount_line72to73_200', 'pole_load_73', 'mount_line72to73_load_73', 'mount_line73to74_load_73', 'pole_line72to76_100', 'mount_line72to76_100', 'pole_load_76', 'mount_line72to76_load_76', 'mount_line76to77_load_76', 'mount_line76to86_load_76', 'pole_line73to74_100', 'mount_line73to74_100', 'pole_line73to74_200', 'mount_line73to74_200', 'pole_line73to74_300', 'mount_line73to74_300', 'pole_load_74', 'mount_line73to74_load_74', 'mount_line74to75_load_74', 'pole_line74to75_100', 'mount_line74to75_100', 'pole_line74to75_200', 'mount_line74to75_200', 'pole_line74to75_300', 'mount_line74to75_300', 'pole_load_75', 'mount_line74to75_load_75', 'pole_line76to77_100', 'mount_line76to77_100', 'pole_line76to77_200', 'mount_line76to77_200', 'pole_line76to77_300', 'mount_line76to77_300', 'pole_load_77', 'mount_line76to77_load_77', 'mount_line77to78_load_77', 'pole_line76to86_100', 'mount_line76to86_100', 'pole_line76to86_200', 'mount_line76to86_200', 'pole_line76to86_300', 'mount_line76to86_300', 'pole_line76to86_400', 'mount_line76to86_400', 'pole_line76to86_500', 'mount_line76to86_500', 'pole_line76to86_600', 'mount_line76to86_600', 'pole_load_86', 'mount_line76to86_load_86', 'mount_line86to87_load_86', 'pole_node_78', 'mount_line77to78_node_78', 'mount_line78to79_node_78', 'mount_line78to80_node_78', 'pole_line78to79_100', 'mount_line78to79_100', 'pole_line78to79_200', 'mount_line78to79_200', 'pole_load_79', 'mount_line78to79_load_79', 'pole_line78to80_100', 'mount_line78to80_100', 'pole_line78to80_200', 'mount_line78to80_200', 'pole_line78to80_300', 'mount_line78to80_300', 'pole_line78to80_400', 'mount_line78to80_400', 'pole_load_80', 'mount_line78to80_load_80', 'mount_line80to81_load_80', 'pole_line80to81_100', 'mount_line80to81_100', 'pole_line80to81_200', 'mount_line80to81_200', 'pole_line80to81_300', 'mount_line80to81_300', 'pole_line80to81_400', 'mount_line80to81_400', 'pole_node_81', 'mount_line80to81_node_81', 'mount_line81to82_node_81', 'mount_line81to84_node_81', 'pole_line81to82_100', 'mount_line81to82_100', 'pole_line81to82_200', 'mount_line81to82_200', 'pole_load_82', 'mount_line81to82_load_82', 'mount_line82to83_load_82', 'pole_line81to84_100', 'mount_line81to84_100', 'pole_line81to84_200', 'mount_line81to84_200', 'pole_line81to84_300', 'mount_line81to84_300', 'pole_line81to84_400', 'mount_line81to84_400', 'pole_line81to84_500', 'mount_line81to84_500', 'pole_line81to84_600', 'mount_line81to84_600', 'pole_load_84', 'mount_line81to84_load_84', 'mount_line84to85_load_84', 'pole_line82to83_100', 'mount_line82to83_100', 'pole_line82to83_200', 'mount_line82to83_200', 'pole_load_83', 'mount_line82to83_load_83', 'pole_line84to85_100', 'mount_line84to85_100', 'pole_line84to85_200', 'mount_line84to85_200', 'pole_line84to85_300', 'mount_line84to85_300', 'pole_line84to85_400', 'mount_line84to85_400', 'pole_load_85', 'mount_line84to85_load_85', 'pole_line86to87_100', 'mount_line86to87_100', 'pole_line86to87_200', 'mount_line86to87_200', 'pole_line86to87_300', 'mount_line86to87_300', 'pole_line86to87_400', 'mount_line86to87_400', 'pole_load_87', 'mount_line86to87_load_87', 'mount_line87to88_load_87', 'mount_line87to89_load_87', 'pole_line87to88_100', 'mount_line87to88_100', 'pole_load_88', 'mount_line87to88_load_88', 'pole_line87to89_100', 'mount_line87to89_100', 'pole_line87to89_200', 'mount_line87to89_200', 'pole_node_89', 'mount_line87to89_node_89', 'mount_line89to90_node_89', 'mount_line89to91_node_89', 'pole_line89to90_100', 'mount_line89to90_100', 'pole_line89to90_200', 'mount_line89to90_200', 'pole_load_90', 'mount_line89to90_load_90', 'pole_line89to91_100', 'mount_line89to91_100', 'pole_line89to91_200', 'mount_line89to91_200', 'pole_node_91', 'mount_line89to91_node_91', 'mount_line91to92_node_91', 'mount_line91to93_node_91', 'pole_line91to92_100', 'mount_line91to92_100', 'pole_line91to92_200', 'mount_line91to92_200', 'pole_load_92', 'mount_line91to92_load_92', 'pole_line91to93_100', 'mount_line91to93_100', 'pole_line91to93_200', 'mount_line91to93_200', 'pole_node_93', 'mount_line91to93_node_93', 'mount_line93to94_node_93', 'mount_line93to95_node_93', 'pole_line93to94_100', 'mount_line93to94_100', 'pole_line93to94_200', 'mount_line93to94_200', 'pole_load_94', 'mount_line93to94_load_94', 'pole_line93to95_100', 'mount_line93to95_100', 'pole_line93to95_200', 'mount_line93to95_200', 'pole_line95to96_100', 'mount_line95to96_100', 'pole_load_96', 'mount_line95to96_load_96', 'pole_line97to98_100', 'mount_line97to98_100', 'pole_line97to98_200', 'mount_line97to98_200', 'pole_load_98', 'mount_line97to98_load_98', 'mount_line98to99_load_98', 'pole_line98to99_100', 'mount_line98to99_100', 'pole_line98to99_200', 'mount_line98to99_200', 'pole_line98to99_300', 'mount_line98to99_300', 'pole_line98to99_400', 'mount_line98to99_400', 'pole_line98to99_500', 'mount_line98to99_500', 'pole_load_99', 'mount_line98to99_load_99', 'mount_line99to100_load_99', 'pole_line99to100_100', 'mount_line99to100_100', 'pole_line99to100_200', 'mount_line99to100_200', 'pole_load_100', 'mount_line99to100_load_100', 'mount_line100to450_load_100', 'pole_line100to450_100', 'mount_line100to450_100', 'pole_line100to450_200', 'mount_line100to450_200', 'pole_line100to450_300', 'mount_line100to450_300', 'pole_line100to450_400', 'mount_line100to450_400', 'pole_line100to450_500', 'mount_line100to450_500', 'pole_line100to450_600', 'mount_line100to450_600', 'pole_line100to450_700', 'mount_line100to450_700', 'pole_node_16001', 'mount_line16001to67_node_16001', 'pole_line16001to67_100', 'mount_line16001to67_100', 'pole_line16001to67_200', 'mount_line16001to67_200', 'pole_line16001to67_300', 'mount_line16001to67_300'], 'island_11': ['node_101', 'node_105', 'node_108', 'node_110', 'node_197', 'node_300', 'load_102', 'load_103', 'load_104', 'load_106', 'load_107', 'load_109', 'load_111', 'load_112', 'load_113', 'load_114', 'line101to102', 'line101to105', 'line102to103', 'line103to104', 'line105to106', 'line105to108', 'line106to107', 'line108to109', 'line108to300', 'line109to110', 'line110to111', 'line110to112', 'line112to113', 'line113to114', 'line197to101', 'pole_node_101', 'mount_line101to102_node_101', 'mount_line101to105_node_101', 'mount_line197to101_node_101', 'pole_line101to102_100', 'mount_line101to102_100', 'pole_line101to102_200', 'mount_line101to102_200', 'pole_load_102', 'mount_line101to102_load_102', 'mount_line102to103_load_102', 'pole_line101to105_100', 'mount_line101to105_100', 'pole_line101to105_200', 'mount_line101to105_200', 'pole_node_105', 'mount_line101to105_node_105', 'mount_line105to106_node_105', 'mount_line105to108_node_105', 'pole_line102to103_100', 'mount_line102to103_100', 'pole_line102to103_200', 'mount_line102to103_200', 'pole_line102to103_300', 'mount_line102to103_300', 'pole_load_103', 'mount_line102to103_load_103', 'mount_line103to104_load_103', 'pole_line103to104_100', 'mount_line103to104_100', 'pole_line103to104_200', 'mount_line103to104_200', 'pole_line103to104_300', 'mount_line103to104_300', 'pole_line103to104_400', 'mount_line103to104_400', 'pole_line103to104_500', 'mount_line103to104_500', 'pole_line103to104_600', 'mount_line103to104_600', 'pole_load_104', 'mount_line103to104_load_104', 'pole_line105to106_100', 'mount_line105to106_100', 'pole_line105to106_200', 'mount_line105to106_200', 'pole_load_106', 'mount_line105to106_load_106', 'mount_line106to107_load_106', 'pole_line105to108_100', 'mount_line105to108_100', 'pole_line105to108_200', 'mount_line105to108_200', 'pole_line105to108_300', 'mount_line105to108_300', 'pole_node_108', 'mount_line105to108_node_108', 'mount_line108to109_node_108', 'mount_line108to300_node_108', 'pole_line106to107_100', 'mount_line106to107_100', 'pole_line106to107_200', 'mount_line106to107_200', 'pole_line106to107_300', 'mount_line106to107_300', 'pole_line106to107_400', 'mount_line106to107_400', 'pole_line106to107_500', 'mount_line106to107_500', 'pole_load_107', 'mount_line106to107_load_107', 'pole_line108to109_100', 'mount_line108to109_100', 'pole_line108to109_200', 'mount_line108to109_200', 'pole_line108to109_300', 'mount_line108to109_300', 'pole_line108to109_400', 'mount_line108to109_400', 'pole_load_109', 'mount_line108to109_load_109', 'mount_line109to110_load_109', 'pole_line108to300_100', 'mount_line108to300_100', 'pole_line108to300_200', 'mount_line108to300_200', 'pole_line108to300_300', 'mount_line108to300_300', 'pole_line108to300_400', 'mount_line108to300_400', 'pole_line108to300_500', 'mount_line108to300_500', 'pole_line108to300_600', 'mount_line108to300_600', 'pole_line108to300_700', 'mount_line108to300_700', 'pole_line108to300_800', 'mount_line108to300_800', 'pole_line108to300_900', 'mount_line108to300_900', 'pole_line109to110_100', 'mount_line109to110_100', 'pole_line109to110_200', 'mount_line109to110_200', 'pole_node_110', 'mount_line109to110_node_110', 'mount_line110to111_node_110', 'mount_line110to112_node_110', 'pole_line110to111_100', 'mount_line110to111_100', 'pole_line110to111_200', 'mount_line110to111_200', 'pole_line110to111_300', 'mount_line110to111_300', 'pole_line110to111_400', 'mount_line110to111_400', 'pole_line110to111_500', 'mount_line110to111_500', 'pole_load_111', 'mount_line110to111_load_111', 'pole_line110to112_100', 'mount_line110to112_100', 'pole_load_112', 'mount_line110to112_load_112', 'mount_line112to113_load_112', 'pole_line112to113_100', 'mount_line112to113_100', 'pole_line112to113_200', 'mount_line112to113_200', 'pole_line112to113_300', 'mount_line112to113_300', 'pole_line112to113_400', 'mount_line112to113_400', 'pole_line112to113_500', 'mount_line112to113_500', 'pole_load_113', 'mount_line112to113_load_113', 'mount_line113to114_load_113', 'pole_line113to114_100', 'mount_line113to114_100', 'pole_line113to114_200', 'mount_line113to114_200', 'pole_line113to114_300', 'mount_line113to114_300', 'pole_load_114', 'mount_line113to114_load_114', 'pole_node_197', 'mount_line197to101_node_197', 'pole_line197to101_100', 'mount_line197to101_100', 'pole_line197to101_200', 'mount_line197to101_200'], 'island_2': ['node_150', 'node_15001', 'reg150to15001', 'pole_node_150', 'mount_reg150to15001'], 'island_12': ['node_610', 'node_6101', 'trans6101to610', 'pole_node_6101', 'mount_trans6101to610'], 'island_13': ['cap_83'], 'island_14': ['cap_88'], 'island_15': ['cap_90'], 'island_16': ['cap_92'], 'island_3': ['node_251'], 'island_4': ['node_350'], 'island_5': ['node_451'], 'island_6': ['node_195']} +controls = {'sw13to152': ['island_1', 'island_9'], 'sw18to135': ['island_1', 'island_8'], 'sw54to94': ['island_9', 'island_10'], 'sw60to160': ['island_9', 'island_10'], 'sw61to6101': ['island_9', 'island_12'], 'sw97to197': ['island_10', 'island_11'], 'sw151to300': ['island_8', 'island_11'], 'sw15001to149': ['island_2', 'island_1'], 'sw250to251': ['island_1', 'island_3'], 'sw300to350': ['island_11', 'island_4'], 'sw450to451': ['island_10', 'island_5'], 'sw95to195': ['island_10', 'island_6']} +swingbus = {'island_1': ['node_14'], 'island_2': ['node_150'], 'island_3': ['node_251'], 'island_4': ['node_350'], 'island_5': ['node_451'], 'island_6': ['node_195']} +isolated = ['island_7', 'island_8', 'island_9', 'island_10', 'island_11', 'island_12', 'island_13', 'island_14', 'island_15', 'island_16'] +#end + +modify node_3.groupid 'island_1'; +modify node_8.groupid 'island_1'; +modify node_13.groupid 'island_1'; +modify node_14.groupid 'island_1'; +modify substation_meter.groupid 'island_7'; +modify node_15.groupid 'island_1'; +modify node_18.groupid 'island_1'; +modify node_21.groupid 'island_1'; +modify node_23.groupid 'island_1'; +modify node_25.groupid 'island_1'; +modify node_26.groupid 'island_1'; +modify node_27.groupid 'island_1'; +modify node_36.groupid 'island_8'; +modify node_40.groupid 'island_8'; +modify node_44.groupid 'island_8'; +modify node_54.groupid 'island_9'; +modify node_57.groupid 'island_9'; +modify node_61.groupid 'island_9'; +modify node_67.groupid 'island_10'; +modify node_72.groupid 'island_10'; +modify node_78.groupid 'island_10'; +modify node_81.groupid 'island_10'; +modify node_89.groupid 'island_10'; +modify node_91.groupid 'island_10'; +modify node_93.groupid 'island_10'; +modify node_97.groupid 'island_10'; +modify node_101.groupid 'island_11'; +modify node_105.groupid 'island_11'; +modify node_108.groupid 'island_11'; +modify node_110.groupid 'island_11'; +modify node_135.groupid 'island_8'; +modify node_149.groupid 'island_1'; +modify node_150.groupid 'island_2'; +modify node_151.groupid 'island_8'; +modify node_152.groupid 'island_9'; +modify node_160.groupid 'island_10'; +modify node_197.groupid 'island_11'; +modify node_250.groupid 'island_1'; +modify node_300.groupid 'island_11'; +modify node_450.groupid 'island_10'; +modify node_610.groupid 'island_12'; +modify node_901.groupid 'island_1'; +modify node_2501.groupid 'island_1'; +modify node_6101.groupid 'island_12'; +modify node_15001.groupid 'island_2'; +modify node_16001.groupid 'island_10'; +modify load_1.groupid 'island_1'; +modify load_2.groupid 'island_1'; +modify load_4.groupid 'island_1'; +modify load_5.groupid 'island_1'; +modify load_6.groupid 'island_1'; +modify load_7.groupid 'island_1'; +modify load_9.groupid 'island_1'; +modify load_10.groupid 'island_1'; +modify load_11.groupid 'island_1'; +modify load_12.groupid 'island_1'; +modify load_16.groupid 'island_1'; +modify load_17.groupid 'island_1'; +modify load_19.groupid 'island_1'; +modify load_20.groupid 'island_1'; +modify load_22.groupid 'island_1'; +modify load_24.groupid 'island_1'; +modify load_28.groupid 'island_1'; +modify load_29.groupid 'island_1'; +modify load_30.groupid 'island_1'; +modify load_31.groupid 'island_1'; +modify load_32.groupid 'island_1'; +modify load_33.groupid 'island_1'; +modify load_34.groupid 'island_1'; +modify load_35.groupid 'island_8'; +modify load_37.groupid 'island_8'; +modify load_38.groupid 'island_8'; +modify load_39.groupid 'island_8'; +modify load_41.groupid 'island_8'; +modify load_42.groupid 'island_8'; +modify load_43.groupid 'island_8'; +modify load_45.groupid 'island_8'; +modify load_46.groupid 'island_8'; +modify load_47.groupid 'island_8'; +modify load_48.groupid 'island_8'; +modify load_49.groupid 'island_8'; +modify load_50.groupid 'island_8'; +modify load_51.groupid 'island_8'; +modify load_52.groupid 'island_9'; +modify load_53.groupid 'island_9'; +modify load_55.groupid 'island_9'; +modify load_56.groupid 'island_9'; +modify load_58.groupid 'island_9'; +modify load_59.groupid 'island_9'; +modify load_60.groupid 'island_9'; +modify load_62.groupid 'island_9'; +modify load_63.groupid 'island_9'; +modify load_64.groupid 'island_9'; +modify load_65.groupid 'island_9'; +modify load_66.groupid 'island_9'; +modify load_68.groupid 'island_10'; +modify load_69.groupid 'island_10'; +modify load_70.groupid 'island_10'; +modify load_71.groupid 'island_10'; +modify load_73.groupid 'island_10'; +modify load_74.groupid 'island_10'; +modify load_75.groupid 'island_10'; +modify load_76.groupid 'island_10'; +modify load_77.groupid 'island_10'; +modify load_79.groupid 'island_10'; +modify load_80.groupid 'island_10'; +modify load_82.groupid 'island_10'; +modify load_83.groupid 'island_10'; +modify load_84.groupid 'island_10'; +modify load_85.groupid 'island_10'; +modify load_86.groupid 'island_10'; +modify load_87.groupid 'island_10'; +modify load_88.groupid 'island_10'; +modify load_90.groupid 'island_10'; +modify load_92.groupid 'island_10'; +modify load_94.groupid 'island_10'; +modify load_95.groupid 'island_10'; +modify load_96.groupid 'island_10'; +modify load_98.groupid 'island_10'; +modify load_99.groupid 'island_10'; +modify load_100.groupid 'island_10'; +modify load_102.groupid 'island_11'; +modify load_103.groupid 'island_11'; +modify load_104.groupid 'island_11'; +modify load_106.groupid 'island_11'; +modify load_107.groupid 'island_11'; +modify load_109.groupid 'island_11'; +modify load_111.groupid 'island_11'; +modify load_112.groupid 'island_11'; +modify load_113.groupid 'island_11'; +modify load_114.groupid 'island_11'; +modify line1to2.groupid 'island_1'; +modify line1to3.groupid 'island_1'; +modify line1to7.groupid 'island_1'; +modify line3to4.groupid 'island_1'; +modify line3to5.groupid 'island_1'; +modify line5to6.groupid 'island_1'; +modify line7to8.groupid 'island_1'; +modify line8to12.groupid 'island_1'; +modify line8to9.groupid 'island_1'; +modify line8to13.groupid 'island_1'; +modify line901to14.groupid 'island_1'; +modify line13to34.groupid 'island_1'; +modify line13to18.groupid 'island_1'; +modify line14to11.groupid 'island_1'; +modify line14to10.groupid 'island_1'; +modify line15to16.groupid 'island_1'; +modify line15to17.groupid 'island_1'; +modify line18to19.groupid 'island_1'; +modify line18to21.groupid 'island_1'; +modify line19to20.groupid 'island_1'; +modify line21to22.groupid 'island_1'; +modify line21to23.groupid 'island_1'; +modify line23to24.groupid 'island_1'; +modify line23to25.groupid 'island_1'; +modify line2501to26.groupid 'island_1'; +modify line25to28.groupid 'island_1'; +modify line26to27.groupid 'island_1'; +modify line26to31.groupid 'island_1'; +modify line27to33.groupid 'island_1'; +modify line28to29.groupid 'island_1'; +modify line29to30.groupid 'island_1'; +modify line30to250.groupid 'island_1'; +modify line31to32.groupid 'island_1'; +modify line34to15.groupid 'island_1'; +modify line35to36.groupid 'island_8'; +modify line35to40.groupid 'island_8'; +modify line36to37.groupid 'island_8'; +modify line36to38.groupid 'island_8'; +modify line38to39.groupid 'island_8'; +modify line40to41.groupid 'island_8'; +modify line40to42.groupid 'island_8'; +modify line42to43.groupid 'island_8'; +modify line42to44.groupid 'island_8'; +modify line44to45.groupid 'island_8'; +modify line44to47.groupid 'island_8'; +modify line45to46.groupid 'island_8'; +modify line47to48.groupid 'island_8'; +modify line47to49.groupid 'island_8'; +modify line49to50.groupid 'island_8'; +modify line50to51.groupid 'island_8'; +modify line51to151.groupid 'island_8'; +modify line52to53.groupid 'island_9'; +modify line53to54.groupid 'island_9'; +modify line54to55.groupid 'island_9'; +modify line54to57.groupid 'island_9'; +modify line55to56.groupid 'island_9'; +modify line57to58.groupid 'island_9'; +modify line57to60.groupid 'island_9'; +modify line58to59.groupid 'island_9'; +modify line60to61.groupid 'island_9'; +modify line60to62.groupid 'island_9'; +modify line62to63.groupid 'island_9'; +modify line63to64.groupid 'island_9'; +modify line64to65.groupid 'island_9'; +modify line65to66.groupid 'island_9'; +modify line67to68.groupid 'island_10'; +modify line67to72.groupid 'island_10'; +modify line67to97.groupid 'island_10'; +modify line68to69.groupid 'island_10'; +modify line69to70.groupid 'island_10'; +modify line70to71.groupid 'island_10'; +modify line72to73.groupid 'island_10'; +modify line72to76.groupid 'island_10'; +modify line73to74.groupid 'island_10'; +modify line74to75.groupid 'island_10'; +modify line76to77.groupid 'island_10'; +modify line76to86.groupid 'island_10'; +modify line77to78.groupid 'island_10'; +modify line78to79.groupid 'island_10'; +modify line78to80.groupid 'island_10'; +modify line80to81.groupid 'island_10'; +modify line81to82.groupid 'island_10'; +modify line81to84.groupid 'island_10'; +modify line82to83.groupid 'island_10'; +modify line84to85.groupid 'island_10'; +modify line86to87.groupid 'island_10'; +modify line87to88.groupid 'island_10'; +modify line87to89.groupid 'island_10'; +modify line89to90.groupid 'island_10'; +modify line89to91.groupid 'island_10'; +modify line91to92.groupid 'island_10'; +modify line91to93.groupid 'island_10'; +modify line93to94.groupid 'island_10'; +modify line93to95.groupid 'island_10'; +modify line95to96.groupid 'island_10'; +modify line97to98.groupid 'island_10'; +modify line98to99.groupid 'island_10'; +modify line99to100.groupid 'island_10'; +modify line100to450.groupid 'island_10'; +modify line101to102.groupid 'island_11'; +modify line101to105.groupid 'island_11'; +modify line102to103.groupid 'island_11'; +modify line103to104.groupid 'island_11'; +modify line105to106.groupid 'island_11'; +modify line105to108.groupid 'island_11'; +modify line106to107.groupid 'island_11'; +modify line108to109.groupid 'island_11'; +modify line108to300.groupid 'island_11'; +modify line109to110.groupid 'island_11'; +modify line110to111.groupid 'island_11'; +modify line110to112.groupid 'island_11'; +modify line112to113.groupid 'island_11'; +modify line113to114.groupid 'island_11'; +modify line135to35.groupid 'island_8'; +modify line149to1.groupid 'island_1'; +modify line152to52.groupid 'island_9'; +modify line16001to67.groupid 'island_10'; +modify line197to101.groupid 'island_11'; +modify trans6101to610.groupid 'island_12'; +modify reg150to15001.groupid 'island_2'; +modify reg9to901.groupid 'island_1'; +modify reg25to2501.groupid 'island_1'; +modify reg160to16001.groupid 'island_10'; +modify sw13to152.groupid 'control'; +modify sw18to135.groupid 'control'; +modify sw54to94.groupid 'control'; +modify sw60to160.groupid 'control'; +modify sw61to6101.groupid 'control'; +modify sw97to197.groupid 'control'; +modify sw151to300.groupid 'control'; +modify sw15001to149.groupid 'control'; +modify cap_83.groupid 'island_13'; +modify cap_88.groupid 'island_14'; +modify cap_90.groupid 'island_15'; +modify cap_92.groupid 'island_16'; +modify node_251.groupid 'island_3'; +modify node_350.groupid 'island_4'; +modify node_451.groupid 'island_5'; +modify node_195.groupid 'island_6'; +modify sw250to251.groupid 'control'; +modify sw300to350.groupid 'control'; +modify sw450to451.groupid 'control'; +modify sw95to195.groupid 'control'; +modify pole_node_6101.groupid 'island_12'; +modify mount_trans6101to610.groupid 'island_12'; +modify pole_node_150.groupid 'island_2'; +modify mount_reg150to15001.groupid 'island_2'; +modify pole_load_9.groupid 'island_1'; +modify mount_reg9to901.groupid 'island_1'; +modify mount_line8to9_load_9.groupid 'island_1'; +modify pole_node_25.groupid 'island_1'; +modify mount_reg25to2501.groupid 'island_1'; +modify mount_line23to25_node_25.groupid 'island_1'; +modify mount_line25to28_node_25.groupid 'island_1'; +modify pole_node_160.groupid 'island_10'; +modify mount_reg160to16001.groupid 'island_10'; +modify pole_node_13.groupid 'control'; +modify mount_sw13to152.groupid 'control'; +modify mount_line8to13_node_13.groupid 'island_1'; +modify mount_line13to34_node_13.groupid 'island_1'; +modify mount_line13to18_node_13.groupid 'island_1'; +modify pole_node_18.groupid 'control'; +modify mount_sw18to135.groupid 'control'; +modify mount_line13to18_node_18.groupid 'island_1'; +modify mount_line18to19_node_18.groupid 'island_1'; +modify mount_line18to21_node_18.groupid 'island_1'; +modify pole_node_54.groupid 'control'; +modify mount_sw54to94.groupid 'control'; +modify mount_line53to54_node_54.groupid 'island_9'; +modify mount_line54to55_node_54.groupid 'island_9'; +modify mount_line54to57_node_54.groupid 'island_9'; +modify pole_load_60.groupid 'control'; +modify mount_sw60to160.groupid 'control'; +modify mount_line57to60_load_60.groupid 'island_9'; +modify mount_line60to61_load_60.groupid 'island_9'; +modify pole_node_61.groupid 'control'; +modify mount_sw61to6101.groupid 'control'; +modify mount_line60to61_node_61.groupid 'island_9'; +modify pole_node_97.groupid 'control'; +modify mount_sw97to197.groupid 'control'; +modify mount_line67to97_node_97.groupid 'island_10'; +modify mount_line97to98_node_97.groupid 'island_10'; +modify pole_node_151.groupid 'control'; +modify mount_sw151to300.groupid 'control'; +modify mount_line51to151_node_151.groupid 'island_8'; +modify pole_node_15001.groupid 'control'; +modify mount_sw15001to149.groupid 'control'; +modify pole_load_1.groupid 'island_1'; +modify mount_line1to2_load_1.groupid 'island_1'; +modify mount_line1to3_load_1.groupid 'island_1'; +modify mount_line1to7_load_1.groupid 'island_1'; +modify mount_line149to1_load_1.groupid 'island_1'; +modify pole_line1to2_100.groupid 'island_1'; +modify mount_line1to2_100.groupid 'island_1'; +modify pole_load_2.groupid 'island_1'; +modify mount_line1to2_load_2.groupid 'island_1'; +modify pole_line1to3_100.groupid 'island_1'; +modify mount_line1to3_100.groupid 'island_1'; +modify pole_line1to3_200.groupid 'island_1'; +modify mount_line1to3_200.groupid 'island_1'; +modify pole_node_3.groupid 'island_1'; +modify mount_line1to3_node_3.groupid 'island_1'; +modify mount_line3to4_node_3.groupid 'island_1'; +modify mount_line3to5_node_3.groupid 'island_1'; +modify pole_line1to7_100.groupid 'island_1'; +modify mount_line1to7_100.groupid 'island_1'; +modify pole_line1to7_200.groupid 'island_1'; +modify mount_line1to7_200.groupid 'island_1'; +modify pole_load_7.groupid 'island_1'; +modify mount_line1to7_load_7.groupid 'island_1'; +modify mount_line7to8_load_7.groupid 'island_1'; +modify pole_line3to4_100.groupid 'island_1'; +modify mount_line3to4_100.groupid 'island_1'; +modify pole_load_4.groupid 'island_1'; +modify mount_line3to4_load_4.groupid 'island_1'; +modify pole_line3to5_100.groupid 'island_1'; +modify mount_line3to5_100.groupid 'island_1'; +modify pole_line3to5_200.groupid 'island_1'; +modify mount_line3to5_200.groupid 'island_1'; +modify pole_line3to5_300.groupid 'island_1'; +modify mount_line3to5_300.groupid 'island_1'; +modify pole_load_5.groupid 'island_1'; +modify mount_line3to5_load_5.groupid 'island_1'; +modify mount_line5to6_load_5.groupid 'island_1'; +modify pole_line5to6_100.groupid 'island_1'; +modify mount_line5to6_100.groupid 'island_1'; +modify pole_line5to6_200.groupid 'island_1'; +modify mount_line5to6_200.groupid 'island_1'; +modify pole_load_6.groupid 'island_1'; +modify mount_line5to6_load_6.groupid 'island_1'; +modify pole_line7to8_100.groupid 'island_1'; +modify mount_line7to8_100.groupid 'island_1'; +modify pole_node_8.groupid 'island_1'; +modify mount_line7to8_node_8.groupid 'island_1'; +modify mount_line8to12_node_8.groupid 'island_1'; +modify mount_line8to9_node_8.groupid 'island_1'; +modify mount_line8to13_node_8.groupid 'island_1'; +modify pole_line8to12_100.groupid 'island_1'; +modify mount_line8to12_100.groupid 'island_1'; +modify pole_line8to12_200.groupid 'island_1'; +modify mount_line8to12_200.groupid 'island_1'; +modify pole_load_12.groupid 'island_1'; +modify mount_line8to12_load_12.groupid 'island_1'; +modify pole_line8to9_100.groupid 'island_1'; +modify mount_line8to9_100.groupid 'island_1'; +modify pole_line8to9_200.groupid 'island_1'; +modify mount_line8to9_200.groupid 'island_1'; +modify pole_line8to13_100.groupid 'island_1'; +modify mount_line8to13_100.groupid 'island_1'; +modify pole_line8to13_200.groupid 'island_1'; +modify mount_line8to13_200.groupid 'island_1'; +modify pole_node_901.groupid 'island_1'; +modify mount_line901to14_node_901.groupid 'island_1'; +modify pole_line901to14_100.groupid 'island_1'; +modify mount_line901to14_100.groupid 'island_1'; +modify pole_line901to14_200.groupid 'island_1'; +modify mount_line901to14_200.groupid 'island_1'; +modify pole_line901to14_300.groupid 'island_1'; +modify mount_line901to14_300.groupid 'island_1'; +modify pole_line901to14_400.groupid 'island_1'; +modify mount_line901to14_400.groupid 'island_1'; +modify pole_node_14.groupid 'island_1'; +modify mount_line901to14_node_14.groupid 'island_1'; +modify mount_line14to11_node_14.groupid 'island_1'; +modify mount_line14to10_node_14.groupid 'island_1'; +modify pole_line13to34_100.groupid 'island_1'; +modify mount_line13to34_100.groupid 'island_1'; +modify pole_load_34.groupid 'island_1'; +modify mount_line13to34_load_34.groupid 'island_1'; +modify mount_line34to15_load_34.groupid 'island_1'; +modify pole_line13to18_100.groupid 'island_1'; +modify mount_line13to18_100.groupid 'island_1'; +modify pole_line13to18_200.groupid 'island_1'; +modify mount_line13to18_200.groupid 'island_1'; +modify pole_line13to18_300.groupid 'island_1'; +modify mount_line13to18_300.groupid 'island_1'; +modify pole_line13to18_400.groupid 'island_1'; +modify mount_line13to18_400.groupid 'island_1'; +modify pole_line13to18_500.groupid 'island_1'; +modify mount_line13to18_500.groupid 'island_1'; +modify pole_line13to18_600.groupid 'island_1'; +modify mount_line13to18_600.groupid 'island_1'; +modify pole_line13to18_700.groupid 'island_1'; +modify mount_line13to18_700.groupid 'island_1'; +modify pole_line13to18_800.groupid 'island_1'; +modify mount_line13to18_800.groupid 'island_1'; +modify pole_line14to11_100.groupid 'island_1'; +modify mount_line14to11_100.groupid 'island_1'; +modify pole_line14to11_200.groupid 'island_1'; +modify mount_line14to11_200.groupid 'island_1'; +modify pole_load_11.groupid 'island_1'; +modify mount_line14to11_load_11.groupid 'island_1'; +modify pole_line14to10_100.groupid 'island_1'; +modify mount_line14to10_100.groupid 'island_1'; +modify pole_line14to10_200.groupid 'island_1'; +modify mount_line14to10_200.groupid 'island_1'; +modify pole_load_10.groupid 'island_1'; +modify mount_line14to10_load_10.groupid 'island_1'; +modify pole_node_15.groupid 'island_1'; +modify mount_line15to16_node_15.groupid 'island_1'; +modify mount_line15to17_node_15.groupid 'island_1'; +modify mount_line34to15_node_15.groupid 'island_1'; +modify pole_line15to16_100.groupid 'island_1'; +modify mount_line15to16_100.groupid 'island_1'; +modify pole_line15to16_200.groupid 'island_1'; +modify mount_line15to16_200.groupid 'island_1'; +modify pole_line15to16_300.groupid 'island_1'; +modify mount_line15to16_300.groupid 'island_1'; +modify pole_load_16.groupid 'island_1'; +modify mount_line15to16_load_16.groupid 'island_1'; +modify pole_line15to17_100.groupid 'island_1'; +modify mount_line15to17_100.groupid 'island_1'; +modify pole_line15to17_200.groupid 'island_1'; +modify mount_line15to17_200.groupid 'island_1'; +modify pole_line15to17_300.groupid 'island_1'; +modify mount_line15to17_300.groupid 'island_1'; +modify pole_load_17.groupid 'island_1'; +modify mount_line15to17_load_17.groupid 'island_1'; +modify pole_line18to19_100.groupid 'island_1'; +modify mount_line18to19_100.groupid 'island_1'; +modify pole_line18to19_200.groupid 'island_1'; +modify mount_line18to19_200.groupid 'island_1'; +modify pole_load_19.groupid 'island_1'; +modify mount_line18to19_load_19.groupid 'island_1'; +modify mount_line19to20_load_19.groupid 'island_1'; +modify pole_line18to21_100.groupid 'island_1'; +modify mount_line18to21_100.groupid 'island_1'; +modify pole_line18to21_200.groupid 'island_1'; +modify mount_line18to21_200.groupid 'island_1'; +modify pole_node_21.groupid 'island_1'; +modify mount_line18to21_node_21.groupid 'island_1'; +modify mount_line21to22_node_21.groupid 'island_1'; +modify mount_line21to23_node_21.groupid 'island_1'; +modify pole_line19to20_100.groupid 'island_1'; +modify mount_line19to20_100.groupid 'island_1'; +modify pole_line19to20_200.groupid 'island_1'; +modify mount_line19to20_200.groupid 'island_1'; +modify pole_line19to20_300.groupid 'island_1'; +modify mount_line19to20_300.groupid 'island_1'; +modify pole_load_20.groupid 'island_1'; +modify mount_line19to20_load_20.groupid 'island_1'; +modify pole_line21to22_100.groupid 'island_1'; +modify mount_line21to22_100.groupid 'island_1'; +modify pole_line21to22_200.groupid 'island_1'; +modify mount_line21to22_200.groupid 'island_1'; +modify pole_line21to22_300.groupid 'island_1'; +modify mount_line21to22_300.groupid 'island_1'; +modify pole_line21to22_400.groupid 'island_1'; +modify mount_line21to22_400.groupid 'island_1'; +modify pole_line21to22_500.groupid 'island_1'; +modify mount_line21to22_500.groupid 'island_1'; +modify pole_load_22.groupid 'island_1'; +modify mount_line21to22_load_22.groupid 'island_1'; +modify pole_line21to23_100.groupid 'island_1'; +modify mount_line21to23_100.groupid 'island_1'; +modify pole_line21to23_200.groupid 'island_1'; +modify mount_line21to23_200.groupid 'island_1'; +modify pole_node_23.groupid 'island_1'; +modify mount_line21to23_node_23.groupid 'island_1'; +modify mount_line23to24_node_23.groupid 'island_1'; +modify mount_line23to25_node_23.groupid 'island_1'; +modify pole_line23to24_100.groupid 'island_1'; +modify mount_line23to24_100.groupid 'island_1'; +modify pole_line23to24_200.groupid 'island_1'; +modify mount_line23to24_200.groupid 'island_1'; +modify pole_line23to24_300.groupid 'island_1'; +modify mount_line23to24_300.groupid 'island_1'; +modify pole_line23to24_400.groupid 'island_1'; +modify mount_line23to24_400.groupid 'island_1'; +modify pole_line23to24_500.groupid 'island_1'; +modify mount_line23to24_500.groupid 'island_1'; +modify pole_load_24.groupid 'island_1'; +modify mount_line23to24_load_24.groupid 'island_1'; +modify pole_line23to25_100.groupid 'island_1'; +modify mount_line23to25_100.groupid 'island_1'; +modify pole_line23to25_200.groupid 'island_1'; +modify mount_line23to25_200.groupid 'island_1'; +modify pole_node_2501.groupid 'island_1'; +modify mount_line2501to26_node_2501.groupid 'island_1'; +modify pole_line2501to26_100.groupid 'island_1'; +modify mount_line2501to26_100.groupid 'island_1'; +modify pole_line2501to26_200.groupid 'island_1'; +modify mount_line2501to26_200.groupid 'island_1'; +modify pole_line2501to26_300.groupid 'island_1'; +modify mount_line2501to26_300.groupid 'island_1'; +modify pole_node_26.groupid 'island_1'; +modify mount_line2501to26_node_26.groupid 'island_1'; +modify mount_line26to27_node_26.groupid 'island_1'; +modify mount_line26to31_node_26.groupid 'island_1'; +modify pole_line25to28_100.groupid 'island_1'; +modify mount_line25to28_100.groupid 'island_1'; +modify pole_load_28.groupid 'island_1'; +modify mount_line25to28_load_28.groupid 'island_1'; +modify mount_line28to29_load_28.groupid 'island_1'; +modify pole_line26to27_100.groupid 'island_1'; +modify mount_line26to27_100.groupid 'island_1'; +modify pole_line26to27_200.groupid 'island_1'; +modify mount_line26to27_200.groupid 'island_1'; +modify pole_node_27.groupid 'island_1'; +modify mount_line26to27_node_27.groupid 'island_1'; +modify mount_line27to33_node_27.groupid 'island_1'; +modify pole_line26to31_100.groupid 'island_1'; +modify mount_line26to31_100.groupid 'island_1'; +modify pole_line26to31_200.groupid 'island_1'; +modify mount_line26to31_200.groupid 'island_1'; +modify pole_load_31.groupid 'island_1'; +modify mount_line26to31_load_31.groupid 'island_1'; +modify mount_line31to32_load_31.groupid 'island_1'; +modify pole_line27to33_100.groupid 'island_1'; +modify mount_line27to33_100.groupid 'island_1'; +modify pole_line27to33_200.groupid 'island_1'; +modify mount_line27to33_200.groupid 'island_1'; +modify pole_line27to33_300.groupid 'island_1'; +modify mount_line27to33_300.groupid 'island_1'; +modify pole_line27to33_400.groupid 'island_1'; +modify mount_line27to33_400.groupid 'island_1'; +modify pole_load_33.groupid 'island_1'; +modify mount_line27to33_load_33.groupid 'island_1'; +modify pole_line28to29_100.groupid 'island_1'; +modify mount_line28to29_100.groupid 'island_1'; +modify pole_line28to29_200.groupid 'island_1'; +modify mount_line28to29_200.groupid 'island_1'; +modify pole_load_29.groupid 'island_1'; +modify mount_line28to29_load_29.groupid 'island_1'; +modify mount_line29to30_load_29.groupid 'island_1'; +modify pole_line29to30_100.groupid 'island_1'; +modify mount_line29to30_100.groupid 'island_1'; +modify pole_line29to30_200.groupid 'island_1'; +modify mount_line29to30_200.groupid 'island_1'; +modify pole_line29to30_300.groupid 'island_1'; +modify mount_line29to30_300.groupid 'island_1'; +modify pole_load_30.groupid 'island_1'; +modify mount_line29to30_load_30.groupid 'island_1'; +modify mount_line30to250_load_30.groupid 'island_1'; +modify pole_line30to250_100.groupid 'island_1'; +modify mount_line30to250_100.groupid 'island_1'; +modify pole_line31to32_100.groupid 'island_1'; +modify mount_line31to32_100.groupid 'island_1'; +modify pole_line31to32_200.groupid 'island_1'; +modify mount_line31to32_200.groupid 'island_1'; +modify pole_load_32.groupid 'island_1'; +modify mount_line31to32_load_32.groupid 'island_1'; +modify pole_load_35.groupid 'island_8'; +modify mount_line35to36_load_35.groupid 'island_8'; +modify mount_line35to40_load_35.groupid 'island_8'; +modify mount_line135to35_load_35.groupid 'island_8'; +modify pole_line35to36_100.groupid 'island_8'; +modify mount_line35to36_100.groupid 'island_8'; +modify pole_line35to36_200.groupid 'island_8'; +modify mount_line35to36_200.groupid 'island_8'; +modify pole_line35to36_300.groupid 'island_8'; +modify mount_line35to36_300.groupid 'island_8'; +modify pole_line35to36_400.groupid 'island_8'; +modify mount_line35to36_400.groupid 'island_8'; +modify pole_line35to36_500.groupid 'island_8'; +modify mount_line35to36_500.groupid 'island_8'; +modify pole_line35to36_600.groupid 'island_8'; +modify mount_line35to36_600.groupid 'island_8'; +modify pole_node_36.groupid 'island_8'; +modify mount_line35to36_node_36.groupid 'island_8'; +modify mount_line36to37_node_36.groupid 'island_8'; +modify mount_line36to38_node_36.groupid 'island_8'; +modify pole_line35to40_100.groupid 'island_8'; +modify mount_line35to40_100.groupid 'island_8'; +modify pole_line35to40_200.groupid 'island_8'; +modify mount_line35to40_200.groupid 'island_8'; +modify pole_node_40.groupid 'island_8'; +modify mount_line35to40_node_40.groupid 'island_8'; +modify mount_line40to41_node_40.groupid 'island_8'; +modify mount_line40to42_node_40.groupid 'island_8'; +modify pole_line36to37_100.groupid 'island_8'; +modify mount_line36to37_100.groupid 'island_8'; +modify pole_line36to37_200.groupid 'island_8'; +modify mount_line36to37_200.groupid 'island_8'; +modify pole_load_37.groupid 'island_8'; +modify mount_line36to37_load_37.groupid 'island_8'; +modify pole_line36to38_100.groupid 'island_8'; +modify mount_line36to38_100.groupid 'island_8'; +modify pole_line36to38_200.groupid 'island_8'; +modify mount_line36to38_200.groupid 'island_8'; +modify pole_load_38.groupid 'island_8'; +modify mount_line36to38_load_38.groupid 'island_8'; +modify mount_line38to39_load_38.groupid 'island_8'; +modify pole_line38to39_100.groupid 'island_8'; +modify mount_line38to39_100.groupid 'island_8'; +modify pole_line38to39_200.groupid 'island_8'; +modify mount_line38to39_200.groupid 'island_8'; +modify pole_line38to39_300.groupid 'island_8'; +modify mount_line38to39_300.groupid 'island_8'; +modify pole_load_39.groupid 'island_8'; +modify mount_line38to39_load_39.groupid 'island_8'; +modify pole_line40to41_100.groupid 'island_8'; +modify mount_line40to41_100.groupid 'island_8'; +modify pole_line40to41_200.groupid 'island_8'; +modify mount_line40to41_200.groupid 'island_8'; +modify pole_line40to41_300.groupid 'island_8'; +modify mount_line40to41_300.groupid 'island_8'; +modify pole_load_41.groupid 'island_8'; +modify mount_line40to41_load_41.groupid 'island_8'; +modify pole_line40to42_100.groupid 'island_8'; +modify mount_line40to42_100.groupid 'island_8'; +modify pole_line40to42_200.groupid 'island_8'; +modify mount_line40to42_200.groupid 'island_8'; +modify pole_load_42.groupid 'island_8'; +modify mount_line40to42_load_42.groupid 'island_8'; +modify mount_line42to43_load_42.groupid 'island_8'; +modify mount_line42to44_load_42.groupid 'island_8'; +modify pole_line42to43_100.groupid 'island_8'; +modify mount_line42to43_100.groupid 'island_8'; +modify pole_line42to43_200.groupid 'island_8'; +modify mount_line42to43_200.groupid 'island_8'; +modify pole_line42to43_300.groupid 'island_8'; +modify mount_line42to43_300.groupid 'island_8'; +modify pole_line42to43_400.groupid 'island_8'; +modify mount_line42to43_400.groupid 'island_8'; +modify pole_load_43.groupid 'island_8'; +modify mount_line42to43_load_43.groupid 'island_8'; +modify pole_line42to44_100.groupid 'island_8'; +modify mount_line42to44_100.groupid 'island_8'; +modify pole_node_44.groupid 'island_8'; +modify mount_line42to44_node_44.groupid 'island_8'; +modify mount_line44to45_node_44.groupid 'island_8'; +modify mount_line44to47_node_44.groupid 'island_8'; +modify pole_line44to45_100.groupid 'island_8'; +modify mount_line44to45_100.groupid 'island_8'; +modify pole_load_45.groupid 'island_8'; +modify mount_line44to45_load_45.groupid 'island_8'; +modify mount_line45to46_load_45.groupid 'island_8'; +modify pole_line44to47_100.groupid 'island_8'; +modify mount_line44to47_100.groupid 'island_8'; +modify pole_line44to47_200.groupid 'island_8'; +modify mount_line44to47_200.groupid 'island_8'; +modify pole_load_47.groupid 'island_8'; +modify mount_line44to47_load_47.groupid 'island_8'; +modify mount_line47to48_load_47.groupid 'island_8'; +modify mount_line47to49_load_47.groupid 'island_8'; +modify pole_line45to46_100.groupid 'island_8'; +modify mount_line45to46_100.groupid 'island_8'; +modify pole_line45to46_200.groupid 'island_8'; +modify mount_line45to46_200.groupid 'island_8'; +modify pole_load_46.groupid 'island_8'; +modify mount_line45to46_load_46.groupid 'island_8'; +modify pole_line47to48_100.groupid 'island_8'; +modify mount_line47to48_100.groupid 'island_8'; +modify pole_load_48.groupid 'island_8'; +modify mount_line47to48_load_48.groupid 'island_8'; +modify pole_line47to49_100.groupid 'island_8'; +modify mount_line47to49_100.groupid 'island_8'; +modify pole_line47to49_200.groupid 'island_8'; +modify mount_line47to49_200.groupid 'island_8'; +modify pole_load_49.groupid 'island_8'; +modify mount_line47to49_load_49.groupid 'island_8'; +modify mount_line49to50_load_49.groupid 'island_8'; +modify pole_line49to50_100.groupid 'island_8'; +modify mount_line49to50_100.groupid 'island_8'; +modify pole_line49to50_200.groupid 'island_8'; +modify mount_line49to50_200.groupid 'island_8'; +modify pole_load_50.groupid 'island_8'; +modify mount_line49to50_load_50.groupid 'island_8'; +modify mount_line50to51_load_50.groupid 'island_8'; +modify pole_line50to51_100.groupid 'island_8'; +modify mount_line50to51_100.groupid 'island_8'; +modify pole_line50to51_200.groupid 'island_8'; +modify mount_line50to51_200.groupid 'island_8'; +modify pole_load_51.groupid 'island_8'; +modify mount_line50to51_load_51.groupid 'island_8'; +modify mount_line51to151_load_51.groupid 'island_8'; +modify pole_line51to151_100.groupid 'island_8'; +modify mount_line51to151_100.groupid 'island_8'; +modify pole_line51to151_200.groupid 'island_8'; +modify mount_line51to151_200.groupid 'island_8'; +modify pole_line51to151_300.groupid 'island_8'; +modify mount_line51to151_300.groupid 'island_8'; +modify pole_line51to151_400.groupid 'island_8'; +modify mount_line51to151_400.groupid 'island_8'; +modify pole_load_52.groupid 'island_9'; +modify mount_line52to53_load_52.groupid 'island_9'; +modify mount_line152to52_load_52.groupid 'island_9'; +modify pole_line52to53_100.groupid 'island_9'; +modify mount_line52to53_100.groupid 'island_9'; +modify pole_load_53.groupid 'island_9'; +modify mount_line52to53_load_53.groupid 'island_9'; +modify mount_line53to54_load_53.groupid 'island_9'; +modify pole_line53to54_100.groupid 'island_9'; +modify mount_line53to54_100.groupid 'island_9'; +modify pole_line54to55_100.groupid 'island_9'; +modify mount_line54to55_100.groupid 'island_9'; +modify pole_line54to55_200.groupid 'island_9'; +modify mount_line54to55_200.groupid 'island_9'; +modify pole_load_55.groupid 'island_9'; +modify mount_line54to55_load_55.groupid 'island_9'; +modify mount_line55to56_load_55.groupid 'island_9'; +modify pole_line54to57_100.groupid 'island_9'; +modify mount_line54to57_100.groupid 'island_9'; +modify pole_line54to57_200.groupid 'island_9'; +modify mount_line54to57_200.groupid 'island_9'; +modify pole_line54to57_300.groupid 'island_9'; +modify mount_line54to57_300.groupid 'island_9'; +modify pole_node_57.groupid 'island_9'; +modify mount_line54to57_node_57.groupid 'island_9'; +modify mount_line57to58_node_57.groupid 'island_9'; +modify mount_line57to60_node_57.groupid 'island_9'; +modify pole_line55to56_100.groupid 'island_9'; +modify mount_line55to56_100.groupid 'island_9'; +modify pole_line55to56_200.groupid 'island_9'; +modify mount_line55to56_200.groupid 'island_9'; +modify pole_load_56.groupid 'island_9'; +modify mount_line55to56_load_56.groupid 'island_9'; +modify pole_line57to58_100.groupid 'island_9'; +modify mount_line57to58_100.groupid 'island_9'; +modify pole_line57to58_200.groupid 'island_9'; +modify mount_line57to58_200.groupid 'island_9'; +modify pole_load_58.groupid 'island_9'; +modify mount_line57to58_load_58.groupid 'island_9'; +modify mount_line58to59_load_58.groupid 'island_9'; +modify pole_line57to60_100.groupid 'island_9'; +modify mount_line57to60_100.groupid 'island_9'; +modify pole_line57to60_200.groupid 'island_9'; +modify mount_line57to60_200.groupid 'island_9'; +modify pole_line57to60_300.groupid 'island_9'; +modify mount_line57to60_300.groupid 'island_9'; +modify pole_line57to60_400.groupid 'island_9'; +modify mount_line57to60_400.groupid 'island_9'; +modify pole_line57to60_500.groupid 'island_9'; +modify mount_line57to60_500.groupid 'island_9'; +modify pole_line57to60_600.groupid 'island_9'; +modify mount_line57to60_600.groupid 'island_9'; +modify pole_line57to60_700.groupid 'island_9'; +modify mount_line57to60_700.groupid 'island_9'; +modify pole_line58to59_100.groupid 'island_9'; +modify mount_line58to59_100.groupid 'island_9'; +modify pole_line58to59_200.groupid 'island_9'; +modify mount_line58to59_200.groupid 'island_9'; +modify pole_load_59.groupid 'island_9'; +modify mount_line58to59_load_59.groupid 'island_9'; +modify pole_line60to61_100.groupid 'island_9'; +modify mount_line60to61_100.groupid 'island_9'; +modify pole_line60to61_200.groupid 'island_9'; +modify mount_line60to61_200.groupid 'island_9'; +modify pole_line60to61_300.groupid 'island_9'; +modify mount_line60to61_300.groupid 'island_9'; +modify pole_line60to61_400.groupid 'island_9'; +modify mount_line60to61_400.groupid 'island_9'; +modify pole_line60to61_500.groupid 'island_9'; +modify mount_line60to61_500.groupid 'island_9'; +modify pole_node_67.groupid 'island_10'; +modify mount_line67to68_node_67.groupid 'island_10'; +modify mount_line67to72_node_67.groupid 'island_10'; +modify mount_line67to97_node_67.groupid 'island_10'; +modify mount_line16001to67_node_67.groupid 'island_10'; +modify pole_line67to68_100.groupid 'island_10'; +modify mount_line67to68_100.groupid 'island_10'; +modify pole_load_68.groupid 'island_10'; +modify mount_line67to68_load_68.groupid 'island_10'; +modify mount_line68to69_load_68.groupid 'island_10'; +modify pole_line67to72_100.groupid 'island_10'; +modify mount_line67to72_100.groupid 'island_10'; +modify pole_line67to72_200.groupid 'island_10'; +modify mount_line67to72_200.groupid 'island_10'; +modify pole_node_72.groupid 'island_10'; +modify mount_line67to72_node_72.groupid 'island_10'; +modify mount_line72to73_node_72.groupid 'island_10'; +modify mount_line72to76_node_72.groupid 'island_10'; +modify pole_line67to97_100.groupid 'island_10'; +modify mount_line67to97_100.groupid 'island_10'; +modify pole_line67to97_200.groupid 'island_10'; +modify mount_line67to97_200.groupid 'island_10'; +modify pole_line68to69_100.groupid 'island_10'; +modify mount_line68to69_100.groupid 'island_10'; +modify pole_line68to69_200.groupid 'island_10'; +modify mount_line68to69_200.groupid 'island_10'; +modify pole_load_69.groupid 'island_10'; +modify mount_line68to69_load_69.groupid 'island_10'; +modify mount_line69to70_load_69.groupid 'island_10'; +modify pole_line69to70_100.groupid 'island_10'; +modify mount_line69to70_100.groupid 'island_10'; +modify pole_line69to70_200.groupid 'island_10'; +modify mount_line69to70_200.groupid 'island_10'; +modify pole_line69to70_300.groupid 'island_10'; +modify mount_line69to70_300.groupid 'island_10'; +modify pole_load_70.groupid 'island_10'; +modify mount_line69to70_load_70.groupid 'island_10'; +modify mount_line70to71_load_70.groupid 'island_10'; +modify pole_line70to71_100.groupid 'island_10'; +modify mount_line70to71_100.groupid 'island_10'; +modify pole_line70to71_200.groupid 'island_10'; +modify mount_line70to71_200.groupid 'island_10'; +modify pole_load_71.groupid 'island_10'; +modify mount_line70to71_load_71.groupid 'island_10'; +modify pole_line72to73_100.groupid 'island_10'; +modify mount_line72to73_100.groupid 'island_10'; +modify pole_line72to73_200.groupid 'island_10'; +modify mount_line72to73_200.groupid 'island_10'; +modify pole_load_73.groupid 'island_10'; +modify mount_line72to73_load_73.groupid 'island_10'; +modify mount_line73to74_load_73.groupid 'island_10'; +modify pole_line72to76_100.groupid 'island_10'; +modify mount_line72to76_100.groupid 'island_10'; +modify pole_load_76.groupid 'island_10'; +modify mount_line72to76_load_76.groupid 'island_10'; +modify mount_line76to77_load_76.groupid 'island_10'; +modify mount_line76to86_load_76.groupid 'island_10'; +modify pole_line73to74_100.groupid 'island_10'; +modify mount_line73to74_100.groupid 'island_10'; +modify pole_line73to74_200.groupid 'island_10'; +modify mount_line73to74_200.groupid 'island_10'; +modify pole_line73to74_300.groupid 'island_10'; +modify mount_line73to74_300.groupid 'island_10'; +modify pole_load_74.groupid 'island_10'; +modify mount_line73to74_load_74.groupid 'island_10'; +modify mount_line74to75_load_74.groupid 'island_10'; +modify pole_line74to75_100.groupid 'island_10'; +modify mount_line74to75_100.groupid 'island_10'; +modify pole_line74to75_200.groupid 'island_10'; +modify mount_line74to75_200.groupid 'island_10'; +modify pole_line74to75_300.groupid 'island_10'; +modify mount_line74to75_300.groupid 'island_10'; +modify pole_load_75.groupid 'island_10'; +modify mount_line74to75_load_75.groupid 'island_10'; +modify pole_line76to77_100.groupid 'island_10'; +modify mount_line76to77_100.groupid 'island_10'; +modify pole_line76to77_200.groupid 'island_10'; +modify mount_line76to77_200.groupid 'island_10'; +modify pole_line76to77_300.groupid 'island_10'; +modify mount_line76to77_300.groupid 'island_10'; +modify pole_load_77.groupid 'island_10'; +modify mount_line76to77_load_77.groupid 'island_10'; +modify mount_line77to78_load_77.groupid 'island_10'; +modify pole_line76to86_100.groupid 'island_10'; +modify mount_line76to86_100.groupid 'island_10'; +modify pole_line76to86_200.groupid 'island_10'; +modify mount_line76to86_200.groupid 'island_10'; +modify pole_line76to86_300.groupid 'island_10'; +modify mount_line76to86_300.groupid 'island_10'; +modify pole_line76to86_400.groupid 'island_10'; +modify mount_line76to86_400.groupid 'island_10'; +modify pole_line76to86_500.groupid 'island_10'; +modify mount_line76to86_500.groupid 'island_10'; +modify pole_line76to86_600.groupid 'island_10'; +modify mount_line76to86_600.groupid 'island_10'; +modify pole_load_86.groupid 'island_10'; +modify mount_line76to86_load_86.groupid 'island_10'; +modify mount_line86to87_load_86.groupid 'island_10'; +modify pole_node_78.groupid 'island_10'; +modify mount_line77to78_node_78.groupid 'island_10'; +modify mount_line78to79_node_78.groupid 'island_10'; +modify mount_line78to80_node_78.groupid 'island_10'; +modify pole_line78to79_100.groupid 'island_10'; +modify mount_line78to79_100.groupid 'island_10'; +modify pole_line78to79_200.groupid 'island_10'; +modify mount_line78to79_200.groupid 'island_10'; +modify pole_load_79.groupid 'island_10'; +modify mount_line78to79_load_79.groupid 'island_10'; +modify pole_line78to80_100.groupid 'island_10'; +modify mount_line78to80_100.groupid 'island_10'; +modify pole_line78to80_200.groupid 'island_10'; +modify mount_line78to80_200.groupid 'island_10'; +modify pole_line78to80_300.groupid 'island_10'; +modify mount_line78to80_300.groupid 'island_10'; +modify pole_line78to80_400.groupid 'island_10'; +modify mount_line78to80_400.groupid 'island_10'; +modify pole_load_80.groupid 'island_10'; +modify mount_line78to80_load_80.groupid 'island_10'; +modify mount_line80to81_load_80.groupid 'island_10'; +modify pole_line80to81_100.groupid 'island_10'; +modify mount_line80to81_100.groupid 'island_10'; +modify pole_line80to81_200.groupid 'island_10'; +modify mount_line80to81_200.groupid 'island_10'; +modify pole_line80to81_300.groupid 'island_10'; +modify mount_line80to81_300.groupid 'island_10'; +modify pole_line80to81_400.groupid 'island_10'; +modify mount_line80to81_400.groupid 'island_10'; +modify pole_node_81.groupid 'island_10'; +modify mount_line80to81_node_81.groupid 'island_10'; +modify mount_line81to82_node_81.groupid 'island_10'; +modify mount_line81to84_node_81.groupid 'island_10'; +modify pole_line81to82_100.groupid 'island_10'; +modify mount_line81to82_100.groupid 'island_10'; +modify pole_line81to82_200.groupid 'island_10'; +modify mount_line81to82_200.groupid 'island_10'; +modify pole_load_82.groupid 'island_10'; +modify mount_line81to82_load_82.groupid 'island_10'; +modify mount_line82to83_load_82.groupid 'island_10'; +modify pole_line81to84_100.groupid 'island_10'; +modify mount_line81to84_100.groupid 'island_10'; +modify pole_line81to84_200.groupid 'island_10'; +modify mount_line81to84_200.groupid 'island_10'; +modify pole_line81to84_300.groupid 'island_10'; +modify mount_line81to84_300.groupid 'island_10'; +modify pole_line81to84_400.groupid 'island_10'; +modify mount_line81to84_400.groupid 'island_10'; +modify pole_line81to84_500.groupid 'island_10'; +modify mount_line81to84_500.groupid 'island_10'; +modify pole_line81to84_600.groupid 'island_10'; +modify mount_line81to84_600.groupid 'island_10'; +modify pole_load_84.groupid 'island_10'; +modify mount_line81to84_load_84.groupid 'island_10'; +modify mount_line84to85_load_84.groupid 'island_10'; +modify pole_line82to83_100.groupid 'island_10'; +modify mount_line82to83_100.groupid 'island_10'; +modify pole_line82to83_200.groupid 'island_10'; +modify mount_line82to83_200.groupid 'island_10'; +modify pole_load_83.groupid 'island_10'; +modify mount_line82to83_load_83.groupid 'island_10'; +modify pole_line84to85_100.groupid 'island_10'; +modify mount_line84to85_100.groupid 'island_10'; +modify pole_line84to85_200.groupid 'island_10'; +modify mount_line84to85_200.groupid 'island_10'; +modify pole_line84to85_300.groupid 'island_10'; +modify mount_line84to85_300.groupid 'island_10'; +modify pole_line84to85_400.groupid 'island_10'; +modify mount_line84to85_400.groupid 'island_10'; +modify pole_load_85.groupid 'island_10'; +modify mount_line84to85_load_85.groupid 'island_10'; +modify pole_line86to87_100.groupid 'island_10'; +modify mount_line86to87_100.groupid 'island_10'; +modify pole_line86to87_200.groupid 'island_10'; +modify mount_line86to87_200.groupid 'island_10'; +modify pole_line86to87_300.groupid 'island_10'; +modify mount_line86to87_300.groupid 'island_10'; +modify pole_line86to87_400.groupid 'island_10'; +modify mount_line86to87_400.groupid 'island_10'; +modify pole_load_87.groupid 'island_10'; +modify mount_line86to87_load_87.groupid 'island_10'; +modify mount_line87to88_load_87.groupid 'island_10'; +modify mount_line87to89_load_87.groupid 'island_10'; +modify pole_line87to88_100.groupid 'island_10'; +modify mount_line87to88_100.groupid 'island_10'; +modify pole_load_88.groupid 'island_10'; +modify mount_line87to88_load_88.groupid 'island_10'; +modify pole_line87to89_100.groupid 'island_10'; +modify mount_line87to89_100.groupid 'island_10'; +modify pole_line87to89_200.groupid 'island_10'; +modify mount_line87to89_200.groupid 'island_10'; +modify pole_node_89.groupid 'island_10'; +modify mount_line87to89_node_89.groupid 'island_10'; +modify mount_line89to90_node_89.groupid 'island_10'; +modify mount_line89to91_node_89.groupid 'island_10'; +modify pole_line89to90_100.groupid 'island_10'; +modify mount_line89to90_100.groupid 'island_10'; +modify pole_line89to90_200.groupid 'island_10'; +modify mount_line89to90_200.groupid 'island_10'; +modify pole_load_90.groupid 'island_10'; +modify mount_line89to90_load_90.groupid 'island_10'; +modify pole_line89to91_100.groupid 'island_10'; +modify mount_line89to91_100.groupid 'island_10'; +modify pole_line89to91_200.groupid 'island_10'; +modify mount_line89to91_200.groupid 'island_10'; +modify pole_node_91.groupid 'island_10'; +modify mount_line89to91_node_91.groupid 'island_10'; +modify mount_line91to92_node_91.groupid 'island_10'; +modify mount_line91to93_node_91.groupid 'island_10'; +modify pole_line91to92_100.groupid 'island_10'; +modify mount_line91to92_100.groupid 'island_10'; +modify pole_line91to92_200.groupid 'island_10'; +modify mount_line91to92_200.groupid 'island_10'; +modify pole_load_92.groupid 'island_10'; +modify mount_line91to92_load_92.groupid 'island_10'; +modify pole_line91to93_100.groupid 'island_10'; +modify mount_line91to93_100.groupid 'island_10'; +modify pole_line91to93_200.groupid 'island_10'; +modify mount_line91to93_200.groupid 'island_10'; +modify pole_node_93.groupid 'island_10'; +modify mount_line91to93_node_93.groupid 'island_10'; +modify mount_line93to94_node_93.groupid 'island_10'; +modify mount_line93to95_node_93.groupid 'island_10'; +modify pole_line93to94_100.groupid 'island_10'; +modify mount_line93to94_100.groupid 'island_10'; +modify pole_line93to94_200.groupid 'island_10'; +modify mount_line93to94_200.groupid 'island_10'; +modify pole_load_94.groupid 'island_10'; +modify mount_line93to94_load_94.groupid 'island_10'; +modify pole_line93to95_100.groupid 'island_10'; +modify mount_line93to95_100.groupid 'island_10'; +modify pole_line93to95_200.groupid 'island_10'; +modify mount_line93to95_200.groupid 'island_10'; +modify pole_line95to96_100.groupid 'island_10'; +modify mount_line95to96_100.groupid 'island_10'; +modify pole_load_96.groupid 'island_10'; +modify mount_line95to96_load_96.groupid 'island_10'; +modify pole_line97to98_100.groupid 'island_10'; +modify mount_line97to98_100.groupid 'island_10'; +modify pole_line97to98_200.groupid 'island_10'; +modify mount_line97to98_200.groupid 'island_10'; +modify pole_load_98.groupid 'island_10'; +modify mount_line97to98_load_98.groupid 'island_10'; +modify mount_line98to99_load_98.groupid 'island_10'; +modify pole_line98to99_100.groupid 'island_10'; +modify mount_line98to99_100.groupid 'island_10'; +modify pole_line98to99_200.groupid 'island_10'; +modify mount_line98to99_200.groupid 'island_10'; +modify pole_line98to99_300.groupid 'island_10'; +modify mount_line98to99_300.groupid 'island_10'; +modify pole_line98to99_400.groupid 'island_10'; +modify mount_line98to99_400.groupid 'island_10'; +modify pole_line98to99_500.groupid 'island_10'; +modify mount_line98to99_500.groupid 'island_10'; +modify pole_load_99.groupid 'island_10'; +modify mount_line98to99_load_99.groupid 'island_10'; +modify mount_line99to100_load_99.groupid 'island_10'; +modify pole_line99to100_100.groupid 'island_10'; +modify mount_line99to100_100.groupid 'island_10'; +modify pole_line99to100_200.groupid 'island_10'; +modify mount_line99to100_200.groupid 'island_10'; +modify pole_load_100.groupid 'island_10'; +modify mount_line99to100_load_100.groupid 'island_10'; +modify mount_line100to450_load_100.groupid 'island_10'; +modify pole_line100to450_100.groupid 'island_10'; +modify mount_line100to450_100.groupid 'island_10'; +modify pole_line100to450_200.groupid 'island_10'; +modify mount_line100to450_200.groupid 'island_10'; +modify pole_line100to450_300.groupid 'island_10'; +modify mount_line100to450_300.groupid 'island_10'; +modify pole_line100to450_400.groupid 'island_10'; +modify mount_line100to450_400.groupid 'island_10'; +modify pole_line100to450_500.groupid 'island_10'; +modify mount_line100to450_500.groupid 'island_10'; +modify pole_line100to450_600.groupid 'island_10'; +modify mount_line100to450_600.groupid 'island_10'; +modify pole_line100to450_700.groupid 'island_10'; +modify mount_line100to450_700.groupid 'island_10'; +modify pole_node_101.groupid 'island_11'; +modify mount_line101to102_node_101.groupid 'island_11'; +modify mount_line101to105_node_101.groupid 'island_11'; +modify mount_line197to101_node_101.groupid 'island_11'; +modify pole_line101to102_100.groupid 'island_11'; +modify mount_line101to102_100.groupid 'island_11'; +modify pole_line101to102_200.groupid 'island_11'; +modify mount_line101to102_200.groupid 'island_11'; +modify pole_load_102.groupid 'island_11'; +modify mount_line101to102_load_102.groupid 'island_11'; +modify mount_line102to103_load_102.groupid 'island_11'; +modify pole_line101to105_100.groupid 'island_11'; +modify mount_line101to105_100.groupid 'island_11'; +modify pole_line101to105_200.groupid 'island_11'; +modify mount_line101to105_200.groupid 'island_11'; +modify pole_node_105.groupid 'island_11'; +modify mount_line101to105_node_105.groupid 'island_11'; +modify mount_line105to106_node_105.groupid 'island_11'; +modify mount_line105to108_node_105.groupid 'island_11'; +modify pole_line102to103_100.groupid 'island_11'; +modify mount_line102to103_100.groupid 'island_11'; +modify pole_line102to103_200.groupid 'island_11'; +modify mount_line102to103_200.groupid 'island_11'; +modify pole_line102to103_300.groupid 'island_11'; +modify mount_line102to103_300.groupid 'island_11'; +modify pole_load_103.groupid 'island_11'; +modify mount_line102to103_load_103.groupid 'island_11'; +modify mount_line103to104_load_103.groupid 'island_11'; +modify pole_line103to104_100.groupid 'island_11'; +modify mount_line103to104_100.groupid 'island_11'; +modify pole_line103to104_200.groupid 'island_11'; +modify mount_line103to104_200.groupid 'island_11'; +modify pole_line103to104_300.groupid 'island_11'; +modify mount_line103to104_300.groupid 'island_11'; +modify pole_line103to104_400.groupid 'island_11'; +modify mount_line103to104_400.groupid 'island_11'; +modify pole_line103to104_500.groupid 'island_11'; +modify mount_line103to104_500.groupid 'island_11'; +modify pole_line103to104_600.groupid 'island_11'; +modify mount_line103to104_600.groupid 'island_11'; +modify pole_load_104.groupid 'island_11'; +modify mount_line103to104_load_104.groupid 'island_11'; +modify pole_line105to106_100.groupid 'island_11'; +modify mount_line105to106_100.groupid 'island_11'; +modify pole_line105to106_200.groupid 'island_11'; +modify mount_line105to106_200.groupid 'island_11'; +modify pole_load_106.groupid 'island_11'; +modify mount_line105to106_load_106.groupid 'island_11'; +modify mount_line106to107_load_106.groupid 'island_11'; +modify pole_line105to108_100.groupid 'island_11'; +modify mount_line105to108_100.groupid 'island_11'; +modify pole_line105to108_200.groupid 'island_11'; +modify mount_line105to108_200.groupid 'island_11'; +modify pole_line105to108_300.groupid 'island_11'; +modify mount_line105to108_300.groupid 'island_11'; +modify pole_node_108.groupid 'island_11'; +modify mount_line105to108_node_108.groupid 'island_11'; +modify mount_line108to109_node_108.groupid 'island_11'; +modify mount_line108to300_node_108.groupid 'island_11'; +modify pole_line106to107_100.groupid 'island_11'; +modify mount_line106to107_100.groupid 'island_11'; +modify pole_line106to107_200.groupid 'island_11'; +modify mount_line106to107_200.groupid 'island_11'; +modify pole_line106to107_300.groupid 'island_11'; +modify mount_line106to107_300.groupid 'island_11'; +modify pole_line106to107_400.groupid 'island_11'; +modify mount_line106to107_400.groupid 'island_11'; +modify pole_line106to107_500.groupid 'island_11'; +modify mount_line106to107_500.groupid 'island_11'; +modify pole_load_107.groupid 'island_11'; +modify mount_line106to107_load_107.groupid 'island_11'; +modify pole_line108to109_100.groupid 'island_11'; +modify mount_line108to109_100.groupid 'island_11'; +modify pole_line108to109_200.groupid 'island_11'; +modify mount_line108to109_200.groupid 'island_11'; +modify pole_line108to109_300.groupid 'island_11'; +modify mount_line108to109_300.groupid 'island_11'; +modify pole_line108to109_400.groupid 'island_11'; +modify mount_line108to109_400.groupid 'island_11'; +modify pole_load_109.groupid 'island_11'; +modify mount_line108to109_load_109.groupid 'island_11'; +modify mount_line109to110_load_109.groupid 'island_11'; +modify pole_line108to300_100.groupid 'island_11'; +modify mount_line108to300_100.groupid 'island_11'; +modify pole_line108to300_200.groupid 'island_11'; +modify mount_line108to300_200.groupid 'island_11'; +modify pole_line108to300_300.groupid 'island_11'; +modify mount_line108to300_300.groupid 'island_11'; +modify pole_line108to300_400.groupid 'island_11'; +modify mount_line108to300_400.groupid 'island_11'; +modify pole_line108to300_500.groupid 'island_11'; +modify mount_line108to300_500.groupid 'island_11'; +modify pole_line108to300_600.groupid 'island_11'; +modify mount_line108to300_600.groupid 'island_11'; +modify pole_line108to300_700.groupid 'island_11'; +modify mount_line108to300_700.groupid 'island_11'; +modify pole_line108to300_800.groupid 'island_11'; +modify mount_line108to300_800.groupid 'island_11'; +modify pole_line108to300_900.groupid 'island_11'; +modify mount_line108to300_900.groupid 'island_11'; +modify pole_line109to110_100.groupid 'island_11'; +modify mount_line109to110_100.groupid 'island_11'; +modify pole_line109to110_200.groupid 'island_11'; +modify mount_line109to110_200.groupid 'island_11'; +modify pole_node_110.groupid 'island_11'; +modify mount_line109to110_node_110.groupid 'island_11'; +modify mount_line110to111_node_110.groupid 'island_11'; +modify mount_line110to112_node_110.groupid 'island_11'; +modify pole_line110to111_100.groupid 'island_11'; +modify mount_line110to111_100.groupid 'island_11'; +modify pole_line110to111_200.groupid 'island_11'; +modify mount_line110to111_200.groupid 'island_11'; +modify pole_line110to111_300.groupid 'island_11'; +modify mount_line110to111_300.groupid 'island_11'; +modify pole_line110to111_400.groupid 'island_11'; +modify mount_line110to111_400.groupid 'island_11'; +modify pole_line110to111_500.groupid 'island_11'; +modify mount_line110to111_500.groupid 'island_11'; +modify pole_load_111.groupid 'island_11'; +modify mount_line110to111_load_111.groupid 'island_11'; +modify pole_line110to112_100.groupid 'island_11'; +modify mount_line110to112_100.groupid 'island_11'; +modify pole_load_112.groupid 'island_11'; +modify mount_line110to112_load_112.groupid 'island_11'; +modify mount_line112to113_load_112.groupid 'island_11'; +modify pole_line112to113_100.groupid 'island_11'; +modify mount_line112to113_100.groupid 'island_11'; +modify pole_line112to113_200.groupid 'island_11'; +modify mount_line112to113_200.groupid 'island_11'; +modify pole_line112to113_300.groupid 'island_11'; +modify mount_line112to113_300.groupid 'island_11'; +modify pole_line112to113_400.groupid 'island_11'; +modify mount_line112to113_400.groupid 'island_11'; +modify pole_line112to113_500.groupid 'island_11'; +modify mount_line112to113_500.groupid 'island_11'; +modify pole_load_113.groupid 'island_11'; +modify mount_line112to113_load_113.groupid 'island_11'; +modify mount_line113to114_load_113.groupid 'island_11'; +modify pole_line113to114_100.groupid 'island_11'; +modify mount_line113to114_100.groupid 'island_11'; +modify pole_line113to114_200.groupid 'island_11'; +modify mount_line113to114_200.groupid 'island_11'; +modify pole_line113to114_300.groupid 'island_11'; +modify mount_line113to114_300.groupid 'island_11'; +modify pole_load_114.groupid 'island_11'; +modify mount_line113to114_load_114.groupid 'island_11'; +modify pole_node_135.groupid 'island_8'; +modify mount_line135to35_node_135.groupid 'island_8'; +modify pole_line135to35_100.groupid 'island_8'; +modify mount_line135to35_100.groupid 'island_8'; +modify pole_line135to35_200.groupid 'island_8'; +modify mount_line135to35_200.groupid 'island_8'; +modify pole_line135to35_300.groupid 'island_8'; +modify mount_line135to35_300.groupid 'island_8'; +modify pole_node_149.groupid 'island_1'; +modify mount_line149to1_node_149.groupid 'island_1'; +modify pole_line149to1_100.groupid 'island_1'; +modify mount_line149to1_100.groupid 'island_1'; +modify pole_line149to1_200.groupid 'island_1'; +modify mount_line149to1_200.groupid 'island_1'; +modify pole_line149to1_300.groupid 'island_1'; +modify mount_line149to1_300.groupid 'island_1'; +modify pole_node_152.groupid 'island_9'; +modify mount_line152to52_node_152.groupid 'island_9'; +modify pole_line152to52_100.groupid 'island_9'; +modify mount_line152to52_100.groupid 'island_9'; +modify pole_line152to52_200.groupid 'island_9'; +modify mount_line152to52_200.groupid 'island_9'; +modify pole_line152to52_300.groupid 'island_9'; +modify mount_line152to52_300.groupid 'island_9'; +modify pole_node_16001.groupid 'island_10'; +modify mount_line16001to67_node_16001.groupid 'island_10'; +modify pole_line16001to67_100.groupid 'island_10'; +modify mount_line16001to67_100.groupid 'island_10'; +modify pole_line16001to67_200.groupid 'island_10'; +modify mount_line16001to67_200.groupid 'island_10'; +modify pole_line16001to67_300.groupid 'island_10'; +modify mount_line16001to67_300.groupid 'island_10'; +modify pole_node_197.groupid 'island_11'; +modify mount_line197to101_node_197.groupid 'island_11'; +modify pole_line197to101_100.groupid 'island_11'; +modify mount_line197to101_100.groupid 'island_11'; +modify pole_line197to101_200.groupid 'island_11'; +modify mount_line197to101_200.groupid 'island_11'; diff --git a/tools/autotest/test_group_network_opt.glm b/tools/autotest/test_group_network_opt.glm new file mode 100644 index 000000000..f36a5ab3b --- /dev/null +++ b/tools/autotest/test_group_network_opt.glm @@ -0,0 +1,3087 @@ +// IEEE 123 model + +#set strictnames=FALSE + +module powerflow +{ + solver_method NR; + line_limits FALSE; + default_maximum_voltage_error 1e-4; +} + +// Nodes + +object node +{ + name node_3; + groupid nodevolts; + phases CN; + latitude 35N23.076; + longitude 119W0.132; + nominal_voltage 2401.7771; +} + +object node +{ + name node_8; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; + latitude 35N23.117; + longitude 119W0.031; +} + +object node +{ + name node_13; + groupid nodevolts; + nominal_voltage 2401.7771; + phases ABCN; + latitude 35N23.117; + longitude 118W59.971; +} + +object substation +{ + name node_14; + bustype SWING; + groupid nodevolts; + phases AN; + nominal_voltage 2401.7771; + latitude 35N23.224; + longitude 119W0.031; +} +object meter +{ + name substation_meter; + parent node_14; + groupid nodevolts; + phases AN; + latitude 35N23.224; + longitude 119W0.031; + nominal_voltage 2401.7771; +} + +object node +{ + name node_15; + phases CN; + latitude 35N23.076; + longitude 118W59.971; + groupid nodevolts; + nominal_voltage 2401.7771; +} + +object node +{ + name node_18; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_21; + groupid nodevolts; + phases ABCN; + latitude 35N23.302; + longitude 118W59.971; + nominal_voltage 2401.7771; +} + +object node +{ + name node_23; + groupid nodevolts; + phases ABCN; + latitude 35N23.343; + longitude 118W59.971; + nominal_voltage 2401.7771; +} + +object node +{ + name node_25; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_26; + groupid nodevolts; + phases ACN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_27; + groupid nodevolts; + phases ACN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_36; + groupid nodevolts; + phases ABN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_40; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_44; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_54; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_57; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_61; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_67; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_72; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_78; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_81; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_89; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_91; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_93; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_97; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_101; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_105; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_108; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_110; + groupid nodevolts; + phases AN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_135; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_149; + groupid nodevolts; + phases ABCN; + latitude 35N23.409; + longitude 118W59.643; + nominal_voltage 2401.7771; +} + +object node +{ + name node_150; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; + bustype SWING; + voltage_A 2401.777120+0.000000j; + voltage_B -1200.888560-2080.000000j; + voltage_C -1200.888560+2080.000000j; +} + +object node +{ + name node_151; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_152; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_160; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_197; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_250; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_300; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_450; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_610; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_901; + groupid nodevolts; + phases AN; + latitude 35N23.388; + longitude 118W59.971; + nominal_voltage 2401.7771; +} + +object node +{ + name node_2501; + groupid nodevolts; + phases ACN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_6101; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +object node +{ + name node_15001; + groupid nodevolts; + phases ABCN; + latitude 35N23.141; + longitude 118W59.679; + nominal_voltage 2401.7771; +} + +object node +{ + name node_16001; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; +} + +//Pure spot loads + +object load +{ + name load_1; + groupid nodevolts; + phases ABCN; + constant_power_A 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_2; + groupid nodevolts; + phases BN; + constant_power_B 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_4; + groupid nodevolts; + phases CN; + constant_power_C 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_5; + groupid nodevolts; + phases CN; + constant_current_C -0.557814+9.293330j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_6; + groupid nodevolts; + phases CN; + constant_impedance_C 115.370667+57.685333j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_7; + groupid nodevolts; + phases ABCN; + constant_power_A 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_9; + groupid nodevolts; + phases AN; + constant_power_A 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_10; + groupid nodevolts; + phases AN; + constant_current_A 8.327167-4.163584j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_11; + groupid nodevolts; + phases AN; + constant_impedance_A 115.370667+57.685333j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_12; + groupid nodevolts; + phases BN; + constant_power_B 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_16; + groupid nodevolts; + phases CN; + constant_power_C 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_17; + groupid nodevolts; + phases CN; + constant_power_C 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_19; + groupid nodevolts; + phases AN; + constant_power_A 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_20; + groupid nodevolts; + phases AN; + constant_current_A 16.654335-8.327167j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_22; + groupid nodevolts; + phases BN; + constant_impedance_B 115.370667+57.685333j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_24; + groupid nodevolts; + phases CN; + constant_power_C 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_28; + groupid nodevolts; + phases ABCN; + constant_current_A 16.654335-8.327167j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_29; + groupid nodevolts; + phases ABCN; + constant_impedance_A 115.370667+57.685333j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_30; + groupid nodevolts; + phases ABCN; + constant_power_C 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_31; + groupid nodevolts; + phases CN; + constant_power_C 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_32; + groupid nodevolts; + phases CN; + constant_power_C 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_33; + groupid nodevolts; + phases AN; + constant_current_A 16.654335-8.327167j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_34; + groupid nodevolts; + phases CN; + constant_impedance_C 115.370667+57.685333j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_35; + groupid nodevolts; + phases ABCD; + constant_power_A 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_37; + groupid nodevolts; + phases AN; + constant_impedance_A 115.370667+57.685333j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_38; + groupid nodevolts; + phases BN; + constant_current_B -7.769353-5.129747j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_39; + groupid nodevolts; + phases BN; + constant_power_B 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_41; + groupid nodevolts; + phases CN; + constant_power_C 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_42; + groupid nodevolts; + phases ABCN; + constant_power_A 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_43; + groupid nodevolts; + phases BN; + constant_impedance_B 115.370667+57.685333j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_45; + groupid nodevolts; + phases AN; + constant_current_A 8.327167-4.163584j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_46; + groupid nodevolts; + phases AN; + constant_power_A 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_47; + groupid nodevolts; + phases ABCN; + constant_current_A 14.572543-10.408959j; + constant_current_B -16.300695-7.415713j; + constant_current_C 1.728152+17.824672j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_48; + groupid nodevolts; + phases ABCN; + constant_impedance_A 54.567207+38.976577j; + constant_impedance_B 54.567207+38.976577j; + constant_impedance_C 54.567207+38.976577j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_49; + groupid nodevolts; + phases ABCN; + constant_power_A 35000.000000+25000.000000j; + constant_power_B 70000.000000+50000.000000j; + constant_power_C 35000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_50; + groupid nodevolts; + phases ABCN; + constant_power_C 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_51; + groupid nodevolts; + phases ABCN; + constant_power_A 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_52; + groupid nodevolts; + phases ABCN; + constant_power_A 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_53; + groupid nodevolts; + phases ABCN; + constant_power_A 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_55; + groupid nodevolts; + phases ABCN; + constant_impedance_A 230.741333+115.370667j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_56; + groupid nodevolts; + phases ABCN; + constant_power_B 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_58; + groupid nodevolts; + phases BN; + constant_current_B -7.769353-5.129747j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_59; + groupid nodevolts; + phases BN; + constant_power_B 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_60; + groupid nodevolts; + phases ABCN; + constant_power_A 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_62; + groupid nodevolts; + phases ABCN; + constant_impedance_C 115.370667+57.685333j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_63; + groupid nodevolts; + phases ABCN; + constant_power_A 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_64; + groupid nodevolts; + phases ABCN; + constant_current_B -28.233631-19.756998j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_65; + groupid nodevolts; + phases ABCD; + constant_impedance_A 327.403243+233.859459j; + constant_impedance_B 327.403243+233.859459j; + constant_impedance_C 163.701622+116.929730j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_66; + groupid nodevolts; + phases ABCN; + constant_power_C 75000.000000+35000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_68; + groupid nodevolts; + phases AN; + constant_power_A 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_69; + groupid nodevolts; + phases AN; + constant_power_A 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_70; + groupid nodevolts; + phases AN; + constant_power_A 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_71; + groupid nodevolts; + phases AN; + constant_power_A 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_73; + groupid nodevolts; + phases CN; + constant_power_C 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_74; + groupid nodevolts; + phases CN; + constant_impedance_C 115.370667+57.685333j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_75; + groupid nodevolts; + phases CN; + constant_power_C 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_76; + groupid nodevolts; + phases ABCD; + constant_current_A 31.474199-4.034142j; + constant_current_B -12.019231-16.826923j; + constant_current_C -8.562927+18.822421j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_77; + groupid nodevolts; + phases ABCN; + constant_power_B 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_79; + groupid nodevolts; + phases ABCN; + constant_impedance_A 115.370667+57.685333j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_80; + groupid nodevolts; + phases ABCN; + constant_power_B 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_82; + groupid nodevolts; + phases ABCN; + constant_power_A 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_83; + groupid nodevolts; + phases ABCN; + constant_power_C 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_84; + groupid nodevolts; + phases CN; + constant_power_C 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_85; + groupid nodevolts; + phases CN; + constant_power_C 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_86; + groupid nodevolts; + phases ABCN; + constant_power_B 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_87; + groupid nodevolts; + phases ABCN; + constant_power_B 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_88; + groupid nodevolts; + phases AN; + constant_power_A 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_90; + groupid nodevolts; + phases BN; + constant_current_B -15.538706-10.259493j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_92; + groupid nodevolts; + phases CN; + constant_power_C 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_94; + groupid nodevolts; + phases ABCN; + constant_power_A 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_95; + groupid nodevolts; + phases ABCN; + constant_power_B 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_96; + groupid nodevolts; + phases BN; + constant_power_B 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_98; + groupid nodevolts; + phases ABCN; + constant_power_A 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_99; + groupid nodevolts; + phases ABCN; + constant_power_B 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_100; + groupid nodevolts; + phases ABCN; + constant_impedance_C 115.370667+57.685333j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_102; + groupid nodevolts; + phases CN; + constant_power_C 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_103; + groupid nodevolts; + phases CN; + constant_power_C 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_104; + groupid nodevolts; + phases CN; + constant_power_C 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_106; + groupid nodevolts; + phases BN; + constant_power_B 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_107; + groupid nodevolts; + phases BN; + constant_power_B 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_109; + groupid nodevolts; + phases AN; + constant_power_A 40000.000000+20000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_111; + groupid nodevolts; + phases AN; + constant_power_A 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_112; + groupid nodevolts; + phases AN; + constant_current_A 8.327167-4.163584j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_113; + groupid nodevolts; + phases AN; + constant_impedance_A 115.370667+57.685333j; + nominal_voltage 2401.7771; +} + +object load +{ + name load_114; + groupid nodevolts; + phases AN; + constant_power_A 20000.000000+10000.000000j; + nominal_voltage 2401.7771; +} + +//distributed loads intermediates (2/3 load at 1/4 line) + +//pure distributed loads (1/3 load at end of line) + +//combination loads (1/3 dist load and spot load) + +//Pure lines (no distributed loads) + +object overhead_line +{ + name line1to2; + phases BN; + from load_1; + to load_2; + length 175.00; + configuration lc310; +} + + +object overhead_line +{ + name line1to3; + phases CN; + from load_1; + to node_3; + length 250.00; + configuration lc311; +} + +object overhead_line +{ + name line1to7; + phases ABCN; + from load_1; + to load_7; + length 300.00; + configuration lc301; +} + +object overhead_line +{ + name line3to4; + phases CN; + from node_3; + to load_4; + length 200.00; + configuration lc311; +} + +object overhead_line +{ + name line3to5; + phases CN; + from node_3; + to load_5; + length 325.00; + configuration lc311; +} + +object overhead_line +{ + name line5to6; + phases CN; + from load_5; + to load_6; + length 250.00; + configuration lc311; +} + +object overhead_line +{ + name line7to8; + phases ABCN; + from load_7; + to node_8; + length 200.00; + configuration lc301; +} + +object overhead_line +{ + name line8to12; + phases BN; + from node_8; + to load_12; + length 225.00; + configuration lc310; +} + +object overhead_line +{ + name line8to9; + phases AN; + from node_8; + to load_9; + length 225.00; + configuration lc309; +} + +object overhead_line +{ + name line8to13; + phases ABCN; + from node_8; + to node_13; + length 300.00; + configuration lc301; +} + +object overhead_line +{ + name line901to14; + phases AN; + from node_901; + to node_14; + length 425.00; + configuration lc309; +} + +object overhead_line +{ + name line13to34; + phases CN; + from node_13; + to load_34; + length 150.00; + configuration lc311; +} + +object overhead_line +{ + name line13to18; + phases ABCN; + from node_13; + to node_18; + length 825.00; + configuration lc302; +} + +object overhead_line +{ + name line14to11; + phases AN; + from node_14; + to load_11; + length 250.00; + configuration lc309; +} + +object overhead_line +{ + name line14to10; + phases AN; + from node_14; + to load_10; + length 250.00; + configuration lc309; +} + +object overhead_line +{ + name line15to16; + phases CN; + from node_15; + to load_16; + length 375.00; + configuration lc311; +} + +object overhead_line +{ + name line15to17; + phases CN; + from node_15; + to load_17; + length 350.00; + configuration lc311; +} + +object overhead_line +{ + name line18to19; + phases AN; + from node_18; + to load_19; + length 250.00; + configuration lc309; +} + +object overhead_line +{ + name line18to21; + phases ABCN; + from node_18; + to node_21; + length 300.00; + configuration lc302; +} + +object overhead_line +{ + name line19to20; + phases AN; + from load_19; + to load_20; + length 325.00; + configuration lc309; +} + +object overhead_line +{ + name line21to22; + phases BN; + from node_21; + to load_22; + length 525.00; + configuration lc310; +} + +object overhead_line +{ + name line21to23; + phases ABCN; + from node_21; + to node_23; + length 250.00; + configuration lc302; +} + +object overhead_line +{ + name line23to24; + phases CN; + from node_23; + to load_24; + length 550.00; + configuration lc311; +} + +object overhead_line +{ + name line23to25; + phases ABCN; + from node_23; + to node_25; + length 275.00; + configuration lc302; +} + +object overhead_line +{ + name line2501to26; + phases ACN; + from node_2501; + to node_26; + length 350.00; + configuration lc307; +} + +object overhead_line +{ + name line25to28; + phases ABCN; + from node_25; + to load_28; + length 200.00; + configuration lc302; +} + +object overhead_line +{ + name line26to27; + phases ACN; + from node_26; + to node_27; + length 275.00; + configuration lc307; +} + +object overhead_line +{ + name line26to31; + phases CN; + from node_26; + to load_31; + length 225.00; + configuration lc311; +} + +object overhead_line +{ + name line27to33; + phases AN; + from node_27; + to load_33; + length 500.00; + configuration lc309; +} + +object overhead_line +{ + name line28to29; + phases ABCN; + from load_28; + to load_29; + length 300.00; + configuration lc302; +} + +object overhead_line +{ + name line29to30; + phases ABCN; + from load_29; + to load_30; + length 350.00; + configuration lc302; +} + +object overhead_line +{ + name line30to250; + phases ABCN; + from load_30; + to node_250; + length 200.00; + configuration lc302; +} + +object overhead_line +{ + name line31to32; + phases CN; + from load_31; + to load_32; + length 300.00; + configuration lc311; +} + +object overhead_line +{ + name line34to15; + phases CN; + from load_34; + to node_15; + length 100.00; + configuration lc311; +} + +object overhead_line +{ + name line35to36; + phases ABN; + from load_35; + to node_36; + length 650.00; + configuration lc308; +} + +object overhead_line +{ + name line35to40; + phases ABCN; + from load_35; + to node_40; + length 250.00; + configuration lc301; +} + +object overhead_line +{ + name line36to37; + phases AN; + from node_36; + to load_37; + length 300.00; + configuration lc309; +} + +object overhead_line +{ + name line36to38; + phases BN; + from node_36; + to load_38; + length 250.00; + configuration lc310; +} + +object overhead_line +{ + name line38to39; + phases BN; + from load_38; + to load_39; + length 325.00; + configuration lc310; +} + +object overhead_line +{ + name line40to41; + phases CN; + from node_40; + to load_41; + length 325.00; + configuration lc311; +} + +object overhead_line +{ + name line40to42; + phases ABCN; + from node_40; + to load_42; + length 250.00; + configuration lc301; +} + +object overhead_line +{ + name line42to43; + phases BN; + from load_42; + to load_43; + length 500.00; + configuration lc310; +} + +object overhead_line +{ + name line42to44; + phases ABCN; + from load_42; + to node_44; + length 200.00; + configuration lc301; +} + +object overhead_line +{ + name line44to45; + phases AN; + from node_44; + to load_45; + length 200.00; + configuration lc309; +} + +object overhead_line +{ + name line44to47; + phases ABCN; + from node_44; + to load_47; + length 250.00; + configuration lc301; +} + +object overhead_line +{ + name line45to46; + phases AN; + from load_45; + to load_46; + length 300.00; + configuration lc309; +} + +object overhead_line +{ + name line47to48; + phases ABCN; + from load_47; + to load_48; + length 150.00; + configuration lc304; +} + +object overhead_line +{ + name line47to49; + phases ABCN; + from load_47; + to load_49; + length 250.00; + configuration lc304; +} + +object overhead_line +{ + name line49to50; + phases ABCN; + from load_49; + to load_50; + length 250.00; + configuration lc304; +} + +object overhead_line +{ + name line50to51; + phases ABCN; + from load_50; + to load_51; + length 250.00; + configuration lc304; +} + +object overhead_line +{ + name line51to151; + phases ABCN; + from load_51; + to node_151; + length 500.00; + configuration lc304; +} + +object overhead_line +{ + name line52to53; + phases ABCN; + from load_52; + to load_53; + length 200.00; + configuration lc301; +} + +object overhead_line +{ + name line53to54; + phases ABCN; + from load_53; + to node_54; + length 125.00; + configuration lc301; +} + +object overhead_line +{ + name line54to55; + phases ABCN; + from node_54; + to load_55; + length 275.00; + configuration lc301; +} + +object overhead_line +{ + name line54to57; + phases ABCN; + from node_54; + to node_57; + length 350.00; + configuration lc303; +} + +object overhead_line +{ + name line55to56; + phases ABCN; + from load_55; + to load_56; + length 275.00; + configuration lc301; +} + +object overhead_line +{ + name line57to58; + phases BN; + from node_57; + to load_58; + length 250.00; + configuration lc310; +} + +object overhead_line +{ + name line57to60; + phases ABCN; + from node_57; + to load_60; + length 750.00; + configuration lc303; +} + +object overhead_line +{ + name line58to59; + phases BN; + from load_58; + to load_59; + length 250.00; + configuration lc310; +} + +object overhead_line +{ + name line60to61; + phases ABCN; + from load_60; + to node_61; + length 550.00; + configuration lc305; +} + +object underground_line +{ + name line60to62; + phases ABC; + from load_60; + to load_62; + length 250.00; + configuration lc312; +} + +object underground_line +{ + name line62to63; + phases ABC; + from load_62; + to load_63; + length 175.00; + configuration lc312; +} + +object underground_line +{ + name line63to64; + phases ABC; + from load_63; + to load_64; + length 350.00; + configuration lc312; +} + +object underground_line +{ + name line64to65; + phases ABC; + from load_64; + to load_65; + length 425.00; + configuration lc312; +} + +object underground_line +{ + name line65to66; + phases ABC; + from load_65; + to load_66; + length 325.00; + configuration lc312; +} + +object overhead_line +{ + name line67to68; + phases AN; + from node_67; + to load_68; + length 200.00; + configuration lc309; +} + +object overhead_line +{ + name line67to72; + phases ABCN; + from node_67; + to node_72; + length 275.00; + configuration lc303; +} + +object overhead_line +{ + name line67to97; + phases ABCN; + from node_67; + to node_97; + length 250.00; + configuration lc303; +} + +object overhead_line +{ + name line68to69; + phases AN; + from load_68; + to load_69; + length 275.00; + configuration lc309; +} + +object overhead_line +{ + name line69to70; + phases AN; + from load_69; + to load_70; + length 325.00; + configuration lc309; +} + +object overhead_line +{ + name line70to71; + phases AN; + from load_70; + to load_71; + length 275.00; + configuration lc309; +} + +object overhead_line +{ + name line72to73; + phases CN; + from node_72; + to load_73; + length 275.00; + configuration lc311; +} + +object overhead_line +{ + name line72to76; + phases ABCN; + from node_72; + to load_76; + length 200.00; + configuration lc303; +} + +object overhead_line +{ + name line73to74; + phases CN; + from load_73; + to load_74; + length 350.00; + configuration lc311; +} + +object overhead_line +{ + name line74to75; + phases CN; + from load_74; + to load_75; + length 400.00; + configuration lc311; +} + +object overhead_line +{ + name line76to77; + phases ABCN; + from load_76; + to load_77; + length 400.00; + configuration lc306; +} + +object overhead_line +{ + name line76to86; + phases ABCN; + from load_76; + to load_86; + length 700.00; + configuration lc303; +} + +object overhead_line +{ + name line77to78; + phases ABCN; + from load_77; + to node_78; + length 100.00; + configuration lc306; +} + +object overhead_line +{ + name line78to79; + phases ABCN; + from node_78; + to load_79; + length 225.00; + configuration lc306; +} + +object overhead_line +{ + name line78to80; + phases ABCN; + from node_78; + to load_80; + length 475.00; + configuration lc306; +} + +object overhead_line +{ + name line80to81; + phases ABCN; + from load_80; + to node_81; + length 475.00; + configuration lc306; +} + +object overhead_line +{ + name line81to82; + phases ABCN; + from node_81; + to load_82; + length 250.00; + configuration lc306; +} + +object overhead_line +{ + name line81to84; + phases CN; + from node_81; + to load_84; + length 675.00; + configuration lc311; +} + +object overhead_line +{ + name line82to83; + phases ABCN; + from load_82; + to load_83; + length 250.00; + configuration lc306; +} + +object overhead_line +{ + name line84to85; + phases CN; + from load_84; + to load_85; + length 475.00; + configuration lc311; +} + +object overhead_line +{ + name line86to87; + phases ABCN; + from load_86; + to load_87; + length 450.00; + configuration lc306; +} + +object overhead_line +{ + name line87to88; + phases AN; + from load_87; + to load_88; + length 175.00; + configuration lc309; +} + +object overhead_line +{ + name line87to89; + phases ABCN; + from load_87; + to node_89; + length 275.00; + configuration lc306; +} + +object overhead_line +{ + name line89to90; + phases BN; + from node_89; + to load_90; + length 225.00; + configuration lc310; +} + +object overhead_line +{ + name line89to91; + phases ABCN; + from node_89; + to node_91; + length 225.00; + configuration lc306; +} + +object overhead_line +{ + name line91to92; + phases CN; + from node_91; + to load_92; + length 300.00; + configuration lc311; +} + +object overhead_line +{ + name line91to93; + phases ABCN; + from node_91; + to node_93; + length 225.00; + configuration lc306; +} + +object overhead_line +{ + name line93to94; + phases ABCN; + from node_93; + to load_94; + length 275.00; + configuration lc306; +} + +object overhead_line +{ + name line93to95; + phases ABCN; + from node_93; + to load_95; + length 300.00; + configuration lc306; +} + +object overhead_line +{ + name line95to96; + phases BN; + from load_95; + to load_96; + length 200.00; + configuration lc310; +} + +object overhead_line +{ + name line97to98; + phases ABCN; + from node_97; + to load_98; + length 275.00; + configuration lc303; +} + +object overhead_line +{ + name line98to99; + phases ABCN; + from load_98; + to load_99; + length 550.00; + configuration lc303; +} + +object overhead_line +{ + name line99to100; + phases ABCN; + from load_99; + to load_100; + length 300.00; + configuration lc303; +} + +object overhead_line +{ + name line100to450; + phases ABCN; + from load_100; + to node_450; + length 800.00; + configuration lc303; +} + +object overhead_line +{ + name line101to102; + phases CN; + from node_101; + to load_102; + length 225.00; + configuration lc311; +} + +object overhead_line +{ + name line101to105; + phases ABCN; + from node_101; + to node_105; + length 275.00; + configuration lc303; +} + +object overhead_line +{ + name line102to103; + phases CN; + from load_102; + to load_103; + length 325.00; + configuration lc311; +} + +object overhead_line +{ + name line103to104; + phases CN; + from load_103; + to load_104; + length 700.00; + configuration lc311; +} + +object overhead_line +{ + name line105to106; + phases BN; + from node_105; + to load_106; + length 225.00; + configuration lc310; +} + +object overhead_line +{ + name line105to108; + phases ABCN; + from node_105; + to node_108; + length 325.00; + configuration lc303; +} + +object overhead_line +{ + name line106to107; + phases BN; + from load_106; + to load_107; + length 575.00; + configuration lc310; +} + +object overhead_line +{ + name line108to109; + phases AN; + from node_108; + to load_109; + length 450.00; + configuration lc309; +} + +object overhead_line +{ + name line108to300; + phases ABCN; + from node_108; + to node_300; + length 1000.00; + configuration lc303; +} + +object overhead_line +{ + name line109to110; + phases AN; + from load_109; + to node_110; + length 300.00; + configuration lc309; +} + +object overhead_line +{ + name line110to111; + phases AN; + from node_110; + to load_111; + length 575.00; + configuration lc309; +} + +object overhead_line +{ + name line110to112; + phases AN; + from node_110; + to load_112; + length 125.00; + configuration lc309; +} + +object overhead_line +{ + name line112to113; + phases AN; + from load_112; + to load_113; + length 525.00; + configuration lc309; +} + +object overhead_line +{ + name line113to114; + phases AN; + from load_113; + to load_114; + length 325.00; + configuration lc309; +} + +object overhead_line +{ + name line135to35; + phases ABCN; + from node_135; + to load_35; + length 375.00; + configuration lc304; +} + +object overhead_line +{ + name line149to1; + phases ABCN; + from node_149; + to load_1; + length 400.00; + configuration lc301; +} + +object overhead_line +{ + name line152to52; + phases ABCN; + from node_152; + to load_52; + length 400.00; + configuration lc301; +} + +object overhead_line +{ + name line16001to67; + phases ABCN; + from node_16001; + to node_67; + length 350.00; + configuration lc306; +} + +object overhead_line +{ + name line197to101; + phases ABCN; + from node_197; + to node_101; + length 250.00; + configuration lc303; +} + +//Lines with distributed loads + +//Transformers + +object transformer +{ + name trans6101to610; + phases ABCN; + from node_6101; + to node_610; + configuration tc500; +} + +//Regulators + +object regulator +{ + name reg150to15001; + phases ABCN; + from node_150; + to node_15001; + configuration rc501; +} + +object regulator +{ + name reg9to901; + phases AN; + from load_9; + to node_901; + configuration rc502; +} + +object regulator +{ + name reg25to2501; + phases ACN; + from node_25; + to node_2501; + configuration rc503; +} + +object regulator +{ + name reg160to16001; + phases ABCN; + from node_160; + to node_16001; + configuration rc504; +} + +//Switches + +object switch +{ + name sw13to152; + phases ABCN; + from node_13; + to node_152; + status CLOSED; +} + +object switch +{ + name sw18to135; + phases ABCN; + from node_18; + to node_135; + status CLOSED; +} + +object switch +{ + name sw54to94; + phases ABCN; + from node_54; + to load_94; + status OPEN; +} + +object switch +{ + name sw60to160; + phases ABCN; + from load_60; + to node_160; + status CLOSED; +} + +object switch +{ + name sw61to6101; + phases ABCN; + from node_61; + to node_6101; + status CLOSED; +} + +object switch +{ + name sw97to197; + phases ABCN; + from node_97; + to node_197; + status CLOSED; +} + +object switch +{ + name sw151to300; + phases ABCN; + from node_151; + to node_300; + status OPEN; +} +object switch +{ + name sw15001to149; + phases ABCN; + from node_15001; + to node_149; + status CLOSED; +} + +//Capacitors + +object capacitor +{ + name cap_83; + parent load_83; + phases ABC; + phases_connected ABC; + nominal_voltage 2401.7771; + control MANUAL; + capacitor_A 200000.0000; + capacitor_B 200000.0000; + capacitor_C 200000.0000; + switchA OPEN; + switchB OPEN; + switchC OPEN; +}; + +object capacitor +{ + name cap_88; + parent load_88; + phases A; + phases_connected A; + nominal_voltage 2401.7771; + control MANUAL; + capacitor_A 50000.0000; + switchA OPEN; +}; + +object capacitor +{ + name cap_90; + parent load_90; + phases B; + phases_connected B; + nominal_voltage 2401.7771; + control MANUAL; + capacitor_B 50000.0000; + switchB OPEN; +}; + +object capacitor +{ + name cap_92; + parent load_92; + phases C; + phases_connected C; + nominal_voltage 2401.7771; + control MANUAL; + capacitor_C 50000.0000; + switchC OPEN; +}; + +// IEEE 123 realtime demo feeder topology +// Copyright (C) 2016, Stanford University +// by dchassin@slac.stanford.edu +// + +// lateral feeds +object node +{ + name node_251; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; + bustype SWING; + voltage_A 2401.777120+0.000000j; + voltage_B -1200.888560-2080.000000j; + voltage_C -1200.888560+2080.000000j; +} + +object node +{ + name node_350; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; + bustype SWING; + voltage_A 2401.777120+0.000000j; + voltage_B -1200.888560-2080.000000j; + voltage_C -1200.888560+2080.000000j; +} + + +object node +{ + name node_451; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; + bustype SWING; + voltage_A 2401.777120+0.000000j; + voltage_B -1200.888560-2080.000000j; + voltage_C -1200.888560+2080.000000j; +} + +object node +{ + name node_195; + groupid nodevolts; + phases ABCN; + nominal_voltage 2401.7771; + bustype SWING; + voltage_A 2401.777120+0.000000j; + voltage_B -1200.888560-2080.000000j; + voltage_C -1200.888560+2080.000000j; +} + +// switch to laterals +object switch +{ + name sw250to251; + phases ABCN; + from node_250; + to node_251; + status OPEN; +} + +object switch +{ + name sw300to350; + phases ABCN; + from node_300; + to node_350; + status OPEN; +} + +object switch +{ + name sw450to451; + phases ABCN; + from node_450; + to node_451; + status OPEN; +} + +object switch +{ + name sw95to195; + phases ABCN; + from load_95; + to node_195; + status OPEN; +} + +//Conductors + +object overhead_line_conductor +{ + name olc301c; //336,400 26/7 ACSR + geometric_mean_radius 0.0244; + resistance 0.306; + diameter 0.721; +} + +object overhead_line_conductor +{ + name olc301n; //4/0 6/1 ACSR + geometric_mean_radius 0.00814; + resistance 0.592; + diameter 0.563; +} + +object overhead_line_conductor +{ + name olc309; //1/0 ACSR + geometric_mean_radius 0.004460; + resistance 1.120000; + diameter 0.398; +} + +object underground_line_conductor +{ + name ulc312; //1/0 AA, CN + outer_diameter 1.06; + conductor_gmr 0.0111; + conductor_diameter 0.368; + conductor_resistance 0.97; + neutral_gmr 0.00208; + neutral_resistance 14.8722; + neutral_diameter 0.0640837; + neutral_strands 16.0; +} + +//Line spacings +//ABCN +object line_spacing +{ + name ls500301; + distance_AB 2.5; + distance_AC 7.0; + distance_BC 4.5; + distance_CN 5.0; + distance_AN 5.65685424949; + distance_BN 4.27200187266; + distance_AE 28.0; + distance_BE 28.0; + distance_CE 28.0; + distance_NE 24.0; +} + +//CABN +object line_spacing +{ + name ls500302; + distance_AB 4.5; + distance_AC 2.5; + distance_BC 7.0; + distance_AN 4.27200187266; + distance_CN 5.65685424949; + distance_BN 5.0; + distance_AE 28.0; + distance_BE 28.0; + distance_CE 28.0; + distance_NE 24.0; +} + +//BCAN +object line_spacing +{ + name ls500303; + distance_AB 7.0; + distance_AC 4.5; + distance_BC 2.5; + distance_AN 5.0; + distance_BN 5.65685424949; + distance_CN 4.27200187266; + distance_AE 28.0; + distance_BE 28.0; + distance_CE 28.0; + distance_NE 24.0; +} + +//CBAN +object line_spacing +{ + name ls500304; + distance_AB 4.5; + distance_AC 7.0; + distance_BC 2.5; + distance_AN 5.0; + distance_BN 4.27200187266; + distance_CN 5.65685424949; + distance_AE 28.0; + distance_BE 28.0; + distance_CE 28.0; + distance_NE 24.0; +} + +//BACN +object line_spacing +{ + name ls500305; + distance_AB 2.5; + distance_AC 4.5; + distance_BC 7.0; + distance_CN 5.0; + distance_AN 4.27200187266; + distance_BN 5.65685424949; + distance_AE 28.0; + distance_BE 28.0; + distance_CE 28.0; + distance_NE 24.0; +} + +//ACBN +object line_spacing +{ + name ls500306; + distance_AB 2.5; + distance_AC 7.0; + distance_BC 4.5; + distance_CN 5.0; + distance_BN 4.27200187266; + distance_AN 5.65685424949; + distance_AE 28.0; + distance_BE 28.0; + distance_CE 28.0; + distance_NE 24.0; +} + +//ACN +object line_spacing +{ + name ls505307; + distance_AC 7.0; + distance_AN 5.65685424949; + distance_CN 5.0; + distance_AE 28.0; + distance_CE 28.0; + distance_NE 24.0; +} + +//ABN +object line_spacing +{ + name ls505308; + distance_AB 7.0; + distance_AN 5.65685424949; + distance_BN 5.0; + distance_AE 28.0; + distance_BE 28.0; + distance_NE 24.0; +} + +//AN +object line_spacing +{ + name ls510309; + distance_AN 5.024937811; + distance_AE 28.0; + distance_NE 24.0; +} + +//BN +object line_spacing +{ + name ls510310; + distance_BN 5.024937811; + distance_BE 28.0; + distance_NE 24.0; +} + +//CN +object line_spacing +{ + name ls510311; + distance_CN 5.024937811; + distance_CE 28.0; + distance_NE 24.0; +} + +//UGL - ABC +object line_spacing +{ + name ls515312; + distance_AB 0.5; + distance_AC 1.0; + distance_BC 0.5; +} + +//Line configurations +//ABCN +object line_configuration +{ + name lc301; + conductor_A olc301c; + conductor_B olc301c; + conductor_C olc301c; + conductor_N olc301n; + spacing ls500301; +} + +//CABN +object line_configuration +{ + name lc302; + conductor_A olc301c; + conductor_B olc301c; + conductor_C olc301c; + conductor_N olc301n; + spacing ls500302; +} + +//BCAN +object line_configuration +{ + name lc303; + conductor_A olc301c; + conductor_B olc301c; + conductor_C olc301c; + conductor_N olc301n; + spacing ls500303; +} + +//CBAN +object line_configuration +{ + name lc304; + conductor_A olc301c; + conductor_B olc301c; + conductor_C olc301c; + conductor_N olc301n; + spacing ls500304; +} + +//BACN +object line_configuration +{ + name lc305; + conductor_A olc301c; + conductor_B olc301c; + conductor_C olc301c; + conductor_N olc301n; + spacing ls500305; +} + +//ACBN +object line_configuration +{ + name lc306; + conductor_A olc301c; + conductor_B olc301c; + conductor_C olc301c; + conductor_N olc301n; + spacing ls500306; +} + +//ACN +object line_configuration +{ + name lc307; + conductor_A olc301c; + conductor_C olc301c; + conductor_N olc301n; + spacing ls505307; +} + +//ABN +object line_configuration +{ + name lc308; + conductor_A olc301c; + conductor_B olc301c; + conductor_N olc301n; + spacing ls505308; +} + +//AN +object line_configuration +{ + name lc309; + conductor_A olc309; + conductor_N olc309; + spacing ls510309; +} + +//BN +object line_configuration +{ + name lc310; + conductor_B olc309; + conductor_N olc309; + spacing ls510310; +} + +//CN +object line_configuration +{ + name lc311; + conductor_C olc309; + conductor_N olc309; + spacing ls510311; +} + +//ABC +object line_configuration +{ + name lc312; + conductor_A ulc312; + conductor_B ulc312; + conductor_C ulc312; + spacing ls515312; +} + +//Transformer configurations +object transformer_configuration +{ + name tc500; + connect_type DELTA_DELTA; + install_type PADMOUNT; + power_rating 150.0 kVA; + primary_voltage 4160.0; + secondary_voltage 480.0; + resistance 0.0127; + reactance 0.0272; +} + +object transformer_configuration +{ + name tc9999; + connect_type DELTA_GWYE; + install_type PADMOUNT; + power_rating 5.0 MVA; + primary_voltage 115.0; + secondary_voltage 4160.0; + resistance 0.01; + reactance 0.08; +} + +// Regulator configs +object regulator_configuration +{ + name rc501; + connect_type WYE_WYE; + band_center 2400.000; + band_width 40.0; + time_delay 30.0; + raise_taps 16; + lower_taps 16; + current_transducer_ratio 700; + power_transducer_ratio 20; + compensator_r_setting_A 3.0; + compensator_x_setting_A 7.5; + CT_phase "A"; + PT_phase "A"; + regulation 0.10; + Control OUTPUT_VOLTAGE; + Type A; + tap_pos_A 0; + tap_pos_B 0; + tap_pos_C 0; +} + +object regulator_configuration +{ + name rc502; + connect_type WYE_WYE; + band_center 2400.000; + band_width 40.0; + time_delay 30.0; + raise_taps 16; + lower_taps 16; + current_transducer_ratio 50; + power_transducer_ratio 20; + compensator_r_setting_A 0.4; + compensator_x_setting_A 0.4; + CT_phase "A"; + PT_phase "A"; + regulation 0.10; + Control MANUAL; + Type A; + tap_pos_A -1; + tap_pos_B 0; + tap_pos_C 0; +} + +object regulator_configuration +{ + name rc503; + connect_type WYE_WYE; + band_center 2400.000; + band_width 20.0; + time_delay 30.0; + raise_taps 16; + lower_taps 16; + current_transducer_ratio 50; + power_transducer_ratio 20; + compensator_r_setting_A 0.4; + compensator_r_setting_C 0.4; + compensator_x_setting_A 0.4; + compensator_x_setting_C 0.4; + CT_phase "AC"; + PT_phase "AC"; + regulation 0.10; + Control MANUAL; + Type A; + tap_pos_A 0; + tap_pos_B 0; + tap_pos_C -1; +} + +object regulator_configuration +{ + name rc504; + connect_type WYE_WYE; + band_center 2400.000; + band_width 40.0; + time_delay 30.0; + raise_taps 16; + lower_taps 16; + current_transducer_ratio 300; + power_transducer_ratio 20; + compensator_r_setting_A 0.6; + compensator_r_setting_B 1.4; + compensator_r_setting_C 0.2; + compensator_x_setting_A 1.3; + compensator_x_setting_B 2.6; + compensator_x_setting_C 1.4; + CT_phase "ABC"; + PT_phase "ABC"; + regulation 0.10; + Control MANUAL; + Type A; + tap_pos_A 8; + tap_pos_B 1; + tap_pos_C 5; +} diff --git a/tools/group.py b/tools/group.py new file mode 100644 index 000000000..758c7cd11 --- /dev/null +++ b/tools/group.py @@ -0,0 +1,453 @@ +# Syntax: group -i=INPUT [-o=OUTPUT] [OPTIONS ...] +"""Set group according to powerflow islanding + +Syntax: group [-i=INPUT] [-o=OUTPUT] [OPTIONS ...] + +Options +------- + + -b|--by=GROUPER specify grouping (default is 'island') + + -c|--cut=CLASSES command-separated list classes of cut objects + (default is 'switch') + + --control=NAME set control groupid (default "control_") + + --copy_from=CLASS.PROPERTY,... specify CLASS.PROPERTY from which groupid + is copied (default is `pole_mount.equipment`) + + --copy_to=CLASS.PROPERTY,... specify CLASS.PROPERTY to which groupid is + copied (default is `pole_mount.parent`) + + -d|--debug enable debugging output and exception handling + + -f|--force force overwrite of existing groupid data + + -i|--input=INPUT input JSON file name (default is stdin) + + -m|--modify output GLM modify statements instead of full modify + + -o|--output=OUTPUT output file name (JSON or GLM, default is stdout) + + -p|--prefix=PREFIX set the groupid prefix (default "island_") + + -q|--quiet disable error output + + -w|--warning disable warning output + +The `group` tools identify groups of object based on a grouper method and a +cut criteria. The only grouper currently supported is the `island` grouper +with `switch` cut object criteria. Additional cut classes can be specified +using a comma-separated list of class names, e.g., +`--cut=switch,relay,breaker`. + +The input file must a GridLAB-D JSON file. You can use the +`gridlabd -o|--output FILENAME.json` option to generate a JSON file from a +GLM model. The output file may be a JSON or GLM file, depending on the use +of the `-m|--modify` option. When `modify` is not used, the output file +format is JSON. When `modify` is used, the output file format is GLM, and +python variables defined to provide information about the grouping. The +variable `groups` contains a dictionary of all the groups created and which +objects belong to each group. The variable `controls` contains a dictionary +of control objects and which groups are connected by that object. The +variable `swingbus` contains a dictionary of the swing buses for each island. +The variable `isolated` contains a list of groups that do not have a swing +bus. These groups are considered isolated when they are not connected to a +group that has a swing bus. + +The `-f|--force` option is used to overwrite any existing `groupid` values +found in the model. + +Example: + +The following example generates a GLM modify file for the IEEE 123 model based +on switch islanding. + +~~~ +gridlabd model get IEEE/123 +gridlabd -C 123.glm -o 123.json +gridlabd group -i=123.json --modify -o=groups.glm --force +~~~ +""" + +import sys, os +import json +import datetime + +class GroupException(Exception): + pass + +MODIFY = False +FORCE = False +DEBUG = False +WARNING = False +QUIET = False +GROUPER = 'island' +PREFIX = 'island_' +CONTROL = 'control' +CUTOBJECTS = 'switch' +INPUT = "/dev/stdin" +OUTPUT = None +COPYFROM = 'pole_mount.equipment' +COPYTO = 'pole_mount.parent' + +E_OK = 0 +E_INVALID = 1 +E_FAILED = 2 +E_MISSING = 3 +E_EXCEPTION = 8 +E_SYNTAX = 9 + +def error(msg,code=None): + """Output error message or raise exception + + Parameters: + msg (str) - error message + code (None, int) - termination code + + If code is None, only message is displayed. If code + is int, `exit(code)` is called. + """ + if not QUIET: + print(f"ERROR [group]: {msg}",file=sys.stderr) + if DEBUG: + raise GroupException(msg) + if type(code) is int: + exit(code) + elif not code is None: + raise GroupException(f"{code} is an invalid error code") + +def warning(msg): + """Output warning message""" + if not WARNING: + print(f"WARNING [group]: {msg}",file=sys.stderr) + +def debug(msg): + """Output a debugging message""" + if DEBUG: + print(f"DEBUG [group]: {msg}",file=sys.stderr) + +def grouper_island(input=None): + """Group object by connectivity in powerflow solution + + Parameters: + input (str) - input file name + + Returns: + dict - processed gridlabd model + """ + if input is None: + input = INPUT + + # + # Load model + # + with open(input,"r") as fh: + model = json.load(fh) + + # + # Check groupid + # + if not FORCE: + for obj,data in model['objects'].items(): + if 'groupid' in data and data['groupid']: + error(f"{obj}.groupid='{data['groupid']}' (use --force to overwrite)",E_FAILED) + + # + # Find swing buses and build network graph + # + swing_buses = [] + groupid = 1 + links = {} + nodes = {} + for obj,data in model['objects'].items(): + model['objects'][obj]['groupid'] = None + if 'bustype' in data and data['bustype'] in ["SWING","SWING_PQ"]: + swing_buses.append(obj) + model['objects'][obj]['groupid'] = f"{PREFIX}{groupid}" + groupid += 1 + elif 'from' in data or 'to' in data: + from_node = data['from'] + to_node = data['to'] + links[obj] = [from_node,to_node] + if not from_node in nodes: + nodes[from_node] = [obj] + elif obj not in nodes[from_node]: + nodes[from_node].append(obj) + if not to_node in nodes: + nodes[to_node] = [obj] + elif obj not in nodes[to_node]: + nodes[to_node].append(obj) + + # + # Process each swing_bus + # + def group(bus): + groupid = model['objects'][bus]['groupid'] + if not bus in nodes: + return + for link in nodes[bus]: + link_data = model['objects'][link] + if not link_data['class'] in CUTOBJECTS: + debug(f"tagging link '{link}' from '{bus}' as '{groupid}'") + model['objects'][link]['groupid'] = groupid + for node in links[link]: + if model['objects'][node]['groupid'] is None: + debug(f"tagging node '{node}' from '{link}' as '{groupid}'") + model['objects'][node]['groupid'] = groupid + group(node) + else: + model['objects'][link]['groupid'] = CONTROL + debug(f"tagging control '{link}' from '{bus}' as '{CONTROL}'") + for bus in swing_buses: + group(bus) + + # + # Recursively tag objects + # + for obj,data in model['objects'].items(): + if 'bustype' in data and data['groupid'] is None: + if 'parent' not in data: + model['objects'][obj]['groupid'] = f'{PREFIX}{groupid}' + group(obj) + warning(f"group '{data['groupid']}' does not have a swing bus") + groupid += 1 + # del model['objects'][obj]['groupid'] + else: + model['objects'][data['parent']]['groupid'] = model['objects'][obj]['groupid'] + elif 'from' in data and 'to' in data and data['groupid'] is None: + if data['groupid'] == CONTROL: + from_node = model['objects'][obj]['from'] + to_node = model['objects'][obj]['to'] + from_group = model['objects'][from_node]['groupid'] + to_group = model['objects'][to_node]['groupid'] + groupid = model['objects'][obj] = f"control_{from_group}_{to_group}" + debug(f"tagging link {link} from {bus} as {groupid}") + else: + warning(f"link '{obj}' was not tagged") + del model['objects'][obj]['groupid'] + + # + # Process linkages and children + # + for obj,data in model['objects'].items(): + + # copy groupid from objects + for linkage in COPYFROM.split(','): + classname,propname = linkage.split('.') + if data['class'] == classname and propname in data: + if data['groupid'] is None: + ref_name = data[propname] + ref = model['objects'][ref_name] + model['objects'][obj]['groupid'] = ref['groupid'] + # print(classname,'linkage from',ref_name,'to',obj,'as',ref['groupid']) + elif data['groupid'] != ref['groupid']: + warning(f"{classname} link from {ref_name} {ref['groupid']} differs from {obj} {data['groupid']}") + + # copy groupid to objects + for children in COPYTO.split(','): + classname,propname = children.split('.') + if data['class'] == classname: + ref_name = data[propname] + ref = model['objects'][ref_name] + if ref['groupid'] is None and propname in data: + model['objects'][ref_name]['groupid'] = data['groupid'] + # print(classname,'linkage from',ref_name,'to',obj,'as',ref['groupid']) + elif data['groupid'] != ref['groupid'] and ref['groupid'] != CONTROL: + warning(f"{classname} link to {ref_name} {ref['groupid']} differs from {obj} {data['groupid']}") + + return model + +# +# Process argument list +# +if len(sys.argv) == 1: + for line in __doc__.split('\n'): + if line.startswith('Syntax: '): + print(line) + exit(E_SYNTAX) +for arg in sys.argv[1:]: + token,value = (arg.split('=')[0],'='.join(arg.split('=')[1:]) if '=' in arg else None) + + # + # -h|--help|help + # + if token in ['-h','--help','help']: + print(__doc__) + exit(E_OK) + + # + # -b|--by=GROUPER specify grouping (default is 'island') + # + elif token in ['-b','--by']: + GROUPER = value + + # + # -c|--cut=CUTOBJECTS + # + elif token in ['-c','--cut']: + CUTOBJECTS = value.split(',') if ',' in value else [value] + + # + # --control=NAME set control groupid (default "control_") + # + elif token in ['--control']: + CONTROL = value + # + # --copy_from=CLASS.PROPERTY,... specify CLASS.PROPERTY from which groupid is copied (default + # is `pole_mount.equipment`) + # + elif token in ['--copy_from']: + COPYFROM = value + + # + # --copy_to=CLASS.PROPERTY,... specify CLASS.PROPERTY to which groupid is copied (default + # is `pole_mount.parent`) + # + elif token in ['--copy_to']: + COPYTO = value + + # + # -d|--debug + # + elif token in ['-d','--debug']: + DEBUG = True + + # + # -f|--force force overwrite of existing groupid data + # + elif token in ['-f','--force']: + FORCE = True + + # + # -i|--input=INPUT input JSON file name + # + elif token in ['-i','--input']: + if os.path.splitext(value)[1] in [".json"]: + INPUT = value + else: + error("only JSON input files are supported",E_INVALID) + + # + # -m|--modify output GLM modify statements instead of full modify + # + elif token in ['-m','--modify']: + MODIFY = True + + # + # -o|--output=OUTPUT output file name (JSON or GLM) + # + elif token in ['-o','--output']: + OUTPUT = value + + # + # -p|--prefix=PREFIX set the groupid prefix (default "island_") + # + elif token in ['--prefix']: + PREFIX = value + + # -q|--quiet + # + elif token in ['-q','--quiet']: + QUIET = True + + # + # -w|--warning + # + elif token in ['-w','--warning']: + WARNING = True + + # + # invalid arg + # + else: + error(f"option {arg} is invalid",E_INVALID) + +# +# Process commands +# +if __name__ == "__main__": + + EXITCODE = E_OK + # + # check for existence of grouper function + # + if "grouper_"+GROUPER not in globals(): + error(f"grouper '{GROUPER}' is invalid",E_INVALID) + + # + # check for consistent use of modify and output file extension + # + if OUTPUT is None: + OUTPUT = "/dev/stdout" + elif MODIFY and os.path.splitext(OUTPUT)[1] != ".glm": + error(f"modify output must be GLM",E_INVALID) + elif not MODIFY and os.path.splitext(OUTPUT)[1] != ".json": + error(f"model output must be JSON",E_INVALID) + + try: + + # + # call grouper + # + model = globals()["grouper_"+GROUPER]() + + # + # generate output + # + with open(OUTPUT,"w") as fh: + if MODIFY: + print(f"// generated by {' '.join(sys.argv)} at {datetime.datetime.now()}",file=fh) + + # generate python variables + groups = {} + controls = {} + swingbus = {} + isolated = [] + for obj,data in model['objects'].items(): + groupid = data['groupid'] + if groupid: + if groupid.startswith(PREFIX): + if not data['groupid'] in groups: + groups[groupid] = [obj] + else: + groups[groupid].append(obj) + if not groupid in isolated and not groupid in swingbus: + isolated.append(groupid) + if 'bustype' in data and data['bustype'] in ['SWING','SWING_PG']: + if not obj in swingbus: + swingbus[groupid] = [obj] + else: + swingbus[groupid].append(obj) + if groupid in isolated: + isolated.remove(groupid) + elif groupid == CONTROL and 'from' in data and 'to' in data: + controls[obj] = [model['objects'][data[x]]['groupid'] for x in ['from','to']] + print(f"""#begin python +groups = {groups} +controls = {controls} +swingbus = {swingbus} +isolated = {isolated} +#end +""",file=fh) + # output modify directives + for obj,data in model['objects'].items(): + groupid = data['groupid'] + if groupid: + print(f"modify {obj}.groupid '{groupid}';",file=fh) + else: + json.dump(model,fh,indent=4) + + except SystemExit as err: + + EXITCODE = err + + except: + + if DEBUG: + raise + + e_type,e_value,e_trace = sys.exc_info() + error(f"{e_type.__name__} {e_value} at line {e_trace.tb_lineno}",E_EXCEPTION) + + exit(EXITCODE)