docs: def from_missing_values(cls, is_leap_year=False):
          """Initalize an EPW object with all data missing or empty.
  
          Note that this classmethod is intended for workflows where one plans
          to set all of the data within the EPW object.  The EPW file written
          out from the use of this method is not simulate-abe or useful since
          all hourly data slots just possess the missing value for that data
          type. To obtain a EPW that is simulate-able in EnergyPlus, one must
          at least set the following properties:
              location
              dry_bulb_temperature
              dew_point_temperature
              relative_humidity
              atmospheric_station_pressure
              direct_normal_radiation
              diffuse_horizontal_radiation
              wind_direction
              wind_speed
              total_sky_cover
              opaque_sky_cover or horizontal_infrared_radiation_intensity
  
          Args:
              is_leap_year: A boolean to set whether the EPW object is for a leap year.
  
          Usage:
              from ladybug.epw import EPW
              from ladybug.location import Location
              epw = EPW.from_missing_values()
              epw.location = Location('Denver Golden','CO','USA',39.74,-105.18,-7.0,1829.0)
              epw.dry_bulb_temperature.values = [20] * 8760
          """
          # Initialize the class with all data missing
          epw_obj = cls(None)
          epw_obj._is_leap_year = is_leap_year
          epw_obj._location = Location()
  
          # create an annual analysis period
          analysis_period = AnalysisPeriod(is_leap_year=is_leap_year)
  
          # create headers and an empty list for each field in epw file
          headers = []
          for field_number in xrange(epw_obj._num_of_fields):
              field = EPWFields.field_by_number(field_number)
              header = Header(data_type=field.name, unit=field.unit,
                              analysis_period=analysis_period)
              headers.append(header)
              epw_obj._data.append([])
  
          # fill in missing datetime values and uncertainty flags.
          uncertainty = '?9?9?9?9E0?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9*9*9?9?9?9'
          for dt in analysis_period.datetimes:
              hr = dt.hour if dt.hour != 0 else 24
              epw_obj._data[0].append(dt.year)
              epw_obj._data[1].append(dt.month)
              epw_obj._data[2].append(dt.day)
              epw_obj._data[3].append(hr)
              epw_obj._data[4].append(0)
              epw_obj._data[5].append(uncertainty)
  
          # generate missing hourly data
          calc_length = len(analysis_period.datetimes)
          for field_number in xrange(6, epw_obj._num_of_fields):
              field = EPWFields.field_by_number(field_number)
              mis_val = field.missing if field.missing is not None else 0
              for dt in xrange(calc_length):
                  epw_obj._data[field_number].append(mis_val)
  
          # finally, build the data collection objects from the headers and data
          for i in xrange(epw_obj._num_of_fields):
              epw_obj._data[i] = HourlyContinuousCollection(headers[i], epw_obj._data[i])
  
          epw_obj._is_header_loaded = True
          epw_obj._is_data_loaded = True
          return epw_obj