CF Compliance

NetCDF attribute conventions and encoding.

All NetCDF outputs follow CF Conventions 1.8, so the files are readable by CDO, NCO, xarray, netCDF4, GDAL, and any other CF-aware tool without custom handling.

Encoding

netcdf_encoding:
  precipitation:
    dtype: "float32"
    zlib: true
    _FillValue: .nan
  • float32 keeps file size manageable (half of float64) without losing meaningful precision for precipitation in mm.
  • zlib compression gives typically 3-5x reduction on precipitation fields.
  • NaN is the fill value for ocean and outside-AOI cells. This is more portable than -9999 and works directly with xarray’s masked operations.

Required CF attributes

Every output NetCDF carries the following. Note that precipitation deliberately carries no standard_name: the quantity has no controlled CF term that matches it exactly, and CF treats standard_name as optional. Omitting it is correct; asserting a term that may not match would not be. long_name carries the description, and the correction method appears in the filename and the title. units follow the IMERG-L source. time carries no attributes beyond its coordinate values.

Variable / Global Attribute Example
precipitation long_name Corrected daily mean precipitation rate estimate
precipitation units mm/day
precipitation _FillValue NaN
lat standard_name latitude
lat units degrees_north
lon standard_name longitude
lon units degrees_east
Global Conventions CF-1.8
Global title Hybrid Bias Correction - LSEQM+DL
Global source IMERG Late Run V07 corrected with CPC-UNI
Global history timestamped processing record
Global references Zenodo dataset DOI and manuscript DOI (10.3390/rs18142298)
Global method one of ls, lseqm, lseqmdl

Reproducibility metadata

Corrected precipitation files written by v2026.07 and later also carry non-CF attributes recording the run context:

  • framework_version - DateVer tag (e.g. v2026.07), or unknown if the package is not installed under its distribution name
  • git_commit - short SHA of the source revision, or unknown outside a git checkout
  • run_timestamp - ISO 8601
  • blend_alpha, gpd_threshold_percentile, saturation_count - the three sensitivity parameters, read from the active config at write time

These are not required by CF but make a downstream user’s life much easier when comparing files produced months apart.

The archived Indonesia bundle on Zenodo was produced before this release, so its files do not carry these attributes. Every lookup degrades to unknown rather than failing, so a missing git binary or an uninstalled package never interrupts a run.

How to inspect

ncdump -h <file>.nc4         # full header
xr.open_dataset(<file>).attrs # all globals

Or browse interactively in Panoply for a quick visual.

Back to top