Running the checker¶
Once installed, run the checker from any directory with the
ismip7-compliance-checker command (equivalently, python -m isschecker). It
writes compliance_checker_log.txt into the --source-path directory, or into
--output-path if you give one.
# Check x,y,t (gridded) variables
ismip7-compliance-checker \
--source-path ./Models/GrIS/ISMIP7/SYNTH1/CORE/C001 \
--variable-list ismip7_xyt
# Check scalar (time-only) variables
ismip7-compliance-checker \
--source-path ./Models/AIS/ISMIP7/SYNTH1/CORE/C001 \
--variable-list ismip7_scalars
# Check both
ismip7-compliance-checker \
--source-path ./Models/GrIS/ISMIP7/SYNTH1/CORE/C001 \
--variable-list ismip7
# Check a read-only archive, writing the log somewhere else
ismip7-compliance-checker \
--source-path /archive/GrIS/ISMIP7/SYNTH1/CORE/C001 \
--output-path ./checker-logs/C001
Options¶
Option |
Default |
Description |
|---|---|---|
|
|
Set-counter subdirectory containing |
|
the |
Directory to write |
|
|
|
|
— |
Print the installed version and exit; quote it when reporting a problem |
The --source-path is one set-counter directory — the leaf of the
Models/{GrIS|AIS}/ISMIP7/{group}/{model}/{set_counter} layout — because that
is the unit a submission is checked in. Within it, the checker groups the
.nc files by the experiment their names give, so a directory holding a
historical run and a projection is handled as the two runs it is, and each
group is then checked for the variables the data request asks of it as well as
for what is inside each file.
Which variables are expected, and what they must contain, comes from the data
request bundled with the package; experiments_ismip7.csv defines the allowed
nominal year ranges and durations for each experiment, from which the checker
derives the expected FL and ST timestamps at runtime (see
Time encoding). Both files are listed in The data request.
What it writes¶
Findings are printed as the run goes and collected in
compliance_checker_log.txt in the --source-path directory. The log begins
with a synthesis block counting errors and warnings by category, so a long run
can be read from the top rather than scrolled through. Because it is written
beside the files it describes, it can be archived with the submission or
attached to an issue as it stands.
That default is no use for an archive the checker is not allowed to write to,
which it cannot check at all if the log has nowhere to go. Give --output-path
a directory it can write to and the log goes there instead; the directory is
created if it does not exist. The same option keeps the logs from several
archives side by side, one directory each — the log always takes the name
compliance_checker_log.txt, so two runs sharing an output directory overwrite
one another.
Exit status¶
The checker exits non-zero when it found errors, or when it could not check
anything at all — the --source-path does not exist, holds no .nc files, or
the log cannot be written where it was asked to put it. It exits zero when
the submission is compliant, including when there are warnings to review; see
Errors and warnings. Both
ismip7-compliance-checker and python -m isschecker behave the same way, so
either can be used in a script.