Project Configuration
Project specific configuration is located in files of one sub-folder of config
per project.
config/project1/region.ini
Ini-file sets region name and valid time range of project.
file structure:
[region]
REGION_NAME = REGION_LONG_NAME
[region_view_time_range]
REGION_NAME = [YEAR_MIN, YEAR_MAX]
config/project1/general_stations.ini
Ini-file lists plot groups (“general stations”). One plot is contained in exactly one plot group (primary group).
Optionally a plot may be assigned to several plot groups (secondary groups).
Optionally several plot groups may form a processing group (“general_station_groups”). If present all plots of one processing group are the set of plots for interpolation and reference generation purposes. Processing groups are not visible at the web interface.
file structure:
[general_stations]
PLOT_GROUP_NAME = REGION_NAME
…
[general_station_long_names]
PLOT_GROUP_NAME = LONG_NAME
…
[general_station_assigned_plots]
(optional list of additional plots that are assigned to this plot group, plots that are contained in a different primary plot group)
PLOT_GROUP_NAME = PLOT1, PLOT2, PLOT3
, …
…
[general_station_groups]
(optional processing groups)
PLOT_GROUP_NAME = PROCESSING_GROUP_NAME
…
config/project1/logger_type_schema.ini
Ini-file lists station logger types and contained sensors.
file structure:
[LOGGER_TYPE_NAME]
SENSOR_NAME
config/project1/plot_inventory.csv
Csv-file lists plots and their properties.
columns:
plot
plot namegeneral
plot group (“general station”) of this plotfocal
(optional) if plot is a focal plot (Y
/N
), defaults toN
.lat
(optional) WGS84 position latitudelon
(optional) WGS84 position longitudeeasting
(optional) project specific (planar) coordinate system position (e.g. one UTM zone) first axisnorthing
(optional) project specific (planar) coordinate system position (e.g. one UTM zone) second axiselevation
(optional) elevation a.s.l.is_station
(optional) if plot name denotes a station with same name (Y
/N
), defaults toN
.logger
(required if plot is station) logger type namealternative_id
(optional) alternative plot id for information purposes only
config/project1/station_inventory.csv
(optional)
Csv-file lists stations and their properties.
If all plots are defined as stations (in plot_inventory.csv
) this file may be omitted.
columns:
plot
plot namelogger
logger type nameserial
station namestart
(optional) start of measurement, defaults to*
end
(optional) end of measurement, defaults to*
Columns start
and end
may be set to *
to denote open start / open end.
Additional custom columns are inserted into station properties.
config/project1/sensor_translation.ini
(optional)
Ini-file contains sensor name mappings from raw measurement files to database sensor names.
file structure:
[LOGGER_TYPE_NAME_logger_type_sensor_translation]
RAW_SOURCE_NAME = SENSOR_NAME
…
…
[GROUP_NAME_generalstation_sensor_translation]
RAW_SOURCE_NAME = SENSOR_NAME
…
…
[STATION_NAME_station_sensor_translation]
RAW_SOURCE_NAME = SENSOR_NAME
…
…
Details:
ini-sections.
[<LOGGER_TYPE_NAME>_logger_type_sensor_translation]
[<GENERAL_STAION_NAME>_generalstation_sensor_translation]
[<STATION_NAME>_station_sensor_translation]
entries.
translate raw -> sensor: <RAW_SENSOR_NAME> = <SENSOR_NAME>
ignore raw sensor: <RAW_SENSOR_NAME> = NaN
translation process of raw sensor name.
-
check entry of station
-
(if not found) check entry of general station
-
(if not found) check entry of logger type
-
(if not found) check if raw sensor name is contained in logger schema (defined
logger_type_schema.ini
) -
(if not found) no insert into database (add entry in log file)
config/project1/sensor_name_correction.json
(optional)
Json-file contains sensor name mappings for specific time ranges.
For each entry one raw source name of one plot is mapped to one sensor name if imported data source file is contained in specified time interval.
file structure:
[
{plot:"PLOT_NAME", raw:"RAW_SOURCE_NAME", correct:"SENSOR_NAME", start:"START_DATE_TIME", end:"END_DATE_TIME"},
…
]
Details:
This config file contains correction information for wrong sensor names from raw-data-input-files. Original sensor names are mapped to corrected sensor names. This mapping is applied before the sensor name translation step with information from config file sensor_translation.ini
. Each entry contains start and end date of validity. Only files with a time-interval that is completely within the time-interval of the entry are applied to the correction-entry. Files with a time-interval that is (partly) outside of an entry are NOT applied. So its possible to define start and end date imprecise (a bit lower for start resp. a bit higher for end). If multiple entries fit to one file and raw sensor name the first entry is applied.
File format is JSON with block comments.
file structure (JSON array of entries):
[
<ENTRY1>,
<ENTRY2>,
<ENTRY3>,
]
entry structure (as JSON object):
{plot:"<PLOT_NAME>", raw:"RAW_SENSOR_NAME", correct:"CORRECTED_SENSOR_NAME", start:"START_DATE", end:"END_DATE"}
date format (ISO 8601):
YEAR-MONTH-DAY
YYYY
eg. 2009
YYYY-MM
eg. 2009-12
YYYY-MM-DD
eg. 2009-12-31
YYYY-MM-DDThh:mm
eg. 2009-12-31T14:09
Shortened end dates are set to end of that period e.g. end date 2009
leads to 2009-12-31T23:59
.
For unspecified start or end *
can be used.
example file-content:
[
{plot:"AEG00", raw:"Ta_2000", correct:"Ta_200", start:"2001-11-22T00:57", end:"2011-12-21T22:33"},
]
config/project1/station_properties.yaml
(optional)
Yaml-file lists custom station properties that are valid for a given interval of time.
file structure:
- {station: STATION_NAME, start: START_DATE, end: END_DATE, content: {label: PROPERTY_NAME, C1_NAME: C1_VALUE, C2_NAME: C2_VALUE, ...} }
…
config/project1/mask.csv
(optional)
Csv-file lists time-ranges of sensor malfunctions.
To assist automatic quality checks known time ranges of sensor malfunctions can be declared here.
columns:
station
station namesensor
sensor namestart
date of malfunction startend
date of malfunction endcomment
(optional) note about type of malfunction for information purposes only
Note: In contrast to all other config files mask.csv
changes need to be explicitly updated (ClearLoadMasks.sh
).