UV index and UV dose: netCDF data file structure
data version 2.x

go to TEMIS Home Page

UV radiation
monitoring:

UV index
UV dose

Main data product description page
 

netCDF data file structure

This page describes the format of yearly netCDF files with daily data.
The daily HDF-4 files with daily data are described here.
The daily data of UV index and UV dose fields is stored in four yearly netCDF data files.
Similar files are used for climatologies, i.e. long-term term averages over the data.
These files can be downloaded directly from:
  * this page for operational UV data, and
  * this page for MSR-2 based UV data.

Simply said, such files have the following structure:

Files in the netCDF format, an expanded version of HDF-5, can be read by a multitude of modern programs, including Python, R, Fortran, C, IDL. The UV index and UV dose files can be viewed with the Panoply netCDF, HDF and GRIB Data Viewer.

 
Yearly UV index & UV dose netCDF data file structure

The following table gives as an overview of the yearly netCDF file structure for daily UV index & UV dose data in four sections:

  1. The global attributes of the netCDF file
  2. The ALGORITHM_SETTINGS group attributes
  3. The data sets with daily data and their attributes
  4. The data sets with climatological data and their attributes
Per entry multiple lines are used to list the different possibilities, where:
  * Entries with white background are UV index & ozone data entries
  * Entries with blue background are UV dose data entries
  * Entries with page colour background are common entries

For the data files from the MSR-2 record:
  * Entries that differ from those of the operational data are in italic
  * There is no cloud-modified data
  * There is no climatological data

Note that each netCDF files comes in two versions: one with data covering the whole world and one with data covering only (a large part of) Europe; see the global attributes "data_geo_coverage" and "id".

 
 
Global attribute Value
   * YYYY = product year of daily data
   * Differences between daily data and climatological data is shown by sub-columns
   * Differences in geographic coverage are separated by ||
   * Entries different for the MSR-2 data are in italic
title TEMIS UV index and UV dose operational data products
TEMIS UV index and UV dose Multi-Sensor Re-analysis data products
institution KNMI / ESA
project TEMIS UV
authors M. van Weele & J. van Geffen
affiliation KNMI (Royal Netherlands Meteorological Institute)
email weelevm@knmi.nl & geffen@knmi.nl
doi 10.21944/temis-uv-oper-v2
10.21944/temis-uv-msr2-v2
reference http://www.temis.nl/uvradiation/
data_description Daily data Daily climatology
data_geo_coverage World  ||  Europe
data_period  [1] YYYY 2004-2020
data_period_minimum_count  [1] -- 12
data_version  [2] 2.0
naming_authority nl.knmi
data_product Erythemal UV index & ozone column
data_product Erythemal UV dose cloud-free & cloud-modified
Vitamin-D UV dose cloud-free & cloud-modified
DNA-damage UV dose cloud-free & cloud-modified
Erythemal UV dose cloud-free
Vitamin-D UV dose cloud-free
DNA-damage UV dose cloud-free
data_product_code  [3] tiefdv tiefdc
miefdv --
data_product_code  [3] tdecdv
tdvcdv
tddcdv
tdecdc
tdvcdc
tddcdc
mdecdv
mdvcdv
mddcdv
--
id  [4] uviefYYYY_world || uviefYYYY_europe uviefclim_world || uviefclim_europe
uviefYYYY_msr_world || uviefYYYY_msr_europe --
id  [4] uvdecYYYY_world || uvdecYYYY_europe
uvdvcYYYY_world || uvdvcYYYY_europe
uvddcYYYY_world || uvddcYYYY_europe
uvdecclim_world || uvdecclim_europe
uvdvcclim_world || uvdvcclim_europe
uvddcclim_world || uvddcclim_europe
uvdecYYYY_world || uvdecYYYY_europe
uvdvcYYYY_world || uvdvcYYYY_europe
uvddcYYYY_world || uvddcYYYY_europe
--
geospatial_lat_max 90. || 70.
geospatial_lat_min -90. || 30.
geospatial_lon_max 180. || 45.
geospatial_lon_min -180. || -25.
geospatial_lat_resolution 0.25 degree
geospatial_lon_resolution 0.25 degree
geospatial_lat_units degrees_north
geospatial_lon_units degrees_east
  1. The climatology is an average over the data_period with a data_period_minimum_count
    set to the required number of available data points (i.e. years) for each day.
  2. The data_version for all netCDF files is currently 2.0, even though at some point the
    data processing was updated; see this list for a version overview.
  3. See this page for info on the meaning of the product code.
  4. The 'id' is the filename withouth the file extension.

 

Algorithm attribute Value
Aerosol_AOD_368nm 0.3
Aerosol_ssa 0.9
Cloud_modification Derived from MSG CPP surface downwelling solar radiation (SDS) data
Cloud-free datasets only
Data_created_by  [1] TM3-DAM, version 4.3 & temisuv, version 2.0
Earth-Sun_factor ( D / D_0 )^2 with D/D_0 computed with Kepler's first from the
       perihelion and eccentricity of the Earths orbit for each day
Ozone_data Assimilated global ozone field at local solar noon
Ozone_data_source TEMIS operational ozone processing, started 01 July 2002
Multi-Sensor Re-analysis (MSR) ozone record, version 2
Surface_albedo GOME-2A based 0.25x0.25 degree surface albedo at 340nm,
       interpolated to the data day
Surface_albedo_version  [2] Product algorithm version 2.1
Surface_albedo_data http://www.temis.nl/uvradiation/product/albedo.php
Surface_albedo_correction ( 1.0-0.25*0.09 ) / ( 1.0-0.25*albedo )       w.r.t. De Bilt=0.09
Surface_elevation GMTED2010 elevation data regridded at 0.250 degree resolution
Surface_elevation_correction ( 1.0+0.5*elevation )       with elevation given in km
Surface_elevation_data http://temis.nl/data/gmted2010/
  1. See note above on the 'temisuv' data_version for all netCDF files; the TM3-DAM version may be slightly different.
  2. As of data_version 2.1 the Surface_albedo_version is actually 3.1;
    this algorithm attribute has not been updated accordingly.

 

Daily data
Data set  --  data type
      Attribute
Rank --> dimensions
      Value
           * Size of dimensions is only mentioned at first occurrence
           * Differences in geographic coverage are separated by ||
latitude  --  float  ==  dimension
      long_name
      units
      bounds
      axis
      _FillValue
1 --> latitude  ==  720  ||  160
      grid cell centre latitude
      degrees_north
      latitude_bounds
      Y
      9.96921e+36f
longitude  --  float  ==  dimension
      long_name
      units
      bounds
      axis
      _FillValue
1 --> longitude  ==  1440  ||  280
      grid cell centre longitude
      degrees_east
      longitude_bounds
      X
      9.96921e+36f
corner  --  ubyte  ==  dimension
      long_name
      comment
      units
      _FillValue
1 --> corner  ==  4
      grid cell corner index
      The indices for the grid cell corners (counter-clockwise).
      1
      255UB
year  --  int  ==  dimension
      long_name
      comment
      units
      _FillValue
1 --> year  ==  1
      year
      The current year.
      1
      -1
days  --  int  ==  dimension
      long_name
      comment
      units
      _FillValue
1 --> days  ==  365  or  366
      day number
      The day in the current year.
      1
      -1
latitude_index  --  int
      long_name
      comment
           
      units
      axis
      _FillValue
1 --> latitude
      grid cell centre latitude index (0-based)
      latitude_index = round ( latitude + 90.0 - dlat/2.0 ) / dlat ,
            with dlat = 0.25 degrees.
      1
      Y
      -1
longitude_index  --  int
      long_name
      comment
           
      units
      axis
      _FillValue
1 --> longitude
      grid cell centre longitude index (0-based)
      longitude_index = round ( longitude + 180.0 - dlon/2.0 ) / dlon ,
            with dlon = 0.25 degrees.
      1
      X
      -1
latitude_bounds  --  float
      long_name
      units
      _FillValue
2 --> latitude, corner
      grid cell corner latitude
      degrees_north
      9.96921e+36f
longitude_bounds  --  float
      long_name
      units
      _FillValue
2 --> longitude, corner
      grid cell corner longitude
      degrees_east
      9.96921e+36f
date  --  int
      long_name
      comment
      units
      _FillValue
1 --> days
      date of the day number
      Format is YYYYMMDD, stored as integer.
      1
      -1
date_string  --  string
      long_name
      comment
      units
      _FillValue
1 --> days
      date of the day number
      Format is YYYYMMDD, stored as string.
      1
      ""
date_month  --  int
      long_name
      comment
      units
      _FillValue
1 --> days
      month number for each day
      ""
      1
      -1
uvi_clear  --  int
      long_name
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV index (cloud-free) at local solar noon
      1
      -1.0
      latitude longitude
      -1.0
uvi_clear_error  --  int
      long_name
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV index (cloud-free) at local solar noon error estimate
      1
      -1.0
      latitude longitude
      -1.0
ozone_column  --  int
      long_name
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Ozone column at local solar noon
      DU
      -1.0
      latitude longitude
      -1.0
uvd_clear  --  int
      long_name
     
     
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV dose cloud-free
      Vitamin-D UV dose cloud-free
      DNA-damage UV dose cloud-free
      kJ/m2
      -1.0
      latitude longitude
      -1.0
uvd_clear_error  --  int
      long_name
     
     
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV dose cloud-free error estimate
      Vitamin-D UV dose cloud-free error estimate
      DNA-damage UV dose cloud-free error estimate
      kJ/m2
      -1.0
      latitude longitude
      -1.0
uvd_cloudy  --  int
      long_name
     
     
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV dose cloud-modified
      Vitamin-D UV dose cloud-modified
      DNA-damage UV dose cloud-modified
      kJ/m2
      -1.0
      latitude longitude
      -1.0
uvd_cloudy_error  --  int
      long_name
     
     
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV dose cloud-modified error estimate
      Vitamin-D UV dose cloud-modified error estimate
      DNA-damage UV dose cloud-modified error estimate
      kJ/m2
      -1.0
      latitude longitude
      -1.0
cloud_mod_factor  --  int
      long_name
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      average cloud modification factor
      1
      -1.0
      latitude longitude
      -1.0
earth_sun_factor  --  float
      long_name
      units
      _FillValue
3 --> days, latitude, longitude
      sun-earth distance correction factor
      1
      -1.0
 

 

Climatological data
Data set  --  data type
      Attribute
Rank --> dimensions
      Value
latitude  --  float  ==  dimension
      long_name
      units
      bounds
      axis
      _FillValue
1 --> latitude  ==  720  ||  160
      grid cell centre latitude
      degrees_north
      latitude_bounds
      Y
      9.96921e+36f
longitude  --  float  ==  dimension
      long_name
      units
      bounds
      axis
      _FillValue
1 --> longitude  ==  1440  ||  280
      grid cell centre longitude
      degrees_east
      longitude_bounds
      X
      9.96921e+36f
corner  --  ubyte  ==  dimension
      long_name
      comment
      units
      _FillValue
1 --> corner  ==  4
      grid cell corner index
      The indices for the grid cell corners (counter-clockwise).
      1
      255UB
days  --  int  ==  dimension
      long_name
      comment
      units
      _FillValue
1 --> days  ==  365
      day number
      The day in the year; leapday 29 Feb. is skipped.
      1
      -1
latitude_index  --  int
      long_name
      comment
           
      units
      axis
      _FillValue
1 --> latitude
      grid cell centre latitude index (0-based)
      latitude_index = round ( latitude + 90.0 - dlat/2.0 ) / dlat ,
            with dlat = 0.25 degrees.
      1
      Y
      -1
longitude_index  --  int
      long_name
      comment
           
      units
      axis
      _FillValue
1 --> longitude
      grid cell centre longitude index (0-based)
      longitude_index = round ( longitude + 180.0 - dlon/2.0 ) / dlon ,
            with dlon = 0.25 degrees.
      1
      X
      -1
latitude_bounds  --  float
      long_name
      units
      _FillValue
2 --> latitude, corner
      grid cell corner latitude
      degrees_north
      9.96921e+36f
longitude_bounds  --  float
      long_name
      units
      _FillValue
2 --> longitude, corner
      grid cell corner longitude
      degrees_east
      9.96921e+36f
date  --  int
      long_name
      comment
      units
      _FillValue
1 --> days
      month and day of the day number
      Format is MMDD, stored as integer.
      1
      -1
date_string  --  string
      long_name
      comment
      units
      _FillValue
1 --> days
      month and day of the day number
      Format is MMDD, stored as string.
      1
      ""
date_month  --  int
      long_name
      comment
      units
      _FillValue
1 --> days
      month number for each day
      ""
      1
      -1
uvi_clear_mean  --  int
      long_name
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV index (cloud-free) at local solar noon average
      1
      -1.0
      latitude longitude
      -1.0
uvi_clear_stddev  --  int
      long_name
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV index (cloud-free) at local solar noon standard deviation
      1
      -1.0
      latitude longitude
      -1.0
uvi_clear_min  --  int
      long_name
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV index (cloud-free) at local solar noon minimum
      1
      -1.0
      latitude longitude
      -1.0
uvi_clear_max  --  int
      long_name
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV index (cloud-free) at local solar noon maximum
      1
      -1.0
      latitude longitude
      -1.0
ozone_column_mean  --  int
      long_name
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Ozone column at local solar noon average
      DU
      -1.0
      latitude longitude
      -1.0
ozone_column_stddev  --  int
      long_name
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Ozone column at local solar noon standard deviation
      DU
      -1.0
      latitude longitude
      -1.0
ozone_column_min  --  int
      long_name
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Ozone column at local solar noon minimum
      DU
      -1.0
      latitude longitude
      -1.0
ozone_column_max  --  int
      long_name
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Ozone column at local solar noon maximum
      DU
      -1.0
      latitude longitude
      -1.0
uvd_clear_mean  --  int
      long_name
     
     
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV dose cloud-free at local solar noon average
      Vitamin-D UV dose cloud-free at local solar noon average
      DNA-damage UV dose cloud-free at local solar noon average
      kJ/m2
      -1.0
      latitude longitude
      -1.0
uvd_clear_stddev  --  int
      long_name
     
     
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV dose cloud-free at local solar noon standard deviation
      Vitamin-D UV dose cloud-free at local solar noon standard deviation
      DNA-damage UV dose cloud-free at local solar noon standard deviation
      kJ/m2
      -1.0
      latitude longitude
      -1.0
uvd_clear_min  --  int
      long_name
     
     
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV dose cloud-free at local solar noon minimum
      Vitamin-D UV dose cloud-free at local solar noon minimum
      DNA-damage UV dose cloud-free at local solar noon minimum
      kJ/m2
      -1.0
      latitude longitude
      -1.0
uvd_clear_max  --  int
      long_name
     
     
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV dose cloud-free at local solar noon maximum
      Vitamin-D UV dose cloud-free at local solar noon maximum
      DNA-damage UV dose cloud-free at local solar noon maximum
      kJ/m2
      -1.0
      latitude longitude
      -1.0
uvd_cloudy_mean  --  int
      long_name
     
     
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV dose cloud-modified at local solar noon average
      Vitamin-D UV dose cloud-modified at local solar noon average
      DNA-damage UV dose cloud-modified at local solar noon average
      kJ/m2
      -1.0
      latitude longitude
      -1.0
uvd_cloudy_stddev  --  int
      long_name
     
     
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV dose cloud-modified at local solar noon standard deviation
      Vitamin-D UV dose cloud-modified at local solar noon standard deviation
      DNA-damage UV dose cloud-modified at local solar noon standard deviation
      kJ/m2
      -1.0
      latitude longitude
      -1.0
uvd_cloudy_min  --  int
      long_name
     
     
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV dose cloud-modified at local solar noon minimum
      Vitamin-D UV dose cloud-modified at local solar noon minimum
      DNA-damage UV dose cloud-modified at local solar noon minimum
      kJ/m2
      -1.0
      latitude longitude
      -1.0
uvd_cloudy_max  --  int
      long_name
     
     
      units
      no_data_value
      coordinates
      _FillValue
3 --> days, latitude, longitude
      Erythemal UV dose cloud-modified at local solar noon maximum
      Vitamin-D UV dose cloud-modified at local solar noon maximum
      DNA-damage UV dose cloud-modified at local solar noon maximum
      kJ/m2
      -1.0
      latitude longitude
      -1.0

 


last modified: 20 February 2024
data product contact: Jos van Geffen & Michiel van Weele & Ronald van der A
Copyright © KNMI / TEMIS