MCPcopy Create free account
hub / github.com/NatLabRockies/OpenStudio / fromEpwStrings

Method fromEpwStrings

src/utilities/filetypes/EpwFile.cpp:440–502  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

438}
439
440boost::optional<EpwDataPoint> EpwDataPoint::fromEpwStrings(const std::vector<std::string>& strings, bool pedantic) {
441 EpwDataPoint pt;
442 // Expect 35 items in the strings
443 if (strings.size() < 35) {
444 if (pedantic) {
445 LOG_FREE(Error, "openstudio.EpwFile", "Expected 35 fields in EPW data instead of the " << strings.size() << " received");
446 return boost::none;
447 } else {
448 LOG_FREE(Warn, "openstudio.EpwFile",
449 "Expected 35 fields in EPW data instead of the " << strings.size() << " received. The remaining fields will not be available");
450 }
451 } else if (strings.size() > 35) {
452 LOG_FREE(Warn, "openstudio.EpwFile",
453 "Expected 35 fields in EPW data instead of the " << strings.size() << " received. The additional data will be ignored");
454 }
455 // Use the appropriate setter on each field
456 if (!pt.setYear(strings[EpwDataField::Year])) {
457 return boost::none;
458 }
459 if (!pt.setMonth(strings[EpwDataField::Month])) {
460 return boost::none;
461 }
462 if (!pt.setDay(strings[EpwDataField::Day])) {
463 return boost::none;
464 }
465 if (!pt.setHour(strings[EpwDataField::Hour])) {
466 return boost::none;
467 }
468 if (!pt.setMinute(strings[EpwDataField::Minute])) {
469 return boost::none;
470 }
471 pt.setDataSourceandUncertaintyFlags(strings[EpwDataField::DataSourceandUncertaintyFlags]);
472 pt.setDryBulbTemperature(strings[EpwDataField::DryBulbTemperature]);
473 pt.setDewPointTemperature(strings[EpwDataField::DewPointTemperature]);
474 pt.setRelativeHumidity(strings[EpwDataField::RelativeHumidity]);
475 pt.setAtmosphericStationPressure(strings[EpwDataField::AtmosphericStationPressure]);
476 pt.setExtraterrestrialHorizontalRadiation(strings[EpwDataField::ExtraterrestrialHorizontalRadiation]);
477 pt.setExtraterrestrialDirectNormalRadiation(strings[EpwDataField::ExtraterrestrialDirectNormalRadiation]);
478 pt.setHorizontalInfraredRadiationIntensity(strings[EpwDataField::HorizontalInfraredRadiationIntensity]);
479 pt.setGlobalHorizontalRadiation(strings[EpwDataField::GlobalHorizontalRadiation]);
480 pt.setDirectNormalRadiation(strings[EpwDataField::DirectNormalRadiation]);
481 pt.setDiffuseHorizontalRadiation(strings[EpwDataField::DiffuseHorizontalRadiation]);
482 pt.setGlobalHorizontalIlluminance(strings[EpwDataField::GlobalHorizontalIlluminance]);
483 pt.setDirectNormalIlluminance(strings[EpwDataField::DirectNormalIlluminance]);
484 pt.setDiffuseHorizontalIlluminance(strings[EpwDataField::DiffuseHorizontalIlluminance]);
485 pt.setZenithLuminance(strings[EpwDataField::ZenithLuminance]);
486 pt.setWindDirection(strings[EpwDataField::WindDirection]);
487 pt.setWindSpeed(strings[EpwDataField::WindSpeed]);
488 pt.setTotalSkyCover(strings[EpwDataField::TotalSkyCover]);
489 pt.setOpaqueSkyCover(strings[EpwDataField::OpaqueSkyCover]);
490 pt.setVisibility(strings[EpwDataField::Visibility]);
491 pt.setCeilingHeight(strings[EpwDataField::CeilingHeight]);
492 pt.setPresentWeatherObservation(strings[EpwDataField::PresentWeatherObservation]);
493 pt.setPresentWeatherCodes(strings[EpwDataField::PresentWeatherCodes]);
494 pt.setPrecipitableWater(strings[EpwDataField::PrecipitableWater]);
495 pt.setAerosolOpticalDepth(strings[EpwDataField::AerosolOpticalDepth]);
496 pt.setSnowDepth(strings[EpwDataField::SnowDepth]);
497 pt.setDaysSinceLastSnowfall(strings[EpwDataField::DaysSinceLastSnowfall]);

Callers

nothing calls this directly

Tested by

no test coverage detected