def initialize_site_forecasts(api, site):
    """
    Create a forecasts for each variable measured at the site

    Parameters
    ----------
    api : solarforecastarbiter.io.api.APISession
        An active Reference user session.
    site : datamodel.Site
        The site object for which to create Forecasts.
    """
    try:
        extra_params = common.decode_extra_parameters(site)
    except ValueError:
        logger.warning('Cannot create reference observations at PVDAQ site '
                       f'{site.name}, missing required parameters.')
        return
    site_api_id = int(extra_params['network_api_id'])
    with open(DEFAULT_SITEFILE) as fp:
        obs_metadata = json.load(fp)['observations']

    obs_vars = []
    for obs in obs_metadata:
        obs_extra_params = json.loads(obs['extra_parameters'])
        if obs_extra_params['network_api_id'] == site_api_id:
            obs_vars.append(obs['variable'])

    common.create_forecasts(api, site, obs_vars,
                            default_forecasts.TEMPLATE_FORECASTS)
def initialize_site_forecasts(api, site):
    """
    Create a forecasts for each variable in DOE_RTC_VARIABLE_MAP at each site

    Parameters
    ----------
    api : solarforecastarbiter.io.api.APISession
        An active Reference user session.
    site : datamodel.Site
        The site object for which to create Forecasts.
    """
    common.create_forecasts(api, site, DOE_RTC_VARIABLE_MAP.values(),
                            default_forecasts.TEMPLATE_FORECASTS)
def initialize_site_forecasts(api, site):
    """
    Create forecasts for each variable in surfrad_variables at the site

    Parameters
    ----------
    api : solarforecastarbiter.io.api.APISession
        An active Reference user session.
    site : datamodel.Site
        The site object for which to create Forecasts.
    """
    common.create_forecasts(api, site, surfrad_variables,
                            default_forecasts.TEMPLATE_FORECASTS)
Exemple #4
0
def initialize_site_forecasts(api, site):
    """Creates a forecast at the site.

    Parameters
    ----------
    api : solarforecastarbiter.io.api.APISession
        API Session object, authenticated for the Reference user.
    site : solarforecastarbiter.datamodel.Site
        The site object for which to create the Observations.

    """
    common.create_forecasts(
        api, site, ["net_load"],
        default_forecasts.TEMPLATE_NETLOAD_PERSISTENCE_FORECASTS)
def initialize_site_forecasts(api, site):
    """
    Create a forecasts for each variable measured at the site

    Parameters
    ----------
    api : :py:class:`solarforecastarbiter.io.api.APISession`
        An active Reference user session.
    site : :py:class:`solarforecastarbiter.datamodel.Site`
        The site object for which to create Forecasts.
    """
    variables = list(srml_variable_map.values())
    if isinstance(site, SolarPowerPlant):
        variables += ['ac_power', 'dc_power']
    common.create_forecasts(api, site, variables,
                            default_forecasts.TEMPLATE_FORECASTS)
def initialize_site_forecasts(api, site):
    """
    Create a forecast for each variable at the site.

    Parameters
    ----------
    api : solarforecastarbiter.io.api.APISession
        An active Reference user session.
    site : datamodel.Site
        The site object for which to create Forecasts.
    """
    try:
        site_extra_params = common.decode_extra_parameters(site)
    except ValueError:
        logger.error('Failed to initialize reference forecasts for '
                     f'{site.name} extra parameters could not be loaded.')
        return
    site_arm_vars = _determine_site_vars(site_extra_params['network_api_id'])
    sfa_vars = [DOE_ARM_VARIABLE_MAP[v] for v in site_arm_vars]
    common.create_forecasts(api, site, sfa_vars,
                            default_forecasts.TEMPLATE_FORECASTS)
def initialize_site_forecasts(api, site):
    """
    Create a forecasts for each variable measured at the site

    Parameters
    ----------
    api : solarforecastarbiter.io.api.APISession
        An active Reference user session.
    site : datamodel.Site
        The site object for which to create Forecasts.
    """
    try:
        extra_params = common.decode_extra_parameters(site)
    except ValueError:
        logger.warning('Cannot create reference observations at MIDC site '
                       f'{site.name}, missing required parameters.')
        return
    site_api_id = extra_params['network_api_id']
    common.create_forecasts(
        api, site, midc_config.midc_var_map[site_api_id].keys(),
        default_forecasts.TEMPLATE_FORECASTS)
Exemple #8
0
def initialize_site_forecasts(api, site):
    """
    Create a forecast for each variable at the site.

    Parameters
    ----------
    api : solarforecastarbiter.io.api.APISession
        An active Reference user session.
    site : datamodel.Site
        The site object for which to create Forecasts.
    """
    try:
        site_extra_params = common.decode_extra_parameters(site)
    except ValueError:
        logger.error('Failed to initialize reference forecasts for '
                     f'{site.name} extra parameters could not be loaded.')
        return

    site_vars = site_variables_from_extra_params(site_extra_params)

    common.create_forecasts(api, site, site_vars,
                            default_forecasts.TEMPLATE_FORECASTS)
Exemple #9
0
def test_create_forecasts(template_fx, mocker):
    vars_ = ('ac_power', 'ghi')
    api, template, site = template_fx
    templates = [
        template,
        template.replace(extra_parameters=json.dumps(
            {'is_reference_persistence_forecast': True}))
    ]
    api.list_observations = mocker.MagicMock(
        return_value=[site_test_observation.replace(site=site)])
    create_nwp = mocker.spy(common, 'create_nwp_forecasts')
    create_perst = mocker.spy(common, 'create_persistence_forecasts')
    fxs = common.create_forecasts(api, site, vars_, templates)
    assert len(fxs) == 3
    assert create_nwp.call_count == 1
    assert create_perst.call_count == 1
    assert create_nwp.call_args[0][-1] == templates[:1]
    assert create_perst.call_args[0][-1] == templates[-1:]