Meshki is 5 years old now! Thank you for your everlasting support.
Minimalism and Simplicity
Design your whole UI in absolutely no time. We have done our best to keep Meshki stupidly simple and clean, and bring you an up-to-date documentation for your convenience.
Eye-Friendly
Give your eyes some rest. Making use of a pleasant dark color, reading pages has never been this wonderful. It is especially important in web pages with plenty of textual content.
Rocket-Fast
By using less code and less complex logics, Meshki is light-weight and is not resource-hungry. In other words, your browser doesn't have to render and save much code.
Professional
Simplicity doesn't mean lack of features. Meshki was designed with creativity in mind, so your design can be totally different from this page. We are proud to be from the Iranian open-source community, where computer science and technology is gaining momentum.
Code Correctness
We value code correctness and stability more than anything else. We want to make sure that we've provided the most reliable tool, so that you wouldn't need to worry about irritating bugs. Enjoy using Meshki, and let us do the dirty work of debugging.
Stable
Meshki has been with you for 5 years now. Imagine the original stable project of Skeleton being maintained for another 5 years. Just sit down and enjoy the smooth experience from Meshki.
What is Meshki?
Meshki is a simple, dark-colored, responsive boilerplate to kickstart any responsive project. It is only ~20 KiB (minified) and ~30 KiB (normal), including both CSS and JS files, which makes it superb for small to medium projects. It's easy to use, clean and is just beautiful.
It was started as a fork of Skeleton project, and it still uses the same logic. Though Meshki is considered to be a totally different project than Skeleton, and it barely resembles it when you take a look at it.
Don't be afraid to check out Meshki's source code! If you've spotted any bugs, or you want to ask for some improvements, head to our GitHub repository and open an issue or a pull request!
Why Meshki?
There are tons of UI libraries out there in the wild, but what makes Meshki different?
Meshki tends to be light-weight, but useful. Contrary to most "light-weight" libraries, Meshki doesn't sacrifice usability for just being light-weight. This means that you don't need to reinvent the wheel, and many common components are ready for you to use out-of-the-box. I mean, everybody can create libraries less than 20 KiB, but does that actually make them useful?
Also, Meshki strives to bring you a clean eye-candy interface, the dark color doesn't hurt your eyes, and brings simplicity and elegance together. One of the main goals of Meshki is to be stable and reliable, so we try to provide you with regular updates and fixes as much as we can. Meshki is pretty stable right now.
Meshki and Skeleton have vast differences. Although Meshki is derived from Skeleton, it's far more complete than her parent. Just have a look at Skeleton's website. Most of the code there doesn't belong to original Skeleton and there are many custom CSS alongside the site. But this website is pure Meshki, and uses custom.css to customize website-related stuff.
Getting Started
Meshki uses a fixed structure to lessen the burden of setting extra ids and classes. So you always need to create the same structure for all your apps. Don't worry, this structure is very basic and it does not limit you in any ways.
First of all, you need to have a
 with the sidenav class, just after the beginning of the body. Your sidenav's links will reside in here. Then, you need to create a
 after the sidenav's div, with the container class. The rest of your body should be created inside the "container" div. Inspect the elements on this page to understand the structure. Ah! Here's a sample code:
<!DOCTYPE html>

<title>Meshki</title>
<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1">

<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">

<link rel="stylesheet" type="text/css" href="dist/css/meshki.min.css">

My Website

Welcome to my cool website

This is a sample paragraph.

A text on the footer

Components
Meshki has various ready-to-use components which you can create anywhere you like. Keep in mind that being small and "enough" are our main goals, and Meshki is not a full-fledged UI framework, therefore you may need to add extra libraries for other fancy stuff. However, most of the common components are ready to use and well-tested. But don't worry! We'll make sure that you always get the most stable UI and a beautiful experience, and we may add extra components from time to time.
Here are a list of components and how you can put them into use:
Buttons
You can create buttons easily with , <button>, <input type="submit">, <input type="reset"> and <input type="button">. There are also five different types of buttons:
Creating a sidenav is easy: Just create a
 with the sidenav class after the opening body tag. Then add  tags to make sidenav links. It's pretty easy and straight-forward. Use the JavaScript functions of meshki.openSidenav() and meshki.closeSidenav() on events to open and close sidenav respectively. You can also add push class to make if even more fun! Here's an example for your convenience:

×
Home
GitHub
News
About Meshki

Share on:

Navbar
Meshki comes with a beautiful navbar built-in. At the beginning of the div.content, create a
 or a , and then create a
 inside that. Now any
Link
 inside the
 will appear as a button in the navbar. You can also add the fixed class to your nav to make the navbar fixed.

Meshki

News

GitHub

Title

Sub 1
Sub 2
Sub 3

The Grid System
The grid is a 12-col fluid grid with a max width of 960px, that shrinks with the browser/device at smaller sizes. The max width can be changed with one line of CSS and all col will resize accordingly. The syntax is simple and it makes coding responsive much easier. Go ahead, resize the browser. Note: The col must be the first elements at the beginning of a row. This is very important.
ONE
ELEVEN
TWO
TEN
THREE
NINE
FOUR
EIGHT
FIVE
SEVEN
SIX
SIX
SEVEN
FIVE
EIGHT
FOUR
NINE
THREE
TEN
TWO
ELEVEN
ONE
NO OFFSET
SIX
OFFSET BY 1/6
FOUR
OFFSET BY 1/3
TWO
OFFSET BY 1/2
Here's the code for how to use the grid system:

A div with one col length

A div with eleven col length

A div with one-third of the screen's length

A div with two-thirds of the screen's length

A div with half of the screen's length

A div with the other half of the screen's length

Form Elements
Meshki also has customized form elements, which are just as beautiful as the others. Here are some examples of form elements you can use:
Budget: 0 $
100 $
This is the code snippet on how you can use form elements:
Type is all set with the rem, so font-sizes and special relationships can be responsively sized based on a single  font-size property. Out of the box, Meshki never changes the  font-size, but it's there in case you need it for your project. All measurements are still base on 10 though, so a
 with 5.0rem font-size just means 50px.
The typography base is Open Sans font, which is served locally, set at 1.5rem (15px) over a 1.6 line height (24px). Other type basics like anchors, strong, emphasis, and underline are all obviously included.
Heading
 50rem
Heading
 42rem
Heading
 36rem
Heading
 30rem
Heading
 24rem
Heading
 15rem
Code
Code styling is kept basic: just wrap anything in a  and it will appear like this. It also has a filled style which is like this. For blocks of code, wrap a  with a
.
Note that for blocks of code, filled class needs to be added to the
, not .
Also note that originally, Meshki doesn't contain syntax highlighting as you can see on this webpage. We use Prism for this website. Check it out!
Be sure to use properly formed table markup with
 and
 when building a table.
You can customize your table with the below classes:
hoverable : Makes your table's rows highlighted when hovering over them with mouse.
striped : It stripes your table (even rows, except the header).
Toggle:
Name
Age
Sex
Location
Mohammadreza Hajianpour
23
Male
Iran
Carl Johnson
48
Male
Los Santos
Malena Morgan
25
Female
Florida
Harry Truman
88
Male
Missouri
Footer
Meshki has a customized footer which is ready to use out-of-the-box. Create a  element (or a div with "footer" class, since IE8 does not support ).
Note that Meshki's footer does not enforce footer's height, so the more you add, the bigger it gets.
Meshki uses media queries to serve its scalable grid, but also has a list of queries for convenience of styling your site across devices. The sizes for queries have been taken from Twitter's Bootstrap for more compatibility. The queries are mobile-first, meaning they target min-width. Mobile-first queries are how Meshki's grid is built and is the preferrable method of organizing CSS. It means all styles outside of a query apply to all devices, then larger devices are targeted for enhancement. This prevents small devices from having to parse tons of unused CSS. The sizes for the queries are:
Desktop HD: 1200px
Desktop: 992px
Tablet: 768px
Phablet: 544px
Mobile: 400px
/* Mobile first queries */
/* Larger than mobile */
@media (min-width: 400px) {}
/* Larger than phablet */
@media (min-width: 544px) {}
/* Larger than tablet */
@media (min-width: 768px) {}
/* Larger than desktop */
@media (min-width: 992px) {}
/* Larger than Desktop HD */
@media (min-width: 1200px) {}
Utilities
Meshki has a number of small utility classes that act as easy-to-use helpers. Sometimes it's better to use a utility class than create a whole new class just to float an element.
/* Make element full width */
.expand {
width: 100%;
box-sizing: border-box;
}
/* Makes sure elements don't run outside containers (great for images in col) */
.responsive {
max-width: 100%;
box-sizing: border-box;
}
/* Float either direction */
.float-left {
float: left !important;
}
.float-right {
float: right !important;
}
/* Center an element */
.centerize {
margin-left: auto;
margin-right: auto;
}
/* Center a text */
.text-center {
text-align: center;
}
/* Vertical line */
.vertical-line {
border-left: 1px solid #E1E1E1;
}
/* Hides the element on mobiles and phablets */
@media (max-width: 544px) {
.hide-on-mobile {
display: none;
}
}
/* Hides the element on tablets and smaller */
@media (max-width: 768px) {
.hide-on-tablet {
display: none;
}
}
/* Hides the element on desktops */
@media (min-width: 768px) {
.hide-on-desktop {
display: none;
}
}
/* Hides the element on non-mobile and non-phablets */
@media (min-width: 544px) {
.hide-on-non-mobile {
display: none;
}
}
[Plugin] Extra Button Colors
Meshki v1.5.0 introduced more color options for you to choose. You only have to add the below line to the  part of your page.
Here are a couple of buttons for you to try and use:
Important Notes
Meshki v2.x.x is a major release and has introduced some breaking changes, which means that it's not backwards-compatible with previous versions. Make sure you read the Changelog, so you can understand the latest important changes in Meshki.
This webpage uses...
The awesome "font-awesome" to display icons and such. It is by far the best font icon set I've ever encountered. Make sure to check out their website.
The mighty Prism as a syntax highlighter. It's amazing!


WITNESS LIST Appropriations Committee (Subcommittee on Health and Human Services) February 1, 2001-8:00A Budget For: Breslow, Lori (self) Drummond, Deborah (self) Lund, Kristin (self) Wilson, Carolyn (self) On: Casey, Dianne (Texas Commission on Alcohol and Drug Abuse) Chacon, John (Children's Trust Fund of Texas) Collins, Billy (Texas Commission on the Deaf and Hard of Hearing) Compton, Becky (Texas Commission on the Deaf and Hard of Hearing) Gilbert, Don (Health and Human Services) Kimbrough, Jay (Texas Commission on Alcohol and Drug Abuse) Myers, David (Texas Commission on the Deaf and Hard of Hearing) Oldroyd, Dianne (Texas Commission on Alcohol and Drug Abuse) Wathen, Teri (self) Wilson, Maurice (self) Registering, but not testifying: For: Humphrey, Cynthia (self)


45133 is an elite team who has high expectations for this year. We have mutliple state and world qualifiers on this team and some excellent minds. We are looking to go to worlds this year and we believe that we are very capable of doing so.
Hello! My name is Blake. I have been in Robotics for 4 years. I've been to state every year and I have won the state championship once. I play basketball in my free time and I am hoping to one day become a robot engineer.
Hello! My name is Colton. I have been in Robotics for 4 years. I have been to state every year. I have won the state championship once and I've been to Worlds once. I play basketball and baseball and I want to be an Orthodontist.
Hello! My name is Jack. I have been in Hillsboro Robotics for 4 years. I have made it to state twice.  In the future I want to be an Aerospace Engineer.
Hello! My name is Emma. I have been in Robotics for 3 and a half years and I have been to state twice. I write and read in my free time and I want to become a journalist.
Hello! My name is Blake. I have been in Robotics for 4 years. I've been to state every year and I have won the state championship once. I play basketball in my free time and I am hoping to one day become a robot engineer.
Hello! My name is Colton. I have been in Robotics for 4 years. I have been to state every year. I have won the state championship once and I've been to Worlds once. I play basketball and baseball and I want to be an Orthodontist.
Hello! My name is Jack. I have been in Hillsboro Robotics for 4 years. I have made it to state twice.  In the future I want to be an Aerospace Engineer.
Hello! My name is Emma. I have been in Robotics for 3 and a half years and I have been to state twice. I write and read in my free time and I want to become a journalist.
Hello! My name is Blake. I have been in Robotics for 4 years. I've been to state every year and I have won the state championship once. I play basketball in my free time and I am hoping to one day become a robot engineer.
Hello! My name is Colton. I have been in Robotics for 4 years. I have been to state every year. I have won the state championship once and I've been to Worlds once. I play basketball and baseball and I want to be an Orthodontist.
Hello! My name is Jack. I have been in Hillsboro Robotics for 4 years. I have made it to state twice.  In the future I want to be an Aerospace Engineer.
Hello! My name is Emma. I have been in Robotics for 3 and a half years and I have been to state twice. I write and read in my free time and I want to become a journalist.


The tests are divided into the following categories:
The following table details the checks for: Check UKCP18 file info (ukcp18-file-info).
| Check ID | Description | Controlled Vocab ref | Level | Responses | Comments | Python check (link to repository) | Python unittest |
|---|---|---|---|---|---|---|---|
| fsic_001 | Data file soft size limit: 2Gbytes. | LOW | 0: Data file exceeds soft limit of 2Gbytes in size. 1: SUCCESS! |
This is an advisory check | FileSizeCheck Parameters: threshold: '2' strictness: 'soft' |
test_file_checks.py | |
| fsic_002 | Data file hard size limit: 4Gbytes. | HIGH | 0: Data file exceeds hard limit of 4Gbytes in size. 1: SUCCESS! |
This is a strict check | FileSizeCheck Parameters: threshold: '4' strictness: 'hard' |
test_file_checks.py | |
| fsic_003 | File name must consist of items separated by '_', followed by '.nc'. | HIGH | 0: File name does not follow required format of '_' delimiters and '.nc' extension. 1: SUCCESS! |
FileNameStructureCheck Parameters: delimiter: '_' extension: '.nc' |
test_file_checks.py |
The following table details the checks for: Check UKCP18 file structure (ukcp18-file-structure).
| Check ID | Description | Controlled Vocab ref | Level | Responses | Comments | Python check (link to repository) | Python unittest |
|---|---|---|---|---|---|---|---|
| fssc_001 | The NetCDF sub-format must be: NETCDF4_CLASSIC. | HIGH | 0: The NetCDF sub-format must be: NETCDF4_CLASSIC. 1: SUCCESS! |
NetCDFFormatCheck Parameters: format: 'NETCDF4_CLASSIC' |
test_nc_file_checks.py |
The following table details the checks for: Check LS1.01 UKCP18 files (ukcp18-ls101).
| Check ID | Description | Controlled Vocab ref | Level | Responses | Comments | Python check (link to repository) | Python unittest |
|---|---|---|---|---|---|---|---|
| ls101_001 | The global attribute 'Conventions' must exist and have a valid format matching regular expression: ('CF-1\.5'). | HIGH | 0: Required 'Conventions' global attribute is not present. 1: Required 'Conventions' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'CF-1\.5' attribute: 'Conventions' |
test_nc_file_checks.py | ||
| ls101_002 | The global attribute 'source' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'source' global attribute is not present. 1: Required 'source' global attribute value is invalid. 2: SUCCESS! |
Should represent the original data source(s). E.g. 'HadGEM3-ES runs'. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'source' |
test_nc_file_checks.py | |
| ls101_003 | The global attribute 'project' must exist and have a valid format matching regular expression: ('UKCP18'). | HIGH | 0: Required 'project' global attribute is not present. 1: Required 'project' global attribute value is invalid. 2: SUCCESS! |
Must be 'UKCP18' | GlobalAttrRegexCheck Parameters: regex: 'UKCP18' attribute: 'project' |
test_nc_file_checks.py | |
| ls101_004 | The global attribute 'contact' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'contact' global attribute is not present. 1: Required 'contact' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'contact' |
test_nc_file_checks.py | ||
| ls101_005 | The global attribute 'references' must exist and have a valid format matching regular expression: ('.{4,}'). | MEDIUM | 0: Required 'references' global attribute is not present. 1: Required 'references' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'references' |
test_nc_file_checks.py | ||
| ls101_006 | The global attribute 'version' must exist and have a valid format matching regular expression: ('v\d{8}'). | HIGH | 0: Required 'version' global attribute is not present. 1: Required 'version' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'v\d{8}' attribute: 'version' |
test_nc_file_checks.py | ||
| ls101_007 | The global attribute 'title' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'title' global attribute is not present. 1: Required 'title' global attribute value is invalid. 2: SUCCESS! |
Should be a succinct description of the data. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'title' |
test_nc_file_checks.py | |
| ls101_008 | The global attribute 'creation_date' must exist and have a valid format matching regular expression: ('\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*'). | MEDIUM | 0: Required 'creation_date' global attribute is not present. 1: Required 'creation_date' global attribute value is invalid. 2: SUCCESS! |
Format is YYYY-MM-DDThh:mm:ss | GlobalAttrRegexCheck Parameters: regex: '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*' attribute: 'creation_date' |
test_nc_file_checks.py | |
| ls101_009 | The global attribute 'institution_id' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'institution_id' global attribute is not present. 1: Required 'institution_id' global attribute value is invalid. 2: SUCCESS! |
The 'institution_id' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'institution_id' vocab_lookup: 'label' |
test_nc_file_checks.py |
| ls101_010 | The global attribute 'institution' must exist and have a valid format matching regular expression: ('Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.'). | ukcp:ukcp18 | HIGH | 0: Required 'institution' global attribute is not present. 1: Required 'institution' global attribute value is invalid. 2: SUCCESS! |
The 'institution' global attribute must match the expected value. | GlobalAttrRegexCheck Parameters: regex: 'Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.' attribute: 'institution' |
test_nc_file_checks.py |
| ls101_011 | The global attribute 'domain' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'domain' global attribute is not present. 1: Required 'domain' global attribute value is invalid. 2: SUCCESS! |
The 'domain' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'domain' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
| ls101_012 | Only 1 main variable must be written to each NetCDF file (except ancillary and coordinate variables that are required to understand the main variable). | HIGH | 0: More than 1 main variable found in the file. Only 1 main variable should be there. 1: SUCCESS! |
OneMainVariablePerFileCheck No parameters. |
test_nc_file_checks.py | ||
| ls101_013 | Finds main variable and checks attribute '_FillValue' has required value: '1e20'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute '_FillValue' is not present for variable: '1e20'. 2: Required variable attribute '_FillValue' has incorrect value '1e20' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: '_FillValue' attr_value: '1e20' |
test_nc_file_checks.py | ||
| ls101_014 | The main variable must be of type: float32. | HIGH | 0: Main variable was not of the required type: float32 1: SUCCESS! |
MainVariableTypeCheck Parameters: dtype: 'float32' |
test_nc_file_checks.py | ||
| ls101_015 | The main variable must exist in the file with the attributes defined in the controlled vocabulary specified. | ukcp:ukcp18 | HIGH | 0: Main variable not found in the file so cannot perform other checks. 1: Each variable attribute is checked separately. 2: SUCCESS! |
NCMainVariableMetadataCheck Parameters: pyessv_namespace: 'variable' ignores: '['cmip6_cmor_tables_row_id', 'cmip6_name', 'cmip6_standard_name', 'notes', 'strand', 'time_averaging', 'time_step', 'um_stash']' |
test_nc_file_checks.py | |
| ls101_016 | Finds main variable and checks attribute 'cell_methods' has required value: 'time: mean'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute 'cell_methods' is not present for variable: 'time: mean'. 2: Required variable attribute 'cell_methods' has incorrect value 'time: mean' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: 'cell_methods' attr_value: 'time: mean' |
test_nc_file_checks.py | ||
| ls101_017 | All components in the file name must either be set as global attributes in the NetCDF file and must be valid terms in the relevant controlled vocabulary, or match the given regular expression(s). The score is made up of: - 1 for the file extension - 2 per global attribute (exists and is valid) - 1 per file-name component / regular expression (valid) - | ukcp:ukcp18 | HIGH | 0: File name does not match global attributes. 1: Each global attribute is checked separately. 2: SUCCESS! |
ValidGlobalAttrsMatchFileNameCheck Parameters: delimiter: '_' order: 'variable~scenario~collection~domain~resolution~prob_data_type~frequency~regex:^(?:\d{2}){2,6}(?:$|-(?:\d{2}){2,6}$)' extension: '.nc' ignore_attr_checks: '['variable']' |
test_nc_file_checks.py | |
| ls101_018 | The global attribute 'collection' must exist and have a valid format matching regular expression: ('land-prob'). | MEDIUM | 0: Required 'collection' global attribute is not present. 1: Required 'collection' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'land-prob' attribute: 'collection' |
test_nc_file_checks.py | ||
| ls101_019 | The global attribute 'frequency' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'frequency' global attribute is not present. 1: Required 'frequency' global attribute value is invalid. 2: SUCCESS! |
The 'frequency' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'frequency' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
The following table details the checks for: Check LS1.02 UKCP18 files (ukcp18-ls102).
| Check ID | Description | Controlled Vocab ref | Level | Responses | Comments | Python check (link to repository) | Python unittest |
|---|---|---|---|---|---|---|---|
| ls102_001 | The global attribute 'Conventions' must exist and have a valid format matching regular expression: ('CF-1\.5'). | HIGH | 0: Required 'Conventions' global attribute is not present. 1: Required 'Conventions' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'CF-1\.5' attribute: 'Conventions' |
test_nc_file_checks.py | ||
| ls102_002 | The global attribute 'source' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'source' global attribute is not present. 1: Required 'source' global attribute value is invalid. 2: SUCCESS! |
Should represent the original data source(s). E.g. 'HadGEM3-ES runs'. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'source' |
test_nc_file_checks.py | |
| ls102_003 | The global attribute 'project' must exist and have a valid format matching regular expression: ('UKCP18'). | HIGH | 0: Required 'project' global attribute is not present. 1: Required 'project' global attribute value is invalid. 2: SUCCESS! |
Must be 'UKCP18' | GlobalAttrRegexCheck Parameters: regex: 'UKCP18' attribute: 'project' |
test_nc_file_checks.py | |
| ls102_004 | The global attribute 'contact' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'contact' global attribute is not present. 1: Required 'contact' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'contact' |
test_nc_file_checks.py | ||
| ls102_005 | The global attribute 'references' must exist and have a valid format matching regular expression: ('.{4,}'). | MEDIUM | 0: Required 'references' global attribute is not present. 1: Required 'references' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'references' |
test_nc_file_checks.py | ||
| ls102_006 | The global attribute 'version' must exist and have a valid format matching regular expression: ('v\d{8}'). | HIGH | 0: Required 'version' global attribute is not present. 1: Required 'version' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'v\d{8}' attribute: 'version' |
test_nc_file_checks.py | ||
| ls102_007 | The global attribute 'title' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'title' global attribute is not present. 1: Required 'title' global attribute value is invalid. 2: SUCCESS! |
Should be a succinct description of the data. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'title' |
test_nc_file_checks.py | |
| ls102_008 | The global attribute 'creation_date' must exist and have a valid format matching regular expression: ('\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*'). | MEDIUM | 0: Required 'creation_date' global attribute is not present. 1: Required 'creation_date' global attribute value is invalid. 2: SUCCESS! |
Format is YYYY-MM-DDThh:mm:ss | GlobalAttrRegexCheck Parameters: regex: '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*' attribute: 'creation_date' |
test_nc_file_checks.py | |
| ls102_009 | The global attribute 'institution_id' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'institution_id' global attribute is not present. 1: Required 'institution_id' global attribute value is invalid. 2: SUCCESS! |
The 'institution_id' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'institution_id' vocab_lookup: 'label' |
test_nc_file_checks.py |
| ls102_010 | The global attribute 'institution' must exist and have a valid format matching regular expression: ('Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.'). | ukcp:ukcp18 | HIGH | 0: Required 'institution' global attribute is not present. 1: Required 'institution' global attribute value is invalid. 2: SUCCESS! |
The 'institution' global attribute must match the expected value. | GlobalAttrRegexCheck Parameters: regex: 'Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.' attribute: 'institution' |
test_nc_file_checks.py |
| ls102_011 | The global attribute 'domain' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'domain' global attribute is not present. 1: Required 'domain' global attribute value is invalid. 2: SUCCESS! |
The 'domain' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'domain' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
| ls102_012 | Only 1 main variable must be written to each NetCDF file (except ancillary and coordinate variables that are required to understand the main variable). | HIGH | 0: More than 1 main variable found in the file. Only 1 main variable should be there. 1: SUCCESS! |
OneMainVariablePerFileCheck No parameters. |
test_nc_file_checks.py | ||
| ls102_013 | Finds main variable and checks attribute '_FillValue' has required value: '1e20'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute '_FillValue' is not present for variable: '1e20'. 2: Required variable attribute '_FillValue' has incorrect value '1e20' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: '_FillValue' attr_value: '1e20' |
test_nc_file_checks.py | ||
| ls102_014 | The main variable must be of type: float32. | HIGH | 0: Main variable was not of the required type: float32 1: SUCCESS! |
MainVariableTypeCheck Parameters: dtype: 'float32' |
test_nc_file_checks.py | ||
| ls102_015 | The main variable must exist in the file with the attributes defined in the controlled vocabulary specified. | ukcp:ukcp18 | HIGH | 0: Main variable not found in the file so cannot perform other checks. 1: Each variable attribute is checked separately. 2: SUCCESS! |
NCMainVariableMetadataCheck Parameters: pyessv_namespace: 'variable' ignores: '['cmip6_cmor_tables_row_id', 'cmip6_name', 'cmip6_standard_name', 'notes', 'strand', 'time_averaging', 'time_step', 'um_stash']' |
test_nc_file_checks.py | |
| ls102_016 | Finds main variable and checks attribute 'cell_methods' has required value: 'time: mean'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute 'cell_methods' is not present for variable: 'time: mean'. 2: Required variable attribute 'cell_methods' has incorrect value 'time: mean' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: 'cell_methods' attr_value: 'time: mean' |
test_nc_file_checks.py | ||
| ls102_017 | All components in the file name must either be set as global attributes in the NetCDF file and must be valid terms in the relevant controlled vocabulary, or match the given regular expression(s). The score is made up of: - 1 for the file extension - 2 per global attribute (exists and is valid) - 1 per file-name component / regular expression (valid) - | ukcp:ukcp18 | HIGH | 0: File name does not match global attributes. 1: Each global attribute is checked separately. 2: SUCCESS! |
ValidGlobalAttrsMatchFileNameCheck Parameters: delimiter: '_' order: 'variable~scenario~collection~domain~resolution~prob_data_type~frequency~regex:^(?:\d{2}){2,6}(?:$|-(?:\d{2}){2,6}$)' extension: '.nc' ignore_attr_checks: '['variable']' |
test_nc_file_checks.py | |
| ls102_018 | The global attribute 'collection' must exist and have a valid format matching regular expression: ('land-prob'). | MEDIUM | 0: Required 'collection' global attribute is not present. 1: Required 'collection' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'land-prob' attribute: 'collection' |
test_nc_file_checks.py | ||
| ls102_019 | The global attribute 'frequency' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'frequency' global attribute is not present. 1: Required 'frequency' global attribute value is invalid. 2: SUCCESS! |
The 'frequency' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'frequency' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
The following table details the checks for: Check LS1.03 UKCP18 files (ukcp18-ls103).
| Check ID | Description | Controlled Vocab ref | Level | Responses | Comments | Python check (link to repository) | Python unittest |
|---|---|---|---|---|---|---|---|
| ls103_001 | The global attribute 'Conventions' must exist and have a valid format matching regular expression: ('CF-1\.5'). | HIGH | 0: Required 'Conventions' global attribute is not present. 1: Required 'Conventions' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'CF-1\.5' attribute: 'Conventions' |
test_nc_file_checks.py | ||
| ls103_002 | The global attribute 'source' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'source' global attribute is not present. 1: Required 'source' global attribute value is invalid. 2: SUCCESS! |
Should represent the original data source(s). E.g. 'HadGEM3-ES runs'. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'source' |
test_nc_file_checks.py | |
| ls103_003 | The global attribute 'project' must exist and have a valid format matching regular expression: ('UKCP18'). | HIGH | 0: Required 'project' global attribute is not present. 1: Required 'project' global attribute value is invalid. 2: SUCCESS! |
Must be 'UKCP18' | GlobalAttrRegexCheck Parameters: regex: 'UKCP18' attribute: 'project' |
test_nc_file_checks.py | |
| ls103_004 | The global attribute 'contact' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'contact' global attribute is not present. 1: Required 'contact' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'contact' |
test_nc_file_checks.py | ||
| ls103_005 | The global attribute 'references' must exist and have a valid format matching regular expression: ('.{4,}'). | MEDIUM | 0: Required 'references' global attribute is not present. 1: Required 'references' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'references' |
test_nc_file_checks.py | ||
| ls103_006 | The global attribute 'version' must exist and have a valid format matching regular expression: ('v\d{8}'). | HIGH | 0: Required 'version' global attribute is not present. 1: Required 'version' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'v\d{8}' attribute: 'version' |
test_nc_file_checks.py | ||
| ls103_007 | The global attribute 'title' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'title' global attribute is not present. 1: Required 'title' global attribute value is invalid. 2: SUCCESS! |
Should be a succinct description of the data. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'title' |
test_nc_file_checks.py | |
| ls103_008 | The global attribute 'creation_date' must exist and have a valid format matching regular expression: ('\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*'). | MEDIUM | 0: Required 'creation_date' global attribute is not present. 1: Required 'creation_date' global attribute value is invalid. 2: SUCCESS! |
Format is YYYY-MM-DDThh:mm:ss | GlobalAttrRegexCheck Parameters: regex: '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*' attribute: 'creation_date' |
test_nc_file_checks.py | |
| ls103_009 | The global attribute 'institution_id' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'institution_id' global attribute is not present. 1: Required 'institution_id' global attribute value is invalid. 2: SUCCESS! |
The 'institution_id' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'institution_id' vocab_lookup: 'label' |
test_nc_file_checks.py |
| ls103_010 | The global attribute 'institution' must exist and have a valid format matching regular expression: ('Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.'). | ukcp:ukcp18 | HIGH | 0: Required 'institution' global attribute is not present. 1: Required 'institution' global attribute value is invalid. 2: SUCCESS! |
The 'institution' global attribute must match the expected value. | GlobalAttrRegexCheck Parameters: regex: 'Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.' attribute: 'institution' |
test_nc_file_checks.py |
| ls103_011 | The global attribute 'domain' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'domain' global attribute is not present. 1: Required 'domain' global attribute value is invalid. 2: SUCCESS! |
The 'domain' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'domain' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
| ls103_012 | Only 1 main variable must be written to each NetCDF file (except ancillary and coordinate variables that are required to understand the main variable). | HIGH | 0: More than 1 main variable found in the file. Only 1 main variable should be there. 1: SUCCESS! |
OneMainVariablePerFileCheck No parameters. |
test_nc_file_checks.py | ||
| ls103_013 | Finds main variable and checks attribute '_FillValue' has required value: '1e20'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute '_FillValue' is not present for variable: '1e20'. 2: Required variable attribute '_FillValue' has incorrect value '1e20' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: '_FillValue' attr_value: '1e20' |
test_nc_file_checks.py | ||
| ls103_014 | The main variable must be of type: float32. | HIGH | 0: Main variable was not of the required type: float32 1: SUCCESS! |
MainVariableTypeCheck Parameters: dtype: 'float32' |
test_nc_file_checks.py | ||
| ls103_015 | The main variable must exist in the file with the attributes defined in the controlled vocabulary specified. | ukcp:ukcp18 | HIGH | 0: Main variable not found in the file so cannot perform other checks. 1: Each variable attribute is checked separately. 2: SUCCESS! |
NCMainVariableMetadataCheck Parameters: pyessv_namespace: 'variable' ignores: '['cmip6_cmor_tables_row_id', 'cmip6_name', 'cmip6_standard_name', 'notes', 'strand', 'time_averaging', 'time_step', 'um_stash']' |
test_nc_file_checks.py | |
| ls103_016 | Finds main variable and checks attribute 'cell_methods' has required value: 'time: mean'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute 'cell_methods' is not present for variable: 'time: mean'. 2: Required variable attribute 'cell_methods' has incorrect value 'time: mean' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: 'cell_methods' attr_value: 'time: mean' |
test_nc_file_checks.py | ||
| ls103_017 | All components in the file name must either be set as global attributes in the NetCDF file and must be valid terms in the relevant controlled vocabulary, or match the given regular expression(s). The score is made up of: - 1 for the file extension - 2 per global attribute (exists and is valid) - 1 per file-name component / regular expression (valid) - | ukcp:ukcp18 | HIGH | 0: File name does not match global attributes. 1: Each global attribute is checked separately. 2: SUCCESS! |
ValidGlobalAttrsMatchFileNameCheck Parameters: delimiter: '_' order: 'variable~scenario~collection~domain~resolution~prob_data_type~frequency~regex:^(?:\d{2}){2,6}(?:$|-(?:\d{2}){2,6}$)' extension: '.nc' ignore_attr_checks: '['variable']' |
test_nc_file_checks.py | |
| ls103_018 | The global attribute 'collection' must exist and have a valid format matching regular expression: ('land-prob'). | MEDIUM | 0: Required 'collection' global attribute is not present. 1: Required 'collection' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'land-prob' attribute: 'collection' |
test_nc_file_checks.py | ||
| ls103_019 | The global attribute 'frequency' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'frequency' global attribute is not present. 1: Required 'frequency' global attribute value is invalid. 2: SUCCESS! |
The 'frequency' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'frequency' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
| ls103_020 | The variable 'var_id' must have values that match those specified in the vocabulary collection specified. | ukcp:ukcp18 | HIGH | 0: Variable 'geo_region' array does not match vocabulary collection: 'river_basin' 1: SUCCESS! |
NCArrayMatchesVocabTermsCheck Parameters: var_id: 'geo_region' pyessv_namespace: 'river_basin' |
test_nc_var_checks.py |
The following table details the checks for: Check LS1.04 UKCP18 files (ukcp18-ls104).
| Check ID | Description | Controlled Vocab ref | Level | Responses | Comments | Python check (link to repository) | Python unittest |
|---|---|---|---|---|---|---|---|
| ls104_001 | The global attribute 'Conventions' must exist and have a valid format matching regular expression: ('CF-1\.5'). | HIGH | 0: Required 'Conventions' global attribute is not present. 1: Required 'Conventions' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'CF-1\.5' attribute: 'Conventions' |
test_nc_file_checks.py | ||
| ls104_002 | The global attribute 'source' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'source' global attribute is not present. 1: Required 'source' global attribute value is invalid. 2: SUCCESS! |
Should represent the original data source(s). E.g. 'HadGEM3-ES runs'. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'source' |
test_nc_file_checks.py | |
| ls104_003 | The global attribute 'project' must exist and have a valid format matching regular expression: ('UKCP18'). | HIGH | 0: Required 'project' global attribute is not present. 1: Required 'project' global attribute value is invalid. 2: SUCCESS! |
Must be 'UKCP18' | GlobalAttrRegexCheck Parameters: regex: 'UKCP18' attribute: 'project' |
test_nc_file_checks.py | |
| ls104_004 | The global attribute 'contact' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'contact' global attribute is not present. 1: Required 'contact' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'contact' |
test_nc_file_checks.py | ||
| ls104_005 | The global attribute 'references' must exist and have a valid format matching regular expression: ('.{4,}'). | MEDIUM | 0: Required 'references' global attribute is not present. 1: Required 'references' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'references' |
test_nc_file_checks.py | ||
| ls104_006 | The global attribute 'version' must exist and have a valid format matching regular expression: ('v\d{8}'). | HIGH | 0: Required 'version' global attribute is not present. 1: Required 'version' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'v\d{8}' attribute: 'version' |
test_nc_file_checks.py | ||
| ls104_007 | The global attribute 'title' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'title' global attribute is not present. 1: Required 'title' global attribute value is invalid. 2: SUCCESS! |
Should be a succinct description of the data. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'title' |
test_nc_file_checks.py | |
| ls104_008 | The global attribute 'creation_date' must exist and have a valid format matching regular expression: ('\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*'). | MEDIUM | 0: Required 'creation_date' global attribute is not present. 1: Required 'creation_date' global attribute value is invalid. 2: SUCCESS! |
Format is YYYY-MM-DDThh:mm:ss | GlobalAttrRegexCheck Parameters: regex: '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*' attribute: 'creation_date' |
test_nc_file_checks.py | |
| ls104_009 | The global attribute 'institution_id' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'institution_id' global attribute is not present. 1: Required 'institution_id' global attribute value is invalid. 2: SUCCESS! |
The 'institution_id' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'institution_id' vocab_lookup: 'label' |
test_nc_file_checks.py |
| ls104_010 | The global attribute 'institution' must exist and have a valid format matching regular expression: ('Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.'). | ukcp:ukcp18 | HIGH | 0: Required 'institution' global attribute is not present. 1: Required 'institution' global attribute value is invalid. 2: SUCCESS! |
The 'institution' global attribute must match the expected value. | GlobalAttrRegexCheck Parameters: regex: 'Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.' attribute: 'institution' |
test_nc_file_checks.py |
| ls104_011 | The global attribute 'domain' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'domain' global attribute is not present. 1: Required 'domain' global attribute value is invalid. 2: SUCCESS! |
The 'domain' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'domain' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
| ls104_012 | Only 1 main variable must be written to each NetCDF file (except ancillary and coordinate variables that are required to understand the main variable). | HIGH | 0: More than 1 main variable found in the file. Only 1 main variable should be there. 1: SUCCESS! |
OneMainVariablePerFileCheck No parameters. |
test_nc_file_checks.py | ||
| ls104_013 | Finds main variable and checks attribute '_FillValue' has required value: '1e20'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute '_FillValue' is not present for variable: '1e20'. 2: Required variable attribute '_FillValue' has incorrect value '1e20' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: '_FillValue' attr_value: '1e20' |
test_nc_file_checks.py | ||
| ls104_014 | The main variable must be of type: float32. | HIGH | 0: Main variable was not of the required type: float32 1: SUCCESS! |
MainVariableTypeCheck Parameters: dtype: 'float32' |
test_nc_file_checks.py | ||
| ls104_015 | The main variable must exist in the file with the attributes defined in the controlled vocabulary specified. | ukcp:ukcp18 | HIGH | 0: Main variable not found in the file so cannot perform other checks. 1: Each variable attribute is checked separately. 2: SUCCESS! |
NCMainVariableMetadataCheck Parameters: pyessv_namespace: 'variable' ignores: '['cmip6_cmor_tables_row_id', 'cmip6_name', 'cmip6_standard_name', 'notes', 'strand', 'time_averaging', 'time_step', 'um_stash']' |
test_nc_file_checks.py | |
| ls104_016 | Finds main variable and checks attribute 'cell_methods' has required value: 'time: mean'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute 'cell_methods' is not present for variable: 'time: mean'. 2: Required variable attribute 'cell_methods' has incorrect value 'time: mean' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: 'cell_methods' attr_value: 'time: mean' |
test_nc_file_checks.py | ||
| ls104_017 | All components in the file name must either be set as global attributes in the NetCDF file and must be valid terms in the relevant controlled vocabulary, or match the given regular expression(s). The score is made up of: - 1 for the file extension - 2 per global attribute (exists and is valid) - 1 per file-name component / regular expression (valid) - | ukcp:ukcp18 | HIGH | 0: File name does not match global attributes. 1: Each global attribute is checked separately. 2: SUCCESS! |
ValidGlobalAttrsMatchFileNameCheck Parameters: delimiter: '_' order: 'variable~scenario~collection~domain~resolution~prob_data_type~frequency~regex:^(?:\d{2}){2,6}(?:$|-(?:\d{2}){2,6}$)' extension: '.nc' ignore_attr_checks: '['variable']' |
test_nc_file_checks.py | |
| ls104_018 | The global attribute 'collection' must exist and have a valid format matching regular expression: ('land-prob'). | MEDIUM | 0: Required 'collection' global attribute is not present. 1: Required 'collection' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'land-prob' attribute: 'collection' |
test_nc_file_checks.py | ||
| ls104_019 | The global attribute 'frequency' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'frequency' global attribute is not present. 1: Required 'frequency' global attribute value is invalid. 2: SUCCESS! |
The 'frequency' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'frequency' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
| ls104_020 | The variable 'var_id' must have values that match those specified in the vocabulary collection specified. | ukcp:ukcp18 | HIGH | 0: Variable 'geo_region' array does not match vocabulary collection: 'country' 1: SUCCESS! |
NCArrayMatchesVocabTermsCheck Parameters: var_id: 'geo_region' pyessv_namespace: 'country' |
test_nc_var_checks.py |
The following table details the checks for: Check LS2.01 UKCP18 files (ukcp18-ls201).
| Check ID | Description | Controlled Vocab ref | Level | Responses | Comments | Python check (link to repository) | Python unittest |
|---|---|---|---|---|---|---|---|
| ls201_001 | The global attribute 'Conventions' must exist and have a valid format matching regular expression: ('CF-1\.5'). | HIGH | 0: Required 'Conventions' global attribute is not present. 1: Required 'Conventions' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'CF-1\.5' attribute: 'Conventions' |
test_nc_file_checks.py | ||
| ls201_002 | The global attribute 'source' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'source' global attribute is not present. 1: Required 'source' global attribute value is invalid. 2: SUCCESS! |
Should represent the original data source(s). E.g. 'HadGEM3-ES runs'. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'source' |
test_nc_file_checks.py | |
| ls201_003 | The global attribute 'project' must exist and have a valid format matching regular expression: ('UKCP18'). | HIGH | 0: Required 'project' global attribute is not present. 1: Required 'project' global attribute value is invalid. 2: SUCCESS! |
Must be 'UKCP18' | GlobalAttrRegexCheck Parameters: regex: 'UKCP18' attribute: 'project' |
test_nc_file_checks.py | |
| ls201_004 | The global attribute 'contact' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'contact' global attribute is not present. 1: Required 'contact' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'contact' |
test_nc_file_checks.py | ||
| ls201_005 | The global attribute 'references' must exist and have a valid format matching regular expression: ('.{4,}'). | MEDIUM | 0: Required 'references' global attribute is not present. 1: Required 'references' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'references' |
test_nc_file_checks.py | ||
| ls201_006 | The global attribute 'version' must exist and have a valid format matching regular expression: ('v\d{8}'). | HIGH | 0: Required 'version' global attribute is not present. 1: Required 'version' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'v\d{8}' attribute: 'version' |
test_nc_file_checks.py | ||
| ls201_007 | The global attribute 'title' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'title' global attribute is not present. 1: Required 'title' global attribute value is invalid. 2: SUCCESS! |
Should be a succinct description of the data. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'title' |
test_nc_file_checks.py | |
| ls201_008 | The global attribute 'creation_date' must exist and have a valid format matching regular expression: ('\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*'). | MEDIUM | 0: Required 'creation_date' global attribute is not present. 1: Required 'creation_date' global attribute value is invalid. 2: SUCCESS! |
Format is YYYY-MM-DDThh:mm:ss | GlobalAttrRegexCheck Parameters: regex: '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*' attribute: 'creation_date' |
test_nc_file_checks.py | |
| ls201_009 | The global attribute 'institution_id' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'institution_id' global attribute is not present. 1: Required 'institution_id' global attribute value is invalid. 2: SUCCESS! |
The 'institution_id' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'institution_id' vocab_lookup: 'label' |
test_nc_file_checks.py |
| ls201_010 | The global attribute 'institution' must exist and have a valid format matching regular expression: ('Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.'). | ukcp:ukcp18 | HIGH | 0: Required 'institution' global attribute is not present. 1: Required 'institution' global attribute value is invalid. 2: SUCCESS! |
The 'institution' global attribute must match the expected value. | GlobalAttrRegexCheck Parameters: regex: 'Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.' attribute: 'institution' |
test_nc_file_checks.py |
| ls201_011 | The global attribute 'domain' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'domain' global attribute is not present. 1: Required 'domain' global attribute value is invalid. 2: SUCCESS! |
The 'domain' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'domain' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
| ls201_012 | Only 1 main variable must be written to each NetCDF file (except ancillary and coordinate variables that are required to understand the main variable). | HIGH | 0: More than 1 main variable found in the file. Only 1 main variable should be there. 1: SUCCESS! |
OneMainVariablePerFileCheck No parameters. |
test_nc_file_checks.py | ||
| ls201_013 | Finds main variable and checks attribute '_FillValue' has required value: '1e20'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute '_FillValue' is not present for variable: '1e20'. 2: Required variable attribute '_FillValue' has incorrect value '1e20' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: '_FillValue' attr_value: '1e20' |
test_nc_file_checks.py | ||
| ls201_014 | The main variable must be of type: float32. | HIGH | 0: Main variable was not of the required type: float32 1: SUCCESS! |
MainVariableTypeCheck Parameters: dtype: 'float32' |
test_nc_file_checks.py | ||
| ls201_015 | The main variable must exist in the file with the attributes defined in the controlled vocabulary specified. | ukcp:ukcp18 | HIGH | 0: Main variable not found in the file so cannot perform other checks. 1: Each variable attribute is checked separately. 2: SUCCESS! |
NCMainVariableMetadataCheck Parameters: pyessv_namespace: 'variable' ignores: '['cmip6_cmor_tables_row_id', 'cmip6_name', 'cmip6_standard_name', 'notes', 'strand', 'time_averaging', 'time_step', 'um_stash']' |
test_nc_file_checks.py | |
| ls201_016 | Finds main variable and checks attribute 'cell_methods' has required value: 'time: mean'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute 'cell_methods' is not present for variable: 'time: mean'. 2: Required variable attribute 'cell_methods' has incorrect value 'time: mean' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: 'cell_methods' attr_value: 'time: mean' |
test_nc_file_checks.py | ||
| ls201_017 | All components in the file name must either be set as global attributes in the NetCDF file and must be valid terms in the relevant controlled vocabulary, or match the given regular expression(s). The score is made up of: - 1 for the file extension - 2 per global attribute (exists and is valid) - 1 per file-name component / regular expression (valid) - | ukcp:ukcp18 | HIGH | 0: File name does not match global attributes. 1: Each global attribute is checked separately. 2: SUCCESS! |
ValidGlobalAttrsMatchFileNameCheck Parameters: delimiter: '_' order: 'variable~scenario~collection~domain~resolution~ensemble_member~frequency~regex:^(?:\d{2}){2,6}(?:$|-(?:\d{2}){2,6}$)' extension: '.nc' ignore_attr_checks: '['variable']' |
test_nc_file_checks.py | |
| ls201_018 | The global attribute 'collection' must exist and have a valid format matching regular expression: ('land-gcm'). | MEDIUM | 0: Required 'collection' global attribute is not present. 1: Required 'collection' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'land-gcm' attribute: 'collection' |
test_nc_file_checks.py | ||
| ls201_019 | The global attribute 'frequency' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'frequency' global attribute is not present. 1: Required 'frequency' global attribute value is invalid. 2: SUCCESS! |
The 'frequency' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'frequency' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
The following table details the checks for: Check LS2.02 UKCP18 files (ukcp18-ls202).
| Check ID | Description | Controlled Vocab ref | Level | Responses | Comments | Python check (link to repository) | Python unittest |
|---|---|---|---|---|---|---|---|
| ls202_001 | The global attribute 'Conventions' must exist and have a valid format matching regular expression: ('CF-1\.5'). | HIGH | 0: Required 'Conventions' global attribute is not present. 1: Required 'Conventions' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'CF-1\.5' attribute: 'Conventions' |
test_nc_file_checks.py | ||
| ls202_002 | The global attribute 'source' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'source' global attribute is not present. 1: Required 'source' global attribute value is invalid. 2: SUCCESS! |
Should represent the original data source(s). E.g. 'HadGEM3-ES runs'. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'source' |
test_nc_file_checks.py | |
| ls202_003 | The global attribute 'project' must exist and have a valid format matching regular expression: ('UKCP18'). | HIGH | 0: Required 'project' global attribute is not present. 1: Required 'project' global attribute value is invalid. 2: SUCCESS! |
Must be 'UKCP18' | GlobalAttrRegexCheck Parameters: regex: 'UKCP18' attribute: 'project' |
test_nc_file_checks.py | |
| ls202_004 | The global attribute 'contact' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'contact' global attribute is not present. 1: Required 'contact' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'contact' |
test_nc_file_checks.py | ||
| ls202_005 | The global attribute 'references' must exist and have a valid format matching regular expression: ('.{4,}'). | MEDIUM | 0: Required 'references' global attribute is not present. 1: Required 'references' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'references' |
test_nc_file_checks.py | ||
| ls202_006 | The global attribute 'version' must exist and have a valid format matching regular expression: ('v\d{8}'). | HIGH | 0: Required 'version' global attribute is not present. 1: Required 'version' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'v\d{8}' attribute: 'version' |
test_nc_file_checks.py | ||
| ls202_007 | The global attribute 'title' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'title' global attribute is not present. 1: Required 'title' global attribute value is invalid. 2: SUCCESS! |
Should be a succinct description of the data. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'title' |
test_nc_file_checks.py | |
| ls202_008 | The global attribute 'creation_date' must exist and have a valid format matching regular expression: ('\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*'). | MEDIUM | 0: Required 'creation_date' global attribute is not present. 1: Required 'creation_date' global attribute value is invalid. 2: SUCCESS! |
Format is YYYY-MM-DDThh:mm:ss | GlobalAttrRegexCheck Parameters: regex: '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*' attribute: 'creation_date' |
test_nc_file_checks.py | |
| ls202_009 | The global attribute 'institution_id' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'institution_id' global attribute is not present. 1: Required 'institution_id' global attribute value is invalid. 2: SUCCESS! |
The 'institution_id' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'institution_id' vocab_lookup: 'label' |
test_nc_file_checks.py |
| ls202_010 | The global attribute 'institution' must exist and have a valid format matching regular expression: ('Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.'). | ukcp:ukcp18 | HIGH | 0: Required 'institution' global attribute is not present. 1: Required 'institution' global attribute value is invalid. 2: SUCCESS! |
The 'institution' global attribute must match the expected value. | GlobalAttrRegexCheck Parameters: regex: 'Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.' attribute: 'institution' |
test_nc_file_checks.py |
| ls202_011 | The global attribute 'domain' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'domain' global attribute is not present. 1: Required 'domain' global attribute value is invalid. 2: SUCCESS! |
The 'domain' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'domain' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
| ls202_012 | Only 1 main variable must be written to each NetCDF file (except ancillary and coordinate variables that are required to understand the main variable). | HIGH | 0: More than 1 main variable found in the file. Only 1 main variable should be there. 1: SUCCESS! |
OneMainVariablePerFileCheck No parameters. |
test_nc_file_checks.py | ||
| ls202_013 | Finds main variable and checks attribute '_FillValue' has required value: '1e20'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute '_FillValue' is not present for variable: '1e20'. 2: Required variable attribute '_FillValue' has incorrect value '1e20' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: '_FillValue' attr_value: '1e20' |
test_nc_file_checks.py | ||
| ls202_014 | The main variable must be of type: float32. | HIGH | 0: Main variable was not of the required type: float32 1: SUCCESS! |
MainVariableTypeCheck Parameters: dtype: 'float32' |
test_nc_file_checks.py | ||
| ls202_015 | The main variable must exist in the file with the attributes defined in the controlled vocabulary specified. | ukcp:ukcp18 | HIGH | 0: Main variable not found in the file so cannot perform other checks. 1: Each variable attribute is checked separately. 2: SUCCESS! |
NCMainVariableMetadataCheck Parameters: pyessv_namespace: 'variable' ignores: '['cmip6_cmor_tables_row_id', 'cmip6_name', 'cmip6_standard_name', 'notes', 'strand', 'time_averaging', 'time_step', 'um_stash']' |
test_nc_file_checks.py | |
| ls202_016 | Finds main variable and checks attribute 'cell_methods' has required value: 'time: mean'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute 'cell_methods' is not present for variable: 'time: mean'. 2: Required variable attribute 'cell_methods' has incorrect value 'time: mean' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: 'cell_methods' attr_value: 'time: mean' |
test_nc_file_checks.py | ||
| ls202_017 | All components in the file name must either be set as global attributes in the NetCDF file and must be valid terms in the relevant controlled vocabulary, or match the given regular expression(s). The score is made up of: - 1 for the file extension - 2 per global attribute (exists and is valid) - 1 per file-name component / regular expression (valid) - | ukcp:ukcp18 | HIGH | 0: File name does not match global attributes. 1: Each global attribute is checked separately. 2: SUCCESS! |
ValidGlobalAttrsMatchFileNameCheck Parameters: delimiter: '_' order: 'variable~scenario~collection~domain~resolution~ensemble_member~frequency~regex:^(?:\d{2}){2,6}(?:$|-(?:\d{2}){2,6}$)' extension: '.nc' ignore_attr_checks: '['variable']' |
test_nc_file_checks.py | |
| ls202_018 | The global attribute 'collection' must exist and have a valid format matching regular expression: ('land-gcm'). | MEDIUM | 0: Required 'collection' global attribute is not present. 1: Required 'collection' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'land-gcm' attribute: 'collection' |
test_nc_file_checks.py | ||
| ls202_019 | The global attribute 'frequency' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'frequency' global attribute is not present. 1: Required 'frequency' global attribute value is invalid. 2: SUCCESS! |
The 'frequency' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'frequency' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
The following table details the checks for: Check LS2.03 UKCP18 files (ukcp18-ls203).
| Check ID | Description | Controlled Vocab ref | Level | Responses | Comments | Python check (link to repository) | Python unittest |
|---|---|---|---|---|---|---|---|
| ls203_001 | The global attribute 'Conventions' must exist and have a valid format matching regular expression: ('CF-1\.5'). | HIGH | 0: Required 'Conventions' global attribute is not present. 1: Required 'Conventions' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'CF-1\.5' attribute: 'Conventions' |
test_nc_file_checks.py | ||
| ls203_002 | The global attribute 'source' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'source' global attribute is not present. 1: Required 'source' global attribute value is invalid. 2: SUCCESS! |
Should represent the original data source(s). E.g. 'HadGEM3-ES runs'. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'source' |
test_nc_file_checks.py | |
| ls203_003 | The global attribute 'project' must exist and have a valid format matching regular expression: ('UKCP18'). | HIGH | 0: Required 'project' global attribute is not present. 1: Required 'project' global attribute value is invalid. 2: SUCCESS! |
Must be 'UKCP18' | GlobalAttrRegexCheck Parameters: regex: 'UKCP18' attribute: 'project' |
test_nc_file_checks.py | |
| ls203_004 | The global attribute 'contact' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'contact' global attribute is not present. 1: Required 'contact' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'contact' |
test_nc_file_checks.py | ||
| ls203_005 | The global attribute 'references' must exist and have a valid format matching regular expression: ('.{4,}'). | MEDIUM | 0: Required 'references' global attribute is not present. 1: Required 'references' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'references' |
test_nc_file_checks.py | ||
| ls203_006 | The global attribute 'version' must exist and have a valid format matching regular expression: ('v\d{8}'). | HIGH | 0: Required 'version' global attribute is not present. 1: Required 'version' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'v\d{8}' attribute: 'version' |
test_nc_file_checks.py | ||
| ls203_007 | The global attribute 'title' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'title' global attribute is not present. 1: Required 'title' global attribute value is invalid. 2: SUCCESS! |
Should be a succinct description of the data. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'title' |
test_nc_file_checks.py | |
| ls203_008 | The global attribute 'creation_date' must exist and have a valid format matching regular expression: ('\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*'). | MEDIUM | 0: Required 'creation_date' global attribute is not present. 1: Required 'creation_date' global attribute value is invalid. 2: SUCCESS! |
Format is YYYY-MM-DDThh:mm:ss | GlobalAttrRegexCheck Parameters: regex: '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*' attribute: 'creation_date' |
test_nc_file_checks.py | |
| ls203_009 | The global attribute 'institution_id' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'institution_id' global attribute is not present. 1: Required 'institution_id' global attribute value is invalid. 2: SUCCESS! |
The 'institution_id' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'institution_id' vocab_lookup: 'label' |
test_nc_file_checks.py |
| ls203_010 | The global attribute 'institution' must exist and have a valid format matching regular expression: ('Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.'). | ukcp:ukcp18 | HIGH | 0: Required 'institution' global attribute is not present. 1: Required 'institution' global attribute value is invalid. 2: SUCCESS! |
The 'institution' global attribute must match the expected value. | GlobalAttrRegexCheck Parameters: regex: 'Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.' attribute: 'institution' |
test_nc_file_checks.py |
| ls203_011 | The global attribute 'domain' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'domain' global attribute is not present. 1: Required 'domain' global attribute value is invalid. 2: SUCCESS! |
The 'domain' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'domain' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
| ls203_012 | Only 1 main variable must be written to each NetCDF file (except ancillary and coordinate variables that are required to understand the main variable). | HIGH | 0: More than 1 main variable found in the file. Only 1 main variable should be there. 1: SUCCESS! |
OneMainVariablePerFileCheck No parameters. |
test_nc_file_checks.py | ||
| ls203_013 | Finds main variable and checks attribute '_FillValue' has required value: '1e20'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute '_FillValue' is not present for variable: '1e20'. 2: Required variable attribute '_FillValue' has incorrect value '1e20' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: '_FillValue' attr_value: '1e20' |
test_nc_file_checks.py | ||
| ls203_014 | The main variable must be of type: float32. | HIGH | 0: Main variable was not of the required type: float32 1: SUCCESS! |
MainVariableTypeCheck Parameters: dtype: 'float32' |
test_nc_file_checks.py | ||
| ls203_015 | The main variable must exist in the file with the attributes defined in the controlled vocabulary specified. | ukcp:ukcp18 | HIGH | 0: Main variable not found in the file so cannot perform other checks. 1: Each variable attribute is checked separately. 2: SUCCESS! |
NCMainVariableMetadataCheck Parameters: pyessv_namespace: 'variable' ignores: '['cmip6_cmor_tables_row_id', 'cmip6_name', 'cmip6_standard_name', 'notes', 'strand', 'time_averaging', 'time_step', 'um_stash']' |
test_nc_file_checks.py | |
| ls203_016 | Finds main variable and checks attribute 'cell_methods' has required value: 'time: mean'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute 'cell_methods' is not present for variable: 'time: mean'. 2: Required variable attribute 'cell_methods' has incorrect value 'time: mean' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: 'cell_methods' attr_value: 'time: mean' |
test_nc_file_checks.py | ||
| ls203_017 | All components in the file name must either be set as global attributes in the NetCDF file and must be valid terms in the relevant controlled vocabulary, or match the given regular expression(s). The score is made up of: - 1 for the file extension - 2 per global attribute (exists and is valid) - 1 per file-name component / regular expression (valid) - | ukcp:ukcp18 | HIGH | 0: File name does not match global attributes. 1: Each global attribute is checked separately. 2: SUCCESS! |
ValidGlobalAttrsMatchFileNameCheck Parameters: delimiter: '_' order: 'variable~scenario~collection~domain~resolution~ensemble_member~frequency~regex:^(?:\d{2}){2,6}(?:$|-(?:\d{2}){2,6}$)' extension: '.nc' ignore_attr_checks: '['variable']' |
test_nc_file_checks.py | |
| ls203_018 | The global attribute 'collection' must exist and have a valid format matching regular expression: ('land-gcm'). | MEDIUM | 0: Required 'collection' global attribute is not present. 1: Required 'collection' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'land-gcm' attribute: 'collection' |
test_nc_file_checks.py | ||
| ls203_019 | The global attribute 'frequency' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'frequency' global attribute is not present. 1: Required 'frequency' global attribute value is invalid. 2: SUCCESS! |
The 'frequency' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'frequency' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
The following table details the checks for: Check LS2.04 UKCP18 files (ukcp18-ls204).
| Check ID | Description | Controlled Vocab ref | Level | Responses | Comments | Python check (link to repository) | Python unittest |
|---|---|---|---|---|---|---|---|
| ls204_001 | The global attribute 'Conventions' must exist and have a valid format matching regular expression: ('CF-1\.5'). | HIGH | 0: Required 'Conventions' global attribute is not present. 1: Required 'Conventions' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'CF-1\.5' attribute: 'Conventions' |
test_nc_file_checks.py | ||
| ls204_002 | The global attribute 'source' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'source' global attribute is not present. 1: Required 'source' global attribute value is invalid. 2: SUCCESS! |
Should represent the original data source(s). E.g. 'HadGEM3-ES runs'. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'source' |
test_nc_file_checks.py | |
| ls204_003 | The global attribute 'project' must exist and have a valid format matching regular expression: ('UKCP18'). | HIGH | 0: Required 'project' global attribute is not present. 1: Required 'project' global attribute value is invalid. 2: SUCCESS! |
Must be 'UKCP18' | GlobalAttrRegexCheck Parameters: regex: 'UKCP18' attribute: 'project' |
test_nc_file_checks.py | |
| ls204_004 | The global attribute 'contact' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'contact' global attribute is not present. 1: Required 'contact' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'contact' |
test_nc_file_checks.py | ||
| ls204_005 | The global attribute 'references' must exist and have a valid format matching regular expression: ('.{4,}'). | MEDIUM | 0: Required 'references' global attribute is not present. 1: Required 'references' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'references' |
test_nc_file_checks.py | ||
| ls204_006 | The global attribute 'version' must exist and have a valid format matching regular expression: ('v\d{8}'). | HIGH | 0: Required 'version' global attribute is not present. 1: Required 'version' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'v\d{8}' attribute: 'version' |
test_nc_file_checks.py | ||
| ls204_007 | The global attribute 'title' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'title' global attribute is not present. 1: Required 'title' global attribute value is invalid. 2: SUCCESS! |
Should be a succinct description of the data. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'title' |
test_nc_file_checks.py | |
| ls204_008 | The global attribute 'creation_date' must exist and have a valid format matching regular expression: ('\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*'). | MEDIUM | 0: Required 'creation_date' global attribute is not present. 1: Required 'creation_date' global attribute value is invalid. 2: SUCCESS! |
Format is YYYY-MM-DDThh:mm:ss | GlobalAttrRegexCheck Parameters: regex: '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*' attribute: 'creation_date' |
test_nc_file_checks.py | |
| ls204_009 | The global attribute 'institution_id' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'institution_id' global attribute is not present. 1: Required 'institution_id' global attribute value is invalid. 2: SUCCESS! |
The 'institution_id' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'institution_id' vocab_lookup: 'label' |
test_nc_file_checks.py |
| ls204_010 | The global attribute 'institution' must exist and have a valid format matching regular expression: ('Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.'). | ukcp:ukcp18 | HIGH | 0: Required 'institution' global attribute is not present. 1: Required 'institution' global attribute value is invalid. 2: SUCCESS! |
The 'institution' global attribute must match the expected value. | GlobalAttrRegexCheck Parameters: regex: 'Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.' attribute: 'institution' |
test_nc_file_checks.py |
| ls204_011 | The global attribute 'domain' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'domain' global attribute is not present. 1: Required 'domain' global attribute value is invalid. 2: SUCCESS! |
The 'domain' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'domain' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
| ls204_012 | Only 1 main variable must be written to each NetCDF file (except ancillary and coordinate variables that are required to understand the main variable). | HIGH | 0: More than 1 main variable found in the file. Only 1 main variable should be there. 1: SUCCESS! |
OneMainVariablePerFileCheck No parameters. |
test_nc_file_checks.py | ||
| ls204_013 | Finds main variable and checks attribute '_FillValue' has required value: '1e20'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute '_FillValue' is not present for variable: '1e20'. 2: Required variable attribute '_FillValue' has incorrect value '1e20' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: '_FillValue' attr_value: '1e20' |
test_nc_file_checks.py | ||
| ls204_014 | The main variable must be of type: float32. | HIGH | 0: Main variable was not of the required type: float32 1: SUCCESS! |
MainVariableTypeCheck Parameters: dtype: 'float32' |
test_nc_file_checks.py | ||
| ls204_015 | The main variable must exist in the file with the attributes defined in the controlled vocabulary specified. | ukcp:ukcp18 | HIGH | 0: Main variable not found in the file so cannot perform other checks. 1: Each variable attribute is checked separately. 2: SUCCESS! |
NCMainVariableMetadataCheck Parameters: pyessv_namespace: 'variable' ignores: '['cmip6_cmor_tables_row_id', 'cmip6_name', 'cmip6_standard_name', 'notes', 'strand', 'time_averaging', 'time_step', 'um_stash']' |
test_nc_file_checks.py | |
| ls204_016 | Finds main variable and checks attribute 'cell_methods' has required value: 'time: mean'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute 'cell_methods' is not present for variable: 'time: mean'. 2: Required variable attribute 'cell_methods' has incorrect value 'time: mean' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: 'cell_methods' attr_value: 'time: mean' |
test_nc_file_checks.py | ||
| ls204_017 | All components in the file name must either be set as global attributes in the NetCDF file and must be valid terms in the relevant controlled vocabulary, or match the given regular expression(s). The score is made up of: - 1 for the file extension - 2 per global attribute (exists and is valid) - 1 per file-name component / regular expression (valid) - | ukcp:ukcp18 | HIGH | 0: File name does not match global attributes. 1: Each global attribute is checked separately. 2: SUCCESS! |
ValidGlobalAttrsMatchFileNameCheck Parameters: delimiter: '_' order: 'variable~scenario~collection~domain~resolution~ensemble_member~frequency~regex:^(?:\d{2}){2,6}(?:$|-(?:\d{2}){2,6}$)' extension: '.nc' ignore_attr_checks: '['variable']' |
test_nc_file_checks.py | |
| ls204_018 | The global attribute 'collection' must exist and have a valid format matching regular expression: ('land-gcm'). | MEDIUM | 0: Required 'collection' global attribute is not present. 1: Required 'collection' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'land-gcm' attribute: 'collection' |
test_nc_file_checks.py | ||
| ls204_019 | The global attribute 'frequency' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'frequency' global attribute is not present. 1: Required 'frequency' global attribute value is invalid. 2: SUCCESS! |
The 'frequency' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'frequency' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
The following table details the checks for: Check MS4.01 UKCP18 files (ukcp18-ms401).
| Check ID | Description | Controlled Vocab ref | Level | Responses | Comments | Python check (link to repository) | Python unittest |
|---|---|---|---|---|---|---|---|
| ms401_001 | The global attribute 'Conventions' must exist and have a valid format matching regular expression: ('CF-1\.5'). | HIGH | 0: Required 'Conventions' global attribute is not present. 1: Required 'Conventions' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'CF-1\.5' attribute: 'Conventions' |
test_nc_file_checks.py | ||
| ms401_002 | The global attribute 'source' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'source' global attribute is not present. 1: Required 'source' global attribute value is invalid. 2: SUCCESS! |
Should represent the original data source(s). E.g. 'HadGEM3-ES runs'. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'source' |
test_nc_file_checks.py | |
| ms401_003 | The global attribute 'project' must exist and have a valid format matching regular expression: ('UKCP18'). | HIGH | 0: Required 'project' global attribute is not present. 1: Required 'project' global attribute value is invalid. 2: SUCCESS! |
Must be 'UKCP18' | GlobalAttrRegexCheck Parameters: regex: 'UKCP18' attribute: 'project' |
test_nc_file_checks.py | |
| ms401_004 | The global attribute 'contact' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'contact' global attribute is not present. 1: Required 'contact' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'contact' |
test_nc_file_checks.py | ||
| ms401_005 | The global attribute 'references' must exist and have a valid format matching regular expression: ('.{4,}'). | MEDIUM | 0: Required 'references' global attribute is not present. 1: Required 'references' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'references' |
test_nc_file_checks.py | ||
| ms401_006 | The global attribute 'version' must exist and have a valid format matching regular expression: ('v\d{8}'). | HIGH | 0: Required 'version' global attribute is not present. 1: Required 'version' global attribute value is invalid. 2: SUCCESS! |
GlobalAttrRegexCheck Parameters: regex: 'v\d{8}' attribute: 'version' |
test_nc_file_checks.py | ||
| ms401_007 | The global attribute 'title' must exist and have a valid format matching regular expression: ('.{4,}'). | HIGH | 0: Required 'title' global attribute is not present. 1: Required 'title' global attribute value is invalid. 2: SUCCESS! |
Should be a succinct description of the data. | GlobalAttrRegexCheck Parameters: regex: '.{4,}' attribute: 'title' |
test_nc_file_checks.py | |
| ms401_008 | The global attribute 'creation_date' must exist and have a valid format matching regular expression: ('\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*'). | MEDIUM | 0: Required 'creation_date' global attribute is not present. 1: Required 'creation_date' global attribute value is invalid. 2: SUCCESS! |
Format is YYYY-MM-DDThh:mm:ss | GlobalAttrRegexCheck Parameters: regex: '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*' attribute: 'creation_date' |
test_nc_file_checks.py | |
| ms401_009 | The global attribute 'institution_id' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'institution_id' global attribute is not present. 1: Required 'institution_id' global attribute value is invalid. 2: SUCCESS! |
The 'institution_id' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'institution_id' vocab_lookup: 'label' |
test_nc_file_checks.py |
| ms401_010 | The global attribute 'institution' must exist and have a valid format matching regular expression: ('Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.'). | ukcp:ukcp18 | HIGH | 0: Required 'institution' global attribute is not present. 1: Required 'institution' global attribute value is invalid. 2: SUCCESS! |
The 'institution' global attribute must match the expected value. | GlobalAttrRegexCheck Parameters: regex: 'Met Office Hadley Centre \(MOHC\), FitzRoy Road, Exeter, Devon, EX1 3PB, UK\.' attribute: 'institution' |
test_nc_file_checks.py |
| ms401_011 | The global attribute 'domain' must exist and have a valid value from the relevant vocabulary. | ukcp:ukcp18 | HIGH | 0: Required 'domain' global attribute is not present. 1: Required 'domain' global attribute value is invalid. 2: SUCCESS! |
The 'domain' global attribute must exist and have a value present in the relevant vocabulary. | GlobalAttrVocabCheck Parameters: attribute: 'domain' vocab_lookup: 'canonical_name' |
test_nc_file_checks.py |
| ms401_012 | Only 1 main variable must be written to each NetCDF file (except ancillary and coordinate variables that are required to understand the main variable). | HIGH | 0: More than 1 main variable found in the file. Only 1 main variable should be there. 1: SUCCESS! |
OneMainVariablePerFileCheck No parameters. |
test_nc_file_checks.py | ||
| ms401_013 | Finds main variable and checks attribute '_FillValue' has required value: '1e20'. | HIGH | 0: Cannot identify main variable to examine attributes 1: Required variable attribute '_FillValue' is not present for variable: '1e20'. 2: Required variable attribute '_FillValue' has incorrect value '1e20' for main variable. 3: SUCCESS! |
MainVariableAttributeCheck Parameters: attr_name: '_FillValue' attr_value: '1e20' |
test_nc_file_checks.py | ||
| ms401_014 | The main variable must be of type: float32. | HIGH | 0: Main variable was not of the required type: float32 1: SUCCESS! |
MainVariableTypeCheck Parameters: dtype: 'float32' |
test_nc_file_checks.py | ||
| ms401_015 | The main variable must exist in the file with the attributes defined in the controlled vocabulary specified. | ukcp:ukcp18 | HIGH | 0: Main variable not found in the file so cannot perform other checks. 1: Each variable attribute is checked separately. 2: SUCCESS! |
NCMainVariableMetadataCheck Parameters: pyessv_namespace: 'variable' ignores: '['cmip6_cmor_tables_row_id', 'cmip6_name', 'cmip6_standard_name', 'notes', 'strand', 'time_averaging', 'time_step', 'um_stash']' |
test_nc_file_checks.py | |
| ms401_016 | Variable longitude exists in NetCDF file. | HIGH | 0: Required variable longitude is not present. 1: SUCCESS! |
Checks that longitude is named correctly. | VariableExistsInFileCheck Parameters: var_id: 'longitude' |
test_nc_file_checks.py | |
| ms401_017 | The variable longitude must have values in the range -180.0 to 180.. | HIGH | 0: Variable longitude does not exist. 1: Variable longitude has values outside the permitted range: -180.0 to 180. 2: SUCCESS! |
Checks that longitude is in required range. | VariableRangeCheck Parameters: var_id: 'longitude' minimum: '-180.0' maximum: '180.' |
test_nc_file_checks.py | |
| ms401_018 | The variable longitude must be of type: float64. | HIGH | 0: The variable longitude was not of the required type: float64 1: SUCCESS! |
VariableTypeCheck Parameters: dtype: 'float64' var_id: 'longitude' |
test_nc_file_checks.py | ||
| ms401_019 | Variable latitude exists in NetCDF file. | HIGH | 0: Required variable latitude is not present. 1: SUCCESS! |
Checks that latitude is named correctly. | VariableExistsInFileCheck Parameters: var_id: 'latitude' |
test_nc_file_checks.py | |
| ms401_020 | The variable latitude must have values in the range -90.0 to 90.. | HIGH | 0: Variable latitude does not exist. 1: Variable latitude has values outside the permitted range: -90.0 to 90. 2: SUCCESS! |
Checks that latitude is in required range. | VariableRangeCheck Parameters: var_id: 'latitude' minimum: '-90.0' maximum: '90.' |
test_nc_file_checks.py | |
| ms401_021 | The variable latitude must be of type: float64. | HIGH | 0: The variable latitude was not of the required type: float64 1: SUCCESS! |
VariableTypeCheck Parameters: dtype: 'float64' var_id: 'latitude' |
test_nc_file_checks.py | ||
| ms401_022 | The coordinate variable 'time' must exist in the file with a valid bounds variable. | HIGH | 0: Variable 'time' not found in the file so cannot perform other checks. 1: A valid 'bounds' variable does not exist for variable 'time'. 2: SUCCESS! |
NCCoordVarHasBoundsCheck Parameters: var_id: 'time' |
test_nc_coords_checks.py | ||
| ms401_023 | The coordinate variable 'latitude' must exist in the file with a valid bounds variable. | HIGH | 0: Variable 'latitude' not found in the file so cannot perform other checks. 1: A valid 'bounds' variable does not exist for variable 'latitude'. 2: SUCCESS! |
NCCoordVarHasBoundsCheck Parameters: var_id: 'latitude' |
test_nc_coords_checks.py | ||
| ms401_024 | The coordinate variable 'longitude' must exist in the file with a valid bounds variable. | HIGH | 0: Variable 'longitude' not found in the file so cannot perform other checks. 1: A valid 'bounds' variable does not exist for variable 'longitude'. 2: SUCCESS! |
NCCoordVarHasBoundsCheck Parameters: var_id: 'longitude' |
test_nc_coords_checks.py | ||
| ms401_025 | The file must contain dimension and coordinate variable: time that has attributes matching vocabulary: coordinate. | ukcp:ukcp18 | HIGH | 0: Dimension not found: time. 1: Dimension 'time' does not have required length 2: Coordinate variable for dimension not found: time. 3: Coordinate variable for dimension 'time' does not have expected properties. 4: SUCCESS! |
NetCDFDimensionCheck Parameters: dim_id: 'time' pyessv_namespace: 'coordinate' |
test_nc_file_checks.py | |
| ms401_026 | The file must contain dimension and coordinate variable: latitude that has attributes matching vocabulary: coordinate. | ukcp:ukcp18 | HIGH | 0: Dimension not found: latitude. 1: Dimension 'latitude' does not have required length 2: Coordinate variable for dimension not found: latitude. 3: Coordinate variable for dimension 'latitude' does not have expected properties. 4: SUCCESS! |
NetCDFDimensionCheck Parameters: dim_id: 'latitude' pyessv_namespace: 'coordinate' |
test_nc_file_checks.py | |
| ms401_027 | The file must contain dimension and coordinate variable: longitude that has attributes matching vocabulary: coordinate. | ukcp:ukcp18 | HIGH | 0: Dimension not found: longitude. 1: Dimension 'longitude' does not have required length 2: Coordinate variable for dimension not found: longitude. 3: Coordinate variable for dimension 'longitude' does not have expected properties. 4: SUCCESS! |
NetCDFDimensionCheck Parameters: dim_id: 'longitude' pyessv_namespace: 'coordinate' |
test_nc_file_checks.py | |
| ms401_028 | All components in the file name must either be set as global attributes in the NetCDF file and must be valid terms in the relevant controlled vocabulary, or match the given regular expression(s). The score is made up of: - 1 for the file extension - 2 per global attribute (exists and is valid) - 1 per file-name component / regular expression (valid) - | ukcp:ukcp18 | HIGH | 0: File name does not match global attributes. 1: Each global attribute is checked separately. 2: SUCCESS! |
ValidGlobalAttrsMatchFileNameCheck Parameters: delimiter: '_' order: 'variable~regex:marine-sim~regex:(timeseries|CNRM-CM5|EC-EARTH|HadGEM2-ES|IPSL-CM5A-MR|MPI-ESM-LR)~regex:hist~regex:^\d{4}060100-\d{4}053023$' extension: '.nc' ignore_attr_checks: '['variable']' |
test_nc_file_checks.py |


Service
Find a Dealer
Racing
About
KTM World
×
Service
Find a Dealer
Racing
About
KTM World
390 Duke
FUTURE-READY TRAINERS WITH WRAPPED BOOST FOR EXCEPTION COMFORT.
39
40
42
44
Purchase


{% extends "base/minimal_base.html" %}
{% block head %}
{% endblock %}
{% block body %}
{% if verify %}
A verification Email has been sent to your provided email address!
Send another verification email