urbanopt-geojson 0.2.0.pre2 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +1 -1
  3. data/CHANGELOG.md +61 -0
  4. data/Gemfile +0 -3
  5. data/Rakefile +1 -1
  6. data/docs/package-lock.json +15 -15
  7. data/docs/package.json +3 -1
  8. data/lib/measures/.rubocop.yml +1 -1
  9. data/lib/measures/urban_geometry_creation/README.md +1 -1
  10. data/lib/measures/urban_geometry_creation/measure.rb +4 -0
  11. data/lib/measures/urban_geometry_creation/measure.xml +17 -20
  12. data/lib/measures/urban_geometry_creation_zoning/README.md +1 -1
  13. data/lib/measures/urban_geometry_creation_zoning/measure.rb +6 -3
  14. data/lib/measures/urban_geometry_creation_zoning/measure.xml +15 -18
  15. data/lib/urbanopt/geojson/building.rb +22 -19
  16. data/lib/urbanopt/geojson/feature.rb +37 -1
  17. data/lib/urbanopt/geojson/geo_file.rb +39 -39
  18. data/lib/urbanopt/geojson/helper.rb +12 -5
  19. data/lib/urbanopt/geojson/mapper_classes.rb +46 -46
  20. data/lib/urbanopt/geojson/model.rb +2 -3
  21. data/lib/urbanopt/geojson/schema/building_properties.json +244 -77
  22. data/lib/urbanopt/geojson/schema/electrical_connector_properties.json +8 -8
  23. data/lib/urbanopt/geojson/schema/electrical_junction_properties.json +4 -5
  24. data/lib/urbanopt/geojson/schema/thermal_connector_properties.json +1 -1
  25. data/lib/urbanopt/geojson/schema/thermal_junction_properties.json +1 -1
  26. data/lib/urbanopt/geojson/update_areas.rb +1 -1
  27. data/lib/urbanopt/geojson/validate_geojson.rb +2 -0
  28. data/lib/urbanopt/geojson/version.rb +1 -1
  29. data/lib/urbanopt/geojson/workflows/building.osw.out +4 -4
  30. data/urbanopt-geojson-gem.gemspec +9 -13
  31. metadata +21 -41
  32. data/lib/change_log.rb +0 -147
  33. data/lib/measures/urban_geometry_creation/tests/nrel_stm_footprints.geojson +0 -3238
  34. data/lib/measures/urban_geometry_creation/tests/shadowed_tests.rb +0 -80
  35. data/lib/measures/urban_geometry_creation/tests/urban_geometry_creation_test.rb +0 -139
  36. data/lib/measures/urban_geometry_creation_zoning/tests/nrel_stm_footprints.geojson +0 -3238
  37. data/lib/measures/urban_geometry_creation_zoning/tests/urban_geometry_creation_zoning_test.rb +0 -139
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-04/schema#",
3
- "id": "http://json-schema.org/openstudio-urban-modeling/district_system_properties.json#",
4
- "title": "URBANopt Electrical Line",
5
- "description": "Schema for an URBANopt Electrical Line object",
3
+ "id": "http://json-schema.org/openstudio-urban-modeling/electrical_connector_properties.json#",
4
+ "title": "URBANopt Electrical Connector",
5
+ "description": "Schema for an URBANopt Electrical Connector object",
6
6
  "type": "object",
7
7
  "properties": {
8
8
  "id": {
@@ -17,7 +17,7 @@
17
17
  "description": "Type of feature.",
18
18
  "type": "string",
19
19
  "enum": [
20
- "ElectricalLine"
20
+ "ElectricalConnector"
21
21
  ]
22
22
  },
23
23
  "source_name": {
@@ -46,7 +46,7 @@
46
46
  "description": "Total length (ft) of the line, generated on export.",
47
47
  "type": "number"
48
48
  },
49
- "start_junction_id": {
49
+ "startJunctionId": {
50
50
  "description": "Id of the junction that this line starts at.",
51
51
  "type": "string"
52
52
  },
@@ -67,7 +67,7 @@
67
67
  "type": "string"
68
68
  }
69
69
  },
70
- "end_junction_id": {
70
+ "endJunctionId": {
71
71
  "description": "Id of the junction that this line ends at.",
72
72
  "type": "string"
73
73
  },
@@ -79,8 +79,8 @@
79
79
  "type",
80
80
  "id",
81
81
  "connector_type",
82
- "start_junction_id",
83
- "end_junction_id"
82
+ "startJunctionId",
83
+ "endJunctionId"
84
84
  ],
85
85
  "additionalProperties": false,
86
86
  "definitions": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-04/schema#",
3
- "id": "http://json-schema.org/openstudio-urban-modeling/district_system_properties.json#",
3
+ "id": "http://json-schema.org/openstudio-urban-modeling/electrical_junction_properties.json#",
4
4
  "title": "URBANopt Electrical Junction",
5
5
  "description": "Schema for an URBANopt Electrical Junction object",
6
6
  "type": "object",
@@ -35,11 +35,11 @@
35
35
  "connector_type": {
36
36
  "$ref": "#/definitions/ElectricalJunctionType"
37
37
  },
38
- "building_id": {
38
+ "buildingId": {
39
39
  "description": "Id of building if this junction is inside a building.",
40
40
  "type": "string"
41
41
  },
42
- "district_system_id": {
42
+ "DSId": {
43
43
  "description": "Id of district system if this junction is inside a district system.",
44
44
  "type": "string"
45
45
  },
@@ -49,8 +49,7 @@
49
49
  },
50
50
  "required": [
51
51
  "type",
52
- "id",
53
- "connector_type"
52
+ "id"
54
53
  ],
55
54
  "additionalProperties": false,
56
55
  "definitions": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-04/schema#",
3
- "id": "http://json-schema.org/openstudio-urban-modeling/district_system_properties.json#",
3
+ "id": "http://json-schema.org/openstudio-urban-modeling/thermal_connector_properties.json#",
4
4
  "title": "URBANopt Thermal Connector",
5
5
  "description": "Schema for an URBANopt Thermal Connector object",
6
6
  "type": "object",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-04/schema#",
3
- "id": "http://json-schema.org/openstudio-urban-modeling/district_system_properties.json#",
3
+ "id": "http://json-schema.org/openstudio-urban-modeling/thermal_junction_properties.json#",
4
4
  "title": "URBANopt Thermal Junction",
5
5
  "description": "Schema for an URBANopt Thermal Junction object",
6
6
  "type": "object",
@@ -97,6 +97,6 @@ geojson[:features].each do |feature|
97
97
  # std::vector<Point3d> toLocalCartesian(const std::vector<PointLatLon>& points) const;
98
98
  end
99
99
 
100
- File.open(ARGV[0], 'w') do |file|
100
+ File.open(ARGV[0], 'w') do |file| # rubocop:disable Lint/ShadowingOuterLocalVariable
101
101
  file << JSON.pretty_generate(geojson)
102
102
  end
@@ -133,7 +133,9 @@ Dir.glob('denver_district*.geojson').each do |p|
133
133
  end
134
134
 
135
135
  all_errors[p][-1].concat(errors)
136
+ # rubocop:disable Lint/RescueException
136
137
  rescue Exception => e
138
+ # rubocop:enable Lint/RescueException
137
139
  all_errors[p][-1] << "Error '#{e.message}' occurred: "
138
140
  all_errors[p][-1] << e.backtrace.to_s
139
141
  end
@@ -30,6 +30,6 @@
30
30
 
31
31
  module URBANopt
32
32
  module GeoJSON
33
- VERSION = '0.2.0.pre2'.freeze
33
+ VERSION = '0.3.1'.freeze
34
34
  end
35
35
  end
@@ -899,7 +899,7 @@
899
899
  "default_value": "Inferred",
900
900
  "choice_values": [
901
901
  "Inferred",
902
- "Ideal Air Loads",
902
+ "VRF",
903
903
  "PTAC with hot water heat",
904
904
  "PTAC with gas coil heat",
905
905
  "PTAC with electric baseboard heat",
@@ -955,7 +955,7 @@
955
955
  ],
956
956
  "choice_display_names": [
957
957
  "Inferred",
958
- "Ideal Air Loads",
958
+ "VRF",
959
959
  "PTAC with hot water heat",
960
960
  "PTAC with gas coil heat",
961
961
  "PTAC with electric baseboard heat",
@@ -1511,7 +1511,7 @@
1511
1511
  "default_value": "Inferred",
1512
1512
  "choice_values": [
1513
1513
  "Inferred",
1514
- "Ideal Air Loads",
1514
+ "VRF",
1515
1515
  "PTAC with hot water heat",
1516
1516
  "PTAC with gas coil heat",
1517
1517
  "PTAC with electric baseboard heat",
@@ -1567,7 +1567,7 @@
1567
1567
  ],
1568
1568
  "choice_display_names": [
1569
1569
  "Inferred",
1570
- "Ideal Air Loads",
1570
+ "VRF",
1571
1571
  "PTAC with hot water heat",
1572
1572
  "PTAC with gas coil heat",
1573
1573
  "PTAC with electric baseboard heat",
@@ -11,32 +11,28 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.summary = 'Library and measures to translate URBANopt GeoJSON format to OpenStudio'
13
13
  spec.description = 'Library and measures to translate URBANopt GeoJSON format to OpenStudio'
14
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
15
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
16
- end
17
14
  spec.homepage = 'https://github.com/urbanopt/urbanopt-geojson-gem'
18
15
 
19
16
  # Specify which files should be added to the gem when it is released.
20
17
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
18
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
22
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|lib.measures.*tests|spec|features)/}) }
23
20
  end
24
21
  spec.bindir = 'exe'
25
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
23
  spec.require_paths = ['lib']
27
24
 
28
- # this is not working right now
29
- # spec.required_ruby_version = '~> 2.2.4'
30
-
31
- spec.add_development_dependency 'bundler', '~> 1.14'
32
- spec.add_development_dependency 'rake', '12.3.1'
33
- spec.add_development_dependency 'rspec', '3.7.0'
25
+ spec.required_ruby_version = '~> 2.5.0'
26
+
27
+ spec.add_development_dependency 'bundler', '~> 2.1'
28
+ spec.add_development_dependency 'rake', '~> 13.0'
29
+ spec.add_development_dependency 'rspec', '~> 3.7'
34
30
 
35
31
  # lock the version of these dependencies due to using older version of Ruby.
36
- spec.add_dependency 'public_suffix', '3.1.1'
32
+ # spec.add_dependency 'public_suffix', '3.1.1'
37
33
 
38
34
  # other dependencies
39
35
  spec.add_dependency 'json-schema'
40
- spec.add_dependency 'openstudio-extension', '~> 0.1.5'
41
- spec.add_dependency 'urbanopt-core', '~> 0.1.0'
36
+ spec.add_dependency 'openstudio-extension', '~> 0.2.3'
37
+ spec.add_dependency 'urbanopt-core', '~> 0.3.0'
42
38
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: urbanopt-geojson
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.pre2
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tanushree Charan
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2020-03-15 00:00:00.000000000 Z
13
+ date: 2020-08-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -18,56 +18,42 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '1.14'
21
+ version: '2.1'
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: '1.14'
28
+ version: '2.1'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: rake
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - '='
33
+ - - "~>"
34
34
  - !ruby/object:Gem::Version
35
- version: 12.3.1
35
+ version: '13.0'
36
36
  type: :development
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - '='
40
+ - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: 12.3.1
42
+ version: '13.0'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: rspec
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - '='
47
+ - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: 3.7.0
49
+ version: '3.7'
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - '='
55
- - !ruby/object:Gem::Version
56
- version: 3.7.0
57
- - !ruby/object:Gem::Dependency
58
- name: public_suffix
59
- requirement: !ruby/object:Gem::Requirement
60
- requirements:
61
- - - '='
62
- - !ruby/object:Gem::Version
63
- version: 3.1.1
64
- type: :runtime
65
- prerelease: false
66
- version_requirements: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - '='
54
+ - - "~>"
69
55
  - !ruby/object:Gem::Version
70
- version: 3.1.1
56
+ version: '3.7'
71
57
  - !ruby/object:Gem::Dependency
72
58
  name: json-schema
73
59
  requirement: !ruby/object:Gem::Requirement
@@ -88,28 +74,28 @@ dependencies:
88
74
  requirements:
89
75
  - - "~>"
90
76
  - !ruby/object:Gem::Version
91
- version: 0.1.5
77
+ version: 0.2.3
92
78
  type: :runtime
93
79
  prerelease: false
94
80
  version_requirements: !ruby/object:Gem::Requirement
95
81
  requirements:
96
82
  - - "~>"
97
83
  - !ruby/object:Gem::Version
98
- version: 0.1.5
84
+ version: 0.2.3
99
85
  - !ruby/object:Gem::Dependency
100
86
  name: urbanopt-core
101
87
  requirement: !ruby/object:Gem::Requirement
102
88
  requirements:
103
89
  - - "~>"
104
90
  - !ruby/object:Gem::Version
105
- version: 0.1.0
91
+ version: 0.3.0
106
92
  type: :runtime
107
93
  prerelease: false
108
94
  version_requirements: !ruby/object:Gem::Requirement
109
95
  requirements:
110
96
  - - "~>"
111
97
  - !ruby/object:Gem::Version
112
- version: 0.1.0
98
+ version: 0.3.0
113
99
  description: Library and measures to translate URBANopt GeoJSON format to OpenStudio
114
100
  email:
115
101
  - tanushree.charan@nrel.gov
@@ -169,23 +155,17 @@ files:
169
155
  - docs/schemas/site-properties.md
170
156
  - docs/schemas/thermal-connector-properties.md
171
157
  - docs/schemas/thermal-junction-properties.md
172
- - lib/change_log.rb
173
158
  - lib/measures/.rubocop.yml
174
159
  - lib/measures/urban_geometry_creation/LICENSE.md
175
160
  - lib/measures/urban_geometry_creation/README.md
176
161
  - lib/measures/urban_geometry_creation/README.md.erb
177
162
  - lib/measures/urban_geometry_creation/measure.rb
178
163
  - lib/measures/urban_geometry_creation/measure.xml
179
- - lib/measures/urban_geometry_creation/tests/nrel_stm_footprints.geojson
180
- - lib/measures/urban_geometry_creation/tests/shadowed_tests.rb
181
- - lib/measures/urban_geometry_creation/tests/urban_geometry_creation_test.rb
182
164
  - lib/measures/urban_geometry_creation_zoning/LICENSE.md
183
165
  - lib/measures/urban_geometry_creation_zoning/README.md
184
166
  - lib/measures/urban_geometry_creation_zoning/README.md.erb
185
167
  - lib/measures/urban_geometry_creation_zoning/measure.rb
186
168
  - lib/measures/urban_geometry_creation_zoning/measure.xml
187
- - lib/measures/urban_geometry_creation_zoning/tests/nrel_stm_footprints.geojson
188
- - lib/measures/urban_geometry_creation_zoning/tests/urban_geometry_creation_zoning_test.rb
189
169
  - lib/urbanopt-geojson.rb
190
170
  - lib/urbanopt/geojson.rb
191
171
  - lib/urbanopt/geojson/building.rb
@@ -227,17 +207,17 @@ require_paths:
227
207
  - lib
228
208
  required_ruby_version: !ruby/object:Gem::Requirement
229
209
  requirements:
230
- - - ">="
210
+ - - "~>"
231
211
  - !ruby/object:Gem::Version
232
- version: '0'
212
+ version: 2.5.0
233
213
  required_rubygems_version: !ruby/object:Gem::Requirement
234
214
  requirements:
235
- - - ">"
215
+ - - ">="
236
216
  - !ruby/object:Gem::Version
237
- version: 1.3.1
217
+ version: '0'
238
218
  requirements: []
239
219
  rubyforge_project:
240
- rubygems_version: 2.4.5.1
220
+ rubygems_version: 2.7.6
241
221
  signing_key:
242
222
  specification_version: 4
243
223
  summary: Library and measures to translate URBANopt GeoJSON format to OpenStudio
@@ -1,147 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'github_api'
4
- require 'date'
5
- require 'optparse'
6
- require 'optparse/date'
7
-
8
- # Instructions:
9
- # Get a token from github's settings (https://github.com/settings/tokens)
10
- #
11
- # Example:
12
- # ruby change_log.rb -t abcdefghijklmnopqrstuvwxyz -s 2017-09-06
13
- #
14
-
15
- options = {}
16
- OptionParser.new do |opts|
17
- opts.banner = "Usage: change_log.rb [options]\n" +
18
- "Prints New, Open, Closed Issues, and number of accepted PRs"
19
- opts.separator ""
20
-
21
- # defaults, go back 90 days
22
- options[:start_date] = Date.today - 90
23
- options[:end_date] = Date.today
24
-
25
- opts.on('-s', '--start-date [DATE]', Date, 'Start of data (e.g. 2017-09-06)') do |v|
26
- options[:start_date] = v
27
- end
28
- opts.on('-e', '--end-date [DATE]', Date, 'End of data (e.g. 2017-09-13)') do |v|
29
- options[:end_date] = v
30
- end
31
- opts.on('-t', '--token [String]', String, 'Github API Token') do |v|
32
- options[:token] = v
33
- end
34
- end.parse!
35
-
36
- # Convert dates to time objects
37
- options[:start_date] = Time.parse(options[:start_date].to_s)
38
- options[:end_date] = Time.parse(options[:end_date].to_s)
39
- puts options
40
-
41
- ### Repository options
42
- repo_owner = 'URBANopt'
43
- repo = 'urbanopt-geojson-gem'
44
-
45
- github = Github.new
46
- if options[:token]
47
- puts 'Using github token'
48
- github = Github.new oauth_token: options[:token]
49
- end
50
-
51
- total_open_issues = []
52
- total_open_pull_requests = []
53
- new_issues = []
54
- closed_issues = []
55
- accepted_pull_requests = []
56
-
57
- def get_num(issue)
58
- issue.html_url.split('/')[-1].to_i
59
- end
60
-
61
- def get_issue_num(issue)
62
- "\##{get_num(issue)}"
63
- end
64
-
65
- def get_html_url(issue)
66
- issue.html_url
67
- end
68
-
69
- def get_title(issue)
70
- issue.title
71
- end
72
-
73
- def print_issue(issue)
74
- is_feature = false
75
- issue.labels.each { |label| is_feature = true if label.name == 'Feature Request' }
76
-
77
- if is_feature
78
- "- Improved [#{get_issue_num(issue)}]( #{get_html_url(issue)} ), #{get_title(issue)}"
79
- else
80
- "- Fixed [#{get_issue_num(issue)}]( #{get_html_url(issue)} ), #{get_title(issue)}"
81
- end
82
- end
83
-
84
- # Process Open Issues
85
- results = -1
86
- page = 1
87
- while results != 0
88
- resp = github.issues.list user: repo_owner, repo: repo, sort: 'created', direction: 'asc',
89
- state: 'open', per_page: 100, page: page
90
- results = resp.length
91
- resp.env[:body].each do |issue, _index|
92
- created = Time.parse(issue.created_at)
93
- if !issue.key?(:pull_request)
94
- total_open_issues << issue
95
- if created >= options[:start_date] && created <= options[:end_date]
96
- new_issues << issue
97
- end
98
- else
99
- total_open_pull_requests << issue
100
- end
101
- end
102
-
103
- page += 1
104
- end
105
-
106
- # Process Closed Issues
107
- results = -1
108
- page = 1
109
- while results != 0
110
- resp = github.issues.list user: repo_owner, repo: repo, sort: 'created', direction: 'asc',
111
- state: 'closed', per_page: 100, page: page
112
- results = resp.length
113
- resp.env[:body].each do |issue, _index|
114
- created = Time.parse(issue.created_at)
115
- closed = Time.parse(issue.closed_at)
116
- if !issue.key?(:pull_request)
117
- if created >= options[:start_date] && created <= options[:end_date]
118
- new_issues << issue
119
- end
120
- if closed >= options[:start_date] && closed <= options[:end_date]
121
- closed_issues << issue
122
- end
123
- elsif closed >= options[:start_date] && closed <= options[:end_date]
124
- accepted_pull_requests << issue
125
- end
126
- end
127
-
128
- page += 1
129
- end
130
-
131
- closed_issues.sort! { |x, y| get_num(x) <=> get_num(y) }
132
- new_issues.sort! { |x, y| get_num(x) <=> get_num(y) }
133
- accepted_pull_requests.sort! { |x, y| get_num(x) <=> get_num(y) }
134
- total_open_pull_requests.sort! { |x, y| get_num(x) <=> get_num(y) }
135
-
136
- puts "Total Open Issues: #{total_open_issues.length}"
137
- puts "Total Open Pull Requests: #{total_open_pull_requests.length}"
138
- puts "\nDate Range: #{options[:start_date].strftime('%m/%d/%y')} - #{options[:end_date].strftime('%m/%d/%y')}:"
139
- puts "\nNew Issues: #{new_issues.length} (" + new_issues.map { |issue| get_issue_num(issue) }.join(', ') + ')'
140
-
141
- puts "\nClosed Issues: #{closed_issues.length}"
142
- closed_issues.each { |issue| puts print_issue(issue) }
143
-
144
- puts "\nAccepted Pull Requests: #{accepted_pull_requests.length}"
145
- accepted_pull_requests.each { |issue| puts print_issue(issue) }
146
-
147
- puts "\nAll Open Issues: #{total_open_issues.length} (" + total_open_issues.map { |issue| get_issue_num(issue) }.join(', ') + ')'