urbanopt-reporting 0.1.1 → 0.3.2
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.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE/bug_report.md +19 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +15 -0
- data/.github/pull_request_template.md +13 -0
- data/.rdoc_options +36 -0
- data/CHANGELOG.md +41 -1
- data/CONTRIBUTING.md +1 -1
- data/LICENSE.md +1 -1
- data/RDOC_MAIN.md +10 -0
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/deploy_docs.sh +5 -0
- data/doc_templates/LICENSE.md +1 -1
- data/doc_templates/copyright_erb.txt +1 -1
- data/doc_templates/copyright_js.txt +1 -1
- data/doc_templates/copyright_ruby.txt +1 -1
- data/docs/.gitignore +3 -0
- data/docs/.vuepress/components/InnerJsonSchema.vue +76 -0
- data/docs/.vuepress/components/JsonSchema.vue +12 -0
- data/docs/.vuepress/components/ScenarioSchema.vue +12 -0
- data/docs/.vuepress/components/StaticLink.vue +8 -0
- data/docs/.vuepress/config.js +25 -0
- data/docs/.vuepress/highlight.js +8 -0
- data/docs/.vuepress/json-schema-deref-loader.js +22 -0
- data/docs/.vuepress/public/custom_rdoc_styles.css +78 -0
- data/docs/.vuepress/styles/palette.styl +1 -0
- data/docs/.vuepress/utils.js +17 -0
- data/docs/README.md +9 -0
- data/docs/package-lock.json +10018 -0
- data/docs/package.json +30 -0
- data/docs/schemas/scenario-schema.md +3 -0
- data/lib/measures/default_feature_reports/LICENSE.md +1 -1
- data/lib/measures/default_feature_reports/measure.rb +191 -84
- data/lib/measures/default_feature_reports/measure.xml +11 -11
- data/lib/urbanopt/reporting.rb +1 -1
- data/lib/urbanopt/reporting/default_reports.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/construction_cost.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/date.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/distributed_generation.rb +119 -6
- data/lib/urbanopt/reporting/default_reports/end_use.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/end_uses.rb +53 -39
- data/lib/urbanopt/reporting/default_reports/extension.rb +30 -0
- data/lib/urbanopt/reporting/default_reports/feature_report.rb +42 -19
- data/lib/urbanopt/reporting/default_reports/generator.rb +2 -2
- data/lib/urbanopt/reporting/default_reports/location.rb +12 -12
- data/lib/urbanopt/reporting/default_reports/logger.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/power_distribution.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/program.rb +87 -87
- data/lib/urbanopt/reporting/default_reports/reporting_period.rb +87 -79
- data/lib/urbanopt/reporting/default_reports/scenario_report.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/schema/README.md +1 -1
- data/lib/urbanopt/reporting/default_reports/schema/scenario_csv_columns.txt +15 -0
- data/lib/urbanopt/reporting/default_reports/schema/scenario_schema.json +97 -81
- data/lib/urbanopt/reporting/default_reports/solar_pv.rb +2 -2
- data/lib/urbanopt/reporting/default_reports/storage.rb +2 -2
- data/lib/urbanopt/reporting/default_reports/thermal_storage.rb +11 -11
- data/lib/urbanopt/reporting/default_reports/timeseries_csv.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/validator.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/wind.rb +2 -2
- data/lib/urbanopt/reporting/derived_extension.rb +1 -1
- data/lib/urbanopt/reporting/version.rb +2 -2
- data/urbanopt-reporting-gem.gemspec +4 -4
- metadata +35 -13
@@ -1,5 +1,5 @@
|
|
1
1
|
# *********************************************************************************
|
2
|
-
# URBANopt, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
|
2
|
+
# URBANopt (tm), Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
|
3
3
|
# contributors. All rights reserved.
|
4
4
|
#
|
5
5
|
# Redistribution and use in source and binary forms, with or without modification,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# URBANopt Scenario Schema
|
2
2
|
|
3
|
-
The URBANopt Scenario Gem includes functionality for defining scenarios, running simulations, and post-processing results. An URBANopt Scenario describes a specific set of options to apply to each Feature in a FeatureFile (e.g. each GeoJSON Feature in an URBANopt GeoJSON File). User defined SimulationMapper classes translate each Feature to a SimulationDir which is a directory containing simulation input files. A ScenarioRunner is used to perform simulations for each SimulationDir. Finally, a ScenarioPostProcessor can run on a Scenario to generate scenario level results. The [URBANopt Scenario Gem Design Document](https://docs.google.com/document/d/1ExcGuHliaSvPlrYevAJTSV8XAtTQXz_KQqH3p4iQDwg/edit) describes the gem in more detail. The [URBANopt Example Project](https://github.com/urbanopt/urbanopt-example-project) demonstrates how to use the URBANopt Scenario Gem to perform a scenario analysis.
|
3
|
+
The URBANopt <sup>™</sup> Scenario Gem includes functionality for defining scenarios, running simulations, and post-processing results. An URBANopt Scenario describes a specific set of options to apply to each Feature in a FeatureFile (e.g. each GeoJSON Feature in an URBANopt GeoJSON File). User defined SimulationMapper classes translate each Feature to a SimulationDir which is a directory containing simulation input files. A ScenarioRunner is used to perform simulations for each SimulationDir. Finally, a ScenarioPostProcessor can run on a Scenario to generate scenario level results. The [URBANopt Scenario Gem Design Document](https://docs.google.com/document/d/1ExcGuHliaSvPlrYevAJTSV8XAtTQXz_KQqH3p4iQDwg/edit) describes the gem in more detail. The [URBANopt Example Project](https://github.com/urbanopt/urbanopt-example-project) demonstrates how to use the URBANopt Scenario Gem to perform a scenario analysis.
|
4
4
|
|
5
5
|
## Reporting output units
|
6
6
|
|
@@ -2,6 +2,9 @@ Datetime
|
|
2
2
|
Electricity:Facility
|
3
3
|
ElectricityProduced:Facility
|
4
4
|
Gas:Facility
|
5
|
+
Propane:Facility
|
6
|
+
FuelOil#2:Facility
|
7
|
+
OtherFuels:Facility
|
5
8
|
Cooling:Electricity
|
6
9
|
Heating:Electricity
|
7
10
|
InteriorLights:Electricity
|
@@ -15,6 +18,18 @@ HeatRejection:Gas
|
|
15
18
|
Heating:Gas
|
16
19
|
WaterSystems:Gas
|
17
20
|
InteriorEquipment:Gas
|
21
|
+
HeatRejection:Propane
|
22
|
+
Heating:Propane
|
23
|
+
WaterSystems:Propane
|
24
|
+
InteriorEquipment:Propane
|
25
|
+
HeatRejection:FuelOil#2
|
26
|
+
Heating:FuelOil#2
|
27
|
+
WaterSystems:FuelOil#2
|
28
|
+
InteriorEquipment:FuelOil#2
|
29
|
+
HeatRejection:OtherFuels
|
30
|
+
Heating:OtherFuels
|
31
|
+
WaterSystems:OtherFuels
|
32
|
+
InteriorEquipment:OtherFuels
|
18
33
|
DistrictCooling:Facility
|
19
34
|
DistrictHeating:Facility
|
20
35
|
District Cooling Chilled Water Rate
|
@@ -263,69 +263,77 @@
|
|
263
263
|
"end_date": {
|
264
264
|
"$ref": "#/definitions/Date"
|
265
265
|
},
|
266
|
-
"
|
267
|
-
"description": "Total energy used on site, does not include generation (
|
266
|
+
"total_site_energy_kwh": {
|
267
|
+
"description": "Total energy used on site, does not include generation (kWh)",
|
268
268
|
"type": "number"
|
269
269
|
},
|
270
|
-
"
|
271
|
-
"description": "Total source energy used, does not include generation (
|
270
|
+
"total_source_energy_kwh": {
|
271
|
+
"description": "Total source energy used, does not include generation (kWh)",
|
272
272
|
"type": "number"
|
273
273
|
},
|
274
|
-
"
|
275
|
-
"description": "Net site energy (
|
274
|
+
"net_site_energy_kwh": {
|
275
|
+
"description": "Net site energy (kWh)",
|
276
276
|
"type": "number"
|
277
277
|
},
|
278
|
-
"
|
279
|
-
"description": "Net source energy (
|
278
|
+
"net_source_energy_kwh": {
|
279
|
+
"description": "Net source energy (kWh)",
|
280
280
|
"type": "number"
|
281
281
|
},
|
282
|
-
"
|
283
|
-
"description": "Total utility cost",
|
282
|
+
"total_utility_cost_dollar": {
|
283
|
+
"description": "Total utility cost ($)",
|
284
284
|
"type": "number"
|
285
285
|
},
|
286
|
-
"
|
287
|
-
"description": "Net utility cost for reporting period includes generation",
|
286
|
+
"net_utility_cost_dollar": {
|
287
|
+
"description": "Net utility cost for reporting period includes generation ($)",
|
288
288
|
"type": "number"
|
289
289
|
},
|
290
|
-
"
|
290
|
+
"utility_costs_dollar": {
|
291
291
|
"type": "array",
|
292
292
|
"items": {
|
293
293
|
"$ref": "#/definitions/UtilityCost"
|
294
294
|
}
|
295
295
|
},
|
296
|
-
"
|
296
|
+
"electricity_kwh": {
|
297
297
|
"description": "Sum of all electricity used, does not include electricity produced (kWh)",
|
298
298
|
"type": "number"
|
299
299
|
},
|
300
|
-
"
|
301
|
-
"description": "Sum of all natural gas end uses consumption (
|
300
|
+
"natural_gas_kwh": {
|
301
|
+
"description": "Sum of all natural gas end uses consumption (kWh)",
|
302
302
|
"type": "number"
|
303
303
|
},
|
304
|
-
|
305
|
-
"description": "Sum of all
|
304
|
+
"propane_kwh": {
|
305
|
+
"description": "Sum of all propane end uses consumption (kWh)",
|
306
|
+
"type": "number"
|
307
|
+
},
|
308
|
+
"fuel_oil_kwh": {
|
309
|
+
"description": "Sum of all fuel oil #2 end uses consumption (kWh)",
|
310
|
+
"type": "number"
|
311
|
+
},
|
312
|
+
"other_fuels_kwh": {
|
313
|
+
"description": "Sum of all other (fuel oil #1, diesel, gasoline, coal, steam) fuel end uses consumption (kWh)",
|
306
314
|
"type": "number"
|
307
315
|
},
|
308
|
-
"
|
309
|
-
"description": "Sum of all distric cooling end uses consumption (
|
316
|
+
"district_cooling_kwh": {
|
317
|
+
"description": "Sum of all distric cooling end uses consumption (kWh)",
|
310
318
|
"type": "number"
|
311
319
|
},
|
312
|
-
"
|
313
|
-
"description": "Sum of all distric heating end uses consumption (
|
320
|
+
"district_heating_kwh": {
|
321
|
+
"description": "Sum of all distric heating end uses consumption (kWh)",
|
314
322
|
"type": "number"
|
315
323
|
},
|
316
|
-
"
|
324
|
+
"water_qbft": {
|
317
325
|
"description": "Sum of all water end uses consumption (ft^3)",
|
318
326
|
"type": "number"
|
319
327
|
},
|
320
|
-
"
|
328
|
+
"electricity_produced_kwh": {
|
321
329
|
"description": "Sum of all electricity produced (kWh)",
|
322
330
|
"type": "number"
|
323
331
|
},
|
324
332
|
"end_uses": {
|
325
333
|
"$ref": "#/definitions/EndUses"
|
326
334
|
},
|
327
|
-
"
|
328
|
-
"description": "Energy produced for reporting period.
|
335
|
+
"energy_production_kwh": {
|
336
|
+
"description": "Energy produced for reporting period. Water reported in m^3, all others in kWh.",
|
329
337
|
"type": "object",
|
330
338
|
"properties": {
|
331
339
|
"electricity_produced": {
|
@@ -362,25 +370,31 @@
|
|
362
370
|
"additionalProperties": false
|
363
371
|
},
|
364
372
|
"EndUses": {
|
365
|
-
"description": "End uses for reporting period. Does not include energy produced.
|
373
|
+
"description": "End uses for reporting period. Does not include energy produced. Water reported in m^3, all others in kWh.",
|
366
374
|
"type": "object",
|
367
375
|
"properties": {
|
368
|
-
"
|
376
|
+
"electricity_kwh": {
|
369
377
|
"$ref": "#/definitions/EndUse"
|
370
378
|
},
|
371
|
-
"
|
379
|
+
"natural_gas_kwh": {
|
372
380
|
"$ref": "#/definitions/EndUse"
|
373
381
|
},
|
374
|
-
|
382
|
+
"propane_kwh": {
|
383
|
+
"$ref": "#/definitions/EndUse"
|
384
|
+
},
|
385
|
+
"fuel_oil_kwh": {
|
386
|
+
"$ref": "#/definitions/EndUse"
|
387
|
+
},
|
388
|
+
"other_fuels_kwh": {
|
375
389
|
"$ref": "#/definitions/EndUse"
|
376
390
|
},
|
377
|
-
"
|
391
|
+
"district_cooling_kwh": {
|
378
392
|
"$ref": "#/definitions/EndUse"
|
379
393
|
},
|
380
|
-
"
|
394
|
+
"district_heating_kwh": {
|
381
395
|
"$ref": "#/definitions/EndUse"
|
382
396
|
},
|
383
|
-
"
|
397
|
+
"water_qbft": {
|
384
398
|
"$ref": "#/definitions/EndUse"
|
385
399
|
}
|
386
400
|
},
|
@@ -522,9 +536,11 @@
|
|
522
536
|
"enum": [
|
523
537
|
"Electricity",
|
524
538
|
"Natural Gas",
|
539
|
+
"Propane",
|
540
|
+
"Fuel Oil",
|
525
541
|
"District Cooling",
|
526
542
|
"District Heating",
|
527
|
-
"
|
543
|
+
"Other Fuels",
|
528
544
|
"Water"
|
529
545
|
]
|
530
546
|
},
|
@@ -546,15 +562,15 @@
|
|
546
562
|
"Location": {
|
547
563
|
"type": "object",
|
548
564
|
"properties": {
|
549
|
-
"
|
565
|
+
"latitude_deg": {
|
550
566
|
"description": "latitude for the centroid of the feature (deg)",
|
551
567
|
"type": "number"
|
552
568
|
},
|
553
|
-
"
|
569
|
+
"longitude_deg": {
|
554
570
|
"description": "longitude for the centroid of the feature (deg)",
|
555
571
|
"type": "number"
|
556
572
|
},
|
557
|
-
"
|
573
|
+
"surface_elevation_ft": {
|
558
574
|
"description": "The surface elevation (above NAVD88 datum) (ft).",
|
559
575
|
"type": "number"
|
560
576
|
},
|
@@ -573,27 +589,27 @@
|
|
573
589
|
"Program": {
|
574
590
|
"type": "object",
|
575
591
|
"properties": {
|
576
|
-
"
|
592
|
+
"site_area_sqft": {
|
577
593
|
"description": "Area of the entire site or lot (ft^2)",
|
578
594
|
"type": "number"
|
579
595
|
},
|
580
|
-
"
|
596
|
+
"floor_area_sqft": {
|
581
597
|
"description": "Building gross floor area (ft^2)",
|
582
598
|
"type": "number"
|
583
599
|
},
|
584
|
-
"
|
600
|
+
"conditioned_area_sqft": {
|
585
601
|
"description": "Building conditioned floor area (ft^2)",
|
586
602
|
"type": "number"
|
587
603
|
},
|
588
|
-
"
|
604
|
+
"unconditioned_area_sqft": {
|
589
605
|
"description": "Building unconditioned floor area (ft^2)",
|
590
606
|
"type": "number"
|
591
607
|
},
|
592
|
-
"
|
608
|
+
"footprint_area_sqft": {
|
593
609
|
"description": "Building floorprint area (ft^2)",
|
594
610
|
"type": "number"
|
595
611
|
},
|
596
|
-
"
|
612
|
+
"maximum_roof_height_ft": {
|
597
613
|
"description": "Maximum height of the roof relative to surface elevation (ft)",
|
598
614
|
"type": "number"
|
599
615
|
},
|
@@ -605,7 +621,7 @@
|
|
605
621
|
"description": "The maximum number of building stories above ground",
|
606
622
|
"type": "number"
|
607
623
|
},
|
608
|
-
"
|
624
|
+
"parking_area_sqft": {
|
609
625
|
"description": "Parking gross area (ft^2)",
|
610
626
|
"type": "number"
|
611
627
|
},
|
@@ -617,11 +633,11 @@
|
|
617
633
|
"description": "Number of parking spaces with electric vehicle charging",
|
618
634
|
"type": "number"
|
619
635
|
},
|
620
|
-
"
|
636
|
+
"parking_footprint_area_sqft": {
|
621
637
|
"description": "Parking floorprint area (ft^2)",
|
622
638
|
"type": "number"
|
623
639
|
},
|
624
|
-
"
|
640
|
+
"maximum_parking_height_ft": {
|
625
641
|
"description": "Maximum height of the parking structure relative to surface elevation (ft)",
|
626
642
|
"type": "number"
|
627
643
|
},
|
@@ -643,84 +659,84 @@
|
|
643
659
|
"$ref": "#/definitions/BuildingType"
|
644
660
|
}
|
645
661
|
},
|
646
|
-
"
|
662
|
+
"window_area_sqft": {
|
647
663
|
"description": "Exterior windows gross area (ft^2)",
|
648
664
|
"type": "object",
|
649
665
|
"properties": {
|
650
|
-
"
|
666
|
+
"north_window_area_sqft": {
|
651
667
|
"type": "number"
|
652
668
|
},
|
653
|
-
"
|
669
|
+
"south_window_area_sqft": {
|
654
670
|
"type": "number"
|
655
671
|
},
|
656
|
-
"
|
672
|
+
"east_window_area_sqft": {
|
657
673
|
"type": "number"
|
658
674
|
},
|
659
|
-
"
|
675
|
+
"west_window_area_sqft": {
|
660
676
|
"type": "number"
|
661
677
|
},
|
662
|
-
"
|
678
|
+
"total_window_area_sqft": {
|
663
679
|
"type": "number"
|
664
680
|
}
|
665
681
|
},
|
666
682
|
"required": [
|
667
|
-
"
|
683
|
+
"total_window_area_sqft"
|
668
684
|
],
|
669
685
|
"additionalProperties": false
|
670
686
|
},
|
671
|
-
"
|
687
|
+
"wall_area_sqft": {
|
672
688
|
"description": "exterior walls gross area (ft^2)",
|
673
689
|
"type": "object",
|
674
690
|
"properties": {
|
675
|
-
"
|
691
|
+
"north_wall_area_sqft": {
|
676
692
|
"type": "number"
|
677
693
|
},
|
678
|
-
"
|
694
|
+
"south_wall_area_sqft": {
|
679
695
|
"type": "number"
|
680
696
|
},
|
681
|
-
"
|
697
|
+
"east_wall_area_sqft": {
|
682
698
|
"type": "number"
|
683
699
|
},
|
684
|
-
"
|
700
|
+
"west_wall_area_sqft": {
|
685
701
|
"type": "number"
|
686
702
|
},
|
687
|
-
"
|
703
|
+
"total_wall_area_sqft": {
|
688
704
|
"type": "number"
|
689
705
|
}
|
690
706
|
},
|
691
707
|
"required": [
|
692
|
-
"
|
693
|
-
"
|
694
|
-
"
|
695
|
-
"
|
696
|
-
"
|
708
|
+
"north_wall_area_sqft",
|
709
|
+
"south_wall_area_sqft",
|
710
|
+
"east_wall_area_sqft",
|
711
|
+
"west_wall_area_sqft",
|
712
|
+
"total_wall_area_sqft"
|
697
713
|
],
|
698
714
|
"additionalProperties": false
|
699
715
|
},
|
700
|
-
"
|
716
|
+
"roof_area_sqft": {
|
701
717
|
"type": "object",
|
702
718
|
"properties": {
|
703
|
-
"
|
719
|
+
"equipment_roof_area_sqft": {
|
704
720
|
"type": "number"
|
705
721
|
},
|
706
|
-
"
|
722
|
+
"photovoltaic_roof_area_sqft": {
|
707
723
|
"type": "number"
|
708
724
|
},
|
709
|
-
"
|
725
|
+
"available_roof_area_sqft": {
|
710
726
|
"description": "gross roof area (ft^2)",
|
711
727
|
"type": "number"
|
712
728
|
},
|
713
|
-
"
|
729
|
+
"total_roof_area_sqft": {
|
714
730
|
"description": "Exterior roofs gross area (ft^2)",
|
715
731
|
"type": "number"
|
716
732
|
}
|
717
733
|
},
|
718
734
|
"required": [
|
719
|
-
"
|
735
|
+
"total_roof_area_sqft"
|
720
736
|
],
|
721
737
|
"additionalProperties": false
|
722
738
|
},
|
723
|
-
"
|
739
|
+
"orientation_deg": {
|
724
740
|
"description": "Rotation of longest axis from East-West,about up axis (deg)",
|
725
741
|
"type": "number"
|
726
742
|
},
|
@@ -728,22 +744,22 @@
|
|
728
744
|
"description": "Ratio of longest to shortest axis",
|
729
745
|
"type": "number"
|
730
746
|
},
|
731
|
-
"
|
747
|
+
"total_construction_cost_dollar": {
|
732
748
|
"description": "total construction cost calculated from the defined cost per floor area ($)",
|
733
749
|
"type": "number"
|
734
750
|
}
|
735
751
|
},
|
736
752
|
"required": [
|
737
|
-
"
|
738
|
-
"
|
739
|
-
"
|
740
|
-
"
|
741
|
-
"
|
753
|
+
"floor_area_sqft",
|
754
|
+
"conditioned_area_sqft",
|
755
|
+
"unconditioned_area_sqft",
|
756
|
+
"footprint_area_sqft",
|
757
|
+
"maximum_roof_height_ft",
|
742
758
|
"number_of_residential_units",
|
743
759
|
"building_types",
|
744
|
-
"
|
745
|
-
"
|
746
|
-
"
|
760
|
+
"window_area_sqft",
|
761
|
+
"wall_area_sqft",
|
762
|
+
"roof_area_sqft"
|
747
763
|
],
|
748
764
|
"additionalProperties": false
|
749
765
|
},
|
@@ -873,4 +889,4 @@
|
|
873
889
|
}
|
874
890
|
}
|
875
891
|
}
|
876
|
-
}
|
892
|
+
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# *********************************************************************************
|
2
|
-
# URBANopt, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
|
2
|
+
# URBANopt (tm), Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
|
3
3
|
# contributors. All rights reserved.
|
4
4
|
#
|
5
5
|
# Redistribution and use in source and binary forms, with or without modification,
|
@@ -61,7 +61,7 @@ module URBANopt
|
|
61
61
|
@@schema ||= @@validator.schema
|
62
62
|
|
63
63
|
# initialize @@logger
|
64
|
-
@@logger ||= URBANopt::
|
64
|
+
@@logger ||= URBANopt::Reporting::DefaultReports.logger
|
65
65
|
end
|
66
66
|
|
67
67
|
##
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# *********************************************************************************
|
2
|
-
# URBANopt, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
|
2
|
+
# URBANopt (tm), Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
|
3
3
|
# contributors. All rights reserved.
|
4
4
|
#
|
5
5
|
# Redistribution and use in source and binary forms, with or without modification,
|
@@ -66,7 +66,7 @@ module URBANopt
|
|
66
66
|
@@schema ||= @@validator.schema
|
67
67
|
|
68
68
|
# initialize @@logger
|
69
|
-
@@logger ||= URBANopt::
|
69
|
+
@@logger ||= URBANopt::Reporting::DefaultReports.logger
|
70
70
|
end
|
71
71
|
|
72
72
|
##
|