Skip to content

Quick start

The purpose of this section is to give a quick demonstration of how to use AutoBernese to run PCF-files with the Bernese Processing Engine for a campaign.

To get a feel for how AutoBernese works, when everything is set up, this section goes through running the PPP-script with the Bernese Processing Engine for the EXAMPLE campaign that comes bundled with the Bernese GNSS Software.

Preparation

Before proceeding, make sure that you have performed the following steps:

What you have now is a configuration file that lets you run the default PPP.PCF file for the first two days available in the EXAMPLE campaign's interval.

Initialise environments

First, initialise the environments:

  • Load your Bernese environment as defined in LOADGPS.setvar.
  • Activate the AutoBernese conda/mamba environment [ab]

Bernese user environment

Make sure that you have configured a Bernese user environment for the active user. Run

$EXE/configure.pm

and select option 3. AutoBernese will fail without a functional Bernese user environment.

Run the campaign

To run the PCF file for each specified day, type the following in the terminal with the activated environments:

(ab) $ ab campaign run EXAMPLE
# (output) from BPE

Recorded example

Below is a demonstration of the process above:

The configuration for the EXAMPLE campaign

The file that you downloaded to the EXAMPLE-campaign directory above is an example of a campaign-configuration file that AutoBernese uses to download campaign-specific data and configure and run the Bernese Processing Engine.

The three sections in this file are metadata, which contain data about the campaign, tasks which contain a list of tasks to run for the campaign, and sources, which contain a list of data sources.

See a short description of each section in the tabs below:

AutoBernese campaign-configuration file for the EXAMPLE campaign

`campaign.yaml`
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
metadata:
  version: &version 0.3.0
  username: &username USERNAME
  created: &created 2024-04-08
  template: &template example
  campaign: &campaign EXAMPLE
  beg: &beg 2019-02-13
  end: &end 2019-02-14

custom:
  dates: &dates
  - 2019-02-13
  - 2019-02-14
  - 2020-06-27
  - 2020-06-28
  - 2021-04-05
  - 2021-04-06

tasks:

- !BPETask
  identifier: PPP
  description: Precise-Point Positioning
  arguments:
    pcf_file: PPP
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'PPP_{date.doy:0>3d}0'
    status: 'PPP_{date.doy:0>3d}0.RUN'
    taskid: PPP_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: RNX2SNX
  description: RINEX to SINEX
  arguments:
    pcf_file: RNX2SNX
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'RNX2SNX_{date.doy:0>3d}0'
    status: 'RNX2SNX_{date.doy:0>3d}0.RUN'
    taskid: R2S_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: BASTST
  description: |-
    Baseline by baseline processing for trouble shooting
  arguments:
    pcf_file: BASTST
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'BASTST_{date.doy:0>3d}0'
    status: 'BASTST_{date.doy:0>3d}0.RUN'
    taskid: BASTST_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: CLKDET
  description: |-
    Zero-difference network solution providing clock corrections
  arguments:
    pcf_file: CLKDET
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'CLKDET_{date.doy:0>3d}0'
    status: 'CLKDET_{date.doy:0>3d}0.RUN'
    taskid: CLKDET_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: IONDET
  description: |-
    Zero-difference network solution providing station-wise, regional, or global
    ionosphere maps and the related biases
  arguments:
    pcf_file: IONDET
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'IONDET_{date.doy:0>3d}0'
    status: 'IONDET_{date.doy:0>3d}0.RUN'
    taskid: IONDET_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: LEOPOD
  description: |-
    Precise Orbit Determination for a Low Earth Orbiting Satellites based on
    on-board GPS-measurements with phase ambiguity resolution
  arguments:
    pcf_file: LEOPOD
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'LEOPOD_{date.doy:0>3d}0'
    status: 'LEOPOD_{date.doy:0>3d}0.RUN'
    taskid: LEOPOD_{date.doy:0>3d}0
  parameters:
    date: !DateRange {beg: *beg, end: *end}

- !BPETask
  identifier: SLRVAL
  description: |-
    Validation of an existing GNSS or LEO orbit using SLR measurements
  arguments:
    pcf_file: SLRVAL
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'SLRVAL_{date.doy:0>3d}0'
    status: 'SLRVAL_{date.doy:0>3d}0.RUN'
    taskid: SLRVAL_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: ITRF
  description: |-
    Derives a coordinate and linear velocity approximation from the ITRF
    solution containing non-linear PSD corrections
  arguments:
    pcf_file: ITRF
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'ITRF_{date.doy:0>3d}0'
    status: 'ITRF_{date.doy:0>3d}0.RUN'
    taskid: ITRF_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

sources:

- !Source
  identifier: ITRF14
  description: IERS data needed for the EXAMPLE campaign
  url: https://datacenter.iers.org/products/reference-systems/terrestrial/itrf/itrf2014/
  filenames:
  - ITRF2014-IGS-TRF.SNX.gz  # 1.4 GB
  - ITRF2014-psd-gnss.dat  # 38 KB
  destination: !Path [*D, ITRF14]

The campaign-specific configuration is an additional file that AutoBernese uses to manage data and run tasks related to a specific Bernese campaign.

`campaign.yaml`
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
metadata:
  version: &version 0.3.0
  username: &username USERNAME
  created: &created 2024-04-08
  template: &template example
  campaign: &campaign EXAMPLE
  beg: &beg 2019-02-13
  end: &end 2019-02-14

custom:
  dates: &dates
  - 2019-02-13
  - 2019-02-14
  - 2020-06-27
  - 2020-06-28
  - 2021-04-05
  - 2021-04-06

tasks:

- !BPETask
  identifier: PPP
  description: Precise-Point Positioning
  arguments:
    pcf_file: PPP
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'PPP_{date.doy:0>3d}0'
    status: 'PPP_{date.doy:0>3d}0.RUN'
    taskid: PPP_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: RNX2SNX
  description: RINEX to SINEX
  arguments:
    pcf_file: RNX2SNX
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'RNX2SNX_{date.doy:0>3d}0'
    status: 'RNX2SNX_{date.doy:0>3d}0.RUN'
    taskid: R2S_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: BASTST
  description: |-
    Baseline by baseline processing for trouble shooting
  arguments:
    pcf_file: BASTST
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'BASTST_{date.doy:0>3d}0'
    status: 'BASTST_{date.doy:0>3d}0.RUN'
    taskid: BASTST_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: CLKDET
  description: |-
    Zero-difference network solution providing clock corrections
  arguments:
    pcf_file: CLKDET
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'CLKDET_{date.doy:0>3d}0'
    status: 'CLKDET_{date.doy:0>3d}0.RUN'
    taskid: CLKDET_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: IONDET
  description: |-
    Zero-difference network solution providing station-wise, regional, or global
    ionosphere maps and the related biases
  arguments:
    pcf_file: IONDET
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'IONDET_{date.doy:0>3d}0'
    status: 'IONDET_{date.doy:0>3d}0.RUN'
    taskid: IONDET_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: LEOPOD
  description: |-
    Precise Orbit Determination for a Low Earth Orbiting Satellites based on
    on-board GPS-measurements with phase ambiguity resolution
  arguments:
    pcf_file: LEOPOD
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'LEOPOD_{date.doy:0>3d}0'
    status: 'LEOPOD_{date.doy:0>3d}0.RUN'
    taskid: LEOPOD_{date.doy:0>3d}0
  parameters:
    date: !DateRange {beg: *beg, end: *end}

- !BPETask
  identifier: SLRVAL
  description: |-
    Validation of an existing GNSS or LEO orbit using SLR measurements
  arguments:
    pcf_file: SLRVAL
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'SLRVAL_{date.doy:0>3d}0'
    status: 'SLRVAL_{date.doy:0>3d}0.RUN'
    taskid: SLRVAL_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: ITRF
  description: |-
    Derives a coordinate and linear velocity approximation from the ITRF
    solution containing non-linear PSD corrections
  arguments:
    pcf_file: ITRF
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'ITRF_{date.doy:0>3d}0'
    status: 'ITRF_{date.doy:0>3d}0.RUN'
    taskid: ITRF_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

sources:

- !Source
  identifier: ITRF14
  description: IERS data needed for the EXAMPLE campaign
  url: https://datacenter.iers.org/products/reference-systems/terrestrial/itrf/itrf2014/
  filenames:
  - ITRF2014-IGS-TRF.SNX.gz  # 1.4 GB
  - ITRF2014-psd-gnss.dat  # 38 KB
  destination: !Path [*D, ITRF14]

The metadata section contains data about the contet in which the campaign was created, if it was created by AutoBernese. With YAML anchors [&<anchor>], information such as the campaign directory [here, EXAMPLE] and the date interval [beg and end] covered by the campaign can be re-used later in the document

Here, the beginning and end dates define an interval in which there are data in the EXAMPLE campaign.

`campaign.yaml`
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
metadata:
  version: &version 0.3.0
  username: &username USERNAME
  created: &created 2024-04-08
  template: &template example
  campaign: &campaign EXAMPLE
  beg: &beg 2019-02-13
  end: &end 2019-02-14

custom:
  dates: &dates
  - 2019-02-13
  - 2019-02-14
  - 2020-06-27
  - 2020-06-28
  - 2021-04-05
  - 2021-04-06

tasks:

- !BPETask
  identifier: PPP
  description: Precise-Point Positioning
  arguments:
    pcf_file: PPP
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'PPP_{date.doy:0>3d}0'
    status: 'PPP_{date.doy:0>3d}0.RUN'
    taskid: PPP_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: RNX2SNX
  description: RINEX to SINEX
  arguments:
    pcf_file: RNX2SNX
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'RNX2SNX_{date.doy:0>3d}0'
    status: 'RNX2SNX_{date.doy:0>3d}0.RUN'
    taskid: R2S_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: BASTST
  description: |-
    Baseline by baseline processing for trouble shooting
  arguments:
    pcf_file: BASTST
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'BASTST_{date.doy:0>3d}0'
    status: 'BASTST_{date.doy:0>3d}0.RUN'
    taskid: BASTST_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: CLKDET
  description: |-
    Zero-difference network solution providing clock corrections
  arguments:
    pcf_file: CLKDET
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'CLKDET_{date.doy:0>3d}0'
    status: 'CLKDET_{date.doy:0>3d}0.RUN'
    taskid: CLKDET_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: IONDET
  description: |-
    Zero-difference network solution providing station-wise, regional, or global
    ionosphere maps and the related biases
  arguments:
    pcf_file: IONDET
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'IONDET_{date.doy:0>3d}0'
    status: 'IONDET_{date.doy:0>3d}0.RUN'
    taskid: IONDET_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: LEOPOD
  description: |-
    Precise Orbit Determination for a Low Earth Orbiting Satellites based on
    on-board GPS-measurements with phase ambiguity resolution
  arguments:
    pcf_file: LEOPOD
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'LEOPOD_{date.doy:0>3d}0'
    status: 'LEOPOD_{date.doy:0>3d}0.RUN'
    taskid: LEOPOD_{date.doy:0>3d}0
  parameters:
    date: !DateRange {beg: *beg, end: *end}

- !BPETask
  identifier: SLRVAL
  description: |-
    Validation of an existing GNSS or LEO orbit using SLR measurements
  arguments:
    pcf_file: SLRVAL
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'SLRVAL_{date.doy:0>3d}0'
    status: 'SLRVAL_{date.doy:0>3d}0.RUN'
    taskid: SLRVAL_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: ITRF
  description: |-
    Derives a coordinate and linear velocity approximation from the ITRF
    solution containing non-linear PSD corrections
  arguments:
    pcf_file: ITRF
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'ITRF_{date.doy:0>3d}0'
    status: 'ITRF_{date.doy:0>3d}0.RUN'
    taskid: ITRF_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

sources:

- !Source
  identifier: ITRF14
  description: IERS data needed for the EXAMPLE campaign
  url: https://datacenter.iers.org/products/reference-systems/terrestrial/itrf/itrf2014/
  filenames:
  - ITRF2014-IGS-TRF.SNX.gz  # 1.4 GB
  - ITRF2014-psd-gnss.dat  # 38 KB
  destination: !Path [*D, ITRF14]

A single task is specified to use the PPP.PCF file included in the BSW user scripts. As specified here, the task has a name [name] used to display what is going on, some arguments [arguments] which are sent to the Bernese Processing Engine. arguments contain a dictionary with items having a string to be used with the BSW BPE program.

`campaign.yaml`
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
metadata:
  version: &version 0.3.0
  username: &username USERNAME
  created: &created 2024-04-08
  template: &template example
  campaign: &campaign EXAMPLE
  beg: &beg 2019-02-13
  end: &end 2019-02-14

custom:
  dates: &dates
  - 2019-02-13
  - 2019-02-14
  - 2020-06-27
  - 2020-06-28
  - 2021-04-05
  - 2021-04-06

tasks:

- !BPETask
  identifier: PPP
  description: Precise-Point Positioning
  arguments:
    pcf_file: PPP
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'PPP_{date.doy:0>3d}0'
    status: 'PPP_{date.doy:0>3d}0.RUN'
    taskid: PPP_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: RNX2SNX
  description: RINEX to SINEX
  arguments:
    pcf_file: RNX2SNX
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'RNX2SNX_{date.doy:0>3d}0'
    status: 'RNX2SNX_{date.doy:0>3d}0.RUN'
    taskid: R2S_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: BASTST
  description: |-
    Baseline by baseline processing for trouble shooting
  arguments:
    pcf_file: BASTST
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'BASTST_{date.doy:0>3d}0'
    status: 'BASTST_{date.doy:0>3d}0.RUN'
    taskid: BASTST_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: CLKDET
  description: |-
    Zero-difference network solution providing clock corrections
  arguments:
    pcf_file: CLKDET
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'CLKDET_{date.doy:0>3d}0'
    status: 'CLKDET_{date.doy:0>3d}0.RUN'
    taskid: CLKDET_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: IONDET
  description: |-
    Zero-difference network solution providing station-wise, regional, or global
    ionosphere maps and the related biases
  arguments:
    pcf_file: IONDET
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'IONDET_{date.doy:0>3d}0'
    status: 'IONDET_{date.doy:0>3d}0.RUN'
    taskid: IONDET_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: LEOPOD
  description: |-
    Precise Orbit Determination for a Low Earth Orbiting Satellites based on
    on-board GPS-measurements with phase ambiguity resolution
  arguments:
    pcf_file: LEOPOD
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'LEOPOD_{date.doy:0>3d}0'
    status: 'LEOPOD_{date.doy:0>3d}0.RUN'
    taskid: LEOPOD_{date.doy:0>3d}0
  parameters:
    date: !DateRange {beg: *beg, end: *end}

- !BPETask
  identifier: SLRVAL
  description: |-
    Validation of an existing GNSS or LEO orbit using SLR measurements
  arguments:
    pcf_file: SLRVAL
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'SLRVAL_{date.doy:0>3d}0'
    status: 'SLRVAL_{date.doy:0>3d}0.RUN'
    taskid: SLRVAL_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

- !BPETask
  identifier: ITRF
  description: |-
    Derives a coordinate and linear velocity approximation from the ITRF
    solution containing non-linear PSD corrections
  arguments:
    pcf_file: ITRF
    campaign: *campaign
    year: '{date.year}'
    session: '{date.doy:0>3d}0'
    sysout: 'ITRF_{date.doy:0>3d}0'
    status: 'ITRF_{date.doy:0>3d}0.RUN'
    taskid: ITRF_{date.doy:0>3d}0
  parameters:
    date: !AsGPSDate [*dates]
    # date: *dates

sources:

- !Source
  identifier: ITRF14
  description: IERS data needed for the EXAMPLE campaign
  url: https://datacenter.iers.org/products/reference-systems/terrestrial/itrf/itrf2014/
  filenames:
  - ITRF2014-IGS-TRF.SNX.gz  # 1.4 GB
  - ITRF2014-psd-gnss.dat  # 38 KB
  destination: !Path [*D, ITRF14]

External or otherwise remote data sources needed for the campaign can be specified here, but as the EXAMPLE campaign comes with the data included, the list is empty.

To learn more about how to configure campaigns, go to Configuration files. To learn how to use AutoBernese to create Bernese campaigns based on templates, go Command-line reference.