diff --git a/examples/produce_data_manyStations.ipynb b/examples/produce_data_manyStations.ipynb index c4462354d8b66e997aa6a7c161a89d3bc661c0ab..06dafc6f1947eafdf1510b77176368271567b37b 100644 --- a/examples/produce_data_manyStations.ipynb +++ b/examples/produce_data_manyStations.ipynb @@ -85,6 +85,7 @@ " time=config.time,\n", " variables=config.variables,\n", " stats=config.stats,\n", + " contributors_path=result_basepath\n", " )\n", "\n", " for dataset, metadata in zip(datasets, metadatas):\n", diff --git a/examples/produce_data_withOptional.ipynb b/examples/produce_data_withOptional.ipynb index e73b77e5e862fb2688f4c3ec22ded9b5f554f11c..cb1caa1b911115aed335a700c1c81b4dbf74ebc3 100644 --- a/examples/produce_data_withOptional.ipynb +++ b/examples/produce_data_withOptional.ipynb @@ -2,22 +2,9 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'kwargs' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[1], line 8\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtoargridding\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtoar_rest_client\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m AnalysisServiceDownload, Connection\n\u001b[1;32m 7\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtoargridding\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mgrids\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m RegularGrid\n\u001b[0;32m----> 8\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtoargridding\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mgridding\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m get_gridded_toar_data\n\u001b[1;32m 9\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtoargridding\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmetadata\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m TimeSample\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtoargridding\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mdefaultLogging\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m toargridding_defaultLogging\n", - "File \u001b[0;32m~/Eigene Daten/FZJ/JSC/workingDirectories/TOAR/toargridding/src/toargridding/gridding.py:21\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtoargridding\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtoar_rest_client\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m AnalysisService\n\u001b[1;32m 11\u001b[0m GriddedResult \u001b[38;5;241m=\u001b[39m namedtuple(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mGriddedResult\u001b[39m\u001b[38;5;124m\"\u001b[39m, [\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdataset\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmetadata\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[1;32m 14\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mget_gridded_toar_data\u001b[39m(\n\u001b[1;32m 15\u001b[0m analysis_service: AnalysisService,\n\u001b[1;32m 16\u001b[0m grid: GridDefinition,\n\u001b[1;32m 17\u001b[0m time: TimeSample,\n\u001b[1;32m 18\u001b[0m variables: \u001b[38;5;28mlist\u001b[39m[\u001b[38;5;28mstr\u001b[39m],\n\u001b[1;32m 19\u001b[0m stats: \u001b[38;5;28mlist\u001b[39m[\u001b[38;5;28mstr\u001b[39m],\n\u001b[1;32m 20\u001b[0m contributors_path : Path \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m---> 21\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[43mkwargs\u001b[49m,\n\u001b[1;32m 22\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mtuple\u001b[39m[\u001b[38;5;28mlist\u001b[39m[xr\u001b[38;5;241m.\u001b[39mDataset], \u001b[38;5;28mlist\u001b[39m[Metadata]]:\n\u001b[1;32m 23\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"API to download data as xarrays\u001b[39;00m\n\u001b[1;32m 24\u001b[0m \n\u001b[1;32m 25\u001b[0m \u001b[38;5;124;03m The function creates all combinations of the variable and stats list\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[38;5;124;03m Gridded datasets for each combination of variables and stats and appropriate metadata for each dataset.\u001b[39;00m\n\u001b[1;32m 43\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m 45\u001b[0m metadatas \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 46\u001b[0m Metadata\u001b[38;5;241m.\u001b[39mconstruct(standard_name\u001b[38;5;241m=\u001b[39mvar, time\u001b[38;5;241m=\u001b[39mtime, stat\u001b[38;5;241m=\u001b[39mstat, moreOptions\u001b[38;5;241m=\u001b[39mkwargs)\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m var, stat \u001b[38;5;129;01min\u001b[39;00m product(variables, stats)\n\u001b[1;32m 48\u001b[0m ]\n", - "\u001b[0;31mNameError\u001b[0m: name 'kwargs' is not defined" - ] - } - ], + "outputs": [], "source": [ "import logging\n", "from datetime import datetime as dt\n", diff --git a/examples/produce_data_withOptional_country.ipynb b/examples/produce_data_withOptional_country.ipynb index 1e8dc2ea9fbdac1e77c2cf2122a4f8bc3179ce2f..f97de650c292219454fb21a0aaa58390bb8f7d95 100644 --- a/examples/produce_data_withOptional_country.ipynb +++ b/examples/produce_data_withOptional_country.ipynb @@ -93,6 +93,7 @@ " time=config.time,\n", " variables=config.variables,\n", " stats=config.stats,\n", + " contributors_path=result_basepath\n", " **config.moreOptions\n", " )\n", " except EmptyDataError as e:\n", diff --git a/examples/quality_controll.ipynb b/examples/quality_controll.ipynb index abd87257a311323fbaaebeda4bc88a69bcab8c59..a95cef83cb9e75c8edf3bb9f4047d1281b829e60 100644 --- a/examples/quality_controll.ipynb +++ b/examples/quality_controll.ipynb @@ -65,7 +65,6 @@ "contrib.extract_contributors_from_data_frame(data.stations_data)\n", "metadata.contributors_metadata_field = contrib.setup_contributors_endpoint_for_metadata()\n", "ds = my_grid.as_xarray(data)\n", - "print(ds)\n", "#store dataset\n", "ds.to_netcdf(data_download_dir / f\"{metadata.get_id()}_{my_grid.get_id()}.nc\")" ] diff --git a/src/toargridding/gridding.py b/src/toargridding/gridding.py index 94e8dfea7477f747036ebf2ab2e56f5fdf836c7a..ffc0c0cd24fe41b53a5202f1f9c5adb6d465ebea 100644 --- a/src/toargridding/gridding.py +++ b/src/toargridding/gridding.py @@ -8,6 +8,8 @@ from toargridding.grids import GridDefinition from toargridding.metadata import Metadata, TimeSample from toargridding.toar_rest_client import AnalysisService +from toargridding.contributors import contributionsManager + GriddedResult = namedtuple("GriddedResult", ["dataset", "metadata"]) @@ -36,6 +38,9 @@ def get_gridded_toar_data( list of variables to be extracted from the TOARdatabase stats: list of statistical properties to be extracted from the TOAR database + contributors_path: + pathname to write the contributors path. We advise to store the contributor files into the same directory as the resulting data. + Without a provided path, it is assumed, that toargridding is operated as a service and the contributors can be directly provided through the contributors endpoint. This is not yet implemented. return: ------- @@ -51,6 +56,10 @@ def get_gridded_toar_data( for metadata in metadatas: # standard_name ? data = analysis_service.get_data(metadata) #TODO add processing of contributors + # create contributors endpoint and write result to metadata + contrib = contributionsManager(metadata.get_id(), contributors_path) + contrib.extract_contributors_from_data_frame(data.stations_data) + metadata.contributors_metadata_field = contrib.setup_contributors_endpoint_for_metadata() ds = grid.as_xarray(data) datasets.append(ds)