/** \file
 *
 *  Specifies the interface details for the HFRadarModelCalc component in the
 *  EstimationModule.
 *
 *  HFRadarModelCalc.h should only be included by HFRadarModelCalc.cpp
 *  Other classes should include HFRadarModelCalcIF.h
 *
 *  Copyright (c) 2007,2008,2009 MBARI
 *  MBARI Proprietary Information.  All Rights Reserved
 */

#ifndef HFRADARMODELCALCIF_H_
#define HFRADARMODELCALCIF_H_

/**
 *  Specifies the interface details for the HFRadarModelCalc component in the
 *  EstimationModule.
 *
 *  HFRadarModelCalc.h should only be included by HFRadarModelCalc.cpp
 *  Other classes should include HFRadarModelCalcIF.h
 *
 *  \ingroup modules_estimation
 */
namespace HFRadarModelCalcIF
{
/// Static const for component name
/// (Can be used by other components)
static const Str NAME( "HFRadarModelCalc" );

// Include common ConfigURIs -- must be in namespace and follow definition of NAME
#include "component/HasLoadAtStartupIF.h"

static const int MAX_EOFS( 50 ); // Maximum number of EOFs supported by the neural net surrogate
static const int HISTORY_HOURS( 49 ); // number of history hours to use (determined at runtime from xlags_)
static const int PROJECTION_HOURS( 12 ); // number of hours to project into the future from the most recent history hour
static const int TOTAL_HOURS( 61 ); // total hours including measured history and estimated forecast

// configuration parameters
static const ConfigURI VELOCITY_ACCURACY( NAME, "velocityAccuracy", Units::METER_PER_SECOND );

// component-level slate outputs
static const BlobURI FORECAST_EXPANSION_COEFFICIENTS( NAME, "forecast_expansion_coefficients", Units::NONE, BLOB_FLOAT32LE, MAX_EOFS, TOTAL_HOURS );
static const BlobURI FORECAST_TIMES( NAME, "forecast_times", Units::EPOCH_SECOND, BLOB_FLOAT64LE, TOTAL_HOURS );

}

#endif /*HFRADARMODELCALCIF_H_*/
