Skip to content
Snippets Groups Projects
produce_data_manyStations.ipynb 3.15 KiB
Newer Older
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "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",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
Carsten Hinz's avatar
Carsten Hinz committed
    "#creation of request.\n",
    "\n",
    "Config = namedtuple(\"Config\", [\"grid\", \"time\", \"variables\", \"stats\"])\n",
    "valid_data = Config(\n",
Carsten Hinz's avatar
Carsten Hinz committed
    "    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",
Carsten Hinz's avatar
Carsten Hinz committed
    "    [\"mole_fraction_of_ozone_in_air\"],#variable name\n",
Carsten Hinz's avatar
Carsten Hinz committed
    "    [ \"dma8epax\" ]# change to dma8epa_strict\n",
    ")\n",
    "\n",
    "configs = {\n",
    "    \"test_ta\"  : valid_data\n",
Carsten Hinz's avatar
Carsten Hinz committed
    "#testing access:\n",
    "#config = configs[\"test_ta\"]\n",
    "#config.grid"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#CAVE: the request takes over 30min per requested year. Therefore this cell needs to be executed at different times to check, if the results are ready for download.\n",
Carsten Hinz's avatar
Carsten Hinz committed
    "#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",
Carsten Hinz's avatar
Carsten Hinz committed
    "result_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",
    "    )\n",
    "\n",
    "    for dataset, metadata in zip(datasets, metadatas):\n",
Carsten Hinz's avatar
Carsten Hinz committed
    "        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",
   "version": "3.11.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}