urbanopt-cli 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +13 -0
- data/.rspec +3 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +5 -0
- data/CONTRIBUTING.md +58 -0
- data/Gemfile +4 -0
- data/Jenkinsfile +10 -0
- data/LICENSE.md +29 -0
- data/README.md +71 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/bin/uo +5 -0
- data/example_files/Gemfile +59 -0
- data/example_files/example_project.json +580 -0
- data/example_files/mappers/Baseline.rb +257 -0
- data/example_files/mappers/HighEfficiency.rb +62 -0
- data/example_files/mappers/base_workflow.osw +111 -0
- data/example_files/weather/USA_NY_Buffalo-Greater.Buffalo.Intl.AP.725280_TMY3.ddy +536 -0
- data/example_files/weather/USA_NY_Buffalo-Greater.Buffalo.Intl.AP.725280_TMY3.epw +8768 -0
- data/example_files/weather/USA_NY_Buffalo-Greater.Buffalo.Intl.AP.725280_TMY3.stat +553 -0
- data/lib/change_log.rb +147 -0
- data/lib/uo_cli/version.rb +5 -0
- data/lib/uo_cli.rb +253 -0
- data/uo_cli.gemspec +44 -0
- metadata +169 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 934fbb0b9143d20253d46905afb758ecce76605d
|
4
|
+
data.tar.gz: 557e2cd9d0e4a4a201937c9c3b39fa237bb2cae0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 528712d6caa6aae327c8e652db5df702a071f8184eecd40b4275e6534087d15559f3d951ecad0a5b7dcdf6e764c58bb301b8e06bcb1883a7896d82d3636f99e6
|
7
|
+
data.tar.gz: 5c5a9014e32e0ccc93e3c315c36832d1cb6b0fb1785c2cafd4f60ff1ac2f967f837af565888310bd280606d74cfeee2dc64b3d2d2f97df148e7a02b28c6e6e6e
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.2.4
|
data/CHANGELOG.md
ADDED
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
# URBANopt Contribution Policy
|
2
|
+
|
3
|
+
## Version 1.0
|
4
|
+
|
5
|
+
The URBANopt team welcomes your contribution to the project. You can contribute to the URBANopt project in several ways: by using the software, reporting issues, contributing documentation, or contributing code back to the project. The GitHub [Contributing to Open Source](https://opensource.guide/how-to-contribute/) guide provides a good overview. If you contribute code, you agree that your contribution may be incorporated into the URBANopt Software Development Kit (SDK) and made available under the URBANopt SDK license.
|
6
|
+
|
7
|
+
The contribution process for URBANopt is composed of three steps:
|
8
|
+
|
9
|
+
## 1. Send consent email
|
10
|
+
|
11
|
+
In order for us to distribute your code as part of URBANopt under the URBANopt SDK [license](https://github.com/urbanopt/urbanopt-scenario-gem/blob/develop/LICENSE.md), we’ll need your consent. An email acknowledging your understanding of these terms and agreeing to them is all that will be asked of any contributor. Send an email to the URBANopt project manager ([see below](#documentation) for the address) including the following text and a list of co-contributors (if any):
|
12
|
+
|
13
|
+
*I agree to contribute to the URBANopt SDK. I agree to the following terms and conditions for my contributions: First, I agree that I am licensing the copyright to my contributions under the terms of the current URBANopt SDK license. Second, I hereby grant to Alliance for Sustainable Energy, LLC, to any successor manager and distributor of URBANopt SDK appointed by the U.S. Department of Energy, and to all recipients of a version of URBANopt SDK that includes my contributions, a non-exclusive, worldwide, royalty-free, irrevocable patent license under any patent claims owned by me, or owned by my employer and known to me, that are or will be,necessarily infringed upon by my contributions alone, or by combination of my contributions with the version of URBANopt SDK to which they are contributed, to make, have made, use, offer to sell, sell, import, and otherwise transfer any version of URBANopt SDK that includes my contributions, in source code and object code form. Third, I represent and warrant that I am authorized to make the contributions and grant the foregoing license(s). Additionally, if, to my knowledge, my employer has rights to intellectual property that covers my contributions, I represent and warrant that I have received permission to make these contributions and grant the foregoing license(s) on behalf of my employer.*
|
14
|
+
|
15
|
+
Once we have your consent on file, you’ll only need to redo it if conditions change (e.g. a change of employer).
|
16
|
+
|
17
|
+
## 2. Scope agreement and timeline commitment
|
18
|
+
|
19
|
+
If your contribution is small (e.g. a bug fix), simply submit your contribution via GitHub. If you find a bug, first make sure it is not an already known issue, then report it in the GitHub [issue tracker](https://github.com/urbanopt/urbanopt-scenario-gem/issues) for this repository. If your contribution is larger (e.g. a new feature or new functionality/capability), we’ll need to evaluate your proposed contribution first. We may ask you to revise your materials and make changes to it, which we will then re-review.
|
20
|
+
|
21
|
+
## 3. Technical contribution process
|
22
|
+
|
23
|
+
We want URBANopt to adhere to our established quality standards. Smaller, non-code contributions may not require as much review as code contributions, but all contributions will be reviewed. Code contributions will initially be in a source control branch, and then will be merged into the official URBANopt repository after review and approval. Any bugs, either discovered by you, us, or any users will be tracked in our issue tracker. We request that you take full responsibility for correcting bugs. Be aware that, unless notified otherwise, the correction of bugs takes precedence over the submission or creation of new code.
|
24
|
+
|
25
|
+
### Release Schedule
|
26
|
+
|
27
|
+
Contributions should be aligned with the URBANopt release schedule. The URBANopt SDK is currently released publicly two times each year (approximately on the last workday of March and October). There are cutoff dates for when new contributions are allowed for the upcoming release (approximately two weeks before release date). If your contribution is incomplete or comes in past the cutoff date for a release, we reserve the right to hold your code for a later release.
|
28
|
+
|
29
|
+
### Coding Standards
|
30
|
+
|
31
|
+
Make sure you read and follow the coding standards when writing URBANopt SDK code. Although these standards are not complete or very detailed, they should give you an idea of the style that we would like you to adopt. New additions to the URBANopt SDK must be written using object-oriented programming techniques and practices. Please also look at the URBANopt SDK code itself as an example of the preferred coding style.
|
32
|
+
|
33
|
+
### Code Reviews
|
34
|
+
|
35
|
+
You will be working and testing your code in a source control branch. When a piece of functionality is complete, tested and working, let us know and we will review your code. If the functionality that you contributed is complex, we may ask you for a written design document as well. We want your code to follow coding standards, be clear, readable, and maintainable, and of course it should do what it is supposed to do. We will look for errors, style issues, comments (or lack thereof), and any other issues in your code. We will inform you of our comments and we expect you to make the recommended changes. New re-reviews may be expected until the code complies with our required processes.
|
36
|
+
|
37
|
+
### Unit Tests
|
38
|
+
|
39
|
+
We ask that you supply unit tests along with the code that you have written. A unit test is a program that exercises your code in isolation to verify that it does what it is supposed to do. Your unit tests are very important to us. First, they give an indication that your code works according to its intended functionality. Second, we execute your unit tests automatically along with our unit tests to verify that the overall URBANopt SDK code continues to work.
|
40
|
+
|
41
|
+
### Code Coverage
|
42
|
+
|
43
|
+
We require that your unit tests provide an adequate coverage of the source code you are submitting. You will need to design your unit tests in such a way that all critical parts of the code (at least) are tested and verified.
|
44
|
+
|
45
|
+
### Documentation
|
46
|
+
|
47
|
+
Proper documentation is crucial for our users, without it users will not know how to use your contribution. We require that you create user documentation so that end users know how to use your new functionality.
|
48
|
+
|
49
|
+
For further questions or information:
|
50
|
+
|
51
|
+
- Ben Polly\
|
52
|
+
URBANopt Project Management\
|
53
|
+
ben.polly@nrel.gov\
|
54
|
+
(303) 384-7429
|
55
|
+
|
56
|
+
URBANopt is funded by the U.S. Department of Energy (DOE) and managed by the National Renewable Energy Laboratory (NREL).
|
57
|
+
|
58
|
+
URBANopt is developed in collaboration with NREL, LBNL, and private firms.
|
data/Gemfile
ADDED
data/Jenkinsfile
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
//Jenkins pipelines are stored in shared libaries. Please see: https://github.com/tijcolem/nrel_cbci_jenkins_libs
|
2
|
+
|
3
|
+
@Library('cbci_shared_libs') _
|
4
|
+
|
5
|
+
// Build for PR to develop branch only.
|
6
|
+
if ((env.CHANGE_ID) && (env.CHANGE_TARGET) ) { // check if set
|
7
|
+
|
8
|
+
urbanopt_cli()
|
9
|
+
|
10
|
+
}
|
data/LICENSE.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# License
|
2
|
+
|
3
|
+
URBANopt, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
|
4
|
+
contributors. All rights reserved.
|
5
|
+
|
6
|
+
Redistribution and use in source and binary forms, with or without modification,
|
7
|
+
are permitted provided that the following conditions are met:
|
8
|
+
|
9
|
+
Redistributions of source code must retain the above copyright notice, this list
|
10
|
+
of conditions and the following disclaimer.
|
11
|
+
|
12
|
+
Redistributions in binary form must reproduce the above copyright notice, this
|
13
|
+
list of conditions and the following disclaimer in the documentation and/or other
|
14
|
+
materials provided with the distribution.
|
15
|
+
|
16
|
+
Neither the name of the copyright holder nor the names of its contributors may be
|
17
|
+
used to endorse or promote products derived from this software without specific
|
18
|
+
prior written permission.
|
19
|
+
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
21
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
22
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
23
|
+
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
24
|
+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
25
|
+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
26
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
27
|
+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
28
|
+
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
29
|
+
OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/README.md
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
# UoCli
|
2
|
+
|
3
|
+
This is the command line interface (CLI) for URBANopt.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'uo_cli'
|
11
|
+
```
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
```terminal
|
16
|
+
bundle
|
17
|
+
```
|
18
|
+
|
19
|
+
Or install it yourself with:
|
20
|
+
|
21
|
+
```terminal
|
22
|
+
gem install uo_cli
|
23
|
+
```
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
For help text in your terminal, type:
|
28
|
+
|
29
|
+
```terminal
|
30
|
+
uo -h
|
31
|
+
```
|
32
|
+
|
33
|
+
Create a project folder:
|
34
|
+
|
35
|
+
```terminal
|
36
|
+
uo -p <FOLDERNAME>
|
37
|
+
```
|
38
|
+
|
39
|
+
Make ScenarioFiles from a FeatureFile using MapperFiles:
|
40
|
+
|
41
|
+
```terminal
|
42
|
+
uo -m -f <FEATUREFILE>
|
43
|
+
```
|
44
|
+
|
45
|
+
Run URBANopt energy simulations for each feature in your scenario:
|
46
|
+
|
47
|
+
```terminal
|
48
|
+
uo -r -s <SCENARIOFILE> -f <FEATUREFILE>
|
49
|
+
```
|
50
|
+
|
51
|
+
Aggregate simulations for a full scenario:
|
52
|
+
|
53
|
+
```terminal
|
54
|
+
uo -a -s <SCENARIOFILE> -f <FEATUREFILE>
|
55
|
+
```
|
56
|
+
|
57
|
+
Delete a scenario that you have already run:
|
58
|
+
|
59
|
+
```terminal
|
60
|
+
uo -d -s <SCENARIOFILE>
|
61
|
+
```
|
62
|
+
|
63
|
+
Installed CLI version:
|
64
|
+
|
65
|
+
```terminal
|
66
|
+
uo -v
|
67
|
+
```
|
68
|
+
|
69
|
+
## Development
|
70
|
+
|
71
|
+
To install this gem onto your local machine, clone this repo and run `rake install`. If you make changes to this repo, update the version number in `lib/version.rb` in your first commit. When ready to release, run the changelog script at `lib/change_log.rb` and copy the appropriate portion of the output into `CHANGELOG.md`. Run `bundle exec rake release` which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "uo_cli"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
data/bin/uo
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
source 'http://rubygems.org'
|
2
|
+
|
3
|
+
# Local gems are useful when developing and integrating the various dependencies.
|
4
|
+
# To favor the use of local gems, set the following environment variable:
|
5
|
+
# Mac: export FAVOR_LOCAL_GEMS=1
|
6
|
+
# Windows: set FAVOR_LOCAL_GEMS=1
|
7
|
+
# Note that if allow_local is true, but the gem is not found locally, then it will
|
8
|
+
# checkout the latest version (develop) from github.
|
9
|
+
allow_local = ENV['FAVOR_LOCAL_GEMS']
|
10
|
+
|
11
|
+
# Uncomment the extension, common measures, core gems if you need to test local development versions. Otherwise
|
12
|
+
# these are included in the model articulation and urbanopt gems
|
13
|
+
#
|
14
|
+
# if allow_local && File.exist?('../OpenStudio-extension-gem')
|
15
|
+
# gem 'openstudio-extension', path: '../OpenStudio-extension-gem'
|
16
|
+
# elsif allow_local
|
17
|
+
# gem 'openstudio-extension', github: 'NREL/OpenStudio-extension-gem', branch: 'develop'
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# if allow_local && File.exist?('../openstudio-common-measures-gem')
|
21
|
+
# gem 'openstudio-common-measures', path: '../openstudio-common-measures-gem'
|
22
|
+
# elsif allow_local
|
23
|
+
# gem 'openstudio-common-measures', github: 'NREL/openstudio-common-measures-gem', branch: 'develop'
|
24
|
+
# end
|
25
|
+
#
|
26
|
+
# if allow_local && File.exist?('../urbanopt-core-gem')
|
27
|
+
# gem 'urbanopt-core', path: '../urbanopt-core-gem'
|
28
|
+
# elsif allow_local
|
29
|
+
# gem 'urbanopt-core', github: 'URBANopt/urbanopt-core-gem', branch: 'develop'
|
30
|
+
# end
|
31
|
+
#
|
32
|
+
# if allow_local && File.exist?('../openstudio-model-articulation-gem')
|
33
|
+
# # gem 'openstudio-model-articulation', github: 'NREL/openstudio-model-articulation-gem', branch: 'develop'
|
34
|
+
# gem 'openstudio-model-articulation', path: '../openstudio-model-articulation-gem'
|
35
|
+
# elsif allow_local
|
36
|
+
# gem 'openstudio-model-articulation', github: 'NREL/openstudio-model-articulation-gem', branch: 'develop'
|
37
|
+
# else
|
38
|
+
# gem 'openstudio-model-articulation', '0.1.0'
|
39
|
+
# end
|
40
|
+
|
41
|
+
if allow_local && File.exist?('../urbanopt-scenario-gem')
|
42
|
+
gem 'urbanopt-scenario', path: '../urbanopt-scenario-gem'
|
43
|
+
elsif allow_local
|
44
|
+
gem 'urbanopt-scenario', github: 'URBANopt/urbanopt-scenario-gem', branch: 'post_process'
|
45
|
+
else
|
46
|
+
gem 'urbanopt-scenario', '0.1.1'
|
47
|
+
end
|
48
|
+
|
49
|
+
if allow_local && File.exists?('../urbanopt-geojson-gem')
|
50
|
+
# gem 'openstudio-extension', github: 'NREL/OpenStudio-extension-gem', branch: 'develop'
|
51
|
+
gem 'urbanopt-geojson', path: '../urbanopt-geojson-gem'
|
52
|
+
elsif allow_local
|
53
|
+
gem 'urbanopt-geojson', github: 'URBANopt/urbanopt-geojson-gem', branch: 'develop'
|
54
|
+
else
|
55
|
+
gem 'urbanopt-geojson', '0.1.0'
|
56
|
+
end
|
57
|
+
|
58
|
+
gem 'openstudio-standards', '0.2.10'
|
59
|
+
gem 'simplecov', github: 'NREL/simplecov'
|
@@ -0,0 +1,580 @@
|
|
1
|
+
{
|
2
|
+
"type": "FeatureCollection",
|
3
|
+
"features": [
|
4
|
+
{
|
5
|
+
"type": "Feature",
|
6
|
+
"properties": {
|
7
|
+
"id": "1",
|
8
|
+
"name": "Mixed_use 1",
|
9
|
+
"type": "Building",
|
10
|
+
"footprint_area": 188046,
|
11
|
+
"floor_area": 752184,
|
12
|
+
"number_of_stories": 4,
|
13
|
+
"building_type": "Mixed use",
|
14
|
+
"mixed_type_1_percentage": 50,
|
15
|
+
"mixed_type_2_percentage": 50,
|
16
|
+
"mixed_type_3_percentage": 0,
|
17
|
+
"mixed_type_4_percentage": 0,
|
18
|
+
"mixed_type_1": "Office",
|
19
|
+
"mixed_type_2": "Food service",
|
20
|
+
"mixed_type_3": "Strip shopping mall",
|
21
|
+
"mixed_type_4": "Lodging"
|
22
|
+
},
|
23
|
+
"geometry": {
|
24
|
+
"type": "Polygon",
|
25
|
+
"coordinates": [
|
26
|
+
[
|
27
|
+
[
|
28
|
+
-78.84650338745196,
|
29
|
+
42.81331301863236
|
30
|
+
],
|
31
|
+
[
|
32
|
+
-78.84652443964629,
|
33
|
+
42.81463974371101
|
34
|
+
],
|
35
|
+
[
|
36
|
+
-78.84680142363833,
|
37
|
+
42.815293654042534
|
38
|
+
],
|
39
|
+
[
|
40
|
+
-78.84744455124724,
|
41
|
+
42.81514110006128
|
42
|
+
],
|
43
|
+
[
|
44
|
+
-78.84728610028628,
|
45
|
+
42.81478165791734
|
46
|
+
],
|
47
|
+
[
|
48
|
+
-78.84786797764677,
|
49
|
+
42.814643631760134
|
50
|
+
],
|
51
|
+
[
|
52
|
+
-78.84721106637106,
|
53
|
+
42.813153418927016
|
54
|
+
],
|
55
|
+
[
|
56
|
+
-78.84650338745196,
|
57
|
+
42.81331301863236
|
58
|
+
]
|
59
|
+
]
|
60
|
+
]
|
61
|
+
}
|
62
|
+
},
|
63
|
+
{
|
64
|
+
"type": "Feature",
|
65
|
+
"properties": {
|
66
|
+
"id": "2",
|
67
|
+
"name": "Restaurant 1",
|
68
|
+
"type": "Building",
|
69
|
+
"footprint_area": 22313,
|
70
|
+
"floor_area": 22313,
|
71
|
+
"number_of_stories": 1,
|
72
|
+
"building_type": "Food service"
|
73
|
+
},
|
74
|
+
"geometry": {
|
75
|
+
"type": "Polygon",
|
76
|
+
"coordinates": [
|
77
|
+
[
|
78
|
+
[
|
79
|
+
-78.8500120420453,
|
80
|
+
42.81812185529549
|
81
|
+
],
|
82
|
+
[
|
83
|
+
-78.85038975191084,
|
84
|
+
42.81803226424341
|
85
|
+
],
|
86
|
+
[
|
87
|
+
-78.850630729414,
|
88
|
+
42.81857888627522
|
89
|
+
],
|
90
|
+
[
|
91
|
+
-78.85025301954843,
|
92
|
+
42.81866847653532
|
93
|
+
],
|
94
|
+
[
|
95
|
+
-78.8500120420453,
|
96
|
+
42.81812185529549
|
97
|
+
]
|
98
|
+
]
|
99
|
+
]
|
100
|
+
}
|
101
|
+
},
|
102
|
+
{
|
103
|
+
"type": "Feature",
|
104
|
+
"properties": {
|
105
|
+
"id": "3",
|
106
|
+
"name": "Residential 1",
|
107
|
+
"type": "Building",
|
108
|
+
"footprint_area": 41877,
|
109
|
+
"floor_area": 125631,
|
110
|
+
"number_of_stories": 3,
|
111
|
+
"building_type": "Multifamily (5 or more units)"
|
112
|
+
},
|
113
|
+
"geometry": {
|
114
|
+
"type": "Polygon",
|
115
|
+
"coordinates": [
|
116
|
+
[
|
117
|
+
[
|
118
|
+
-78.84962224800356,
|
119
|
+
42.81329273502644
|
120
|
+
],
|
121
|
+
[
|
122
|
+
-78.84929833482822,
|
123
|
+
42.81337083838241
|
124
|
+
],
|
125
|
+
[
|
126
|
+
-78.84983265832118,
|
127
|
+
42.814563298664666
|
128
|
+
],
|
129
|
+
[
|
130
|
+
-78.85015657149653,
|
131
|
+
42.81448519681467
|
132
|
+
],
|
133
|
+
[
|
134
|
+
-78.84962224800356,
|
135
|
+
42.81329273502644
|
136
|
+
]
|
137
|
+
]
|
138
|
+
]
|
139
|
+
}
|
140
|
+
},
|
141
|
+
{
|
142
|
+
"type": "Feature",
|
143
|
+
"properties": {
|
144
|
+
"id": "4",
|
145
|
+
"name": "Residential 2",
|
146
|
+
"type": "Building",
|
147
|
+
"footprint_area": 10541,
|
148
|
+
"floor_area": 31623,
|
149
|
+
"number_of_stories": 3,
|
150
|
+
"building_type": "Multifamily (5 or more units)"
|
151
|
+
},
|
152
|
+
"geometry": {
|
153
|
+
"type": "Polygon",
|
154
|
+
"coordinates": [
|
155
|
+
[
|
156
|
+
[
|
157
|
+
-78.84907318596754,
|
158
|
+
42.81342719667407
|
159
|
+
],
|
160
|
+
[
|
161
|
+
-78.84862090048105,
|
162
|
+
42.81353625345659
|
163
|
+
],
|
164
|
+
[
|
165
|
+
-78.84871721918239,
|
166
|
+
42.813751210926796
|
167
|
+
],
|
168
|
+
[
|
169
|
+
-78.84916950466888,
|
170
|
+
42.81364215452331
|
171
|
+
],
|
172
|
+
[
|
173
|
+
-78.84907318596754,
|
174
|
+
42.81342719667407
|
175
|
+
]
|
176
|
+
]
|
177
|
+
]
|
178
|
+
}
|
179
|
+
},
|
180
|
+
{
|
181
|
+
"type": "Feature",
|
182
|
+
"properties": {
|
183
|
+
"id": "5",
|
184
|
+
"name": "Residential 4 ",
|
185
|
+
"type": "Building",
|
186
|
+
"footprint_area": 8804,
|
187
|
+
"floor_area": 8804,
|
188
|
+
"number_of_stories": 1,
|
189
|
+
"building_type": "Multifamily (5 or more units)"
|
190
|
+
},
|
191
|
+
"geometry": {
|
192
|
+
"type": "Polygon",
|
193
|
+
"coordinates": [
|
194
|
+
[
|
195
|
+
[
|
196
|
+
-78.84809175426629,
|
197
|
+
42.81367038997507
|
198
|
+
],
|
199
|
+
[
|
200
|
+
-78.84848670778973,
|
201
|
+
42.81357515750889
|
202
|
+
],
|
203
|
+
[
|
204
|
+
-78.84857883872144,
|
205
|
+
42.81378076888831
|
206
|
+
],
|
207
|
+
[
|
208
|
+
-78.84818388519801,
|
209
|
+
42.81387600103781
|
210
|
+
],
|
211
|
+
[
|
212
|
+
-78.84809175426629,
|
213
|
+
42.81367038997507
|
214
|
+
]
|
215
|
+
]
|
216
|
+
]
|
217
|
+
}
|
218
|
+
},
|
219
|
+
{
|
220
|
+
"type": "Feature",
|
221
|
+
"properties": {
|
222
|
+
"id": "6",
|
223
|
+
"name": "Residential 5",
|
224
|
+
"type": "Building",
|
225
|
+
"footprint_area": 10689,
|
226
|
+
"floor_area": 10689,
|
227
|
+
"number_of_stories": 1,
|
228
|
+
"building_type": "Multifamily (2 to 4 units)"
|
229
|
+
},
|
230
|
+
"geometry": {
|
231
|
+
"type": "Polygon",
|
232
|
+
"coordinates": [
|
233
|
+
[
|
234
|
+
[
|
235
|
+
-78.84846106738529,
|
236
|
+
42.814495803077364
|
237
|
+
],
|
238
|
+
[
|
239
|
+
-78.8486903952376,
|
240
|
+
42.81444050756261
|
241
|
+
],
|
242
|
+
[
|
243
|
+
-78.8484977578349,
|
244
|
+
42.81401059666683
|
245
|
+
],
|
246
|
+
[
|
247
|
+
-78.84826842998261,
|
248
|
+
42.81406589256599
|
249
|
+
],
|
250
|
+
[
|
251
|
+
-78.84846106738529,
|
252
|
+
42.814495803077364
|
253
|
+
]
|
254
|
+
]
|
255
|
+
]
|
256
|
+
}
|
257
|
+
},
|
258
|
+
{
|
259
|
+
"type": "Feature",
|
260
|
+
"properties": {
|
261
|
+
"id": "7",
|
262
|
+
"name": "Office 1",
|
263
|
+
"type": "Building",
|
264
|
+
"footprint_area": 54284,
|
265
|
+
"floor_area": 325704,
|
266
|
+
"number_of_stories": 6,
|
267
|
+
"building_type": "Office"
|
268
|
+
},
|
269
|
+
"geometry": {
|
270
|
+
"type": "Polygon",
|
271
|
+
"coordinates": [
|
272
|
+
[
|
273
|
+
[
|
274
|
+
-78.84733878006863,
|
275
|
+
42.816466983030836
|
276
|
+
],
|
277
|
+
[
|
278
|
+
-78.84854275129324,
|
279
|
+
42.81617669028003
|
280
|
+
],
|
281
|
+
[
|
282
|
+
-78.848356395545,
|
283
|
+
42.81576080994094
|
284
|
+
],
|
285
|
+
[
|
286
|
+
-78.84715242432038,
|
287
|
+
42.81605110464406
|
288
|
+
],
|
289
|
+
[
|
290
|
+
-78.84733878006863,
|
291
|
+
42.816466983030836
|
292
|
+
]
|
293
|
+
]
|
294
|
+
]
|
295
|
+
}
|
296
|
+
},
|
297
|
+
{
|
298
|
+
"type": "Feature",
|
299
|
+
"properties": {
|
300
|
+
"id": "8",
|
301
|
+
"name": "Hospital 1",
|
302
|
+
"type": "Building",
|
303
|
+
"footprint_area": 40320,
|
304
|
+
"floor_area": 403200,
|
305
|
+
"number_of_stories": 10,
|
306
|
+
"building_type": "Outpatient health care"
|
307
|
+
},
|
308
|
+
"geometry": {
|
309
|
+
"type": "Polygon",
|
310
|
+
"coordinates": [
|
311
|
+
[
|
312
|
+
[
|
313
|
+
-78.84973966335251,
|
314
|
+
42.8154441454509
|
315
|
+
],
|
316
|
+
[
|
317
|
+
-78.85049562542395,
|
318
|
+
42.81525669280299
|
319
|
+
],
|
320
|
+
[
|
321
|
+
-78.85078257620685,
|
322
|
+
42.81588131780643
|
323
|
+
],
|
324
|
+
[
|
325
|
+
-78.8505086568277,
|
326
|
+
42.81594736368234
|
327
|
+
],
|
328
|
+
[
|
329
|
+
-78.85041233812638,
|
330
|
+
42.815732413845666
|
331
|
+
],
|
332
|
+
[
|
333
|
+
-78.84991755499783,
|
334
|
+
42.81585689105046
|
335
|
+
],
|
336
|
+
[
|
337
|
+
-78.84973966335251,
|
338
|
+
42.8154441454509
|
339
|
+
]
|
340
|
+
]
|
341
|
+
]
|
342
|
+
}
|
343
|
+
},
|
344
|
+
{
|
345
|
+
"type": "Feature",
|
346
|
+
"properties": {
|
347
|
+
"id": "9",
|
348
|
+
"name": "Hospital 2",
|
349
|
+
"type": "Building",
|
350
|
+
"footprint_area": 95657,
|
351
|
+
"floor_area": 286971,
|
352
|
+
"number_of_stories": 3,
|
353
|
+
"building_type": "Inpatient health care"
|
354
|
+
},
|
355
|
+
"geometry": {
|
356
|
+
"type": "Polygon",
|
357
|
+
"coordinates": [
|
358
|
+
[
|
359
|
+
[
|
360
|
+
-78.85083627755732,
|
361
|
+
42.81600678613279
|
362
|
+
],
|
363
|
+
[
|
364
|
+
-78.85056039001891,
|
365
|
+
42.816076133580566
|
366
|
+
],
|
367
|
+
[
|
368
|
+
-78.85072568130569,
|
369
|
+
42.816450649528036
|
370
|
+
],
|
371
|
+
[
|
372
|
+
-78.84940134236577,
|
373
|
+
42.81677160705479
|
374
|
+
],
|
375
|
+
[
|
376
|
+
-78.84958014898304,
|
377
|
+
42.81716858994267
|
378
|
+
],
|
379
|
+
[
|
380
|
+
-78.8507262115271,
|
381
|
+
42.816890840117026
|
382
|
+
],
|
383
|
+
[
|
384
|
+
-78.8508565789851,
|
385
|
+
42.81719595796099
|
386
|
+
],
|
387
|
+
[
|
388
|
+
-78.85132137101688,
|
389
|
+
42.81708331517635
|
390
|
+
],
|
391
|
+
[
|
392
|
+
-78.85083627755732,
|
393
|
+
42.81600678613279
|
394
|
+
]
|
395
|
+
]
|
396
|
+
]
|
397
|
+
}
|
398
|
+
},
|
399
|
+
{
|
400
|
+
"type": "Feature",
|
401
|
+
"properties": {
|
402
|
+
"id": "10",
|
403
|
+
"name": "Mixed use 2",
|
404
|
+
"type": "Building",
|
405
|
+
"footprint_area": 159798,
|
406
|
+
"floor_area": 1278384,
|
407
|
+
"number_of_stories": 8,
|
408
|
+
"building_type": "Mixed use",
|
409
|
+
"mixed_type_1_percentage": 25,
|
410
|
+
"mixed_type_2_percentage": 25,
|
411
|
+
"mixed_type_3_percentage": 15,
|
412
|
+
"mixed_type_4_percentage": 35,
|
413
|
+
"mixed_type_1": "Strip shopping mall",
|
414
|
+
"mixed_type_2": "Food service",
|
415
|
+
"mixed_type_3": "Office",
|
416
|
+
"mixed_type_4": "Lodging"
|
417
|
+
},
|
418
|
+
"geometry": {
|
419
|
+
"type": "Polygon",
|
420
|
+
"coordinates": [
|
421
|
+
[
|
422
|
+
[
|
423
|
+
-78.85115264550463,
|
424
|
+
42.81786093060211
|
425
|
+
],
|
426
|
+
[
|
427
|
+
-78.85163483958878,
|
428
|
+
42.81774467026972
|
429
|
+
],
|
430
|
+
[
|
431
|
+
-78.85246596719499,
|
432
|
+
42.819583261120755
|
433
|
+
],
|
434
|
+
[
|
435
|
+
-78.85082390085432,
|
436
|
+
42.819979162017745
|
437
|
+
],
|
438
|
+
[
|
439
|
+
-78.85060552295334,
|
440
|
+
42.81947573727234
|
441
|
+
],
|
442
|
+
[
|
443
|
+
-78.85174564783776,
|
444
|
+
42.81920483484765
|
445
|
+
],
|
446
|
+
[
|
447
|
+
-78.85115264550463,
|
448
|
+
42.81786093060211
|
449
|
+
]
|
450
|
+
]
|
451
|
+
]
|
452
|
+
}
|
453
|
+
},
|
454
|
+
{
|
455
|
+
"type": "Feature",
|
456
|
+
"properties": {
|
457
|
+
"id": "11",
|
458
|
+
"name": "Residential 3",
|
459
|
+
"type": "Building",
|
460
|
+
"footprint_area": 10837,
|
461
|
+
"floor_area": 32511,
|
462
|
+
"number_of_stories": 3,
|
463
|
+
"building_type": "Multifamily (5 or more units)"
|
464
|
+
},
|
465
|
+
"geometry": {
|
466
|
+
"type": "Polygon",
|
467
|
+
"coordinates": [
|
468
|
+
[
|
469
|
+
[
|
470
|
+
-78.84961163640645,
|
471
|
+
42.81460851835703
|
472
|
+
],
|
473
|
+
[
|
474
|
+
-78.84914661048371,
|
475
|
+
42.81472064501696
|
476
|
+
],
|
477
|
+
[
|
478
|
+
-78.84905029178236,
|
479
|
+
42.81450569091638
|
480
|
+
],
|
481
|
+
[
|
482
|
+
-78.84951531770513,
|
483
|
+
42.81439356386673
|
484
|
+
],
|
485
|
+
[
|
486
|
+
-78.84961163640645,
|
487
|
+
42.81460851835703
|
488
|
+
]
|
489
|
+
]
|
490
|
+
]
|
491
|
+
}
|
492
|
+
},
|
493
|
+
{
|
494
|
+
"type": "Feature",
|
495
|
+
"properties": {
|
496
|
+
"id": "12",
|
497
|
+
"name": "Mall 1",
|
498
|
+
"type": "Building",
|
499
|
+
"footprint_area": 124803,
|
500
|
+
"floor_area": 374409,
|
501
|
+
"number_of_stories": 3,
|
502
|
+
"building_type": "Strip shopping mall"
|
503
|
+
},
|
504
|
+
"geometry": {
|
505
|
+
"type": "Polygon",
|
506
|
+
"coordinates": [
|
507
|
+
[
|
508
|
+
[
|
509
|
+
-78.84768338040897,
|
510
|
+
42.817161656757065
|
511
|
+
],
|
512
|
+
[
|
513
|
+
-78.8482630702579,
|
514
|
+
42.8170218879136
|
515
|
+
],
|
516
|
+
[
|
517
|
+
-78.84915297130291,
|
518
|
+
42.81900776764229
|
519
|
+
],
|
520
|
+
[
|
521
|
+
-78.84857328145401,
|
522
|
+
42.81914753199706
|
523
|
+
],
|
524
|
+
[
|
525
|
+
-78.84768338040897,
|
526
|
+
42.817161656757065
|
527
|
+
]
|
528
|
+
]
|
529
|
+
]
|
530
|
+
}
|
531
|
+
},
|
532
|
+
{
|
533
|
+
"type": "Feature",
|
534
|
+
"properties": {
|
535
|
+
"id": "13",
|
536
|
+
"name": "Hotel 1",
|
537
|
+
"type": "Building",
|
538
|
+
"footprint_area": 31616,
|
539
|
+
"floor_area": 316160,
|
540
|
+
"number_of_stories": 10,
|
541
|
+
"building_type": "Lodging"
|
542
|
+
},
|
543
|
+
"geometry": {
|
544
|
+
"type": "Polygon",
|
545
|
+
"coordinates": [
|
546
|
+
[
|
547
|
+
[
|
548
|
+
-78.8494955083645,
|
549
|
+
42.819748790984335
|
550
|
+
],
|
551
|
+
[
|
552
|
+
-78.84891089471263,
|
553
|
+
42.81989327725856
|
554
|
+
],
|
555
|
+
[
|
556
|
+
-78.8491389243777,
|
557
|
+
42.82038967009544
|
558
|
+
],
|
559
|
+
[
|
560
|
+
-78.84972353802956,
|
561
|
+
42.82024518498119
|
562
|
+
],
|
563
|
+
[
|
564
|
+
-78.8494955083645,
|
565
|
+
42.819748790984335
|
566
|
+
]
|
567
|
+
]
|
568
|
+
]
|
569
|
+
}
|
570
|
+
}
|
571
|
+
],
|
572
|
+
"mappers": [],
|
573
|
+
"scenarios": [
|
574
|
+
{
|
575
|
+
"id": "72301739-c6c3-4dd7-bf1a-f37c8eff40db",
|
576
|
+
"name": "New Scenario",
|
577
|
+
"feature_mappings": []
|
578
|
+
}
|
579
|
+
]
|
580
|
+
}
|