TNO Intern

Skip to content
tutorial.rc 60.6 KiB
Newer Older
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.superobs-listing.timerange.end       :  ${my.timerange.end}

! filename filters relative to listing file that should be scanned for orbit files;
! names could include time templates ;
! if same orbit is found in multiple directories, the first found is used;
! remove existing table for safety to ensure that this is done correctly ...
cso.tutorial.superobs-listing.file                :  ${my.work}/CSO-data/${my.region}/S5p/NO2/${my.tutorial.selection}__${my.supobs.key}/listing.csv
cso.tutorial.superobs-listing.patterns            :  %Y/%m/S5p_*.nc

! extra columns to be added, read from global attributes:
cso.tutorial.superobs-listing.xcolumns            :  orbit processing processor_version


!-----------------------------------------------------------
! catalogue of superobs fields
!-----------------------------------------------------------

! listing file with filenames/timerange.
cso.tutorial.superobs-catalogue.input.listing               :  ${cso.tutorial.superobs-listing.file}

! time range:
cso.tutorial.superobs-catalogue.timerange.start             :  ${my.timerange.start}
cso.tutorial.superobs-catalogue.timerange.end               :  ${my.timerange.end}

! target filenames; templates:
! - time values
! - %{orbit}   : from listing
! - %{varname} for variable
cso.tutorial.superobs-catalogue.output.file                 :  ${my.work}/CSO-data-catalogue__${my.supobs.key}/${my.region}/S5p/NO2/${my.tutorial.selection}/%Y/%m/%d/S5p_NO2_%{orbit}__%{varname}.png

! map domain (west east south north)
cso.tutorial.superobs-catalogue.domain                      :  ${my.region.west} ${my.region.east} ${my.region.south} ${my.region.north}

! figure size (inches), default is (8,6):
cso.tutorial.superobs-catalogue.figsize                     :  ${my.region.figsize}

! renew existing files?
!cso.tutorial.superobs-catalogue.renew                       :  False
cso.tutorial.superobs-catalogue.renew                       :  True

! variables to be plotted:
cso.tutorial.superobs-catalogue.vars                        :  vcd vcd_errvar qa_value \
                                                               amf amf_trop nla \
                                                               cloud_fraction cloud_radiance_fraction

!! color for no-data values in track, default '0.8' (gray):
!cso.tutorial.superobs-catalogue.color_nan                   :  white

!! extra keyword arguments for map:
!cso.tutorial.superobs-catalogue.map                         :  resolution='h'

! convert units:
cso.tutorial.superobs-catalogue.var.vcd.units                         :  umol/m2
! style:
cso.tutorial.superobs-catalogue.var.vcd.vmin                          :   0.0
cso.tutorial.superobs-catalogue.var.vcd.vmax                          :  100.0

! show error as std.dev, convert to vcd units:
cso.tutorial.superobs-catalogue.var.vcd_errvar.units                  :  umol/m2
! style:
cso.tutorial.superobs-catalogue.var.vcd_errvar.vmax                   :  100.0

! style:
cso.tutorial.superobs-catalogue.var.amf.vmin                          :   0.0
cso.tutorial.superobs-catalogue.var.amf.vmax                          :   4.0

! style:
cso.tutorial.superobs-catalogue.var.amf_trop.vmin                     :   0.0
cso.tutorial.superobs-catalogue.var.amf_trop.vmax                     :   4.0

! style:
cso.tutorial.superobs-catalogue.var.nla.vmin                          :   1
cso.tutorial.superobs-catalogue.var.nla.vmax                          :   34

! style:
cso.tutorial.superobs-catalogue.var.qa_value.vmin                     :   0.5
cso.tutorial.superobs-catalogue.var.qa_value.vmax                     :   1.0
cso.tutorial.superobs-catalogue.var.qa_value.colors                   :   ['red','yellow','green']

! style:
cso.tutorial.superobs-catalogue.var.cloud_fraction.vmax               :   1.0
cso.tutorial.superobs-catalogue.var.cloud_fraction.colors             :   ['blue','cyan','white']

! style:
cso.tutorial.superobs-catalogue.var.cloud_radiance_fraction.vmax      :   1.0
cso.tutorial.superobs-catalogue.var.cloud_radiance_fraction.colors    :   ['blue','cyan','white']


! *** catalogue index

! target location:
cso.tutorial.superobs-catalogue-index.outdir                    :  ${my.work}/CSO-data-catalogue__${my.supobs.key}/${my.region}/S5p/NO2/${my.tutorial.selection}

! title:
cso.tutorial.superobs-catalogue-index.header                    :  CSO catalogue
! show info on created page?
cso.tutorial.superobs-catalogue-index.info                      :  True

! create new page for each value?
cso.tutorial.superobs-catalogue-index.newpage                   :  True

! content type:
cso.tutorial.superobs-catalogue-index.type                      :  list
! define row values:
cso.tutorial.superobs-catalogue-index.name                      :  date
cso.tutorial.superobs-catalogue-index.values                    :  TimeSeries( ${my.timerange.start}, ${my.timerange.end}, '1 day', '%Y%m%d' )

! create new page for each value:
cso.tutorial.superobs-catalogue-index.date.newpage                   :  True
! content type:
cso.tutorial.superobs-catalogue-index.date.type                      :  table-row
! define row values:
cso.tutorial.superobs-catalogue-index.date.name                      :  orbit
cso.tutorial.superobs-catalogue-index.date.values                    :  CsvFile( '%{date[0:4]}/%{date[4:6]}/%{date[6:8]}/orbits.csv' )

! content type:
cso.tutorial.superobs-catalogue-index.date.orbit.type                :  table-col
! define column values:
cso.tutorial.superobs-catalogue-index.date.orbit.name                :  var
cso.tutorial.superobs-catalogue-index.date.orbit.values              :  ${cso.tutorial.superobs-catalogue.vars}

! content type:
cso.tutorial.superobs-catalogue-index.date.orbit.var.type            :  img
! define image:
cso.tutorial.superobs-catalogue-index.date.orbit.var.img             :  %{date[0:4]}/%{date[4:6]}/%{date[6:8]}/S5p_NO2_%{orbit}__%{var}.png
cso.tutorial.superobs-catalogue-index.date.orbit.var.kwargs          :  height=300


!======================================================================
!===
!=== simulation catalogue
!===
!======================================================================


!-----------------------------------------------------------
! simulation catalogue
!-----------------------------------------------------------

! time range:
cso.tutorial.sim-catalogue.timerange.start        :  ${my.timerange.start}
cso.tutorial.sim-catalogue.timerange.end          :  ${my.timerange.end}
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-catalogue.timerange.step         :  hour

! input files:
cso.tutorial.sim-catalogue.input.data.file        :  ${my.work}/CSO-oper/CSO_output_%Y%m%d_%H%M_data.nc
cso.tutorial.sim-catalogue.input.state.file       :  ${my.work}/CSO-oper/CSO_output_%Y%m%d_%H%M_state.nc

! target files, time tempates and variable name are replaced:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-catalogue.output.file            :  ${my.work}/CSO-sim-catalogue/S5p/NO2/${my.region}/%Y/%m/%d/S5p_NO2_%Y%m%d_%H%M_%{var}.png

! map domain used for simulations (west east south north):
cso.tutorial.sim-catalogue.domain                 :  -10 30 35 65
Arjo Segers's avatar
Arjo Segers committed
!!~ globe:
!cso.tutorial.sim-catalogue.domain                 :  -180 180 -90 90

! figure size (inches), default is (8,6):
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-catalogue.figsize                :  ${my.region.figsize}

! renew existing files?
!cso.tutorial.sim-catalogue.renew                  :  False
cso.tutorial.sim-catalogue.renew                  :  True

! variables to be plotted:
cso.tutorial.sim-catalogue.vars                   :  yr ys yr_m ys_m tcc

! variable:
cso.tutorial.sim-catalogue.var.yr.source          :  data:yr
! convert units:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-catalogue.var.yr.units           :  umol/m2
! style:
cso.tutorial.sim-catalogue.var.yr.vmin            :   0.0
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-catalogue.var.yr.vmax            : 100.0

! variable:
cso.tutorial.sim-catalogue.var.ys.source          :  state:ys
! convert units:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-catalogue.var.ys.units           :  umol/m2
! style:
cso.tutorial.sim-catalogue.var.ys.vmin            :   0.0
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-catalogue.var.ys.vmax            : 100.0

! variable:
cso.tutorial.sim-catalogue.var.yr_m.source        :  state:yr_m
! convert units:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-catalogue.var.yr_m.units         :  umol/m2
! style:
cso.tutorial.sim-catalogue.var.yr_m.vmin          :   0.0
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-catalogue.var.yr_m.vmax          : 100.0

! variable:
cso.tutorial.sim-catalogue.var.ys_m.source        :  state:ys_m
! convert units:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-catalogue.var.ys_m.units         :  umol/m2
! style:
cso.tutorial.sim-catalogue.var.ys_m.vmin          :   0.0
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-catalogue.var.ys_m.vmax          : 100.0

! variable:
cso.tutorial.sim-catalogue.var.tcc.source         :  state:mod_tcc
! convert units:
cso.tutorial.sim-catalogue.var.tcc.units          :  1
! style:
cso.tutorial.sim-catalogue.var.tcc.vmin           :   0.0
cso.tutorial.sim-catalogue.var.tcc.vmax           :   1.0



!-----------------------------------------------------------
! sim catalogue index
!-----------------------------------------------------------

! target location:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-catalogue-index.outdir                    :  ${my.work}/CSO-sim-catalogue/S5p/NO2/${my.region}

! title:
cso.tutorial.sim-catalogue-index.header                    :  CSO catalogue
! show info on created page?
cso.tutorial.sim-catalogue-index.info                      :  True

! create new page for each value?
cso.tutorial.sim-catalogue-index.newpage                   :  True

! content type:
cso.tutorial.sim-catalogue-index.type                      :  list
! define row values:
cso.tutorial.sim-catalogue-index.name                      :  date
cso.tutorial.sim-catalogue-index.values                    :  TimeSeries( ${my.timerange.start}, ${my.timerange.end}, '1 day', '%Y%m%d' )

! create new page for each value:
cso.tutorial.sim-catalogue-index.date.newpage              :  True
! content type:
cso.tutorial.sim-catalogue-index.date.type                 :  table-row
! define row values:
cso.tutorial.sim-catalogue-index.date.name                 :  time
cso.tutorial.sim-catalogue-index.date.values               :  Range( 0, 23, 1, '%2.2i00' )

! content type:
cso.tutorial.sim-catalogue-index.date.time.type            :  table-col
! define column values:
cso.tutorial.sim-catalogue-index.date.time.name            :  var
cso.tutorial.sim-catalogue-index.date.time.values          :  ${cso.tutorial.sim-catalogue.vars}

! content type:
cso.tutorial.sim-catalogue-index.date.time.var.type        :  img
! define image:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-catalogue-index.date.time.var.img         :  %{date[0:4]}/%{date[4:6]}/%{date[6:8]}/S5p_NO2_%{date}_%{time}_%{var}.png
cso.tutorial.sim-catalogue-index.date.time.var.kwargs      :  height=300



!======================================================================
!===
Arjo Segers's avatar
Arjo Segers committed
!=== gridded simulated orbits
!===
!======================================================================


!-----------------------------------------------------------
! gridded orbits
!-----------------------------------------------------------

! time range:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded.timerange.start        :  ${my.timerange.start}
cso.tutorial.sim-gridded.timerange.end          :  ${my.timerange.end}
! create one gridded file per hour:
cso.tutorial.sim-gridded.timerange.step         :  hour

! renew existing files?
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded.renew                  :  True
!cso.tutorial.sim-gridded.renew                  :  False
! target directory, incl. subdir for resolution and filters:
Arjo Segers's avatar
Arjo Segers committed
my.sim-gridded.dir                              :  ${my.work}/CSO-sim-gridded/${my.region}__r01x01__qa08
Arjo Segers's avatar
Arjo Segers committed
my.gridded.region                               :  ${my.region}
Arjo Segers's avatar
Arjo Segers committed
! grid definition:
!!~ same as pixel selection on conversion:
Arjo Segers's avatar
Arjo Segers committed
!cso.tutorial.sim-gridded.grid.west              :  ${my.region.west}
!cso.tutorial.sim-gridded.grid.east              :  ${my.region.east}
!cso.tutorial.sim-gridded.grid.south             :  ${my.region.south}
!cso.tutorial.sim-gridded.grid.north             :  ${my.region.north}
Arjo Segers's avatar
Arjo Segers committed
!! resolution:
!cso.tutorial.sim-gridded.grid.dlon              :  0.1
!cso.tutorial.sim-gridded.grid.dlat              :  0.1
!
Arjo Segers's avatar
Arjo Segers committed
!~ observation operator tutorial:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded.grid.west              :  -10
cso.tutorial.sim-gridded.grid.east              :   30
cso.tutorial.sim-gridded.grid.south             :   35
cso.tutorial.sim-gridded.grid.north             :   65
Arjo Segers's avatar
Arjo Segers committed
! resolution:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded.grid.dlon              :  0.1
cso.tutorial.sim-gridded.grid.dlat              :  0.1
Arjo Segers's avatar
Arjo Segers committed

! level of recursive splitting of footprint into triangles,
! and assignment of centroids to grid cells;
! for 4-corner footprints, number of centroids is:
!  1 (levels=0), 4 (1), 8 (2), 16 (3), 64 (5), 256 (7)
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded.mapping.levels         :  5
Arjo Segers's avatar
Arjo Segers committed

!~

! keywords for source files; 
! the first one should have the footprints:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded.sources                  :  data state
Arjo Segers's avatar
Arjo Segers committed

! input files for each source type:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded.source.data.filenames    :  ${my.work}/CSO-oper/CSO_output_%Y%m%d_%H%M_data.nc
cso.tutorial.sim-gridded.source.state.filenames   :  ${my.work}/CSO-oper/CSO_output_%Y%m%d_%H%M_state.nc
Arjo Segers's avatar
Arjo Segers committed

!~

! keywords for filters:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded.filters                  :  quality
Arjo Segers's avatar
Arjo Segers committed

! minimum quality value required:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded.filter.quality.var       :  qa_value
cso.tutorial.sim-gridded.filter.quality.type      :  min
cso.tutorial.sim-gridded.filter.quality.min       :  0.8
cso.tutorial.sim-gridded.filter.quality.units     :  1
Arjo Segers's avatar
Arjo Segers committed
! target file, might contain templates:
!   %Y,%m,etc     : time values
!   %{basename}   : basename (without extension) of first source file
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded.output.file              :  ${my.sim-gridded.dir}/%Y/%m/CSO_output_%Y%m%d_%H%M_gridded.nc
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded.output.packed            :  True
! zlib compression level, 0 for no compression:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded.output.complevel         :  1

! data variables to be created:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded.output.vars              :  yr ys yr_m ys_m

! input variables:
!   data:yr    : from data file
!   state:ys    : from state file
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded.output.yr.source         :  data:yr
cso.tutorial.sim-gridded.output.ys.source         :  state:ys
cso.tutorial.sim-gridded.output.yr_m.source       :  state:yr_m
cso.tutorial.sim-gridded.output.ys_m.source       :  state:ys_m


!-----------------------------------------------------------
Arjo Segers's avatar
Arjo Segers committed
! catalogue of gridded simulations
!-----------------------------------------------------------

! time range:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.timerange.start        :  ${my.timerange.start}
cso.tutorial.sim-gridded-catalogue.timerange.end          :  ${my.timerange.end}
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.timerange.step         :  hour
Arjo Segers's avatar
Arjo Segers committed
! renew existing files?
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.renew                  :  True
!cso.tutorial.sim-gridded-catalogue.renew                  :  False
Arjo Segers's avatar
Arjo Segers committed
! input files:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.input.file             :  ${my.sim-gridded.dir}/%Y/%m/CSO_output_%Y%m%d_%H%M_gridded.nc
!!~ idem for daily average:
Arjo Segers's avatar
Arjo Segers committed
!cso.tutorial.sim-gridded-catalogue.input.file             :  ${my.sim-gridded.dir}/CSO_output_%Y%m%d_aver_gridded.nc

! target files, time tempates and variable name are replaced:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.output.file            :  ${my.sim-gridded.dir}/catalogue/%Y/%m/%d/S5p_NO2_%Y%m%d_%H%M_gridded_%{var}.png
!!~ idem for daily average:
Arjo Segers's avatar
Arjo Segers committed
!cso.tutorial.sim-gridded-catalogue.output.file            :  ${my.sim-gridded.dir}/catalogue/%Y/%m/%d/S5p_NO2_%Y%m%d_aver_gridded_%{var}.png

! figure size (inches), default is (8,6):
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.figsize                :  ${my.region.figsize}

! variables to be plotted:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.vars                   :  yr ys yr_m ys_m
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.var.yr.source          :  yr
! convert units:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.var.yr.units           :  umol/m2
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.var.yr.vmin            :   0.0
cso.tutorial.sim-gridded-catalogue.var.yr.vmax            : 100.0
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.var.ys.source          :  ys
! convert units:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.var.ys.units           :  umol/m2
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.var.ys.vmin            :   0.0
cso.tutorial.sim-gridded-catalogue.var.ys.vmax            : 100.0
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.var.yr_m.source        :  yr_m
! convert units:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.var.yr_m.units         :  umol/m2
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.var.yr_m.vmin          :   0.0
cso.tutorial.sim-gridded-catalogue.var.yr_m.vmax          : 100.0
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.var.ys_m.source        :  ys_m
! convert units:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.var.ys_m.units         :  umol/m2
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue.var.ys_m.vmin          :   0.0
cso.tutorial.sim-gridded-catalogue.var.ys_m.vmax          : 100.0



!-----------------------------------------------------------
! gridded catalogue index
!-----------------------------------------------------------

! target location:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue-index.outdir                    :  ${my.sim-gridded.dir}/catalogue
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue-index.header                    :  CSO catalogue
! show info on created page?
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue-index.info                      :  True

! create new page for each value?
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue-index.newpage                   :  True

! content type:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue-index.type                      :  list
! define row values:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue-index.name                      :  date
cso.tutorial.sim-gridded-catalogue-index.values                    :  TimeSeries( ${my.timerange.start}, ${my.timerange.end}, '1 day', '%Y%m%d' )

! create new page for each value:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue-index.date.newpage              :  True
! content type:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue-index.date.type                 :  table-row
! define row values:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue-index.date.name                 :  time
cso.tutorial.sim-gridded-catalogue-index.date.values               :  Range( 0, 23, 1, '%2.2i00' )

! content type:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue-index.date.time.type            :  table-col
! define column values:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue-index.date.time.name            :  var
cso.tutorial.sim-gridded-catalogue-index.date.time.values          :  ${cso.tutorial.sim-gridded-catalogue.vars}

! content type:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue-index.date.time.var.type        :  img
! define image:
Arjo Segers's avatar
Arjo Segers committed
cso.tutorial.sim-gridded-catalogue-index.date.time.var.img         :  %{date[0:4]}/%{date[4:6]}/%{date[6:8]}/S5p_NO2_%{date}_%{time}_gridded_%{var}.png
cso.tutorial.sim-gridded-catalogue-index.date.time.var.kwargs      :  height=300


!======================================================================
!===
!=== end
!===
!======================================================================