Skip to content
Snippets Groups Projects
Commit 93c4c3a9 authored by Carsten Hinz's avatar Carsten Hinz
Browse files

fixed remaining typos in standard_name

parent 9f4274fd
No related branches found
No related tags found
1 merge request!11Creation of first beta release version
%% Cell type:code id: tags:
``` python
from datetime import datetime as dt
from collections import namedtuple
from pathlib import Path
from toargridding.toar_rest_client import AnalysisServiceDownload, Connection
from toargridding.grids import RegularGrid
from toargridding.gridding import get_gridded_toar_data
from toargridding.metadata import TimeSample
```
%% Cell type:code id: tags:
``` python
#creation of request.
Config = namedtuple("Config", ["grid", "time", "variables", "stats","moreOptions"])
#moreOptions is implemented as a dict to add additional arguments to the query to the REST API
#For example the field toar1_category with its possible values Urban, RuralLowElevation, RuralHighElevation and Unclassified can be added.
#see page 18 in https://toar-data.fz-juelich.de/sphinx/TOAR_UG_Vol03_Database/build/latex/toardatabase--userguide.pdf
#or type_of_area with urban, suburban and rural on page 20 can be used
details4Query ={
#"toar1_category" : "Urban" #uncomment if wished:-)
#"toar1_category" : "RuralLowElevation" #uncomment if wished:-)
#"toar1_category" : "RuralHighElevation" #uncomment if wished:-)
#"type_of_area" : "Urban" #also test Rural, Suburban,
"type_of_area" : "Rural" #also test Rural, Suburban,
#"type_of_area" : "Suburban" #also test Rural, Suburban,
}
grid = RegularGrid( lat_resolution=1.9, lon_resolution=2.5, )
configs = dict()
for year in range(0,19):
for year in range(18,19):
valid_data = Config(
grid,
TimeSample( start=dt(2000+year,1,1), end=dt(2000+year,12,31), sampling="daily"),#possibly adopt range:-)
["mole_fraction_of_ozone_in_air"],#variable name
#[ "mean", "dma8epax"],# will start one request after another other...
[ "dma8epa_strict" ],
details4Query
)
configs[f"test_ta{year}"] = valid_data
```
%% Cell type:code id: tags:
``` python
#CAVE: this cell runs about 45minutes per requested year. therefore we increase the waiting duration to 1h per request.
#the processing is done on the server of the TOAR database.
#a restart of the cell continues the request to the REST API if the requested data are ready for download
# The download can also take a few minutes
stats_endpoint = "https://toar-data.fz-juelich.de/api/v2/analysis/statistics/"
cache_basepath = Path("cache")
result_basepath = Path("results")
cache_basepath.mkdir(exist_ok=True)
result_basepath.mkdir(exist_ok=True)
analysis_service = AnalysisServiceDownload(stats_endpoint=stats_endpoint, cache_dir=cache_basepath, sample_dir=result_basepath, use_downloaded=True)
Connection.DEBUG=True
# maybe adopt the interval for requesting the results and the total duration, before the client pauses the requests.
# as the requests take about 45min, it is more suitable to wait 60min before timing out the requests than the original 30min.
analysis_service.connection.setRequestTimes(interval_min=5, maxWait_min=60)
for person, config in configs.items():
print(f"\nProcessing {person}:")
print(f"--------------------")
datasets, metadatas = get_gridded_toar_data(
analysis_service=analysis_service,
grid=config.grid,
time=config.time,
variables=config.variables,
stats=config.stats,
**config.moreOptions
)
for dataset, metadata in zip(datasets, metadatas):
dataset.to_netcdf(result_basepath / f"{metadata.get_id()}_{config.grid.get_id()}.nc")
print(metadata.get_id())
```
......
......@@ -45,7 +45,7 @@ def get_gridded_toar_data(
]
datasets = []
for metadata in metadatas: # standart_name ?
for metadata in metadatas: # standard_name ?
data = analysis_service.get_data(metadata)
ds = grid.as_xarray(data)
datasets.append(ds)
......
......@@ -118,7 +118,7 @@ class Metadata:
Parameters:
----------
standart_name:
standard_name:
standard name according to CF
stat:
statistical analysis to be done by the TOAR database
......@@ -157,14 +157,14 @@ class Metadata:
def get_title(self) -> str:
"""creation of a title for metadata of a xarray according to the CF convention
"""
return f"{self.time.sampling} {self.statistic} statistic for {self.variable.standart_name} from {self.time.start} to {self.time.end} aggregated on global grid"
return f"{self.time.sampling} {self.statistic} statistic for {self.variable.standard_name} from {self.time.start} to {self.time.end} aggregated on global grid"
def get_summary(self) -> str:
"""creation of a descriptive string
At the moment same as title.
"""
return f"{self.time.sampling} {self.statistic} statistic for {self.variable.standart_name} from {self.time.start} to {self.time.end} aggregated on global grid"
return f"{self.time.sampling} {self.statistic} statistic for {self.variable.standard_name} from {self.time.start} to {self.time.end} aggregated on global grid"
@dataclass
......@@ -262,7 +262,7 @@ def get_cf_metadata(variable: Variables, metadata: Metadata | None)-> Dict:
"attributes": {
"units": metadata.variable.units,
"long_name": metadata.variable.long_name,
"standard_name": metadata.variable.standart_name,
"standard_name": metadata.variable.standard_name,
"cell_methods": "time: point, latitude: mean, longitude: mean",
"coverage_content_type": "physicalMeasurement",
},
......@@ -274,7 +274,7 @@ def get_cf_metadata(variable: Variables, metadata: Metadata | None)-> Dict:
"units": metadata.variable.units,
"long_name": metadata.variable.long_name,
# TODO standart name extension vs cell_methods
"standard_name": f"{metadata.variable.standart_name} standard_error",
"standard_name": f"{metadata.variable.standard_name} standard_error",
"cell_methods": "time: point, latitude: standard_deviation, longitude: standard_deviation",
"coverage_content_type": "physicalMeasurement",
},
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment