updates
This commit is contained in:
parent
17e7113a8c
commit
5765da7ecc
6
.gitignore
vendored
6
.gitignore
vendored
@ -1,2 +1,6 @@
|
||||
__pycache__
|
||||
.DS_Store
|
||||
.DS_Store
|
||||
config.yaml
|
||||
.venv
|
||||
*.json
|
||||
raw_list
|
130
backend/destinE_schema
Normal file
130
backend/destinE_schema
Normal file
@ -0,0 +1,130 @@
|
||||
# * Format of the rules is:
|
||||
|
||||
# [a1, a2, a3 ...[b1, b2, b3... [c1, c2, c3...]]]
|
||||
|
||||
# - The first level (a) defines which attributes are used to name the top level directory
|
||||
# - The second level (b) defines which attributes are used to name the data files
|
||||
# - The third level (c) defines which attributes are used as index keys
|
||||
|
||||
# * Rules can be grouped
|
||||
|
||||
# [a1, a2, a3 ...
|
||||
# [b1, b2, b3... [c1, c2, c3...]]
|
||||
# [B1, B2, B3... [C1, C2, C3...]]
|
||||
# ]
|
||||
|
||||
# * A list of values can be given for an attribute
|
||||
# [ ..., stream=enfo/efov, ... ]
|
||||
# This will be used when matching rules.
|
||||
|
||||
# * Attributes can be typed
|
||||
# Globally, at the begining of this file:
|
||||
|
||||
# refdate: Date;
|
||||
|
||||
# or in the context of a rule:
|
||||
# [type=cl, ... [date:ClimateMonth, ...]]
|
||||
|
||||
# Typing attributes is done when the user's requests or the GRIB values need to be modified before directories, files and indexes are created. For example, ClimateMonth will transform 2010-04-01 to 'may' internally.
|
||||
|
||||
# * Attributes can be optional
|
||||
# [ step, levelist?, param ]
|
||||
# They will be replaced internally by an empty value. It is also posiible to provide a default subtitution value: e.g. [domain?g] will consider the domain to be 'g' if missing.
|
||||
|
||||
# * Attributes can be removed:
|
||||
# [grid-]
|
||||
# This is useful to remove attributes present in the GRIB that should not be ignored
|
||||
|
||||
# * Rules are matched:
|
||||
|
||||
# - If the attributes are present in the GRIB/Request, or marked optional or ignored
|
||||
# - If a list of possible value is provided, one of them must match, for example
|
||||
# [ class, expver, stream=enfo/efov, date, time, domain ]
|
||||
# will match either stream=enfo or stream=efov, all other attributes will be matched if they exist in the GRIB or user's request
|
||||
|
||||
# * On archive:
|
||||
# - Attributes are extracted from the GRIB (namespace 'mars'), possibly modified by the attribute type
|
||||
# - Only the first rule is used, so order is important
|
||||
# - All GRIB attributes must be used by the rules, otherwise an error is raised
|
||||
|
||||
# * On retrieve:
|
||||
# - Attributes are extracted from the user's request, possibly modified by the attribute type (e.g. for handling of U/V)
|
||||
# - All the matching rules are considered
|
||||
# - Only attributes listed in the rules are used to extract values from the user's request
|
||||
|
||||
|
||||
# Default types
|
||||
|
||||
param: Param;
|
||||
step: Step;
|
||||
date: Date;
|
||||
hdate: Date;
|
||||
refdate: Date;
|
||||
latitude: Double;
|
||||
longitude: Double;
|
||||
levelist: Double;
|
||||
grid: Grid;
|
||||
expver: Expver;
|
||||
|
||||
time: Time;
|
||||
fcmonth: Integer;
|
||||
|
||||
number: Integer;
|
||||
frequency: Integer;
|
||||
direction: Integer;
|
||||
channel: Integer;
|
||||
|
||||
instrument: Integer;
|
||||
ident: Integer;
|
||||
|
||||
diagnostic: Integer;
|
||||
iteration: Integer;
|
||||
system: Integer;
|
||||
method: Integer;
|
||||
|
||||
|
||||
########################################################
|
||||
# These are the rules for the Climate DT
|
||||
|
||||
# clte/wave
|
||||
[ class=d1, dataset=climate-dt, activity, experiment, generation, model, realization, expver, stream=clte/wave, date
|
||||
[ resolution, type, levtype
|
||||
[ time, levelist?, param, frequency?, direction? ]]
|
||||
]
|
||||
|
||||
# clmn
|
||||
[ class=d1, dataset=climate-dt, activity, experiment, generation, model, realization, expver, stream=clmn, year
|
||||
[ month, resolution, type, levtype
|
||||
[ levelist?, param ]]
|
||||
]
|
||||
|
||||
########################################################
|
||||
# These are the rules for the Extremes DT
|
||||
# oper/wave/lwda/lwwv
|
||||
[ class=d1, dataset=extremes-dt, expver, stream=oper/wave/lwda/lwwv, date, time
|
||||
[ resolution?, type, levtype
|
||||
[ step, levelist?, param, frequency?, direction? ]]
|
||||
]
|
||||
########################################################
|
||||
# These are the rules for the On-Demand Extremes DT
|
||||
# oper/wave
|
||||
[ class=d1, dataset=on-demand-extremes-dt, expver, stream=oper/wave, date, time
|
||||
[ type, levtype
|
||||
[ step, levelist?, param, frequency?, direction? ]]
|
||||
]
|
||||
########################################################
|
||||
|
||||
|
||||
########################################################
|
||||
#
|
||||
# These are the rules for rd
|
||||
# oper/wave/lwda/lwwv
|
||||
[ class=rd, expver, stream=oper/wave/lwda/lwwv/dcda/enfo, date, time, domain?
|
||||
[ type, levtype
|
||||
[ number?, step, levelist?, param, frequency?, direction? ]]
|
||||
]
|
||||
|
||||
[ class=rd, expver, stream=mnth, domain?
|
||||
[ type, levtype
|
||||
[ date , time, step?, levelist?, param ]]
|
||||
]
|
1253
backend/destine_language.yaml
Normal file
1253
backend/destine_language.yaml
Normal file
File diff suppressed because it is too large
Load Diff
125
backend/main.py
125
backend/main.py
@ -1,10 +1,21 @@
|
||||
from collections import defaultdict
|
||||
from typing import Any, Dict
|
||||
import yaml
|
||||
import os
|
||||
|
||||
from fastapi import FastAPI, Request
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from fdb_schema import FDBSchemaFile
|
||||
from fastapi.responses import RedirectResponse
|
||||
from fastapi.templating import Jinja2Templates
|
||||
|
||||
import os
|
||||
os.environ["FDB5_CONFIG_FILE"] = "/home/eouser/destine_remoteFDB_config.yaml"
|
||||
|
||||
import pyfdb
|
||||
|
||||
fdb = pyfdb.FDB()
|
||||
|
||||
app = FastAPI()
|
||||
app.add_middleware(
|
||||
@ -16,17 +27,30 @@ app.add_middleware(
|
||||
)
|
||||
|
||||
app.mount("/app", StaticFiles(directory="../webapp"), name="static")
|
||||
templates = Jinja2Templates(directory="../webapp")
|
||||
|
||||
config = {
|
||||
"message": "",
|
||||
"fdb_schema": "standard_fdb_schema",
|
||||
"mars_language": "language.yaml"
|
||||
}
|
||||
if os.path.exists("../config.yaml"):
|
||||
with open("../config.yaml", "r") as f:
|
||||
config = config | yaml.safe_load(f)
|
||||
|
||||
|
||||
@app.get("/")
|
||||
async def redirect_to_app(request: Request):
|
||||
return templates.TemplateResponse("index.html", {"request": request, "config": config})
|
||||
|
||||
|
||||
language_yaml = "./language.yaml"
|
||||
import yaml
|
||||
|
||||
with open(language_yaml, "r") as f:
|
||||
with open(config["mars_language"], "r") as f:
|
||||
mars_language = yaml.safe_load(f)["_field"]
|
||||
|
||||
###### Load FDB Schema
|
||||
schema = FDBSchemaFile("./standard_fdb_schema")
|
||||
# schema = FDBSchemaFile("./test_schema")
|
||||
schema = FDBSchemaFile(config["fdb_schema"])
|
||||
|
||||
def request_to_dict(request: Request) -> Dict[str, Any]:
|
||||
# Convert query parameters to dictionary format
|
||||
@ -37,42 +61,6 @@ def request_to_dict(request: Request) -> Dict[str, Any]:
|
||||
request_dict[key] = value.split(",")
|
||||
return request_dict
|
||||
|
||||
@app.get("/simple")
|
||||
async def get_tree(request: Request):
|
||||
request_dict = request_to_dict(request)
|
||||
print(request_dict)
|
||||
target = next((k for k,v in request_dict.items() if v == "????"), None)
|
||||
if not target:
|
||||
return {"error": "No target found in request, there must be one key with value '????'"}
|
||||
|
||||
current_query_params = "&".join(f"{k}={v}" for k, v in request_dict.items() if k != target)
|
||||
if len(current_query_params) > 1:
|
||||
current_query_params += "&"
|
||||
|
||||
stac_collection = {
|
||||
"type": "Collection",
|
||||
"stac_version": "1.0.0",
|
||||
"id": target,
|
||||
"title" : target.capitalize(),
|
||||
"key_type": mars_language.get(target, {}).get("type", ""),
|
||||
"description": mars_language.get(target, {}).get("description", ""),
|
||||
"values": mars_language.get(target, {}).get("values", ""),
|
||||
"links": [
|
||||
{
|
||||
"title": str(value[-1] if isinstance(value, list) else value),
|
||||
"href": f"/tree?{current_query_params}{target}={value[0] if isinstance(value, list) else value}",
|
||||
"rel": "child",
|
||||
"type": "application/json",
|
||||
|
||||
}
|
||||
|
||||
for value in mars_language.get(target, {}).get("values", [])
|
||||
]
|
||||
}
|
||||
|
||||
return stac_collection
|
||||
|
||||
|
||||
@app.get("/tree")
|
||||
async def get_tree(request: Request):
|
||||
# Convert query parameters to dictionary format
|
||||
@ -97,24 +85,53 @@ async def get_tree(request: Request):
|
||||
def make_link(key_name, paths):
|
||||
"""Take a MARS Key and information about which paths matched up to this point and use it to make a STAC Link"""
|
||||
first_path = [str(p) for p in paths[0]]
|
||||
href = f"/simple?{'&'.join(first_path)}{'&' if first_path else ''}{key_name}=????"
|
||||
href_template = f"/tree?{'&'.join(first_path)}{'&' if first_path else ''}{key_name}={{}}"
|
||||
optional = [p[-1].key_spec.is_optional() for p in paths if len(p) > 0]
|
||||
optional_str = "Yes" if all(optional) and len(optional) > 0 else ("Sometimes" if any(optional) else "No")
|
||||
values_from_mars_language = mars_language.get(key_name, {}).get("values", [])
|
||||
values = [v[0] if isinstance(v, list) else v for v in values_from_mars_language]
|
||||
|
||||
if all(isinstance(v, list) for v in values_from_mars_language):
|
||||
value_descriptions = [v[-1] if len(v) > 1 else "" for v in values_from_mars_language]
|
||||
else:
|
||||
value_descriptions = [""] * len(values)
|
||||
|
||||
return {
|
||||
"title": key_name,
|
||||
"optional": optional_str,
|
||||
# "optional_by_path": optional,
|
||||
"href": href,
|
||||
"generalized_datacube:href_template": href_template,
|
||||
"rel": "child",
|
||||
"type": "application/json",
|
||||
"paths": set(tuple(f"{m.key}={m.value}" for m in p) for p in paths),
|
||||
# "description": mars_language.get(key_name, {}).get("description", ""),
|
||||
# "values": mars_language.get(key_name, {}).get("values", "")
|
||||
"generalized_datacube:dimension" : {
|
||||
"type" : mars_language.get(key_name, {}).get("type", ""),
|
||||
"description": mars_language.get(key_name, {}).get("description", ""),
|
||||
"values" : values,
|
||||
"value_descriptions" : value_descriptions,
|
||||
"optional" : any(optional),
|
||||
"multiple": True,
|
||||
}
|
||||
|
||||
|
||||
# "paths": set(tuple(f"{m.key}={m.value}" for m in p) for p in paths),
|
||||
|
||||
}
|
||||
|
||||
|
||||
def value_descriptions(key, values):
|
||||
return {
|
||||
v[0] : v[-1] for v in mars_language.get(key, {}).get("values", [])
|
||||
if len(v) > 1 and v[0] in values
|
||||
}
|
||||
|
||||
descriptions = {
|
||||
key : {
|
||||
"key" : key,
|
||||
"values" : values,
|
||||
"description" : mars_language.get(key, {}).get("description", ""),
|
||||
"value_descriptions" : value_descriptions(key,values),
|
||||
}
|
||||
for key, values in request_dict.items()
|
||||
}
|
||||
|
||||
# Format the response as a STAC collection
|
||||
stac_collection = {
|
||||
"type": "Collection",
|
||||
@ -124,7 +141,19 @@ async def get_tree(request: Request):
|
||||
"links": [
|
||||
make_link(key_name, paths)
|
||||
for key_name, paths in key_frontier.items()
|
||||
]
|
||||
],
|
||||
"debug": {
|
||||
"request": request_dict,
|
||||
"descriptions": descriptions,
|
||||
"matches" : matches,
|
||||
# "paths" : [
|
||||
# {
|
||||
# "path" : {o.key : o.str_value() for o in path},
|
||||
# "list" : [i["keys"] for i in fdb.list({o.key : o.str_value() for o in path}, keys=True)],
|
||||
# "key" : key,
|
||||
# } for key, paths in key_frontier.items() for path in paths
|
||||
# ]
|
||||
}
|
||||
}
|
||||
|
||||
return stac_collection
|
@ -65,26 +65,24 @@ function goToNextUrl() {
|
||||
const key_type = item.dataset.keyType;
|
||||
let values = [];
|
||||
|
||||
if (key === "date") {
|
||||
const datePicker = item.querySelector("input[type='date']");
|
||||
//format date as YYYYMMDD
|
||||
const datePicker = item.querySelector("input[type='date']");
|
||||
if (datePicker) {
|
||||
values.push(datePicker.value.replace(/-/g, ""));
|
||||
} else if (key === "time") {
|
||||
const timePicker = item.querySelector("input[type='time']");
|
||||
//format time as HHMM
|
||||
console.log("replace", timePicker.value.replace(":", ""));
|
||||
}
|
||||
|
||||
const timePicker = item.querySelector("input[type='time']");
|
||||
if (timePicker) {
|
||||
values.push(timePicker.value.replace(":", ""));
|
||||
} else if (key_type === "enum") {
|
||||
values.push(
|
||||
...Array.from(
|
||||
item.querySelectorAll("input[type='checkbox']:checked")
|
||||
).map((checkbox) => checkbox.value)
|
||||
);
|
||||
} else {
|
||||
const any = item.querySelector("input[type='text']");
|
||||
if (any.value !== "") {
|
||||
values.push(any.value);
|
||||
}
|
||||
}
|
||||
|
||||
const enum_checkboxes = item.querySelectorAll("input[type='checkbox']:checked");
|
||||
if (enum_checkboxes.length > 0) {
|
||||
values.push(...Array.from(enum_checkboxes).map((checkbox) => checkbox.value));
|
||||
}
|
||||
|
||||
const any = item.querySelector("input[type='text']");
|
||||
if (any && any.value !== "") {
|
||||
values.push(any.value);
|
||||
}
|
||||
|
||||
// Keep track of whether any new keys are selected
|
||||
@ -127,53 +125,27 @@ async function createCatalogItem(link, itemsContainer) {
|
||||
itemsContainer.appendChild(itemDiv);
|
||||
|
||||
try {
|
||||
// Fetch details for each item/collection asynchronously
|
||||
let base_url = new URL(window.location.href);
|
||||
base_url.pathname = "/tree";
|
||||
let url = new URL(link.href, base_url);
|
||||
console.log("Fetching item details:", url);
|
||||
const response = await fetch(url);
|
||||
const itemData = await response.json();
|
||||
|
||||
// Update the item div with real content
|
||||
itemDiv.classList.remove("loading");
|
||||
itemDiv.innerHTML = ""; // Clear "Loading..." text
|
||||
|
||||
const dimension = link["generalized_datacube:dimension"];
|
||||
|
||||
// add data-key attribute to the itemDiv
|
||||
itemDiv.dataset.key = itemData.id;
|
||||
itemDiv.dataset.keyType = itemData.key_type;
|
||||
itemDiv.dataset.key = link.title;
|
||||
itemDiv.dataset.keyType = dimension.type;
|
||||
|
||||
itemDiv.innerHTML = `
|
||||
<h3 class="item-title">${link.title || "No title available"}</h3>
|
||||
<p class="item-type">Key Type: ${itemDiv.dataset.keyType || "Unknown"}</p>
|
||||
<p class="item-type">Optional: ${dimension.optional ? "Yes" : "No"}</p>
|
||||
<p class="item-description">${dimension.description ? dimension.description.slice(0, 100) : "No description available"}...</p>
|
||||
`;
|
||||
|
||||
const title = document.createElement("h3");
|
||||
title.className = "item-title";
|
||||
title.textContent = itemData.title || "No title available";
|
||||
itemDiv.appendChild(title);
|
||||
|
||||
const key_type = document.createElement("p");
|
||||
key_type.className = "item-type";
|
||||
key_type.textContent = `Key Type: ${itemData.key_type || "Unknown"}`;
|
||||
itemDiv.appendChild(key_type);
|
||||
|
||||
const optional = document.createElement("p");
|
||||
optional.className = "item-type";
|
||||
optional.textContent = `Optional: ${link.optional || "Unknown"}`;
|
||||
itemDiv.appendChild(optional);
|
||||
|
||||
// const id = document.createElement("p");
|
||||
// id.className = "item-id";
|
||||
// id.textContent = `ID: ${itemData.id || link.href.split("/").pop()}`;
|
||||
// itemDiv.appendChild(id);
|
||||
|
||||
const description = document.createElement("p");
|
||||
description.className = "item-description";
|
||||
const descText = itemData.description
|
||||
? itemData.description.slice(0, 100)
|
||||
: "No description available";
|
||||
description.textContent = `${descText}...`;
|
||||
itemDiv.appendChild(description);
|
||||
|
||||
if (itemData.key_type === "date" || itemData.key_type === "time") {
|
||||
if (dimension.type === "date" || dimension.type === "time") {
|
||||
// Render a date picker for the "date" key
|
||||
const picker = `<input type="${itemData.id}" name="${itemData.id}">`;
|
||||
const picker = `<input type="${link.title}" name="${link.title}">`;
|
||||
//convert picker to HTML node
|
||||
const pickerNode = document
|
||||
.createRange()
|
||||
@ -182,25 +154,49 @@ async function createCatalogItem(link, itemsContainer) {
|
||||
}
|
||||
// Otherwise create a scrollable list with checkboxes for values if available
|
||||
else if (
|
||||
itemData.key_type === "enum" &&
|
||||
itemData.values &&
|
||||
itemData.values.length > 0
|
||||
// dimension.type === "enum" &&
|
||||
dimension.values &&
|
||||
dimension.values.length > 0
|
||||
) {
|
||||
const listContainer = renderCheckboxList(itemData);
|
||||
const listContainer = renderCheckboxList(link);
|
||||
itemDiv.appendChild(listContainer);
|
||||
} else {
|
||||
const any = `<input type="text" name="${itemData.id}">`;
|
||||
const any = `<input type="text" name="${link.title}">`;
|
||||
const anyNode = document.createRange().createContextualFragment(any);
|
||||
itemDiv.appendChild(anyNode);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error loading item data:", error);
|
||||
|
||||
// In case of an error, display an error message
|
||||
itemDiv.innerHTML = "<p>Error loading item details</p>";
|
||||
itemDiv.innerHTML = `<p>Error loading item details: ${error}</p>`;
|
||||
}
|
||||
}
|
||||
|
||||
function renderCheckboxList(link) {
|
||||
const dimension = link["generalized_datacube:dimension"];
|
||||
const value_descriptions = dimension.value_descriptions;
|
||||
|
||||
const listContainerHTML = `
|
||||
<div class="item-list-container">
|
||||
<label class="list-label">Select one or more values:</label>
|
||||
<div class="scrollable-list">
|
||||
${dimension.values
|
||||
.map((value, index) => {
|
||||
const labelText = value_descriptions[index] ? `${value} - ${value_descriptions[index]}` : value;
|
||||
return `
|
||||
<div class="checkbox-container">
|
||||
<input type="checkbox" class="item-checkbox" value="${value}" ${dimension.values.length === 1? 'checked' : ''}>
|
||||
<label class="checkbox-label">${labelText}</label>
|
||||
</div>
|
||||
`;
|
||||
})
|
||||
.join("")}
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
return document.createRange().createContextualFragment(listContainerHTML).firstElementChild;
|
||||
}
|
||||
|
||||
// Render catalog items in the sidebar
|
||||
function renderCatalogItems(links) {
|
||||
const itemsContainer = document.getElementById("items");
|
||||
@ -217,39 +213,57 @@ function renderCatalogItems(links) {
|
||||
});
|
||||
}
|
||||
|
||||
// Fetch and display item details
|
||||
async function loadItemDetails(url) {
|
||||
try {
|
||||
const resolved_url = new URL(url, API_BASE_URL);
|
||||
const response = await fetch(resolved_url);
|
||||
const item = await response.json();
|
||||
|
||||
// Show details in the 'details' panel
|
||||
const itemDetails = document.getElementById("item-details");
|
||||
itemDetails.textContent = JSON.stringify(item, null, 2);
|
||||
} catch (error) {
|
||||
console.error("Error loading item details:", error);
|
||||
function renderRequestBreakdown(request, descriptions) {
|
||||
const container = document.getElementById("request-breakdown");
|
||||
const format_value = (key, value) => {
|
||||
return `<span class="value" title="${descriptions[key]['value_descriptions'][value]}">"${value}"</span>`;
|
||||
};
|
||||
|
||||
const format_values = (key, values) => {
|
||||
if (values.length === 1) {
|
||||
return format_value(key, values[0]);
|
||||
}
|
||||
return `[${values.map((v) =>
|
||||
format_value(key, v)
|
||||
).join(", ")}]`;
|
||||
};
|
||||
|
||||
let html = `{\n` +
|
||||
request
|
||||
.map(
|
||||
([key, values]) =>
|
||||
` <span class="key" title="${descriptions[key]['description']}">"${key}"</span>: ${format_values(key, values)},`
|
||||
)
|
||||
.join("\n") +
|
||||
`\n}`;
|
||||
container.innerHTML = html;
|
||||
}
|
||||
}
|
||||
|
||||
function show_resp_in_sidebar(catalog) {
|
||||
const itemDetails = document.getElementById("item-details");
|
||||
function renderRawSTACResponse(catalog) {
|
||||
const itemDetails = document.getElementById("raw-stac");
|
||||
itemDetails.textContent = JSON.stringify(catalog, null, 2);
|
||||
}
|
||||
|
||||
// Fetch STAC catalog and display items
|
||||
async function fetchCatalog(stacUrl) {
|
||||
async function fetchCatalog(request, stacUrl) {
|
||||
try {
|
||||
const response = await fetch(stacUrl);
|
||||
const catalog = await response.json();
|
||||
// Always load the most recently clicked item on the right-hand side
|
||||
show_resp_in_sidebar(catalog);
|
||||
|
||||
// Render the request breakdown in the sidebar
|
||||
renderRequestBreakdown(request, catalog.debug.descriptions);
|
||||
|
||||
// Show the raw STAC in the sidebar
|
||||
renderRawSTACResponse(catalog);
|
||||
|
||||
// Render the items from the catalog
|
||||
if (catalog.links) {
|
||||
console.log("Fetched STAC catalog:", stacUrl, catalog.links);
|
||||
renderCatalogItems(catalog.links);
|
||||
}
|
||||
|
||||
// Highlight the request and raw STAC
|
||||
hljs.highlightElement(document.getElementById("raw-stac"));
|
||||
} catch (error) {
|
||||
console.error("Error fetching STAC catalog:", error);
|
||||
}
|
||||
@ -258,10 +272,11 @@ async function fetchCatalog(stacUrl) {
|
||||
// Initialize the viewer by fetching the STAC catalog
|
||||
function initializeViewer() {
|
||||
const stacUrl = getSTACUrlFromQuery();
|
||||
const request = get_request_from_url();
|
||||
|
||||
if (stacUrl) {
|
||||
console.log("Fetching STAC catalog from query string URL:", stacUrl);
|
||||
fetchCatalog(stacUrl);
|
||||
fetchCatalog(request, stacUrl);
|
||||
} else {
|
||||
console.error("No STAC URL provided in the query string.");
|
||||
}
|
||||
@ -280,36 +295,3 @@ function initializeViewer() {
|
||||
|
||||
// Call initializeViewer on page load
|
||||
initializeViewer();
|
||||
|
||||
function renderCheckboxList(itemData) {
|
||||
const listContainer = document.createElement("div");
|
||||
listContainer.className = "item-list-container";
|
||||
|
||||
const listLabel = document.createElement("label");
|
||||
listLabel.textContent = "Select values:";
|
||||
listLabel.className = "list-label";
|
||||
|
||||
const scrollableList = document.createElement("div");
|
||||
scrollableList.className = "scrollable-list";
|
||||
|
||||
const checkboxesHtml = itemData.values
|
||||
.map((valueArray) => {
|
||||
const value = Array.isArray(valueArray) ? valueArray[0] : valueArray;
|
||||
const labelText = Array.isArray(valueArray)
|
||||
? valueArray.join(" - ")
|
||||
: valueArray;
|
||||
return `
|
||||
<div class="checkbox-container">
|
||||
<input type="checkbox" class="item-checkbox" value="${value}">
|
||||
<label class="checkbox-label">${labelText}</label>
|
||||
</div>
|
||||
`;
|
||||
})
|
||||
.join("");
|
||||
|
||||
scrollableList.innerHTML = checkboxesHtml;
|
||||
|
||||
listContainer.appendChild(listLabel);
|
||||
listContainer.appendChild(scrollableList);
|
||||
return listContainer;
|
||||
}
|
@ -4,7 +4,11 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>STAC Viewer</title>
|
||||
<link rel="stylesheet" href="styles.css" />
|
||||
<link rel="stylesheet" href="/app/styles.css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/json.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/python.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="viewer">
|
||||
@ -23,11 +27,18 @@
|
||||
</div>
|
||||
</div>
|
||||
<div id="details">
|
||||
{{ config.get('message', '')}}
|
||||
<h2>Request</h2>
|
||||
Hover over a key or value for more info.
|
||||
<pre><code id="request-breakdown" class="language-json">
|
||||
{
|
||||
}
|
||||
</code></pre>
|
||||
<h2>Raw STAC</h2>
|
||||
<pre id="item-details"></pre>
|
||||
<pre><code id="raw-stac" class="language-json"></code></pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="app.js"></script>
|
||||
<script src="/app/app.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -85,7 +85,7 @@ canvas {
|
||||
border-color: #003399; /* Keep the original ECMWF blue for the border */
|
||||
}
|
||||
|
||||
#item-details {
|
||||
#raw-stac {
|
||||
white-space: pre-wrap;
|
||||
background-color: #f9f9f9;
|
||||
padding: 10px;
|
||||
@ -147,7 +147,20 @@ button:hover {
|
||||
|
||||
.list-label {
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
margin-bottom: 0.5em;
|
||||
display: block;
|
||||
color: #003399;
|
||||
}
|
||||
|
||||
span.key, span.value {
|
||||
color: #ba2121;;
|
||||
}
|
||||
|
||||
span.key {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
span.key:hover, span.value:hover {
|
||||
color: #ff2a2a;
|
||||
cursor: pointer;
|
||||
}
|
123
cache/cache.py
vendored
Normal file
123
cache/cache.py
vendored
Normal file
@ -0,0 +1,123 @@
|
||||
#! catalogs/.venv/bin/python
|
||||
import time
|
||||
from collections import defaultdict
|
||||
import os
|
||||
from fdb_schema import FDBSchemaFile
|
||||
os.environ["FDB5_CONFIG_FILE"] = "/home/eouser/prod_remoteFDB.yaml"
|
||||
import json
|
||||
|
||||
schema = FDBSchemaFile("/home/eouser/catalogs/backend/destinE_schema")
|
||||
|
||||
import pyfdb
|
||||
from collections import Counter
|
||||
import os, sys
|
||||
|
||||
from compress_tree import print_schema_tree, compress_tree
|
||||
|
||||
request = {
|
||||
"class": "d1",
|
||||
# "dataset": "climate-dt",
|
||||
"dataset" : "extremes-dt",
|
||||
"date" : "-14/-1",
|
||||
# "time": "0000"
|
||||
# "activity": 'cmip6',
|
||||
# "expver": "0001",
|
||||
"stream": "oper",
|
||||
# "date": "-1",
|
||||
# "time": "0000",
|
||||
# "type": "fc",
|
||||
# "levtype": "sfc",
|
||||
"step": "0",
|
||||
# "param": ""
|
||||
}
|
||||
|
||||
request = {
|
||||
"class": "d1",
|
||||
# "dataset": "climate-dt",
|
||||
# "date" : "19920422",
|
||||
# "time": "0000"
|
||||
# "activity": 'cmip6',
|
||||
# "expver": "0001",
|
||||
# "stream": "oper",
|
||||
# "date": "-1",
|
||||
# "time": "0000",
|
||||
# "type": "fc",
|
||||
# "levtype": "sfc",
|
||||
# "step": "0",
|
||||
# "param": "129"
|
||||
}
|
||||
|
||||
t0 = time.time()
|
||||
|
||||
fdb = pyfdb.FDB()
|
||||
# spans = defaultdict(Counter)
|
||||
spans = defaultdict(set)
|
||||
|
||||
def print_tree(t : dict, last=True, header='', name='', depth = 0, max_depth = 9):
|
||||
elbow = "└──"
|
||||
pipe = "│ "
|
||||
tee = "├──"
|
||||
blank = " "
|
||||
print(header + (elbow if last else tee) + name)
|
||||
# if depth == max_depth: return
|
||||
if t:
|
||||
subtrees = set()
|
||||
leaves = defaultdict(list)
|
||||
for k, v in t.items():
|
||||
if k == "_count": continue
|
||||
if depth < max_depth and isinstance(v, dict) and v:
|
||||
subtrees.add(k)
|
||||
else:
|
||||
a, b = k.split("=")
|
||||
leaves[a].append(b)
|
||||
|
||||
leaves = {n:m for n,m in leaves.items() if n != "_count"}
|
||||
for i, (name, vals) in enumerate(leaves.items()):
|
||||
last = 1 == (len(leaves)-1)
|
||||
print(header + blank + (tee if last else elbow) + f"{name}={','.join([str(v) for v in vals])}")
|
||||
|
||||
for i, name in enumerate(subtrees):
|
||||
print_tree(t[name], header=header + (blank if last else pipe), last= i == len(subtrees) - 1, name= name, depth = depth + 1, max_depth = max_depth)
|
||||
|
||||
tree = {}
|
||||
|
||||
total = 0
|
||||
for item in fdb.list(request, keys = True):
|
||||
request = item["keys"]
|
||||
_, m = schema.match(request)
|
||||
loc = tree
|
||||
for kv in m:
|
||||
k = f'{kv.key}={kv.str_value()}'
|
||||
loc["_count"] = loc.get("_count", 0) + 1
|
||||
if k not in loc: loc[k] = {}
|
||||
loc = loc[k]
|
||||
# print(request)
|
||||
# print(m)
|
||||
# sys.exit()
|
||||
|
||||
total += 1
|
||||
# for k, v in request.items():
|
||||
# # spans[k][v] += 1
|
||||
# spans[k].add(v)
|
||||
|
||||
if total % 1000 == 0:
|
||||
compressed_tree = compress_tree(tree, max_level = None)
|
||||
with open("cache.json", "w") as f:
|
||||
json.dump(tree, f)
|
||||
|
||||
os.system("clear")
|
||||
print(f"Total: {total}")
|
||||
print(f"Runtime: {(time.time() - t0):.0f} s")
|
||||
# print_tree(tree, max_depth = 7)
|
||||
print_schema_tree(compressed_tree)
|
||||
|
||||
|
||||
|
||||
|
||||
os.system("clear")
|
||||
print(f"Total: {total}")
|
||||
print(f"Runtime: {(time.time() - t0) / 60:.0f} mins")
|
||||
print_tree(tree, max_depth = 4)
|
||||
|
||||
with open("cache.json", "w") as f:
|
||||
json.dump(tree, f)
|
1
cache/climate-dt-cache.json
vendored
Normal file
1
cache/climate-dt-cache.json
vendored
Normal file
File diff suppressed because one or more lines are too long
87
cache/compress_tree.py
vendored
Normal file
87
cache/compress_tree.py
vendored
Normal file
@ -0,0 +1,87 @@
|
||||
from frozendict import frozendict, deepfreeze
|
||||
from collections import defaultdict
|
||||
|
||||
def cache_key(cache, tree):
|
||||
h = hash(frozendict(tree))
|
||||
if h not in cache:
|
||||
cache[h] = tree
|
||||
return h
|
||||
|
||||
def cache_tree(cache, tree) -> dict:
|
||||
if not isinstance(tree, dict):
|
||||
if hash(tree) not in cache:
|
||||
cache[hash(tree)] = tree
|
||||
return hash(tree)
|
||||
|
||||
if not tree:
|
||||
return cache_key(cache, tree)
|
||||
|
||||
return cache_key(cache, {k : cache_tree(cache, v) for k, v in tree.items() if k != "_count"})
|
||||
|
||||
def expand_tree_but_collapsed(cache, tree, level = 0, max_level = None):
|
||||
if max_level == level: return tree
|
||||
if not isinstance(tree, dict): return tree
|
||||
# collapse by leaf
|
||||
leaves = defaultdict(list)
|
||||
for k, v in tree.items():
|
||||
leaves[v].append(k)
|
||||
|
||||
new_tree = {}
|
||||
for value, key_group in leaves.items():
|
||||
k = key_group[0].split("=")[0]
|
||||
key = k + "=" + ",".join(k.split("=")[1] for k in key_group)
|
||||
new_tree[key] = value
|
||||
|
||||
return {k : expand_tree_but_collapsed(cache, cache[v],
|
||||
level=level+1,
|
||||
max_level=max_level) for k, v in new_tree.items()}
|
||||
|
||||
def compress_tree(tree, max_level = 5):
|
||||
cache = {}
|
||||
cache_tree(cache, tree)
|
||||
top_level = {k : cache_tree(cache, v) for k, v in tree.items() if k != "_count"}
|
||||
return expand_tree_but_collapsed(cache, top_level, max_level = max_level)
|
||||
|
||||
def print_schema_tree(tree):
|
||||
|
||||
name_cache = {}
|
||||
names = set()
|
||||
|
||||
def pick_name(k):
|
||||
if k in name_cache: return name_cache[k]
|
||||
|
||||
name, values = k.split("=")
|
||||
|
||||
for i in range(100):
|
||||
new_name = f"{name}_{i}"
|
||||
if new_name not in names:
|
||||
name_cache[k] = new_name
|
||||
names.add(new_name)
|
||||
return new_name
|
||||
|
||||
def tree_as_schema(tree, level = 0):
|
||||
indent = " "
|
||||
if not isinstance(tree, dict):
|
||||
return "\n" + indent*level + f"[ {tree}, "
|
||||
|
||||
out = "[" if level == 0 else ""
|
||||
for k, v in tree.items():
|
||||
if len(k) > 30:
|
||||
k = pick_name(k)
|
||||
|
||||
if len(tree) == 1:
|
||||
out += k + ", " + tree_as_schema(v, level = level + 1)
|
||||
else:
|
||||
out += "\n" + indent*level + f"[ {k}, " + tree_as_schema(v, level = level + 1)
|
||||
# out += "]\n"
|
||||
return out
|
||||
|
||||
schema_tree = tree_as_schema(tree)
|
||||
|
||||
for k, v in sorted(name_cache.items()):
|
||||
# print(f"{k} : {','.join(sorted(v.split(","), key = int))}")
|
||||
print(f"{v} : {k}")
|
||||
|
||||
print()
|
||||
|
||||
print(schema_tree)
|
479
cache/demo.cast
vendored
Normal file
479
cache/demo.cast
vendored
Normal file
@ -0,0 +1,479 @@
|
||||
{"version": 2, "width": 139, "height": 51, "timestamp": 1729520622, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}}
|
||||
[0.013507, "o", "\u001b[?2004h\u001b]0;eouser@stac-test: ~/catalogs/backend\u0007\u001b[01;32meouser@stac-test\u001b[00m:\u001b[01;34m~/catalogs/backend\u001b[00m$ "]
|
||||
[0.860592, "o", "python test_remotefdb.py "]
|
||||
[1.206129, "o", "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bsource catalogs/.venv/bin/activate"]
|
||||
[2.388112, "o", "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\u001b[9Ppython test_remotefdb.py "]
|
||||
[4.666292, "o", "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bsource catalogs/.venv/bin/activate"]
|
||||
[5.720147, "o", "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\u001b[9Ppython test_remotefdb.py "]
|
||||
[5.898183, "o", "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\u001b[K"]
|
||||
[7.606682, "o", "p"]
|
||||
[7.71761, "o", "y"]
|
||||
[7.879492, "o", "t"]
|
||||
[8.002022, "o", "h"]
|
||||
[8.043895, "o", "o"]
|
||||
[8.098641, "o", "n"]
|
||||
[8.226663, "o", " "]
|
||||
[8.482915, "o", "c"]
|
||||
[8.505358, "o", "a"]
|
||||
[8.807878, "o", "che.py "]
|
||||
[9.554525, "o", "\r\n\u001b[?2004l\r"]
|
||||
[23.001191, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.001593, "o", "Total: 200\r\nRuntime: 13 s\r\n└──\r\n"]
|
||||
[23.001818, "o", " └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.024055, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.024549, "o", "Total: 400\r\nRuntime: 13 s\r\n└──\r\n └──class=d1\r\n"]
|
||||
[23.024611, "o", " └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n"]
|
||||
[23.024934, "o", " └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.04771, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.04831, "o", "Total: 600\r\nRuntime: 13 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n"]
|
||||
[23.048381, "o", " └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.071379, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.071805, "o", "Total: 800\r\nRuntime: 13 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n"]
|
||||
[23.072001, "o", " └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.095691, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.096166, "o", "Total: 1000\r\nRuntime: 13 s\r\n└──\r\n"]
|
||||
[23.096233, "o", " └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n"]
|
||||
[23.096286, "o", " └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.120415, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.120912, "o", "Total: 1200\r\nRuntime: 13 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n"]
|
||||
[23.121285, "o", " └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.146966, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.147559, "o", "Total: 1400\r\nRuntime: 13 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n"]
|
||||
[23.147612, "o", " └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.173693, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.174089, "o", "Total: 1600\r\nRuntime: 13 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n"]
|
||||
[23.174185, "o", " └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.200989, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.201511, "o", "Total: 1800\r\nRuntime: 13 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n"]
|
||||
[23.20188, "o", " └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.2307, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.231334, "o", "Total: 2000\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n"]
|
||||
[23.231656, "o", " └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.259717, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.260358, "o", "Total: 2200\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n"]
|
||||
[23.260696, "o", " └──resolution=high\r\n"]
|
||||
[23.288767, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.289319, "o", "Total: 2400\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n"]
|
||||
[23.289401, "o", " └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.318851, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.319393, "o", "Total: 2600\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n"]
|
||||
[23.319446, "o", " └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.357623, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.358127, "o", "Total: 2800\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.388334, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.388761, "o", "Total: 3000\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n"]
|
||||
[23.388887, "o", " └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n"]
|
||||
[23.38899, "o", " └──resolution=high\r\n"]
|
||||
[23.419326, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.419771, "o", "Total: 3200\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.451479, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.45205, "o", "Total: 3400\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.483464, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.483965, "o", "Total: 3600\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n"]
|
||||
[23.484021, "o", " └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.516508, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.517036, "o", "Total: 3800\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.550592, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.551137, "o", "Total: 4000\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n"]
|
||||
[23.551205, "o", " └──generation=1\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.587142, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.587678, "o", "Total: 4200\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[23.58785, "o", " │ └──resolution=standard\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.623094, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.623625, "o", "Total: 4400\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n"]
|
||||
[23.623761, "o", " │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.658789, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.659331, "o", "Total: 4600\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[23.659457, "o", " │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.694361, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.694899, "o", "Total: 4800\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n"]
|
||||
[23.694938, "o", " └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.73034, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.730795, "o", "Total: 5000\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n"]
|
||||
[23.730954, "o", " │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.766944, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.767366, "o", "Total: 5200\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n"]
|
||||
[23.767415, "o", " └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n"]
|
||||
[23.767751, "o", " └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.803901, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.804356, "o", "Total: 5400\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n"]
|
||||
[23.804517, "o", " │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.842617, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.842905, "o", "Total: 5600\r\nRuntime: 14 s\r\n└──\r\n"]
|
||||
[23.843086, "o", " └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.881481, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.881743, "o", "Total: 5800\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n"]
|
||||
[23.88182, "o", " │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.921022, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.921331, "o", "Total: 6000\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n"]
|
||||
[23.921468, "o", " └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[23.961238, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[23.961708, "o", "Total: 6200\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n"]
|
||||
[23.961791, "o", " │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.002408, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.002895, "o", "Total: 6400\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n"]
|
||||
[24.002978, "o", " └──resolution=high\r\n"]
|
||||
[24.043759, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.044236, "o", "Total: 6600\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[24.044311, "o", " │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.086123, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.086601, "o", "Total: 6800\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n"]
|
||||
[24.086696, "o", " │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.128918, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.129432, "o", "Total: 7000\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.173033, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.173467, "o", "Total: 7200\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n"]
|
||||
[24.17357, "o", " │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.216584, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.217004, "o", "Total: 7400\r\nRuntime: 14 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n"]
|
||||
[24.217113, "o", " │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.261263, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.261743, "o", "Total: 7600\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n"]
|
||||
[24.261779, "o", " └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.306332, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.306779, "o", "Total: 7800\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n"]
|
||||
[24.306818, "o", " │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.351451, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.351911, "o", "Total: 8000\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422"]
|
||||
[24.351951, "o", "\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.399317, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.399807, "o", "Total: 8200\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n"]
|
||||
[24.399905, "o", " │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.447825, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.448315, "o", "Total: 8400\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n"]
|
||||
[24.448354, "o", " └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.496187, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.496619, "o", "Total: 8600\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n"]
|
||||
[24.496702, "o", " │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.545074, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.545545, "o", "Total: 8800\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[24.545582, "o", " │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.595303, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.595747, "o", "Total: 9000\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n"]
|
||||
[24.595837, "o", " └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.64594, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.646459, "o", "Total: 9200\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[24.646531, "o", " │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.697922, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.698416, "o", "Total: 9400\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n"]
|
||||
[24.698498, "o", " │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.749128, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.749621, "o", "Total: 9600\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[24.749658, "o", " │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.802131, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.80256, "o", "Total: 9800\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo"]
|
||||
[24.802639, "o", "\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.865052, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.865354, "o", "Total: 10000\r\n"]
|
||||
[24.86554, "o", "Runtime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.91872, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.919172, "o", "Total: 10200\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n"]
|
||||
[24.919254, "o", " │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[24.972327, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[24.972657, "o", "Total: 10400\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n"]
|
||||
[24.972694, "o", " │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.024978, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.025401, "o", "Total: 10600\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n"]
|
||||
[25.025442, "o", " │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.078272, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.078772, "o", "Total: 10800\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n"]
|
||||
[25.078858, "o", " └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.132303, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.13271, "o", "Total: 11000\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n"]
|
||||
[25.132904, "o", " │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.186435, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.186935, "o", "Total: 11200\r\nRuntime: 15 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[25.186973, "o", " │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.241462, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.241923, "o", "Total: 11400\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[25.241989, "o", " │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.297149, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.297605, "o", "Total: 11600\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n"]
|
||||
[25.297781, "o", " ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.355901, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.356392, "o", "Total: 11800\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n"]
|
||||
[25.356491, "o", " └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.412731, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.413217, "o", "Total: 12000\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n"]
|
||||
[25.413409, "o", " └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.470779, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.471218, "o", "Total: 12200\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n"]
|
||||
[25.471262, "o", " └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.528497, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.528946, "o", "Total: 12400\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n"]
|
||||
[25.528983, "o", " └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.58768, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.588168, "o", "Total: 12600\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n"]
|
||||
[25.588232, "o", " │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.646322, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.646838, "o", "Total: 12800\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n"]
|
||||
[25.646876, "o", " └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.705794, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.706287, "o", "Total: 13000\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n"]
|
||||
[25.706453, "o", " │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.76671, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.767182, "o", "Total: 13200\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n"]
|
||||
[25.767352, "o", " └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.828388, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.828951, "o", "Total: 13400\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[25.828994, "o", " │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.890025, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.890438, "o", "Total: 13600\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n"]
|
||||
[25.890554, "o", " ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[25.951877, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[25.952384, "o", "Total: 13800\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n"]
|
||||
[25.952556, "o", " │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.015263, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.015827, "o", "Total: 14000\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.079166, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.079693, "o", "Total: 14200\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.143245, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.143743, "o", "Total: 14400\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.20821, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.208801, "o", "Total: 14600\r\nRuntime: 16 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n"]
|
||||
[26.20894, "o", " │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.274143, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.274687, "o", "Total: 14800\r\nRuntime: 17 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.34619, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.346549, "o", "Total: 15000\r\nRuntime: 17 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[26.346689, "o", " │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.412054, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.412602, "o", "Total: 15200\r\nRuntime: 17 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n"]
|
||||
[26.412681, "o", " └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.4795, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.480173, "o", "Total: 15400\r\nRuntime: 17 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.547527, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.548221, "o", "Total: 15600\r\nRuntime: 17 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n"]
|
||||
[26.548442, "o", " │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.616117, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.616775, "o", "Total: 15800\r\nRuntime: 17 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n"]
|
||||
[26.617001, "o", " └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.684421, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.685074, "o", "Total: 16000\r\nRuntime: 17 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n"]
|
||||
[26.685301, "o", " └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.753891, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.754547, "o", "Total: 16200\r\nRuntime: 17 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n"]
|
||||
[26.754812, "o", " └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.823974, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.82464, "o", "Total: 16400\r\nRuntime: 17 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.897401, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.898115, "o", "Total: 16600\r\nRuntime: 17 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n"]
|
||||
[26.898345, "o", " │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[26.968419, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[26.969061, "o", "Total: 16800\r\nRuntime: 17 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[27.039554, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[27.040173, "o", "Total: 17000\r\nRuntime: 17 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n"]
|
||||
[27.040394, "o", " └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[27.111089, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[27.111728, "o", "Total: 17200\r\nRuntime: 17 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n"]
|
||||
[27.111952, "o", " └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[27.183352, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[27.183884, "o", "Total: 17400\r\nRuntime: 17 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n"]
|
||||
[27.183967, "o", " │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[27.255989, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[27.256662, "o", "Total: 17600\r\nRuntime: 18 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n"]
|
||||
[27.256886, "o", " └──resolution=high\r\n"]
|
||||
[27.329402, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[27.330001, "o", "Total: 17800\r\nRuntime: 18 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[27.406358, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[27.406844, "o", "Total: 18000\r\nRuntime: 18 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[27.489238, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[27.489653, "o", "Total: 18200\r\nRuntime: 18 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[27.564484, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[27.564967, "o", "Total: 18400\r\nRuntime: 18 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[27.565044, "o", " │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[27.639824, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[27.640367, "o", "Total: 18600\r\nRuntime: 18 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n"]
|
||||
[27.64059, "o", " └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[27.716224, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[27.716698, "o", "Total: 18800\r\nRuntime: 18 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[27.716914, "o", " │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[27.792047, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[27.792521, "o", "Total: 19000\r\nRuntime: 18 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n"]
|
||||
[27.792729, "o", " │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[27.869003, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[27.869477, "o", "Total: 19200\r\nRuntime: 18 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n"]
|
||||
[27.869694, "o", " └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[27.955881, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[27.956271, "o", "Total: 19400\r\nRuntime: 18 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[28.033745, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[28.034299, "o", "Total: 19600\r\nRuntime: 18 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[28.112317, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[28.11285, "o", "Total: 19800\r\nRuntime: 18 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n"]
|
||||
[28.112936, "o", " │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[28.19266, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[28.193071, "o", "Total: 20000\r\nRuntime: 18 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n"]
|
||||
[28.193203, "o", " │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[28.273245, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[28.273857, "o", "Total: 20200\r\nRuntime: 19 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n"]
|
||||
[28.273992, "o", " │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[28.354753, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[28.355375, "o", "Total: 20400\r\nRuntime: 19 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n"]
|
||||
[28.355505, "o", " │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[28.444117, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[28.44456, "o", "Total: 20600\r\nRuntime: 19 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n"]
|
||||
[28.444688, "o", " ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[28.526831, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[28.52736, "o", "Total: 20800\r\nRuntime: 19 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n"]
|
||||
[28.527497, "o", " └──resolution=high\r\n"]
|
||||
[28.61032, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[28.610861, "o", "Total: 21000\r\nRuntime: 19 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n"]
|
||||
[28.611001, "o", " └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[28.694276, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[28.69481, "o", "Total: 21200\r\nRuntime: 19 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[28.694949, "o", " │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[28.778291, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[28.778808, "o", "Total: 21400\r\nRuntime: 19 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[28.778947, "o", " │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[28.863282, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[28.863763, "o", "Total: 21600\r\nRuntime: 19 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n"]
|
||||
[28.86391, "o", " │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[28.958933, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[28.959422, "o", "Total: 21800\r\nRuntime: 19 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n"]
|
||||
[28.959567, "o", " │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[29.043729, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[29.044273, "o", "Total: 22000\r\nRuntime: 19 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[29.044447, "o", " │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[29.129213, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[29.129714, "o", "Total: 22200\r\nRuntime: 19 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[29.129812, "o", " │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[29.216052, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[29.216541, "o", "Total: 22400\r\nRuntime: 19 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n"]
|
||||
[29.216682, "o", " │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[29.303481, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[29.303965, "o", "Total: 22600\r\nRuntime: 20 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n"]
|
||||
[29.304106, "o", " │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[29.392171, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[29.392601, "o", "Total: 22800\r\nRuntime: 20 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[29.481784, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[29.482275, "o", "Total: 23000\r\nRuntime: 20 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[29.482436, "o", " │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[29.570783, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[29.571214, "o", "Total: 23200\r\nRuntime: 20 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n"]
|
||||
[29.571388, "o", " │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[29.660404, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[29.660968, "o", "Total: 23400\r\nRuntime: 20 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[29.661127, "o", " │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[29.75088, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[29.751383, "o", "Total: 23600\r\nRuntime: 20 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[29.751523, "o", " │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[29.840945, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[29.841479, "o", "Total: 23800\r\nRuntime: 20 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[29.841651, "o", " │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[29.939532, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[29.939978, "o", "Total: 24000\r\nRuntime: 20 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[30.031567, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[30.032026, "o", "Total: 24200\r\nRuntime: 20 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[30.032186, "o", " │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[30.124271, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[30.12472, "o", "Total: 24400\r\nRuntime: 20 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[30.124878, "o", " │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[30.216403, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[30.216868, "o", "Total: 24600\r\nRuntime: 20 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n"]
|
||||
[30.217012, "o", " │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[30.310204, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[30.310798, "o", "Total: 24800\r\nRuntime: 21 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[30.310966, "o", " │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[30.406164, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[30.406689, "o", "Total: 25000\r\nRuntime: 21 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[30.406834, "o", " │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[30.517033, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[30.517415, "o", "Total: 25200\r\nRuntime: 21 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n"]
|
||||
[30.51753, "o", " │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[30.611921, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[30.612402, "o", "Total: 25400\r\nRuntime: 21 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n"]
|
||||
[30.612505, "o", " └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[30.713763, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[30.714288, "o", "Total: 25600\r\nRuntime: 21 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n"]
|
||||
[30.714409, "o", " │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[30.811203, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[30.81176, "o", "Total: 25800\r\nRuntime: 21 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n"]
|
||||
[30.811859, "o", " │ └──resolution=high\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[30.909483, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[30.910962, "o", "Total: 26000\r\nRuntime: 21 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n"]
|
||||
[30.911082, "o", " │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[31.009725, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[31.010174, "o", "Total: 26200\r\nRuntime: 21 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n"]
|
||||
[31.010311, "o", " │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[31.108865, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[31.109352, "o", "Total: 26400\r\nRuntime: 21 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n"]
|
||||
[31.109503, "o", " │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[31.208702, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[31.20937, "o", "Total: 26600\r\nRuntime: 21 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n"]
|
||||
[31.209472, "o", " │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[31.309207, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[31.309729, "o", "Total: 26800\r\nRuntime: 22 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n"]
|
||||
[31.30984, "o", " │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[31.411826, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[31.415924, "o", "Total: 27000\r\nRuntime: 22 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n"]
|
||||
[31.416088, "o", " │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[31.517116, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[31.517615, "o", "Total: 27200\r\nRuntime: 22 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n"]
|
||||
[31.517732, "o", " │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[31.619249, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[31.61975, "o", "Total: 27400\r\nRuntime: 22 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n"]
|
||||
[31.619867, "o", " │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[31.722157, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[31.722738, "o", "Total: 27600\r\nRuntime: 22 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n"]
|
||||
[31.722879, "o", " │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[31.826059, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[31.82672, "o", "Total: 27800\r\nRuntime: 22 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[31.949521, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[31.950074, "o", "Total: 28000\r\nRuntime: 22 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n"]
|
||||
[31.950228, "o", " │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[32.054064, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[32.054546, "o", "Total: 28200\r\nRuntime: 22 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n"]
|
||||
[32.054699, "o", " │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[32.159264, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[32.159791, "o", "Total: 28400\r\nRuntime: 22 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n"]
|
||||
[32.159934, "o", " │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[32.267038, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[32.267597, "o", "Total: 28600\r\nRuntime: 23 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n"]
|
||||
[32.267725, "o", " │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[32.372321, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[32.372811, "o", "Total: 28800\r\nRuntime: 23 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n"]
|
||||
[32.372924, "o", " │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[32.488625, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[32.489008, "o", "Total: 29000\r\nRuntime: 23 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n"]
|
||||
[32.489172, "o", " │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[32.596762, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[32.597214, "o", "Total: 29200\r\nRuntime: 23 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n"]
|
||||
[32.597329, "o", " │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[32.704136, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[32.704728, "o", "Total: 29400\r\nRuntime: 23 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n"]
|
||||
[32.704889, "o", " │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[32.812243, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[32.812737, "o", "Total: 29600\r\nRuntime: 23 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n"]
|
||||
[32.812946, "o", " │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[32.925347, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[32.925873, "o", "Total: 29800\r\nRuntime: 23 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n"]
|
||||
[32.925978, "o", " │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[33.035227, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[33.035712, "o", "Total: 30000\r\nRuntime: 23 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n"]
|
||||
[33.035851, "o", " │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[33.149101, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[33.14984, "o", "Total: 30200\r\nRuntime: 23 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n"]
|
||||
[33.149965, "o", " │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[33.265082, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[33.265767, "o", "Total: 30400\r\nRuntime: 24 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n"]
|
||||
[33.265862, "o", " │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[33.376619, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[33.377289, "o", "Total: 30600\r\nRuntime: 24 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n"]
|
||||
[33.377371, "o", " └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[33.507592, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[33.508104, "o", "Total: 30800\r\nRuntime: 24 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n"]
|
||||
[33.508207, "o", " └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[33.621187, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[33.621716, "o", "Total: 31000\r\nRuntime: 24 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n"]
|
||||
[33.621859, "o", " │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[33.734764, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[33.735202, "o", "Total: 31200\r\nRuntime: 24 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n"]
|
||||
[33.735364, "o", " │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[33.847903, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[33.848397, "o", "Total: 31400\r\nRuntime: 24 s\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n"]
|
||||
[33.848534, "o", " │ │ └──resolution=high\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ │ └──resolution=standard\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n │ └──resolution=standard,high\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n └──resolution=high\r\n"]
|
||||
[33.951751, "o", "\u001b[H\u001b[2J\u001b[3J"]
|
||||
[33.952159, "o", "Total: 31475\r\nRuntime: 0 mins\r\n└──\r\n └──class=d1\r\n └──dataset=climate-dt\r\n ├──activity=highresmip\r\n │ └──experiment=cont\r\n │ └──generation=1\r\n │ └──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=0001\r\n │ │ └──stream=clte\r\n"]
|
||||
[33.952288, "o", " │ │ └──date=19920422\r\n │ └──expver=a16z\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n └──activity=cmip6\r\n └──experiment=hist\r\n └──generation=1\r\n ├──model=ifs-nemo\r\n │ └──realization=1\r\n │ ├──expver=a18j\r\n │ │ └──stream=clte\r\n │ │ └──date=19920422\r\n │ └──expver=0001\r\n │ └──stream=clte\r\n │ └──date=19920422\r\n └──model=icon\r\n └──realization=1\r\n └──expver=0001\r\n └──stream=clte\r\n └──date=19920422\r\n"]
|
||||
[34.079052, "o", "\u001b[?2004h\u001b]0;eouser@stac-test: ~/catalogs/backend\u0007\u001b[01;32meouser@stac-test\u001b[00m:\u001b[01;34m~/catalogs/backend\u001b[00m$ "]
|
||||
[37.231121, "o", "\u001b[?2004l\r\r\nexit\r\n"]
|
@ -111,9 +111,10 @@ fdb_schema = pe.compile(
|
||||
KeySpec <- key:String (flag:Flag)? (type:Type)? (values:Values)? ([ ]* comment:Comment)?
|
||||
Flag <- ~("?" / "-" / "*")
|
||||
Type <- ":" [ ]* String
|
||||
Values <- "=" String ("/" String)*
|
||||
Values <- "=" Value ("/" Value)*
|
||||
|
||||
# Low level stuff
|
||||
Value <- ~([-a-zA-Z0-9_]+)
|
||||
String <- ~([a-zA-Z0-9_]+)
|
||||
EOF <- !.
|
||||
empty <- ""
|
||||
@ -161,6 +162,9 @@ class Key:
|
||||
key_spec: KeySpec
|
||||
reason: str
|
||||
|
||||
def str_value(self):
|
||||
return self.key_spec.type.format(self.value)
|
||||
|
||||
def __bool__(self):
|
||||
return self.reason in {"Matches", "Skipped", "Select All"}
|
||||
|
||||
@ -178,7 +182,7 @@ class Key:
|
||||
def as_json(self):
|
||||
return dict(
|
||||
key=self.key,
|
||||
value=self.as_string(),
|
||||
value=self.str_value(),
|
||||
reason=self.reason,
|
||||
)
|
||||
|
41
cache/raw_to_tree.py
vendored
Normal file
41
cache/raw_to_tree.py
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
import time
|
||||
from collections import defaultdict
|
||||
import os
|
||||
from fdb_schema import FDBSchemaFile
|
||||
import json
|
||||
|
||||
from compress_tree import print_schema_tree, compress_tree
|
||||
|
||||
schema = FDBSchemaFile("/home/eouser/catalogs/backend/destinE_schema")
|
||||
|
||||
tree = {}
|
||||
i = 0
|
||||
t0 = time.time()
|
||||
with open("raw_list", "r") as f:
|
||||
for line in f.readlines():
|
||||
i += 1
|
||||
# if i > 100: break
|
||||
if not line.startswith("{"): continue
|
||||
line = line.strip().replace("{", "").replace("}", ",")
|
||||
# d = dict((k.split("=") for k in line.split(",") if k))
|
||||
# _, m = schema.match(d)
|
||||
loc = tree
|
||||
for k in line.split(","):
|
||||
if k:
|
||||
if k not in loc: loc[k] = {}
|
||||
loc = loc[k]
|
||||
|
||||
if i % 10_000 == 0:
|
||||
# compressed_tree = compress_tree(tree, max_level = None)
|
||||
# with open("cache.json", "w") as f:
|
||||
# json.dump(tree, f)
|
||||
|
||||
os.system("clear")
|
||||
print(f"Total: {i}")
|
||||
print(f"Runtime: {(time.time() - t0):.0f} s")
|
||||
# print_tree(tree, max_depth = 7)
|
||||
# print_schema_tree(compressed_tree)
|
||||
|
||||
with open("cache.json", "w") as f:
|
||||
json.dump(tree, f)
|
||||
print(tree)
|
12
cache/tree_to_compressed.py
vendored
Normal file
12
cache/tree_to_compressed.py
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
from compress_tree import print_schema_tree, compress_tree
|
||||
import json
|
||||
|
||||
print("Loading tree json...")
|
||||
with open("cache.json", "r") as f:
|
||||
tree = json.load(f)
|
||||
|
||||
print("Compresssing...")
|
||||
compressed_tree = compress_tree(tree, max_level = None)
|
||||
|
||||
print("Outputting")
|
||||
print_schema_tree(compressed_tree)
|
1
fdb_schema/__init__.py
Normal file
1
fdb_schema/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
from .fdb_schema_parser import FDBSchema, FDBSchemaFile, KeySpec, Key
|
375
fdb_schema/fdb_schema_parser.py
Normal file
375
fdb_schema/fdb_schema_parser.py
Normal file
@ -0,0 +1,375 @@
|
||||
import dataclasses
|
||||
import json
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Any
|
||||
|
||||
import pe
|
||||
from pe.actions import Pack
|
||||
from pe.operators import Class, Star
|
||||
|
||||
from .fdb_types import FDB_type_to_implementation, FDBType
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class KeySpec:
|
||||
"""
|
||||
Represents the specification of a single key in an FDB schema file. For example in
|
||||
```
|
||||
[ class, expver, stream=lwda, date, time, domain?
|
||||
[ type=ofb/mfb/oai
|
||||
[ obsgroup, reportype ]]]
|
||||
```
|
||||
class, expver, type=ofdb/mfb/oai etc are the KeySpecs
|
||||
|
||||
These can have additional information such as: flags like `domain?`, allowed values like `type=ofb/mfb/oai`
|
||||
or specify type information with `date: ClimateMonthly`
|
||||
|
||||
"""
|
||||
|
||||
key: str
|
||||
type: FDBType = field(default_factory=FDBType)
|
||||
flag: str | None = None
|
||||
values: tuple = field(default_factory=tuple)
|
||||
comment: str = ""
|
||||
|
||||
def __repr__(self):
|
||||
repr = self.key
|
||||
if self.flag:
|
||||
repr += self.flag
|
||||
# if self.type:
|
||||
# repr += f":{self.type}"
|
||||
if self.values:
|
||||
repr += "=" + "/".join(self.values)
|
||||
return repr
|
||||
|
||||
def matches(self, key, value):
|
||||
# Sanity check!
|
||||
if self.key != key:
|
||||
return False
|
||||
|
||||
# Some keys have a set of allowed values type=ofb/mfb/oai
|
||||
if self.values:
|
||||
if value not in self.values:
|
||||
return False
|
||||
|
||||
# Check the formatting of values like Time or Date
|
||||
if self.type and not self.type.validate(value):
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def is_optional(self):
|
||||
if self.flag is None:
|
||||
return False
|
||||
return "?" in self.flag
|
||||
|
||||
def is_allable(self):
|
||||
if self.flag is None:
|
||||
return False
|
||||
return "*" in self.flag
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class Comment:
|
||||
"Represents a comment node in the schema"
|
||||
|
||||
value: str
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class FDBSchemaTypeDef:
|
||||
"Mapping between FDB schema key names and FDB Schema Types, i.e expver is of type Expver"
|
||||
|
||||
key: str
|
||||
type: str
|
||||
|
||||
|
||||
# This is the schema grammar written in PEG format
|
||||
fdb_schema = pe.compile(
|
||||
r"""
|
||||
FDB < Line+ EOF
|
||||
Line < Schema / Comment / TypeDef / empty
|
||||
|
||||
# Comments
|
||||
Comment <- "#" ~non_eol*
|
||||
non_eol <- [\x09\x20-\x7F] / non_ascii
|
||||
non_ascii <- [\x80-\uD7FF\uE000-\U0010FFFF]
|
||||
|
||||
# Default Type Definitions
|
||||
TypeDef < String ":" String ";"
|
||||
|
||||
# Schemas are the main attraction
|
||||
# They're a tree of KeySpecs.
|
||||
Schema < "[" KeySpecs (","? Schema)* "]"
|
||||
|
||||
# KeySpecs can be just a name i.e expver
|
||||
# Can also have a type expver:int
|
||||
# Or a flag expver?
|
||||
# Or values expver=xxx
|
||||
KeySpecs < KeySpec_ws ("," KeySpec_ws)*
|
||||
KeySpec_ws < KeySpec
|
||||
KeySpec <- key:String (flag:Flag)? (type:Type)? (values:Values)? ([ ]* comment:Comment)?
|
||||
Flag <- ~("?" / "-" / "*")
|
||||
Type <- ":" [ ]* String
|
||||
Values <- "=" Value ("/" Value)*
|
||||
|
||||
# Low level stuff
|
||||
Value <- ~([-a-zA-Z0-9_]+)
|
||||
String <- ~([a-zA-Z0-9_]+)
|
||||
EOF <- !.
|
||||
empty <- ""
|
||||
""",
|
||||
actions={
|
||||
"Schema": Pack(tuple),
|
||||
"KeySpec": KeySpec,
|
||||
"Values": Pack(tuple),
|
||||
"Comment": Comment,
|
||||
"TypeDef": FDBSchemaTypeDef,
|
||||
},
|
||||
ignore=Star(Class("\t\f\r\n ")),
|
||||
# flags=pe.DEBUG,
|
||||
)
|
||||
|
||||
|
||||
def post_process(entries):
|
||||
"Take the raw output from the PEG parser and split it into type definitions and schema entries."
|
||||
typedefs = {}
|
||||
schemas = []
|
||||
for entry in entries:
|
||||
match entry:
|
||||
case c if isinstance(c, Comment):
|
||||
pass
|
||||
case t if isinstance(t, FDBSchemaTypeDef):
|
||||
typedefs[t.key] = t.type
|
||||
case s if isinstance(s, tuple):
|
||||
schemas.append(s)
|
||||
case _:
|
||||
raise ValueError
|
||||
return typedefs, tuple(schemas)
|
||||
|
||||
|
||||
def determine_types(types, node):
|
||||
"Recursively walk a schema tree and insert the type information."
|
||||
if isinstance(node, tuple):
|
||||
return [determine_types(types, n) for n in node]
|
||||
return dataclasses.replace(node, type=types.get(node.key, FDBType()))
|
||||
|
||||
|
||||
@dataclass
|
||||
class Key:
|
||||
key: str
|
||||
value: Any
|
||||
key_spec: KeySpec
|
||||
reason: str
|
||||
|
||||
def str_value(self):
|
||||
return self.key_spec.type.format(self.value)
|
||||
|
||||
def __bool__(self):
|
||||
return self.reason in {"Matches", "Skipped", "Select All"}
|
||||
|
||||
def emoji(self):
|
||||
return {"Matches": "✅", "Skipped": "⏭️", "Select All": "★"}.get(
|
||||
self.reason, "❌"
|
||||
)
|
||||
|
||||
def info(self):
|
||||
return f"{self.emoji()} {self.key:<12}= {str(self.value):<12} ({self.key_spec}) {self.reason if not self else ''}"
|
||||
|
||||
def __repr__(self):
|
||||
return f"{self.key}={self.key_spec.type.format(self.value)}"
|
||||
|
||||
def as_json(self):
|
||||
return dict(
|
||||
key=self.key,
|
||||
value=self.str_value(),
|
||||
reason=self.reason,
|
||||
)
|
||||
|
||||
|
||||
class FDBSchema:
|
||||
"""
|
||||
Represents a parsed FDB Schema file.
|
||||
Has methods to validate and convert request dictionaries to a mars request form with validation and type information.
|
||||
"""
|
||||
|
||||
def __init__(self, string, defaults: dict[str, str] = {}):
|
||||
"""
|
||||
1. Use a PEG parser on a schema string,
|
||||
2. Separate the output into schemas and typedefs
|
||||
3. Insert any concrete implementations of types from fdb_types.py defaulting to generic string type
|
||||
4. Walk the schema tree and annotate it with type information.
|
||||
"""
|
||||
m = fdb_schema.match(string)
|
||||
g = list(m.groups())
|
||||
self._str_types, schemas = post_process(g)
|
||||
self.types = {
|
||||
key: FDB_type_to_implementation[type]
|
||||
for key, type in self._str_types.items()
|
||||
}
|
||||
self.schemas = determine_types(self.types, schemas)
|
||||
self.defaults = defaults
|
||||
|
||||
def __repr__(self):
|
||||
return json.dumps(
|
||||
dict(schemas=self.schemas, defaults=self.defaults), indent=4, default=repr
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def consume_key(
|
||||
cls, key_spec: KeySpec, request: dict[str, Any]
|
||||
) -> Key:
|
||||
key = key_spec.key
|
||||
try:
|
||||
value = request[key]
|
||||
except KeyError:
|
||||
if key_spec.is_optional():
|
||||
return Key(key_spec.key, "", key_spec, "Skipped")
|
||||
if key_spec.is_allable():
|
||||
return Key(key_spec.key, "", key_spec, "Select All")
|
||||
else:
|
||||
return Key(
|
||||
key_spec.key, "", key_spec, "Key Missing"
|
||||
)
|
||||
|
||||
if key_spec.matches(key, value):
|
||||
return Key(
|
||||
key_spec.key,
|
||||
key_spec.type.parse(value),
|
||||
key_spec,
|
||||
"Matches",
|
||||
)
|
||||
else:
|
||||
return Key(
|
||||
key_spec.key, value, key_spec, "Incorrect Value"
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def _DFS_match(
|
||||
cls, tree: list, request: dict[str, Any]
|
||||
) -> tuple[bool | list, list[Key]]:
|
||||
"""Do a DFS on the schema tree, returning the deepest matching path
|
||||
At each stage return whether we matched on this path, and the path itself.
|
||||
|
||||
When traversing the tree there are three cases to consider:
|
||||
1. base case []
|
||||
2. one schema [k, k, k, [k, k, k]]
|
||||
3. list of schemas [[k,k,k], [k,k,k], [k,k,k]]
|
||||
"""
|
||||
# Case 1: Base Case
|
||||
if not tree:
|
||||
return True, []
|
||||
|
||||
# Case 2: [k, k, k, [k, k, k]]
|
||||
if isinstance(tree[0], KeySpec):
|
||||
node, *tree = tree
|
||||
# Check if this node is in the request
|
||||
match_result = cls.consume_key(node, request)
|
||||
|
||||
# If if isn't then terminate this path here
|
||||
if not match_result:
|
||||
return False, [match_result,] # fmt: skip
|
||||
|
||||
# Otherwise continue walking the tree and return the best result
|
||||
matched, path = cls._DFS_match(tree, request)
|
||||
|
||||
# Don't put the key in the path if it's optional and we're skipping it.
|
||||
if match_result.reason != "Skipped":
|
||||
path = [match_result,] + path # fmt: skip
|
||||
|
||||
return matched, path
|
||||
|
||||
# Case 3: [[k, k, k], [k, k, k]]
|
||||
branches = []
|
||||
for branch in tree:
|
||||
matched, branch_path = cls._DFS_match(branch, request)
|
||||
|
||||
# If this branch matches, terminate the DFS and use this.
|
||||
if matched:
|
||||
return branch, branch_path
|
||||
else:
|
||||
branches.append(branch_path)
|
||||
|
||||
# If no branch matches, return the one with the deepest match
|
||||
return False, max(branches, key=len)
|
||||
|
||||
@classmethod
|
||||
def _DFS_match_all(
|
||||
cls, tree: list, request: dict[str, Any]
|
||||
) -> list[list[Key]]:
|
||||
"""Do a DFS on the schema tree, returning all matching paths or partial matches.
|
||||
At each stage return all matching paths and the deepest partial matches.
|
||||
|
||||
When traversing the tree there are three cases to consider:
|
||||
1. base case []
|
||||
2. one schema [k, k, k, [k, k, k]]
|
||||
3. list of schemas [[k,k,k], [k,k,k], [k,k,k]]
|
||||
"""
|
||||
# Case 1: Base Case
|
||||
if not tree:
|
||||
return [[]]
|
||||
|
||||
# Case 2: [k, k, k, [k, k, k]]
|
||||
if isinstance(tree[0], KeySpec):
|
||||
node, *tree = tree
|
||||
# Check if this node is in the request
|
||||
request_values = request.get(node.key, None)
|
||||
|
||||
if request_values is None:
|
||||
# If the key is not in the request, return a partial match with Key Missing
|
||||
return [[Key(node.key, "", node, "Key Missing")]]
|
||||
|
||||
# If the request value is a list, try to match each value
|
||||
if isinstance(request_values, list):
|
||||
all_matches = []
|
||||
for value in request_values:
|
||||
match_result = cls.consume_key(node, {node.key: value})
|
||||
|
||||
if match_result:
|
||||
sub_matches = cls._DFS_match_all(tree, request)
|
||||
for match in sub_matches:
|
||||
if match_result.reason != "Skipped":
|
||||
match.insert(0, match_result)
|
||||
all_matches.append(match)
|
||||
|
||||
return all_matches if all_matches else [[Key(node.key, "", node, "No Match Found")]]
|
||||
else:
|
||||
# Handle a single value
|
||||
match_result = cls.consume_key(node, request)
|
||||
|
||||
# If it isn't then return a partial match with Key Missing
|
||||
if not match_result:
|
||||
return [[Key(node.key, "", node, "Key Missing")]]
|
||||
|
||||
# Continue walking the tree and get all matches
|
||||
all_matches = cls._DFS_match_all(tree, request)
|
||||
|
||||
# Prepend the current match to all further matches
|
||||
for match in all_matches:
|
||||
if match_result.reason != "Skipped":
|
||||
match.insert(0, match_result)
|
||||
|
||||
return all_matches
|
||||
|
||||
# Case 3: [[k, k, k], [k, k, k]]
|
||||
all_branch_matches = []
|
||||
for branch in tree:
|
||||
branch_matches = cls._DFS_match_all(branch, request)
|
||||
all_branch_matches.extend(branch_matches)
|
||||
|
||||
# Return all of the deepest partial matches or complete matches
|
||||
return all_branch_matches
|
||||
|
||||
def match_all(self, request: dict[str, Any]):
|
||||
request = request | self.defaults
|
||||
return self._DFS_match_all(self.schemas, request)
|
||||
|
||||
def match(self, request: dict[str, Any]):
|
||||
request = request | self.defaults
|
||||
return self._DFS_match(self.schemas, request)
|
||||
|
||||
|
||||
class FDBSchemaFile(FDBSchema):
|
||||
def __init__(self, path: str):
|
||||
with open(path, "r") as f:
|
||||
return super().__init__(f.read())
|
83
fdb_schema/fdb_types.py
Normal file
83
fdb_schema/fdb_types.py
Normal file
@ -0,0 +1,83 @@
|
||||
from dataclasses import dataclass
|
||||
from typing import Any
|
||||
import re
|
||||
from collections import defaultdict
|
||||
from datetime import datetime, date, time
|
||||
|
||||
|
||||
@dataclass(repr=False)
|
||||
class FDBType:
|
||||
"""
|
||||
Holds information about how to format and validate a given FDB Schema type like Time or Expver
|
||||
This base type represents a string and does no validation or formatting. It's the default type.
|
||||
"""
|
||||
|
||||
name: str = "String"
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return self.name
|
||||
|
||||
def validate(self, s: Any) -> bool:
|
||||
try:
|
||||
self.parse(s)
|
||||
return True
|
||||
except (ValueError, AssertionError):
|
||||
return False
|
||||
|
||||
def format(self, s: Any) -> str:
|
||||
return str(s).lower()
|
||||
|
||||
def parse(self, s: str) -> Any:
|
||||
return s
|
||||
|
||||
|
||||
@dataclass(repr=False)
|
||||
class Expver_FDBType(FDBType):
|
||||
name: str = "Expver"
|
||||
|
||||
def parse(self, s: str) -> str:
|
||||
assert bool(re.match(".{4}", s))
|
||||
return s
|
||||
|
||||
|
||||
@dataclass(repr=False)
|
||||
class Time_FDBType(FDBType):
|
||||
name: str = "Time"
|
||||
time_format = "%H%M"
|
||||
|
||||
def format(self, t: time) -> str:
|
||||
return t.strftime(self.time_format)
|
||||
|
||||
def parse(self, s: datetime | str | int) -> time:
|
||||
if isinstance(s, str):
|
||||
assert len(s) == 4
|
||||
return datetime.strptime(s, self.time_format).time()
|
||||
if isinstance(s, datetime):
|
||||
return s.time()
|
||||
return self.parse(f"{s:04}")
|
||||
|
||||
|
||||
@dataclass(repr=False)
|
||||
class Date_FDBType(FDBType):
|
||||
name: str = "Date"
|
||||
date_format: str = "%Y%m%d"
|
||||
|
||||
def format(self, d: Any) -> str:
|
||||
if isinstance(d, date):
|
||||
return d.strftime(self.date_format)
|
||||
if isinstance(d, int):
|
||||
return f"{d:08}"
|
||||
else:
|
||||
return d
|
||||
|
||||
def parse(self, s: datetime | str | int) -> date:
|
||||
if isinstance(s, str):
|
||||
return datetime.strptime(s, self.date_format).date()
|
||||
elif isinstance(s, datetime):
|
||||
return s.date()
|
||||
return self.parse(f"{s:08}")
|
||||
|
||||
|
||||
FDB_type_to_implementation = defaultdict(lambda: FDBType()) | {
|
||||
cls.name: cls() for cls in [Expver_FDBType, Time_FDBType, Date_FDBType]
|
||||
}
|
7
run.sh
7
run.sh
@ -1,2 +1,7 @@
|
||||
cd backend
|
||||
fastapi dev main.py
|
||||
# ../.venv/bin/fastapi dev main.py
|
||||
../.venv/bin/uvicorn main:app --reload \
|
||||
--reload-include="*.html" \
|
||||
--reload-include="*.css" \
|
||||
--reload-include="*.js" \
|
||||
--reload-include="*.yaml"
|
7
run_prod.sh
Executable file
7
run_prod.sh
Executable file
@ -0,0 +1,7 @@
|
||||
cd backend
|
||||
# sudo ../.venv/bin/fastapi dev main.py --port 80
|
||||
sudo ../.venv/bin/uvicorn main:app --port 80 --host 0.0.0.0 --reload\
|
||||
--reload-include="*.html" \
|
||||
--reload-include="*.css" \
|
||||
--reload-include="*.js" \
|
||||
--reload-include="*.yaml"
|
Loading…
x
Reference in New Issue
Block a user