High-rate ISFS Data for SCP

These data contain surface meteorological measurements of the Integrated Surface Flux System (ISFS) during the Shallow  Cold Pool Study (SCP) at the Pawnee Grasslands, Colorado, during September, October and November of 2012.

For general information about the operations of the ISFS during SCP see  https://www.eol.ucar.edu/field_projects/scp.

The ISFS high-rate dataset contains all variables measured at one sample/second or higher by at the NCAR ISFS stations during SCP.

The data are stored in NetCDF files. Information on the NetCDF file format and software is available at http://www.unidata.ucar.edu/software/netcdf/.


Two datasets are available, which are identical, except for the sonic tilt corrections, described below. 

The NetCDF files contain two hours of data each. There are 865 files in each dataset. Each file is about 112 Mbytes, for a total of 88 GBytes in each dataset.

NetCDF File Names

The file names for the tilt-corrected data are of the form "scp_tc_YYYYMMDD_HH.nc", where YYYYMMDD is the UTC date of year, month and day.  HH is the two digit hour of the first time in the file, in the UTC time zone.

For the non-tilt-corrected data, the file names are "scp_ntc_YYYYMMDD_HH.nc"


The measurment sites (or stations) were given names A1-A19, C and M.  All "A" stations had a CSAT3 3D sonic anemometer and two NCAR aspirated hygrothermometers. As shown in the tables on the SCP project page, some "A" stations had an additional Handar 2-D sonic anemometer and/or a  barometer. Station C was a 3 meter tower with 2 CSAT3 sonics, 4 hygrothermeters, a barometer and a 2D sonic. Station M (main tower) was a 20 meter tower with 13 levels of measurements. A CSI EC150 3-D sonic was added later in the project on Nov 12 at station A8.

SCP ISFS sampling rates
Sensors Rate (sample/sec or Hz)
CSAT3 3-D anemometers 20
CSI Krypton hygrometers 20
LI-COR 7500 gas analyzers 20
CSI EC150 3-D anemometer and infra-red gas analyzer 10
ParoScientific 6000 barometers 13 (P.5m.M at approx 14.85)
Vaisala PTB barometers 1
NCAR Hygrothermometers 1
Handar 2-D anemometers 1

Time Representation

The base_time variable contains one value, the time of the start of the file, as a number of POSIX (non-leap) seconds since 1970 Jan 1, 00:00 UTC. See http://en.wikipedia.org/wiki/Unix_time for more information about POSIX or Unix time.

Values for each time-varying measurement will be found in the NetCDF files, as a variable with a time dimension. 

The files also contain a time variable with a time dimension. This variable contains the middle time of each one second sampling period in units of seconds since the base_time.

Variables that were sample at rates higher than once a second will have an additional sample dimension, which will be 10, 13 or 20 for variables that were sampled at 10, 13 or 20 samples/second.

All ISFS sensors at SCP ran asynchronously, each with their own internal processor clock. The samples from each sensor were time-tagged at the time of their receipt by the data sytem. Time tags for samples from some sensors were further adjusted as appropriate for the given sensor, based on documentation of the internal processing of the sensor.

Before being written to the NetCDF files, the raw, asynchronous samples were then re-sampled to a evenly spaced time sequence, using a simple method of matching the raw sample nearest-in-time to the evenly-spaced times. No interpolation or averaging was done.

The time tag, as a number of POSIX seconds from Jan 1, 1970 00:00 UTC, for a sample from variable sampled at rate R, with time index i, sample index j is:

ti,j = base_time + timei - 0.5 + (1/R) x (1/2 + j)

where R is the sample dimension (1,10,13 or 20),  i = [0:7199], and j = [0:(R-1)]

For 1 Hz variables, R=1, j=0 and the times are simply:

ti = base_time + timei

In the NetCDF files, the values for each variable are stored with the sample index, j, varying more rapidly than the time index, i

If a variable is read in one continguous read with a C or C++ program, or any language which stores multi-dimensional data in a row-major order, the variable should be dimensioned with the time dimension first followed by the sample dimension:

float x[7200][20];

With Fortran, or in any column-major programming language, the dimensions would be reversed:

real x(20,7200)


A variable measured at more than one station, such as winds from the 3-D sonic at 1 meter, will have a station dimension of 21. Station indices 1-19 are for the "A" stations, 20 is "C" and 21 is "M".  Variables that were measured at one or two sites generally do not have a "station" dimension. Instead the short_name will have a suffix indicating the station, such as ".C".

The station dimension is the last dimension for time-series variables, so that the station index will vary most rapidly when accessing the values in a continguous manner.

In C/C++, if a variable has a time, sample and station dimension, it would be declared as follows:

float x[7200][20][21];

For 1 Hz variables, with only a time and station dimension:

float x[7200][21];


The NetCDF dimensions in each file are:

Dimension name size description
time 7200 number of seconds in 2 hour file
sample 20 additional time dimension for variables sampled at 20 Hz
sample_10 10 additional time dimension for 10 Hz variables
sample_13 13 additional time dimenstion for 13 Hz variables
station 21 index for each of the 21 ISFS stations
layout 2 index to indicate one of two station layouts.

Short Name Attributes

Each measured variable has a short_name NetCDF attribute. The field before the first period in the short_name is a generic variable name, such as T for temperature, or u for the U component of the wind.

Measurement Height

The height in meters above ground of the measurement, if appropriate, will be indicated in a second field after a period in the short_name, for example RH.0.5m.

NetCDF Variable Names

The actual NetCDF variable names will have underscores, '_', in place of periods.  Therefore a variable with a short_name attribute of co2.3m.A8 will have a NetCDF variable name of co2_3m_A8.

Units and Long Names

Each variable will have NetCDF attributes containing the units of the measurement, and a long name giving more information.

Missing Data

The missing data value is 1x10^37.  A missing value indicates either that nothing was measured at the location indicated in the variable name and station index, or the sensor was not reporting at the given time, or it was detemined that the data value did not meet QC criteria during post-project analysis.

Non-Time Series Variables

The files also contain non-time series values for station latitude, longitude and altitude. The latitude and longitude were determined with a handheld GPS during the project. The altitudes were determined by survey with a theodolite during the project. The online field logbook has further information on these values.

Example NetCDF Header Listings

1 sample/sec, at all stations:

float RH_2m(time, station) ;
  RH_2m:_FillValue = 1.e+37f ;
  RH_2m:long_name = "Relative humidity from NCAR hygrothermometer" ;
  RH_2m:short_name = "RH.2m" ;
  RH_2m:units = "%" ;

1 sample/sec, one location:

float RH_1_5m_C(time) ;
  RH_1_5m_C:_FillValue = 1.e+37f ;
  RH_1_5m_C:long_name = "Relative Humidity from NCAR hygrothermometer" ;
  RH_1_5m_C:short_name = "RH.1.5m.C" ;
  RH_1_5m_C:units = "%" ;

20 sample/sec, all stations:

float tc_1m(time, sample, station) ;
  tc_1m:_FillValue = 1.e+37f ;
  tc_1m:long_name = "Virtual air temperature from speed of sound, CSAT3" ;
  tc_1m:short_name = "tc.1m" ;
  tc_1m:units = "degC" ;

13 sample/sec, all stations:

float P_1m(time, sample_13, station) ;
  P_1m:_FillValue = 1.e+37f ;
  P_1m:long_name = "Barometric Pressure, Vaisala PTB or Paroscientfic 6000" ;
  P_1m:short_name = "P.1m" ;
  P_1m:units = "mb" ;

Station Moves and Layouts

Stations 15 and 17 were moved on October 4th. The latitude, longitude and altitude variables therefore have a layout dimension of 2, to provide for the two locations of station 15 and 7.  The sonic at station 15 was also raised from 1 to 2 meters above ground as part of the move, and the sonic at 17 lowered from 1 to 0.5 meters.

Wind Coordinates

The U and V components of the wind vectors from the 2D and 3D anemometershave been rotated to geographic coordinates, such that a positive U is the component of the wind blowing to the east, and a positive V is the component of the wind blowing to the north.

Sonic Tilt Correction

The 3D sonic anemometers were installed as level as possible, but some  tilt of the vertical sonic w axis relative to a bubble level was unavoidable.

Two datasets are provided. In one dataset no correction of the sonic tilt has been applied to the 3D wind vectors from the sonic anemometers. In the other dataset the 3D wind vectors have been rotated to a coordinate system where the mean W component is zero, as described in  /content/sonic-tilt-corrections.

Data Edits for Quality Control

In addition to the wind coordinate changes and correction for the tilt of the 3D sonic anemometers, the following corrections have been applied to the SCP 5 minute data:

  • co2, h2o from LI/COR 7500 on M tower: data removed during times of sensor maintenance.
  • kh2o from krypton hygrometers on M tower: data removed during times of sensor maintenance, and low voltages due to liquid water in the absorption path.
  • co2,h2o from EC150 on A8: data removed during times of sensor maintenance as well as some instances where excess moisture affected sensor operation.
  • P from barometers: corrected for offsets seen in comparison with transfer standard
  • T,RH from NCAR hygrothermometers: data removed during times of sensor maintenance and cleaning well as some instances prompted by erratic Ifan (aspiration fan current) values specific to each sensor.