"examples/03_produce_data_station_metadata.ipynb" did not exist on "7347121ac518a2d71c14add9ecc21d38245b3afb"
Newer
Older
{
"cells": [
{
"cell_type": "code",
"metadata": {},
"outputs": [],
"source": [
"from datetime import datetime as dt\n",
"from collections import namedtuple\n",
"from pathlib import Path\n",
"\n",
"from toargridding.toar_rest_client import AnalysisServiceDownload\n",
"from toargridding.grids import RegularGrid\n",
"from toargridding.gridding import get_gridded_toar_data\n",
"from toargridding.metadata import TimeSample"
]
},
{
"cell_type": "code",
"Config = namedtuple(\"Config\", [\"grid\", \"time\", \"variables\", \"stats\",\"moreOptions\"])\n",
"\n",
"#moreOptions is implemented as a dict to add additional arguments to the query to the REST API\n",
"#For example the field toar1_category with its possible values Urban, RuralLowElevation, RuralHighElevation and Unclassified can be added.\n",
"#see page 18 in https://toar-data.fz-juelich.de/sphinx/TOAR_UG_Vol03_Database/build/latex/toardatabase--userguide.pdf\n",
"#or type_of_area with urban, suburban and rural on page 20 can be used\n",
"\n",
"details4Query ={\n",
" #\"toar1_category\" : \"Urban\" #uncomment if wished:-)\n",
" #\"toar1_category\" : \"RuralLowElevation\" #uncomment if wished:-)\n",
" #\"toar1_category\" : \"RuralHighElevation\" #uncomment if wished:-)\n",
" #\"type_of_area\" : \"Urban\" #also test Rural, Suburban,\n",
" \"type_of_area\" : \"Rural\" #also test Rural, Suburban,\n",
" #\"type_of_area\" : \"Suburban\" #also test Rural, Suburban,\n",
"}\n",
"\n",
"valid_data = Config(\n",
" RegularGrid( lat_resolution=1.9, lon_resolution=2.5, ),\n",
" TimeSample( start=dt(2000,1,1), end=dt(2019,12,31), sampling=\"daily\"),#possibly adopt range:-)\n",
" [\"mole_fraction_of_ozone_in_air\"],#variable name\n",
" #[ \"mean\", \"dma8epax\"],# will start one request after another other...\n",
" [ \"dma8epa_strict\" ],\n",
" details4Query\n",
")\n",
"\n",
"configs = {\n",
" \"test_ta\" : valid_data\n",
"#testing access:\n",
"config = configs[\"test_ta\"]\n",
"config.grid"
]
},
{
"cell_type": "code",
"#CAVE: this cell runs about 30minutes per requested year\n",
"#the processing is done on the server of the TOAR database.\n",
"#a restart of the cell continues the request to the REST API if the requested data are ready for download\n",
"# The download can also take a few minutes\n",
"\n",
"stats_endpoint = \"https://toar-data.fz-juelich.de/api/v2/analysis/statistics/\"\n",
"cache_basepath = Path(\"cache\")\n",
"result_basepath = Path(\"results\")\n",
"cache_basepath.mkdir(exist_ok=True)\n",
"analysis_service = AnalysisServiceDownload(stats_endpoint=stats_endpoint, cache_dir=cache_basepath, sample_dir=result_basepath, use_downloaded=True)\n",
"\n",
"for person, config in configs.items():\n",
" datasets, metadatas = get_gridded_toar_data(\n",
" analysis_service=analysis_service,\n",
" grid=config.grid,\n",
" time=config.time,\n",
" variables=config.variables,\n",
" stats=config.stats,\n",
" **config.moreOptions\n",
" )\n",
"\n",
" for dataset, metadata in zip(datasets, metadatas):\n",
" dataset.to_netcdf(result_basepath / f\"{metadata.get_id()}.nc\")\n",
" print(metadata.get_id())"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "toargridding-8RVrxzmn-py3.11",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
}
},
"nbformat": 4,
"nbformat_minor": 2
}