Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
api : io.api.APISession
API Session object, authenticated for the Reference user.
site : datamodel.Site
The site object for which to create the Observations.
"""
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']
for sfa_var, midc_var in midc_config.midc_var_map[site_api_id].items():
obs_extra_params = extra_params.copy()
obs_extra_params['network_data_label'] = midc_var
common.create_observation(api, site, sfa_var,
extra_params=obs_extra_params)
def initialize_site_observations(api, site):
"""Creates an observation at the site for each variable in
DOE_RTC_VARIABLE_MAP
Parameters
----------
api : solarforecastarbiter.io.api.APISession
An active Reference user session.
site : datamodel.Site
The site object for which to create Observations.
"""
for sfa_var in DOE_RTC_VARIABLE_MAP.values():
logger.info(f'Creating {sfa_var} at {site.name}')
try:
common.create_observation(
api, site, sfa_var)
except HTTPError as e:
logger.error(f'Could not create Observation for "{sfa_var}" '
f'at DOE RTC site {site.name}')
logger.debug(f'Error: {e.response.text}')
def initialize_site_observations(api, site):
"""Creates an observaiton at the site for each variable in surfrad_variables.
Parameters
----------
site : datamodel.Site
The site object for which to create Observations.
"""
for variable in surfrad_variables:
common.create_observation(api, site, variable)
def initialize_site_observations(api, site):
"""Creates an observaiton at the site for each variable in solrad_variables.
Parameters
----------
site : datamodel.Site
The site object for which to create Observations.
"""
for variable in solrad_variables:
common.create_observation(api, site, variable)
if site_df is None:
logger.error('Could not find data to create observations '
f'for SRML site {site_name}.')
return
for variable in srml_variable_map.keys():
matches = [col for col in site_df.columns
if col.startswith(variable)]
for match in matches:
observation_extra_parameters = extra_params.copy()
observation_extra_parameters.update({
'network_data_label': match})
try:
# Here, we pass a name with match instead of variable
# to differentiate between multiple observations of
# the same variable
common.create_observation(
api, site, srml_variable_map[variable],
name=f'{site_name} {match}',
interval_label='beginning',
extra_params=observation_extra_parameters)
except HTTPError as e:
logger.error(
f'Failed to create {variable} observation at Site '
f'{site.name}. Error: {e.response.text}')
with open(DEFAULT_SITEFILE) as fp:
obs_metadata = json.load(fp)['observations']
for obs in obs_metadata:
obs_site_extra_params = json.loads(obs['site']['extra_parameters'])
if obs_site_extra_params['network_api_id'] == extra_params[
'network_api_id']:
obs['site'] = site
observation = Observation.from_dict(obs)
def initialize_site_observations(api, site):
"""Create an observation for each available variable at the SOLRAD site.
Parameters
----------
api : solarforecastarbiter.io.api.APISession
An active reference user session
site : solarforecastarbiter.datamodel.Site
"""
for variable in crn_variables:
common.create_observation(api, site, variable)