RAVE
ravepia.c File Reference

This object does support RAVE_OBJECT_CLONE. More...

#include "ravepia.h"
#include "rave_debug.h"
#include "rave_alloc.h"
#include "raveutil.h"
#include <string.h>
#include <math.h>
#include <stdio.h>

Classes

struct  _RavePIA_t
 Represents the gra applier. More...
 

Macros

#define DEFAULT_MAX_PIA   10.0
 
#define CBAND_CO_ZK_POWER   7.34e5 /* Coefficient of Z-k power law of C-band */
 
#define CBAND_EXP_ZK_POWER   1.344 /* Exponent of Z-k power law of C-band */
 
#define XBAND_CO_ZK_POWER   9.25e4 /* Coefficient of Z-k power law of X-band */
 
#define XBAND_EXP_ZK_POWER   1.25 /* Exponent of Z-k power law of X-band */
 
#define HOW_TASK_NAME   "se.smhi.qc.hitschfeld-bordan"
 

Functions

const char * RavePIA_getHowTaskName ()
 
void RavePIA_setZkPowerCoefficient (RavePIA_t *self, double c)
 Sets the coefficient of Z-k power law.
 
double RavePIA_getZkPowerCoefficient (RavePIA_t *self)
 Returns the coefficient of Z-k power law.
 
void RavePIA_setZkPowerExponent (RavePIA_t *self, double d)
 Sets the exponent of Z-k power law.
 
double RavePIA_getZkPowerExponent (RavePIA_t *self)
 Returns the coefficient of Z-k power law.
 
void RavePIA_setPiaMax (RavePIA_t *self, double maxv)
 Sets the PIA max value.
 
double RavePIA_getPiaMax (RavePIA_t *self)
 Returns the PIA max value.
 
void RavePIA_setRangeResolution (RavePIA_t *self, double rr)
 Sets the range resolution in km.
 
double RavePIA_getRangeResolution (RavePIA_t *self)
 Returns the range resolution in km.
 
RaveField_tRavePIA_calculatePIA (RavePIA_t *self, PolarScan_t *scan, const char *quantity, double *outDr)
 Calculates PIA for specified quantity in scan.
 
PolarScanParam_tRavePIA_createPIAParameter (RavePIA_t *self, PolarScan_t *scan, const char *quantity, RaveField_t **outPIA, double *outDr)
 Creates the PIA parameter.
 
int RavePIA_process (RavePIA_t *self, PolarScan_t *scan, const char *quantity, int addparam, int reprocessquality, int apply)
 Performs the processing and adds quality flag / PIA parameter and adjusts DBZH field.
 

Variables

RaveCoreObjectType RavePIA_TYPE
 Type definition to use when creating a rave object.
 

Detailed Description

This object does support RAVE_OBJECT_CLONE.

Author
Anders Henja (Swedish Meteorological and Hydrological Institute, SMHI)
Date
2025-12-03

Function Documentation

◆ RavePIA_calculatePIA()

RaveField_t * RavePIA_calculatePIA ( RavePIA_t * self,
PolarScan_t * scan,
const char * quantity,
double * outDr )

Calculates PIA for specified quantity in scan.

Parameters
[in]self- self
[in]scan- the scna
[in]quantity- the quantity
[out]outDr- if outDr != NULL the used range resolution will be set here.
Returns
the rave field

◆ RavePIA_createPIAParameter()

PolarScanParam_t * RavePIA_createPIAParameter ( RavePIA_t * self,
PolarScan_t * scan,
const char * quantity,
RaveField_t ** outPIA,
double * outDr )

Creates the PIA parameter.

Parameters
[in]self- self
[in]scan- the scan
[in]quantity- the quantity
[out]outPIA- if outPIA != NULL the resulting PIA will be copied here.
[out]outDr- if outDr != NULL the used range resolution will be set here.
Returns
the polar scan param

◆ RavePIA_getPiaMax()

double RavePIA_getPiaMax ( RavePIA_t * self)

Returns the PIA max value.

Parameters
[in]self- self
Returns
the PIA max value

◆ RavePIA_getRangeResolution()

double RavePIA_getRangeResolution ( RavePIA_t * self)

Returns the range resolution in km.

Parameters
[in]self- self
Returns
the range resolution

◆ RavePIA_getZkPowerCoefficient()

double RavePIA_getZkPowerCoefficient ( RavePIA_t * self)

Returns the coefficient of Z-k power law.

Parameters
[in]self- self

◆ RavePIA_getZkPowerExponent()

double RavePIA_getZkPowerExponent ( RavePIA_t * self)

Returns the coefficient of Z-k power law.

Parameters
[in]self- self

◆ RavePIA_process()

int RavePIA_process ( RavePIA_t * self,
PolarScan_t * scan,
const char * quantity,
int addparam,
int reprocessquality,
int apply )

Performs the processing and adds quality flag / PIA parameter and adjusts DBZH field.

Parameters
[in]self- self
[in]scan- the scan on which the PIA calculation should be performed
[in]quantity- the quantity of the parameter
[in]addparam- if the PIA parameter should be added to the scan
[in]reprocessquality- if True (1), then the quality field is created even if the quality field with same how/task name already exists.
[in]apply- if the DBZH parameter should be adjusted with the PIA field
Returns
1 on success

◆ RavePIA_setPiaMax()

void RavePIA_setPiaMax ( RavePIA_t * self,
double maxv )

Sets the PIA max value.

Parameters
[in]self- self
[in]maxv- the max value

◆ RavePIA_setRangeResolution()

void RavePIA_setRangeResolution ( RavePIA_t * self,
double rr )

Sets the range resolution in km.

Parameters
[in]self- self
[in]rr- the range resolution in km

◆ RavePIA_setZkPowerCoefficient()

void RavePIA_setZkPowerCoefficient ( RavePIA_t * self,
double c )

Sets the coefficient of Z-k power law.

Parameters
[in]self- self
[in]c- the coefficient

◆ RavePIA_setZkPowerExponent()

void RavePIA_setZkPowerExponent ( RavePIA_t * self,
double d )

Sets the exponent of Z-k power law.

Parameters
[in]self- self
[in]d- the exponent

Variable Documentation

◆ RavePIA_TYPE

RaveCoreObjectType RavePIA_TYPE
Initial value:
= {
"RavePIA",
sizeof(RavePIA_t),
RavePIA_constructor,
RavePIA_destructor,
RavePIA_copyconstructor
}
struct _RavePIA_t RavePIA_t
Defines PIA.
Definition ravepia.h:35

Type definition to use when creating a rave object.