Software‎ > ‎Tutorials‎ > ‎

slicing and aggregating

Slicing and aggregating are basic reductions of multi-dimensional data that you should be familiar with to work in this group.  Slicing means to take one or many elements of a dimension (e.g., times, layers, rows, columns).  Aggregating means to compute a function over more than one element of a dimension.  This functionality is part of PseudoNetCDF via the -r and -s options.  The -r option stands for reduce, meaning to reduce a dimensionality by aggregation.  The -s option stands for slice meaning to select one or several members of a dimensions.


python -m PseudoNetCDF.pncgen -f [-v ] [-r ,] [-s ,[,[,]

  • PseudoNetCDF is a free software for manipulating netcdf and netcdf-like objects
  • is the file format and can be one of many things
    • bpch - GEOS-Chem Binary Punch files
    • geos - GEOS meteorology input files
    • uamiv - CAMx input/output
    • netcdf - a netcdf file
    • ffi1001 - ICARTT file format
  • path to input file
  • path to input file
  • is a dimension name.  The available dimensions can be found by running python -m PseudoNetCDF.pncdump
  • any python function
  • a 0-based, inclusive starting index for subsetting a dimension
  • a 0-based, exclusive ending index  for subsetting a dimension
  • increment between selections in the slice
  • a comma separated list of variables to extract

Example Usage

Surface Layer


pncgen -f bpch -v IJ-AVG-\$_Ox -s layer47,0 -r time,mean ctm.bpch


Selects the Odd-Oxygen variable (IJ-AVG-\$_Ox) from GEOS-Chem file (-f bpch; ctm.bpch); selects the first layer (-s layer47,0); arithmetically averages across time (-r time,mean).  This produces a average value for each latitudinal bin.


Slicing always happens before aggregation.

Zonal Averaging


python -m PseudoNetCDF.pncgen -f bpch -v IJ-AVG-\$_Ox,layer48 -r longitude,mean -r time,mean ctm.bpch


Selects the Odd-Oxygen and layer48 variables (IJ-AVG-\$_Ox,layer48) from GEOS-Chem file (-f bpch; ctm.bpch); arithmetically averages across the longitude  (-r longitude,mean) and time  (-r time,mean).  This produces a average value for each latitudinal bin.


Multiple slices or aggregations are specified by repeating the flag.  Each function is applied serially.