Default processing functions for data from NOAA weather models.

All public functions in this module have the same signature.

The functions accept:

  • latitude : float
  • longitude : float
  • elevation : float
  • init_time : pd.Timestamp
    Full datetime of a model initialization
  • start : pd.Timestamp
  • end : pd.Timestamp
  • load_forecast : function
    A function that accepts the arguments above and returns the correct data. Enables users to supply their own data independently of the module.
  • __model : str
    The NWP model that the processing function is associated with.

The functions return a tuple of:

  • ghi : pd.Series
  • dni : pd.Series
  • dhi : pd.Series
  • air_temperature : pd.Series
  • wind_speed : pd.Series
  • resampler : function
    A function that resamples data to the appropriate frequency. This function is to be applied to all forecast variables after power is calculated.
  • solar_position_calculator : function
    A function that returns solar position at the ghi forecast times (after internal interpolation, before external resampling). The function will return results immediately if solar position is already known or will call a solar position calculation algorithm and then return.

Most of the model functions return forecast data interpolated to 5 minute frequency. Interpolation to 5 minutes reduces the errors associated with solar position and irradiance to power models (these models assume instantaneous inputs). Why 5 minutes? It’s a round number that produces about 10 data points per hour, so it’s reasonable for hour average calculations. It is expected that after calculating power, users will apply the resampler function to both the weather and power forecasts. These functions may be most useful if the user would like to understand the performance of a NWP model with modest post-processing.

Several model functions return instantaneous data that is coincident with the NWP model forecast time (15 minutes or hourly, depending on the NWP model). The resamplers returned by these functions do not modify the data (though they do define the frequency attribute of the data’s DatetimeIndex). These functions may most useful if the user would like to understand the raw performance of a NWP model.

The functions in this module accept primitives (floats, strings, etc.) rather than objects defined in solarforecastarbiter.datamodel because we anticipate that these functions may be of more general use and that functions that accept primitives may be easier to maintain in the long run.


gefs_half_deg_to_hourly_mean(latitude, …) Hourly average forecasts derived from GEFS 3, 6, and 12 hr frequency output.
get_nwp_model(func) Get the NWP model string from a modeling function
gfs_quarter_deg_3hour_to_hourly_mean(…[, …]) Take 3 hr GFS and convert it to hourly average data.
gfs_quarter_deg_hourly_to_hourly_mean(…[, …]) Take 1 hr GFS and convert it to hourly average data.
gfs_quarter_deg_to_hourly_mean(latitude, …) Hourly average forecasts derived from GFS 1, 3, and 12 hr frequency output.
hrrr_subhourly_to_hourly_mean(latitude, …) Hourly mean HRRR forecast.
hrrr_subhourly_to_subhourly_instantaneous(…) Subhourly (15 min) instantantaneous HRRR forecast.
nam_12km_cloud_cover_to_hourly_mean(…[, …]) Hourly average forecast.
nam_12km_hourly_to_hourly_instantaneous(…) Hourly instantantaneous forecast.
rap_cloud_cover_to_hourly_mean(latitude, …) Take hourly RAP instantantaneous cloud cover and convert it to hourly average forecasts.
rap_ghi_to_instantaneous(latitude, …[, …]) Hourly instantantaneous RAP forecast.