5. Statistics
All statistics are calculated and reported in the local time without shifts for daylight saving time of the station where the data originated from
https://toar-data.fz-juelich.de/api/v2/analysis/statistics/[?QUERY-OPTIONS] —> link does not work
where QUERY-OPTIONS are:
any combination of query options from both TOARDB REST interface - 2.4 Stationmeta and TOARDB REST interface - 2.5 Timeseries
daterange = <list of two datetimes: date range for which to extract data>
flags = <list of strings: only select data points with the specified quality flags> (for a description of flags and all available flag names see User Guide - 5.2 Data Quality Flags)
sampling = <string: temporal aggregation to use> (for available values see ALLOWED_SAMPLING_VALUES)
statistics = <list of strings: statistics to calculate> (for available values and details see 5.2. Available Statistics )
seasons = <list of strings: seasons to use for seasonal aggregations> (for available values see SEASON_DICT) (default: “DJF,MAM,JJA,SON”)
crops = <list of strings: crops to use for vegeseason aggregations> (for available values see ALLOWED_CROPS_VALUES) (default: “wheat,rice”)
min_data_capture = <number: minimal fraction of available hourly values in the aggregation interval to report an aggregated value, must be between 0 and 1> (default: 0.75)
metadata_scheme = <string: select how much metadata is returned> (basic|extended|full) (default: full)
format = <string>(raw|by_statistic) (for details on the formats see 8. Aggregated Output Formats )
Response: The query will return a unique task identifier and a link to check the status of your query.
Example: https://toar-data.fz-juelich.de/api/v2/analysis/statistics/?country=DE&variable_id=5&limit=3&daterange=2010-01-01T00:00:00,2020-12-31T23:59:59&flags=AllOK&sampling=annual&statistics=mean,median,min,max
Result:  {“task_id”:”e2b17c39-6f80-4083-9bb8-f90cd72812b9”,”status”:”https://toar-data.fz-juelich.de/api/v2/analysis/status/e2b17c39-6f80-4083-9bb8-f90cd72812b9”}
To retrieve the result send a request to the status endpoint with your task identifier. If the result is there you will be redirected. The result will be a zip archive containing files in the format you have chosen.
5.1. Map
https://toar-data.fz-juelich.de/api/v2/analysis/statistics/[?QUERY-OPTIONS] #link does not work
where QUERY-OPTIONS are:
daterange = <str: comma separated start and end date and time for which to extract data>
variable_id = <integer: variable to extract>
bounding_box = <list of four numbers: bounding_box (min_lat,min_lon,max_lat,max_lon) in degrees_north/degrees_east to define a geographical rectangle (do not set anything for global extraction)> (default: None)
statistics = <list of strings: statistics to calculate> (for available values and details see 3. Available Statistics)
format = <string> (json|csv) (default: json)
Response: The query will return a unique task identifier and a link to check the status of your query.
Example: https://toar-data.fz-juelich.de/api/v2/analysis/statistics/map/?daterange=2010-01-01T00:00:00,2020-12-31T23:59:59&variable_id=5&bounding_box=50,6,52,8&statistics=avgdma8epax&format=csv
Result: {“task_id”:”5a0beddf-a1c4-4584-9fb7-d5e98bafcd46”,”status”:”https://toar-data.fz-juelich.de/api/v2/analysis/status/5a0beddf-a1c4-4584-9fb7-d5e98bafcd46”}
To retrieve the result send a request to the status endpoint with your task identifier. If the result is there you will be redirected. The result will be a zip archive containing files in the format you have chosen.
5.2. Available Statistics
Remarks about the minimal fraction of available hourly data use 75% (the default) in the descriptions below. When you define a different min_data_capture that value is used instead.
For more details see supplement 1 of Schultz et al. (2017)
| Name | Description | 
|---|---|
| aot40 | Daily 12-h AOT40 values are accumulated using hourly values for the 12-h period from 08:00h until 19:59h. AOT40 is defined as cumulative ozone above 40 ppb. If less than 75% of hourly values (i.e. less than 9 out of 12 hours) are present, the cumulative AOT40 is considered missing. When there exist 75% or greater data capture in the daily 12-h window, the scaling by fractional data capture (ntotal/nvalid) is utilized.  | 
| avgdma8epax | Average value of the daily dma8epax statistics during the aggregation period. | 
| count | Number of available values in the aggregation period. | 
| dark_aot40 | As aot40, but using solar elevation <= 5 degrees to identify “dark” hours. | 
| dark_avg | As mean, but using solar elevation <= 5 degrees to identify “dark” hours. | 
| data_capture | Fraction of valid (hourly) values available in the aggregation period. | 
| daylight_aot40 | As aot40, but using solar elevation > 5 degrees to identify “daytime” hours. | 
| daylight_avg | As mean, but using solar elevation > 5 degrees to identify “daytime” hours. | 
| daytime_avg | Daytime average is defined as average of hourly values for the 12-h period from 08:00h to 19:59h. All hourly values in the aggregation period are averaged, and the resulting value is valid if at least 75% of hourly values are present. | 
| diurnal_cycle | Diurnal cycle (must be given without any other statistics). | 
| dma8epa | Daily maximum 8-hour average statistics according to the US EPA definition. 8-hour averages are calculated for 24 bins starting at 0 h local time. The 8-h running mean for a particular hour is calculated on the concentration for that hour plus the following 7 hours. If less than 75% of data are present (i.e. less than 6 hours), the average is considered missing.  | 
| dma8epa_strict | As dma8epa, but additionally, a diurnal 8-hour maximum value is only saved if at least 18 out of the 24 8-hour averages are valid. This is the official dma8epa definition. | 
| dma8epax | As dma8epa, but using the new US EPA definition of the daily 8-hour window from 7 h local time to 23 h local time. | 
| dma8epax_strict | As dma8epax, but additionally, a diurnal 8-hour maximum value is only saved if at least 13 out of the 17 8-hour averages are valid. This is the official dma8epax definition. | 
| dma8eu | As dma8epa, but using the EU definition of the daily 8-hour window starting from 17 h of the previous day.  | 
| dma8eu_strict | As dma8eu, but additionally, a diurnal 8-hour maximum value is only saved if at least 18 out of the 24 8-hour averages are valid. This is the official dma8eu definition. | 
| drmdmax1h | Maximum of the 3-months running mean of daily maximum 1-hour mixing ratios during the aggregation period. | 
| m7_avg | Daytime mean values (9-16h). | 
| max | Maximum in the aggregation period. | 
| max1h | Daily maximum hourly value. | 
| mean | Average value in the aggregation period. | 
| median | Median value in the aggregation period. | 
| min | Minimum in the aggregation period. | 
| nighttime_avg | Same as daytime_average but accumulated over the daily interval from 20:00 h to 07:59 h. | 
| nvgt050 | Number of days with exceedance of the dma8epax value above 50 ppb. The value is marked as missing if less than 75% of days contain valid data. | 
| nvgt060 | Number of days with exceedance of the dma8epax value above 60 ppb. The value is marked as missing if less than 75% of days contain valid data. | 
| nvgt070 | Number of days with exceedance of the dma8epax value above 70 ppb. The value is marked as missing if less than 75% of days contain valid data. | 
| nvgt080 | Number of days with exceedance of the dma8epax value above 80 ppb. The value is marked as missing if less than 75% of days contain valid data. | 
| nvgt090 | Number of days with exceedance of the daily max1h_values above 90 ppb. The value is marked as missing if less than 75% of days contain valid data. | 
| nvgt100 | Number of days with exceedance of the daily max1h_values above 100 ppb. The value is marked as missing if less than 75% of days contain valid data. | 
| nvgt120 | Number of days with exceedance of the daily max1h_values above 120 ppb. The value is marked as missing if less than 75% of days contain valid data. | 
| nvgtall | nvgt050+nvgt060+nvgt080+nvgt090+nvgt100+nvgt120. | 
| p05 | Fifth-percentile of hourly values in the aggregation period. | 
| p10 | As p05, but for the 10th-percentile. | 
| p25 | As p05, but for the 25th-percentile. | 
| p75 | As p05, but for the 75th-percentile. | 
| p90 | As p05, but for the 90th-percentile. | 
| p95 | As p05, but for the 25th-percentile. | 
| p98 | As p05, but for the 98th-percentile. | 
| p99 | As p05, but for the 99th-percentile. | 
| percentiles1 | p25+p50+p75. | 
| percentiles2 | p5+p10+p25+p50+p75+p90+p95(+p98+p99 if aggregation period is “summer” or “annual”). | 
| somo10 | Sum of excess of daily maximum 8-h means (EU Airbase standard with relaxed criterion: dma8eu) over the cut-off of 10 ppb, i.e. 20 µg/m3 calculated for all days in the aggregation period. SOMO10 will be set to missing if less than 75% of days are available. The quantity will be weighted by the number of theoretical days over the number of available days. | 
| somo10_strict | As somo10, but using dma8eu_strict for data capture. | 
| somo35 | As somo10, but accumulating ozone values above 35 ppb. | 
| somo35_strict | As somo10_strict, but accumulating ozone values above 35 ppb. | 
| stddev | Standard deviation in the aggregation period. | 
| w126 | Daily W126 index is accumulated using hourly values for the 12-h period from 08:00h until 19:59h. W126 = SUM(wiCi) with weight wi = 1/[1 + Mexp(-A*Ci/1000)], where M = 4403, A = 126, and where Ci is the hourly average O3 mixing ratio in units of ppb. If there are less than 9 valid hourly values in the 12 hour window, the daily value is considered missing. When there exist 75% or greater data capture in the daily 12-h window, the scaling by fractional data capture (ntotal/nvalid) is utilized.  | 
| w126_24h | As w126, but using all 24 hours of a day. | 
| w90 | Daily maximum W90 5-h Experimental Exposure Index:  |