diff --git a/BuildResidentialScheduleFile/measure.xml b/BuildResidentialScheduleFile/measure.xml index 45494d5ec8..a50e1fe292 100644 --- a/BuildResidentialScheduleFile/measure.xml +++ b/BuildResidentialScheduleFile/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_schedule_file f770b2db-1a9f-4e99-99a7-7f3161a594b1 - 1872e0df-889e-46ae-8cb9-849eadb97fda - 2024-09-13T21:54:22Z + 1fc75fd9-df4c-4ba6-8eff-2366ba375060 + 2024-09-26T04:58:59Z 03F02484 BuildResidentialScheduleFile Schedule File Builder @@ -229,7 +229,7 @@ schedules.rb rb resource - 1E6EB1B1 + 85B9A7B9 shower_cluster_size_probability.csv diff --git a/BuildResidentialScheduleFile/resources/schedules.rb b/BuildResidentialScheduleFile/resources/schedules.rb index 747dbc0de2..8e1a8682e9 100644 --- a/BuildResidentialScheduleFile/resources/schedules.rb +++ b/BuildResidentialScheduleFile/resources/schedules.rb @@ -853,12 +853,15 @@ def export(schedules_path:) schedule_keys = table[0] + schedule_keys schedule_rows = schedule_rows.map.with_index { |row, i| table[i + 1] + row } end - CSV.open(schedules_path, 'w') do |csv| - csv << schedule_keys + + # Note: We don't use the CSV library here because it's slow for large files + File.open(schedules_path, 'w') do |csv| + csv << "#{schedule_keys.join(',')}\n" schedule_rows.each do |row| - csv << row + csv << "#{row.join(',')}\n" end end + return true end diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index 3f48f02227..770afc4840 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - 453f8c5f-d922-42a5-8815-cd92b9b23fa0 - 2024-09-25T21:40:48Z + 871ee4d0-efe2-4846-80e1-cdc147901ebd + 2024-09-26T05:18:34Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -357,7 +357,7 @@ hpxml_defaults.rb rb resource - ABD33AA9 + AE852A11 hpxml_schema/HPXML.xsd @@ -591,7 +591,7 @@ schedules.rb rb resource - 14BD47A8 + 7BE6BB34 simcontrols.rb diff --git a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb index 23d8218fd3..ab10004106 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +++ b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb @@ -4292,7 +4292,7 @@ def self.get_weather_station_csv_data zipcode_csv_filepath = File.join(File.dirname(__FILE__), 'data', 'zipcode_weather_stations.csv') if $zip_csv_data.nil? - # Don't use the CSV library because it's much slower + # Note: We don't use the CSV library here because it's slow for large files $zip_csv_data = File.readlines(zipcode_csv_filepath).map(&:strip) end diff --git a/HPXMLtoOpenStudio/resources/schedules.rb b/HPXMLtoOpenStudio/resources/schedules.rb index 1bc35dff94..348e4b0215 100644 --- a/HPXMLtoOpenStudio/resources/schedules.rb +++ b/HPXMLtoOpenStudio/resources/schedules.rb @@ -1287,7 +1287,8 @@ def import(schedules_paths) num_hrs_in_year = Calendar.num_hours_in_year(@year) @schedules = {} schedules_paths.each do |schedules_path| - columns = CSV.read(schedules_path).transpose + # Note: We don't use the CSV library here because it's slow for large files + columns = File.readlines(schedules_path).map(&:strip).map { |r| r.split(',') }.transpose columns.each do |col| col_name = col[0] column = Columns.values.find { |c| c.name == col_name } @@ -1348,11 +1349,11 @@ def import(schedules_paths) def export() return false if @output_schedules_path.nil? - CSV.open(@output_schedules_path, 'wb') do |csv| - csv << @tmp_schedules.keys - rows = @tmp_schedules.values.transpose - rows.each do |row| - csv << row + # Note: We don't use the CSV library here because it's slow for large files + File.open(@output_schedules_path, 'w') do |csv| + csv << "#{@tmp_schedules.keys.join(',')}\n" + @tmp_schedules.values.transpose.each do |row| + csv << "#{row.join(',')}\n" end end diff --git a/ReportSimulationOutput/measure.rb b/ReportSimulationOutput/measure.rb index 91018688b9..cedf83642e 100644 --- a/ReportSimulationOutput/measure.rb +++ b/ReportSimulationOutput/measure.rb @@ -1869,7 +1869,8 @@ def report_timeseries_output_results(runner, outputs, timeseries_output_path, ar end # Write file - CSV.open(timeseries_output_path, 'wb') { |csv| data.to_a.each { |elem| csv << elem } } + # Note: We don't use the CSV library here because it's slow for large files + File.open(timeseries_output_path, 'wb') { |csv| data.to_a.each { |elem| csv << "#{elem.join(',')}\n" } } elsif ['json', 'msgpack'].include? args[:output_format] # Assemble data h = {} diff --git a/ReportSimulationOutput/measure.xml b/ReportSimulationOutput/measure.xml index 5b595ae85c..1a9c7d902d 100644 --- a/ReportSimulationOutput/measure.xml +++ b/ReportSimulationOutput/measure.xml @@ -3,8 +3,8 @@ 3.1 report_simulation_output df9d170c-c21a-4130-866d-0d46b06073fd - 22b3e453-eba9-432d-8e44-e0afdb46bb9e - 2024-08-21T16:00:15Z + 29a26cd3-0ea4-4c33-9d29-e80f2f58b8f5 + 2024-09-26T04:59:04Z 9BF1E6AC ReportSimulationOutput HPXML Simulation Output Report @@ -1929,7 +1929,7 @@ measure.rb rb script - C4D35B1C + 877A9DB3 test_report_sim_output.rb diff --git a/ReportUtilityBills/measure.rb b/ReportUtilityBills/measure.rb index c564a418a6..b1baf8317e 100644 --- a/ReportUtilityBills/measure.rb +++ b/ReportUtilityBills/measure.rb @@ -488,7 +488,8 @@ def report_monthly_output_results(runner, args, timestamps, monthly_data, monthl data = data.zip(*monthly_data) # Write file - CSV.open(monthly_output_path, 'wb') { |csv| data.to_a.each { |elem| csv << elem } } + # Note: We don't use the CSV library here because it's slow for large files + File.open(monthly_output_path, 'wb') { |csv| data.to_a.each { |elem| csv << "#{elem.join(',')}\n" } } elsif ['json', 'msgpack'].include? args[:output_format] h = {} h['Time'] = data[2..-1] diff --git a/ReportUtilityBills/measure.xml b/ReportUtilityBills/measure.xml index 8fe6f47907..1ac13ef931 100644 --- a/ReportUtilityBills/measure.xml +++ b/ReportUtilityBills/measure.xml @@ -3,8 +3,8 @@ 3.1 report_utility_bills ca88a425-e59a-4bc4-af51-c7e7d1e960fe - 057900e7-7e6b-4ea7-976a-3818a92bdde4 - 2024-09-20T18:14:01Z + dd47ff13-28e8-414a-abb6-940ee40e7c55 + 2024-09-26T05:04:27Z 15BF4E57 ReportUtilityBills Utility Bills Report @@ -180,7 +180,7 @@ measure.rb rb script - 93B04330 + CC656203 detailed_rates/Adams Electric Cooperative Inc - Rate Schedule T1 TOD (Effective 2013-02-01).json