|
#define | HEIGMIN1 (8.0) /*Minimum height for first analyses in km.*/ |
|
#define | HEIGMIN2 (4.0) /*Minimum height for second analyses in km.*/ |
|
#define | RAYMIN (20.0) /*Minimum length of rays for analyses in km.*/ |
|
#define | FRACDATA (0.70) /*Fraction of rangebins passing the analyses.*/ |
|
#define | DBDIFX (2.0) /*Maximum dev. of power from 1st fit in dB.*/ |
|
#define | ANGLEDIF (5.0) /*Maximum dev. from calculated sun in deg.*/ |
|
#define | GASATTN (0.016) /*Two-way gaseous attenuation in dB/km.*/ |
|
#define | CWIDTH (1.2) /*Factor between bandwidth and 1/pulselength.*/ |
|
#define | WAVELENGTH (0.053) /*Default wavelength in meters*/ |
|
#define | ANTVEL (18.0) /*Default antenna velocity in deg/s*/ |
|
#define | ANTGAIN (45.0) /*Default antenna gain in dB*/ |
|
#define | ASTART (0.0) /*Default azimuthal offset from 0 in degrees*/ |
|
#define | PULSEWIDTH (2.0) /*Default pulse width in microseconds*/ |
|
#define | RXLOSS (0.0) /*Default receiver chain loss in dB*/ |
|
#define | RADCNST (64.0) /*Super-arbitrary default radar constant*/ |
|
#define | ONEPOL (3.01) /*Losses due to one-pol RX only in dB.*/ |
|
#define | AVGATTN (1.39) /*Averaging and overlap losses in dB for 1deg.*/ |
|
#define | DEG2RAD (0.017453293) /*Degrees to radians.*/ |
|
#define | RAD2DEG (57.29578) /*Radians to degrees.*/ |
|
#define | LSTR (128) /*Length of all strings used.*/ |
|
#define | NELEVX (64) /*Maximum number of elevations.*/ |
|
#define | RADIUS43 (8495.0) /*Earth radius used for height calculations.*/ |
|
#define | EARTHRAD (6371.0) /*Radius of spherical earth in km.*/ |
|
#define | KFACT (1.25) /*K-factor in Equivalent Earth Model.*/ |
|
#define | N0 (313.0) /*Atmospherc refractivity at the surface.*/ |
|
|
int | getDoubleAttribute (RaveCoreObject *obj, const char *aname, double *tmpd) |
| Returns a double attribute value from any polar object type.
|
|
int | getDoubleArrayAttribute (PolarScan_t *scan, const char *aname, double **array, PolarScanParam_t *param) |
| Returns a double attribute array from a polar scan object.
|
|
void | fill_toplevelmeta (RaveCoreObject *object, SCANMETA *meta) |
| Reads metadata into the SCANMETA structure from top-level object, whether it be volume or scan, where required metadata are located in top-level 'how'.
|
|
void | fill_meta (PolarScan_t *scan, PolarScanParam_t *dbzh, SCANMETA *meta) |
| Reads metadata into the SCANMETA structure from volume, scan, param.
|
|
double | ElevHeig2Rang (double elev, float heig) |
| This function calculates the height and range from the Radar corresponding to a point with a known elevation and on-ground distance from the Radar.
|
|
void | datetime (long date1, long time1, long ss, long *date2, long *time2) |
| This function returns the date/time of (date1,time1) and 'ss' later.
|
|
double | refraction (double *elev) |
| This function calculates the refraction correction of the solar position.
|
|
void | solar_elev_azim (double lon, double lat, long yyyymmdd, long hhmmss, double *elev, double *azim, double *relev) |
| This function calculates the solar elevation and azimuth using the geographical position, date, and time.
|
|
void | readoutTiming (SCANMETA *meta, int ia, long *date, long *time, double *timer) |
| Determines the exact observation times based on acquired readout times for each ray.
|
|
int | processData (PolarScan_t *scan, SCANMETA *meta, RaveList_t *list) |
| Finds sun hits in reflectivity data.
|
|
int | processScan (PolarScan_t *scan, SCANMETA *meta, RaveList_t *list) |
| Helper function that calls processReflectivity for each of a number of given parameters/quantities.
|
|
void | outputMeta (SCANMETA *meta) |
| Debug function that writes metadata to file.
|
|
int | scansunFromObject (RaveCoreObject *object, Rave_ObjectType ot, RaveList_t *list, char **source) |
| Masterminds the scanning of polar data and determination of sun hits, from object in memory.
|
|
int | scansun (const char *filename, RaveList_t *list, char **source) |
| Masterminds the scanning of polar data and determination of sun hits.
|
|
Header file for KNMI's sun scanning functionality.
- Author
- Original algorithm and code: Iwan Holleman, KNMI, and Integration: Daniel Michelson, SMHI
- Date
- 2015-05-11
double refraction |
( |
double * | elev | ) |
|
This function calculates the refraction correction of the solar position.
The function uses the true elevation, i.e., the calculated elevation of the sun in degrees. Formulas derived from the Equivalent Earth Model are used to calculated the refraction in degrees. (Holleman & Huuskonen, 2013, Rad. Sci.)
- Returns
- a double containing the value of the refracted (perceived) elevation angle in degrees.
void solar_elev_azim |
( |
double | lon, |
|
|
double | lat, |
|
|
long | yyyymmdd, |
|
|
long | hhmmss, |
|
|
double * | elev, |
|
|
double * | azim, |
|
|
double * | relev ) |
This function calculates the solar elevation and azimuth using the geographical position, date, and time.
The equations and constants are taken from the WMO guide on Meteorological Instruments and Methods of Observations (CIMO, WMO no. 8), annex 7.D. The equations have been slightly modified and extended to include the calculation of both the sine and cosine of the azimuth. Modified slightly further to include the refracted (perceived) elevation angle.
- Parameters
-
[in] | lon | - double containing the longitude position |
[in] | lat | - double containing the latitude position |
[in] | yyyymmdd | - year-month-day as a long |
[in] | hhmmss | - hour-minute-second as a long |
[out] | elev | - elevation angle above the horizon in degrees, as a pointer to a double |
[out] | azim | - azimuth angle clockwise from true north, as a pointer to a double |
[out] | relev | - refracted elevation angle, based on elev, as a pointer to a double |
- Returns
- nothing