diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d0c3cbf --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..747ffb7 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/poster/.latexmkrc b/docs/poster/.latexmkrc new file mode 100644 index 0000000..4d832f7 --- /dev/null +++ b/docs/poster/.latexmkrc @@ -0,0 +1,2 @@ +$bibtex_use = 2; +$clean_ext = "nav snm"; diff --git a/docs/poster/Implementing_FAIR_Data_Exchange_in_ACTRIS_Switzerland___An_Expert_Driven_Approach.pdf b/docs/poster/Implementing_FAIR_Data_Exchange_in_ACTRIS_Switzerland___An_Expert_Driven_Approach.pdf new file mode 100644 index 0000000..a44b44f Binary files /dev/null and b/docs/poster/Implementing_FAIR_Data_Exchange_in_ACTRIS_Switzerland___An_Expert_Driven_Approach.pdf differ diff --git a/docs/poster/LICENSE.md b/docs/poster/LICENSE.md new file mode 100644 index 0000000..d4582d2 --- /dev/null +++ b/docs/poster/LICENSE.md @@ -0,0 +1,22 @@ +The MIT License (MIT) +===================== + +**Copyright (c) 2018-2022 Anish Athalye (me@anishathalye.com)** + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/docs/poster/README.md b/docs/poster/README.md new file mode 100644 index 0000000..2c9ceb7 --- /dev/null +++ b/docs/poster/README.md @@ -0,0 +1,92 @@ +# Gemini [![Build Status](https://github.com/anishathalye/gemini/workflows/CI/badge.svg)](https://github.com/anishathalye/gemini/actions?query=workflow%3ACI) + +Gemini is a modern LaTeX [beamerposter] theme. + +

+ + + +

+ +If you're looking for a beamer presentation theme, take a look at [Auriga]. + +## Dependencies + +* A TeX installation that includes [LuaTeX] + * You also need `latexmk` if you want to use the provided `Makefile` +* LaTeX package dependencies including beamerposter (these usually come with + your TeX installation, but if not, you can get them from [CTAN]) +* [Raleway] and [Lato], which are both available under Open Font License + +## Usage + +1. Copy the files in this repository (or clone the repository) + +1. In `poster.tex`, set up your paper size, column layout, and scale the + content as necessary + +1. Make a copy of `beamercolorthemegemini.sty`, update the `\usecolortheme` + line in `poster.tex`, and theme the poster to your liking (optional, but + highly recommended) + +1. Run `make` to build your poster + +## FAQ + +See the [FAQ] in the Wiki for answers to frequently asked questions such as how +to add an institution logo to the poster. + +## Themes + +Gemini currently includes three color themes: + +* `gemini` (default) +* `mit` +* `labsix` + +The alternative themes are intended to be inspiration for you to make your own +color theme. You're highly recommended to make your own color theme (it's +really easy!) or use the default Gemini theme. + +### MIT theme + +

+ + + +

+ +### LabSix theme + +

+ + + +

+ +## Design goals + +* **Minimal**: clean and easy to read, so that the emphasis is on the content +* **Batteries included**: works and looks good out of the box +* **Easy theming**: easy to create and use a new color theme + +## Contributing + +Contributions to Gemini such as bug reports, new themes, and new poster +components are greatly appreciated! Given the subjective nature of design, +you're encouraged to open an issue or pull request early to get feedback before +investing a lot of time in implementing a new feature. + +## License + +Copyright (c) 2018-2022 Anish Athalye. Released under the MIT License. See +[LICENSE.md][license] for details. + +[beamerposter]: https://github.com/deselaers/latex-beamerposter +[Auriga]: https://github.com/anishathalye/auriga +[LuaTeX]: http://www.luatex.org/ +[CTAN]: https://ctan.org/ +[Raleway]: https://www.fontsquirrel.com/fonts/raleway +[Lato]: https://www.fontsquirrel.com/fonts/lato +[license]: LICENSE.md +[FAQ]: https://github.com/anishathalye/gemini/wiki/FAQ diff --git a/docs/poster/beamercolorthemegemini.sty b/docs/poster/beamercolorthemegemini.sty new file mode 100644 index 0000000..d196945 --- /dev/null +++ b/docs/poster/beamercolorthemegemini.sty @@ -0,0 +1,58 @@ +% Gemini theme +% https://github.com/anishathalye/gemini + +% ==================== +% Definitions +% ==================== + +\definecolor{lightgray}{RGB}{245, 246, 250} +\definecolor{blue}{RGB}{64, 115, 158} +\definecolor{darkblue}{RGB}{39, 60, 117} +\definecolor{lightblue}{RGB}{232, 244, 255} + +% ==================== +% Theme +% ==================== + +% Basic colors +\setbeamercolor{palette primary}{fg=black,bg=white} +\setbeamercolor{palette secondary}{fg=black,bg=white} +\setbeamercolor{palette tertiary}{bg=black,fg=white} +\setbeamercolor{palette quaternary}{fg=black,bg=white} +\setbeamercolor{structure}{fg=darkblue} + +% Headline +\setbeamercolor{headline}{fg=lightgray,bg=blue} +\setbeamercolor{headline rule}{bg=darkblue} + +% Block +\setbeamercolor{block title}{fg=blue,bg=white} +\setbeamercolor{block separator}{bg=black} +\setbeamercolor{block body}{fg=black,bg=white} + +% Alert Block +\setbeamercolor{block alerted title}{fg=blue,bg=lightblue} +\setbeamercolor{block alerted separator}{bg=black} +\setbeamercolor{block alerted body}{fg=black,bg=lightblue} + +% Example Block +\setbeamercolor{block example title}{fg=blue,bg=lightgray} +\setbeamercolor{block example separator}{bg=black} +\setbeamercolor{block example body}{fg=black,bg=lightgray} + +% Heading +\setbeamercolor{heading}{fg=black} + +% Itemize +\setbeamercolor{item}{fg=darkblue} + +% Bibliography +\setbeamercolor{bibliography item}{fg=black} +\setbeamercolor{bibliography entry author}{fg=black} +\setbeamercolor{bibliography entry title}{fg=black} +\setbeamercolor{bibliography entry location}{fg=black} +\setbeamercolor{bibliography entry note}{fg=black} +\setbeamertemplate{bibliography entry article}{} +\setbeamertemplate{bibliography entry title}{} +\setbeamertemplate{bibliography entry location}{} +\setbeamertemplate{bibliography entry note}{} diff --git a/docs/poster/beamercolorthememsu.sty b/docs/poster/beamercolorthememsu.sty new file mode 100644 index 0000000..ed5dd8e --- /dev/null +++ b/docs/poster/beamercolorthememsu.sty @@ -0,0 +1,65 @@ +% Gemini theme +% https://github.com/anishathalye/gemini + +% UTA colors added +% primiary HEX: #0064B1 + +% ==================== +% Definitions +% ==================== + +%\definecolor{camblue}{RGB}{0, 62, 114} +% \definecolor{lightnyupurple}{RGB}{159, 120, 184} +% \definecolor{msugreen}{HTML}{18453B} +% \definecolor{umichblue}{HTML}{00274C} +% \definecolor{yaleblue}{HTML}{00356B} +% \definecolor{ualbertagreen}{HTML}{1F4D2A} +% \definecolor{ualbertagold}{HTML}{EDC40A} +% \definecolor{utaBluePrimary}{HTML}{003C77} +% \definecolor{ulethgold}{HTML}{FFCF01} +\definecolor{utaBluePrimary}{HTML}{0064B1} +% Extra colors +\definecolor{lightgray}{RGB}{240, 240, 240} +\definecolor{lightorange}{RGB}{255, 245, 242} + +% ==================== +% Theme +% ==================== + +% Basic colors +\setbeamercolor{palette primary}{fg=black,bg=white} +\setbeamercolor{palette secondary}{fg=black,bg=white} +\setbeamercolor{palette tertiary}{bg=black,fg=white} +\setbeamercolor{palette quaternary}{fg=black,bg=white} +\setbeamercolor{structure}{fg=utaBluePrimary} + +% Headline +\setbeamercolor{headline}{fg=white,bg=utaBluePrimary} + +% Block +\setbeamercolor{block title}{fg=utaBluePrimary,bg=white} +\setbeamercolor{block separator}{bg=black} +\setbeamercolor{block body}{fg=black,bg=white} + +% Alert Block +\setbeamercolor{block alerted title}{fg=utaBluePrimary,bg=lightorange} +\setbeamercolor{block alerted separator}{bg=black} +\setbeamercolor{block alerted body}{fg=black,bg=lightorange} + +% Example Block +\setbeamercolor{block example title}{fg=utaBluePrimary,bg=lightgray} +\setbeamercolor{block example separator}{bg=black} +\setbeamercolor{block example body}{fg=black,bg=lightgray} + +% Heading +\setbeamercolor{heading}{fg=black} + +% Itemize +\setbeamercolor{item}{fg=utaBluePrimary} + +% Bibliography +\setbeamercolor{bibliography item}{fg=black} +\setbeamercolor{bibliography entry author}{fg=black} +\setbeamercolor{bibliography entry title}{fg=black} +\setbeamercolor{bibliography entry location}{fg=black} +\setbeamercolor{bibliography entry note}{fg=black} diff --git a/docs/poster/beamerthemegemini.sty b/docs/poster/beamerthemegemini.sty new file mode 100644 index 0000000..a8d1952 --- /dev/null +++ b/docs/poster/beamerthemegemini.sty @@ -0,0 +1,257 @@ +% Gemini theme +% https://github.com/anishathalye/gemini + +% ==================== +% Dependencies +% ==================== + +\RequirePackage{exscale} +\RequirePackage{ragged2e} +\RequirePackage{changepage} +\RequirePackage{fontspec} +\RequirePackage{calc} + +% ==================== +% Fonts +% ==================== + +\newfontfamily\Raleway[Ligatures=TeX]{Raleway} +\newfontfamily\Lato[Ligatures=TeX]{Lato} + +\usefonttheme{professionalfonts} + +\setsansfont{Lato}[ + UprightFont=*-Light, + ItalicFont=*-LightItalic, + BoldFont=*-Regular, + BoldItalicFont=*-Italic +] + +\setbeamerfont{headline}{family=\Raleway} +\setbeamerfont{headline title}{size=\Huge,series=\bfseries} +\setbeamerfont{headline author}{size=\Large} +\setbeamerfont{headline institute}{size=\normalsize} +\setbeamerfont{block title}{family=\Raleway,size=\large,series=\bfseries} +\setbeamerfont{heading}{family=\Lato,series=\bfseries} +\setbeamerfont{caption}{size=\small} +\setbeamerfont{footline}{family=\Raleway,size=\normalsize} + +% ==================== +% Macros +% ==================== + +\newcommand{\samelineand}{\qquad} + +% ==================== +% Elements +% ==================== + +% List +\def\@listi{\leftmargin\leftmarginii +\topsep 1ex % spacing before +\parsep 0\p@ \@plus\p@ +\itemsep 0.5ex} % spacing between + +% Itemize + +\setbeamertemplate{itemize item}{\raise0.5ex \hbox{\vrule width 0.5ex height 0.5ex}} +\setbeamertemplate{itemize subitem}{\raise0.3ex \hbox{\vrule width 0.5ex height 0.5ex}} +\setbeamertemplate{itemize subsubitem}{\raise0.2ex \hbox{\vrule width 0.5ex height 0.5ex}} + +% Enumerate + +\setbeamertemplate{enumerate item}{\insertenumlabel.} +\setbeamertemplate{enumerate subitem}{\insertsubenumlabel.} +\setbeamertemplate{enumerate subsubitem}{\insertsubsubenumlabel.} + +% Equation +\setlength\belowdisplayshortskip{2ex} + +% Caption +\setbeamertemplate{caption}[numbered] +\setbeamertemplate{caption label separator}[period] +\setlength{\abovecaptionskip}{2ex} +\setlength{\belowcaptionskip}{1ex} + +% Bibliography +\setbeamertemplate{bibliography item}[text] + +% Navigation +\beamertemplatenavigationsymbolsempty + +% ==================== +% Components +% ==================== + +% Heading +\newcommand\heading[1] +{% + \par\bigskip + {\usebeamerfont{heading}\usebeamercolor[fg]{heading}#1}\par\smallskip +} + +% logo +\newlength{\logoleftwidth} +\setlength{\logoleftwidth}{0cm} +\newlength{\logorightwidth} +\setlength{\logorightwidth}{0cm} +\newlength{\maxlogowidth} % space on both sides set to maxlogowidth to keep title centered +\setlength{\maxlogowidth}{0cm} + +\newcommand{\logoright}[1]{ + \newcommand{\insertlogoright}{#1} + \settowidth{\logorightwidth}{\insertlogoright} + \addtolength{\logorightwidth}{10ex} + \setlength{\maxlogowidth}{\maxof{\logoleftwidth}{\logorightwidth}} +} +\newcommand{\logoleft}[1]{ + \newcommand{\insertlogoleft}{#1} + \settowidth{\logoleftwidth}{\insertlogoleft} + \addtolength{\logoleftwidth}{10ex} + \setlength{\maxlogowidth}{\maxof{\logoleftwidth}{\logorightwidth}} +} + +% Headline +\setbeamertemplate{headline} +{ + \begin{beamercolorbox}{headline} + \begin{columns} + \begin{column}{\maxlogowidth} + \vskip5ex + \ifdefined\insertlogoleft + \vspace*{\fill} + \hspace{10ex} + \raggedright + \insertlogoleft + \vspace*{\fill} + \else\fi + \end{column} + \begin{column}{\dimexpr\paperwidth-\maxlogowidth-\maxlogowidth} + \usebeamerfont{headline} + \vskip3ex + \centering + \ifx \inserttitle \empty \else + {\usebeamerfont{headline title}\usebeamercolor[fg]{headline title}\inserttitle\\[0.5ex]} + \fi + \ifx \beamer@shortauthor \empty \else + {\usebeamerfont{headline author}\usebeamercolor[fg]{headline author}\insertauthor\\[1ex]} + \fi + \ifx \insertinstitute \empty \else + {\usebeamerfont{headline institute}\usebeamercolor[fg]{headline institute}\insertinstitute\\[1ex]} + \fi + \end{column} + \begin{column}{\maxlogowidth} + \vskip5ex + \ifdefined\insertlogoright + \vspace*{\fill} + \raggedleft + \insertlogoright + \hspace{10ex} + \vspace*{\fill} + \else\fi + \end{column} + \end{columns} + \vspace{5ex} + \ifbeamercolorempty[bg]{headline rule}{}{ + \begin{beamercolorbox}[wd=\paperwidth,colsep=0.5ex]{headline rule}\end{beamercolorbox} + } + \end{beamercolorbox} +} + +% Block +\setbeamertemplate{block begin} +{ + \begin{beamercolorbox}[colsep*=0ex,dp=2ex,center]{block title} + \vskip0pt + \usebeamerfont{block title}\insertblocktitle + \vskip-1.25ex + \begin{beamercolorbox}[colsep=0.025ex]{block separator}\end{beamercolorbox} + \end{beamercolorbox} + {\parskip0pt\par} + \usebeamerfont{block body} + \vskip-0.5ex + \begin{beamercolorbox}[colsep*=0ex]{block body} + \justifying + \setlength{\parskip}{1ex} + \vskip-2ex +} +\setbeamertemplate{block end} +{ + \end{beamercolorbox} + \vskip0pt + \vspace*{2ex} +} + +% Alert Block +\setbeamertemplate{block alerted begin} +{ + \begin{beamercolorbox}[colsep*=0ex,dp=2ex,center]{block alerted title} + \vskip0pt + \usebeamerfont{block title}\insertblocktitle + \vskip-1.25ex + \begin{beamercolorbox}[colsep=0.025ex]{block alerted separator}\end{beamercolorbox} + \end{beamercolorbox} + {\parskip0pt\par} + \usebeamerfont{block body} + \vskip-0.5ex + \begin{beamercolorbox}[colsep*=0ex]{block alerted body} + \justifying + \begin{adjustwidth}{1ex}{1ex} + \setlength{\parskip}{1ex} + \vskip-2ex +} +\setbeamertemplate{block alerted end} +{ + \end{adjustwidth} + \vskip1ex + \end{beamercolorbox} + \vskip0pt + \vspace*{2ex} +} + +% Example Block +\setbeamertemplate{block example begin} +{ + \begin{beamercolorbox}[colsep*=0ex,dp=2ex,center]{block example title} + \vskip0pt + \usebeamerfont{block title}\insertblocktitle + \vskip-1.25ex + \begin{beamercolorbox}[colsep=0.025ex]{block example separator}\end{beamercolorbox} + \end{beamercolorbox} + {\parskip0pt\par} + \usebeamerfont{block body} + \vskip-0.5ex + \begin{beamercolorbox}[colsep*=0ex]{block example body} + \justifying + \begin{adjustwidth}{1ex}{1ex} + \setlength{\parskip}{1ex} + \vskip-2ex +} +\setbeamertemplate{block example end} +{ + \end{adjustwidth} + \vskip1ex + \end{beamercolorbox} + \vskip0pt + \vspace*{2ex} +} + +% Footer +\newcommand{\footercontent}[1]{\newcommand{\insertfootercontent}{#1}} + +\setbeamertemplate{footline}{ + \ifdefined\insertfootercontent + \begin{beamercolorbox}[vmode]{headline} + \ifbeamercolorempty[bg]{headline rule}{}{ + \begin{beamercolorbox}[wd=\paperwidth,colsep=0.25ex]{headline rule}\end{beamercolorbox} + } + \vspace{1.5ex} + \hspace{\sepwidth} + \usebeamerfont{footline} + \centering + \insertfootercontent + \hspace{\sepwidth} + \vspace{1.5ex} + \end{beamercolorbox} + \else\fi +} diff --git a/docs/poster/figures/data_integration_step.pdf b/docs/poster/figures/data_integration_step.pdf new file mode 100644 index 0000000..e43d89c Binary files /dev/null and b/docs/poster/figures/data_integration_step.pdf differ diff --git a/docs/poster/figures/extended_data_flow_dag.pdf b/docs/poster/figures/extended_data_flow_dag.pdf new file mode 100644 index 0000000..2052161 Binary files /dev/null and b/docs/poster/figures/extended_data_flow_dag.pdf differ diff --git a/docs/poster/figures/extended_data_flow_dag_with_actris.pdf b/docs/poster/figures/extended_data_flow_dag_with_actris.pdf new file mode 100644 index 0000000..ce5ff3f Binary files /dev/null and b/docs/poster/figures/extended_data_flow_dag_with_actris.pdf differ diff --git a/docs/poster/figures/hdf5_before_after.pdf b/docs/poster/figures/hdf5_before_after.pdf new file mode 100644 index 0000000..53e78c3 Binary files /dev/null and b/docs/poster/figures/hdf5_before_after.pdf differ diff --git a/docs/poster/figures/hdf5_before_after.svg b/docs/poster/figures/hdf5_before_after.svg new file mode 100644 index 0000000..15796be --- /dev/null +++ b/docs/poster/figures/hdf5_before_after.svg @@ -0,0 +1,2054 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + Before FAIR data exchange + After FAIR data exchange + + + Visualizations of the same HDF5 File + + + + + + + + + + + + + + diff --git a/docs/poster/figures/layered_stack.pdf b/docs/poster/figures/layered_stack.pdf new file mode 100644 index 0000000..144ee4b Binary files /dev/null and b/docs/poster/figures/layered_stack.pdf differ diff --git a/docs/poster/figures/quality_control_workflow.pdf b/docs/poster/figures/quality_control_workflow.pdf new file mode 100644 index 0000000..be02599 Binary files /dev/null and b/docs/poster/figures/quality_control_workflow.pdf differ diff --git a/docs/poster/figures/styled_typical_exchange.pdf b/docs/poster/figures/styled_typical_exchange.pdf new file mode 100644 index 0000000..7b69796 Binary files /dev/null and b/docs/poster/figures/styled_typical_exchange.pdf differ diff --git a/docs/poster/figures/workflow_acsm_data_JFJ_2024.pdf b/docs/poster/figures/workflow_acsm_data_JFJ_2024.pdf new file mode 100644 index 0000000..033c91f Binary files /dev/null and b/docs/poster/figures/workflow_acsm_data_JFJ_2024.pdf differ diff --git a/docs/poster/figures/workflow_acsm_data_JFJ_2024.svg b/docs/poster/figures/workflow_acsm_data_JFJ_2024.svg new file mode 100644 index 0000000..4763f6d --- /dev/null +++ b/docs/poster/figures/workflow_acsm_data_JFJ_2024.svg @@ -0,0 +1,459 @@ + + + + + + + + + +apply_calibration_factors + +apply_calibration_factors + + + +data/.../2024/ACSM_JFJ_2024_timeseries_calibrated.csv + + +data/.../2024/ +ACSM_JFJ_2024_timeseries_calibrated.csv + + + + + +apply_calibration_factors->data/.../2024/ACSM_JFJ_2024_timeseries_calibrated.csv + + + + + +data/.../2024/ACSM_JFJ_2024_timeseries_calibrated_err.csv + + +data/.../2024/ +ACSM_JFJ_2024_timeseries_calibrated_err.csv + + + + + +apply_calibration_factors->data/.../2024/ACSM_JFJ_2024_timeseries_calibrated_err.csv + + + + + +data/.../2024/ACSM_JFJ_2024_timeseries_calibration_factors.csv + + +data/.../2024/ +ACSM_JFJ_2024_timeseries_calibration_factors.csv + + + + + +apply_calibration_factors->data/.../2024/ACSM_JFJ_2024_timeseries_calibration_factors.csv + + + + + +pipelines/steps/apply_calibration_factors.py + + +pipelines/steps/ +apply_calibration_factors.py + + + + + +pipelines/steps/apply_calibration_factors.py->apply_calibration_factors + + + + + +data/collection_JFJ_2024_2025-06-10_2025-06-10.h5 + + +data/ +collection_JFJ_2024_2025-06-10_2025-06-10.h5 + + + + + +data/collection_JFJ_2024_2025-06-10_2025-06-10.h5->apply_calibration_factors + + + + + +generate_flags_diagnostics + +generate_flags_diagnostics + + + +data/collection_JFJ_2024_2025-06-10_2025-06-10.h5->generate_flags_diagnostics + + + + + +generate_flags_cpc + +generate_flags_cpc + + + +data/collection_JFJ_2024_2025-06-10_2025-06-10.h5->generate_flags_cpc + + + + + +generate_flags_species + +generate_flags_species + + + +data/collection_JFJ_2024_2025-06-10_2025-06-10.h5->generate_flags_species + + + + + +pipelines/params/calibration_factors.yaml + + +pipelines/params/ +calibration_factors.yaml + + + + + +pipelines/params/calibration_factors.yaml->apply_calibration_factors + + + + + +campaignDescriptor.yaml + + +campaignDescriptor.yaml + + + + + +campaignDescriptor.yaml->apply_calibration_factors + + + + + +prepare_ebas_submission + +prepare_ebas_submission + + + +data/.../2024/ACSM_JFJ_2024_timeseries_calibrated.csv->prepare_ebas_submission + + + + + +data/.../2024/ACSM_JFJ_2024_timeseries_calibrated_err.csv->prepare_ebas_submission + + + + + +data/.../2024/ACSM_JFJ_2024_timeseries_calibration_factors.csv->prepare_ebas_submission + + + + + +data/.../2024/ACSM_JFJ_2024_meta_flags.csv + + +data/.../2024/ +ACSM_JFJ_2024_meta_flags.csv + + + + + +generate_flags_diagnostics->data/.../2024/ACSM_JFJ_2024_meta_flags.csv + + + + + +pipelines/steps/generate_flags.py + + +pipelines/steps/ +generate_flags.py + + + + + +pipelines/steps/generate_flags.py->generate_flags_diagnostics + + + + + +pipelines/steps/generate_flags.py->generate_flags_cpc + + + + + +pipelines/steps/generate_flags.py->generate_flags_species + + + + + +pipelines/params/validity_thresholds.yaml + + +pipelines/params/ +validity_thresholds.yaml + + + + + +pipelines/params/validity_thresholds.yaml->generate_flags_diagnostics + + + + + +data/.../2024/ACSM_JFJ_2024_meta_flags.csv->generate_flags_species + + + + + +data/.../2024/CPC.lev1_flags.csv + + +data/.../2024/ +CPC.lev1_flags.csv + + + + + +generate_flags_cpc->data/.../2024/CPC.lev1_flags.csv + + + + + +data/.../2024/CPC.lev1_flags.csv->generate_flags_species + + + + + +data/.../2024/ACSM_JFJ_2024_timeseries_flags.csv + + +data/.../2024/ +ACSM_JFJ_2024_timeseries_flags.csv + + + + + +generate_flags_species->data/.../2024/ACSM_JFJ_2024_timeseries_flags.csv + + + + + +pipelines/params/calibration_params.yaml + + +pipelines/params/ +calibration_params.yaml + + + + + +pipelines/params/calibration_params.yaml->generate_flags_species + + + + + +data/.../2024/flag_10_Org_11000.json + + +data/.../2024/ +flag_10_Org_11000.json + + + + + +data/.../2024/flag_10_Org_11000.json->generate_flags_species + + + + + +data/.../2024/flag_11_NH4_11000.json + + +data/.../2024/ +flag_11_NH4_11000.json + + + + + +data/.../2024/flag_11_NH4_11000.json->generate_flags_species + + + + + +data/.../2024/flag_12_NH4_11000.json + + +data/.../2024/ +flag_12_NH4_11000.json + + + + + +data/.../2024/flag_12_NH4_11000.json->generate_flags_species + + + + + +data/.../2024/flag_14_Org_11000.json + + +data/.../2024/ +flag_14_Org_11000.json + + + + + +data/.../2024/flag_14_Org_11000.json->generate_flags_species + + + + + +data/.../2024/ACSM_JFJ_2024_timeseries_flags.csv->prepare_ebas_submission + + + + + +data/JFJ_ACSM-017_2024.txt + + +data/ +JFJ_ACSM-017_2024.txt + + + + + +prepare_ebas_submission->data/JFJ_ACSM-017_2024.txt + + + + + +data/JFJ_ACSM-017_FLAGS_2024.txt + + +data/ +JFJ_ACSM-017_FLAGS_2024.txt + + + + + +prepare_ebas_submission->data/JFJ_ACSM-017_FLAGS_2024.txt + + + + + +pipelines/steps/prepare_ebas_submission.py + + +pipelines/steps/ +prepare_ebas_submission.py + + + + + +pipelines/steps/prepare_ebas_submission.py->prepare_ebas_submission + + + + + +pipelines/params/"limits_of_detection.yaml + + +pipelines/params/ +"limits_of_detection.yaml + + + + + +pipelines/params/"limits_of_detection.yaml->prepare_ebas_submission + + + + + +pipelines/params/"station_params.yaml + + +pipelines/params/ +"station_params.yaml + + + + + +pipelines/params/"station_params.yaml->prepare_ebas_submission + + + + + diff --git a/docs/poster/poster.bib b/docs/poster/poster.bib new file mode 100644 index 0000000..30d9da9 --- /dev/null +++ b/docs/poster/poster.bib @@ -0,0 +1,38 @@ +@book{chacon2014pro, + title={Pro git}, + author={Chacon, Scott and Straub, Ben}, + year={2014}, + publisher={Springer Nature} +} + +@article{wilkinson2016fair, + title={The FAIR Guiding Principles for scientific data management and stewardship}, + author={Wilkinson, Mark D and Dumontier, Michel and Aalbersberg, IJsbrand Jan and Appleton, Gabrielle and Axton, Myles and Baak, Arie and Blomberg, Niklas and Boiten, Jan-Willem and da Silva Santos, Luiz Bonino and Bourne, Philip E and others}, + journal={Scientific data}, + volume={3}, + number={1}, + pages={1--9}, + year={2016}, + publisher={Nature Publishing Group} +} + +@article{konnecke2015nexus, + title={The NeXus data format}, + author={K{\"o}nnecke, Mark and Akeroyd, Frederick A and Bernstein, Herbert J and Brewster, Aaron S and Campbell, Stuart I and Clausen, Bj{\"o}rn and Cottrell, Stephen and Hoffmann, Jens Uwe and Jemian, Pete R and M{\"a}nnicke, David and others}, + journal={Journal of applied crystallography}, + volume={48}, + number={1}, + pages={301--305}, + year={2015}, + publisher={International Union of Crystallography} +} + +@article{bartels2023time, + title={It is Time to Introduce the Next Generation of Chemists to FAIR and Open Science: Chemical Education}, + author={Bartels-Rausch, Thorsten and Ammann, Markus}, + journal={Chimia}, + volume={77}, + number={10}, + pages={694--696}, + year={2023} +} \ No newline at end of file diff --git a/docs/poster/poster.tex b/docs/poster/poster.tex new file mode 100644 index 0000000..2510e8f --- /dev/null +++ b/docs/poster/poster.tex @@ -0,0 +1,313 @@ +% Unofficial University of Texas at Arlington Math Poster template: + +% A fork of the unofficial University of Lethbridge Poster template: https://www.overleaf.com/latex/templates/university-of-lethbridge-unofficial-poster-template/nddfzgvqvfwf +% which is a fork of unofficial University of Alberta Poster template: +% which is a fork of Yale template: https://www.overleaf.com/latex/templates/yale-poster-template/rjpgqfgvsjcv +% which is a fork of the UMich template https://www.overleaf.com/latex/templates/university-of-michigan-umich-poster-template/xpnqzzxwbjzc +% which is fork of the MSU template https://www.overleaf.com/latex/templates/an-unofficial-poster-template-for-michigan-state-university/wnymbgpxnnwd +% which is a fork of https://www.overleaf.com/latex/templates/an-unofficial-poster-template-for-new-york-university/krgqtqmzdqhg +% which is a fork of https://github.com/anishathalye/gemini +% also refer to https://github.com/k4rtik/uchicago-poster + + +\documentclass[final]{beamer} + +% ==================== +% Packages +% ==================== + +\usepackage[T1]{fontenc} +\usepackage[utf8]{luainputenc} +\usepackage{lmodern} +%\usepackage[size=custom, width=122,height=91, scale=1.2]{beamerposter} +\usepackage[orientation=portrait, size=a0, scale=1.25]{beamerposter} +\usetheme{gemini} +\usecolortheme{msu} +\usepackage{graphicx} +\usepackage{booktabs} +\usepackage{tikz} +\usepackage{pgfplots} +\pgfplotsset{compat=1.14} +\usepackage{anyfontsize} +\usepackage{multirow} +\usepackage{listings} +\usepackage[dvipsnames]{xcolor} +% ==================== +% Lengths +% ==================== + +% If you have N columns, choose \sepwidth and \colwidth such that +% (N+1)*\sepwidth + N*\colwidth = \paperwidth +\newlength{\sepwidth} +\newlength{\colwidth} +\setlength{\sepwidth}{0.025\paperwidth} +\setlength{\colwidth}{0.3\paperwidth} + +\newcommand{\separatorcolumn}{\begin{column}{\sepwidth}\end{column}} + +% ==================== +% Title +% ==================== + +\title{Implementing FAIR Data Exchange in ACTRIS Switzerland : An Expert-Driven Approach} +%\setbeamerfont{title}{size=\huge} + +\author{Juan F. Fl\'orez-Ospina, Leïla H. Simon, Nora K. Nowak, Benjamin T. Brem, \\ Martin Gysel-Beer, and Robin L. Modini} + +%\author{Juan F. Florez-Ospina$^{1}$, Natasha M. Garner$^{1}$, Lucia Iezzi$^{1}$, David Bell$^{1}$,\\ Imad El Haddad$^{1}$, Julia Schmale$^{2}$, and Thorsten Bartels-Rausch$^{1}$} +% add following line if you have co-author(s) +% Coauthor One$^{2}$, Coauthor Two$^{3}$ + +\institute[shortinst]{PSI Center for Energy and Environmental Sciences, 5232 Villigen PSI, Switzerland} + +% ==================== +% Footer (optional) +% ==================== +\footercontent{\hfill + \href{mailto:juan.florez-ospina@psi.ch}{juan.florez-ospina@psi.ch, juanflo16@gmail.com,} \href{robin.modini@psi.ch}{robin.modini@psi.ch}} +% (can be left out to remove footer) +%\footercontent{22-Nov-2023, Swiss Data Science Conference, Bern \hfill +% \href{mailto:juan.florez-ospina@psi.ch}{juan.florez-ospina@psi.ch} \href{thorsten.bartels-rausch@psi.ch}{thorsten.bartels-rausch@psi.ch}} +% (can be left out to remove footer) + +% ==================== +% Logo +%\logoleft{\includegraphics[height=5.5cm]{logos/psi_01_sn.png}} +% ==================== + +% use this to include logos on the left and/or right side of the header: +% Left: institution +% \logoright{\includegraphics[height=5cm]{logos/logo-wordmark-variations.png}} +% Right: funding agencies and other affilations +%\logoright{\includegraphics[height=7cm]{logos/NSF.eps}} + +% ==================== +% Body +% ==================== + + +\begin{document} + +\begin{frame}[t] + +\begin{columns}[t] +\separatorcolumn + + +\begin{column}{1.5\colwidth} + +\begin{block}{Motivation} + +%Given an \textit{allocated time frame}, + +\textbf{Problem.} Scientific datasets in atmospheric science are often large, complex and highly specialized, making them hard to reuse across users, tools, and time. +\textcolor{white}{insert line here :)} + +Adhering to the FAIR data principles promises to resolve long term reuse of data by machines and humans. +\textcolor{white}{insert line here :)} + +\textbf{Yet in practice,} implementations often have the following configuration, +\vspace{1em} % Add some space before next block + +\begin{figure} +\centering +\includegraphics[width=0.75\textwidth]{figures/styled_typical_exchange.pdf} +\caption{Diagram of tightly coupled system for integration, processing and ingestion of scientific data into ORD repositories.} +\end{figure} +which in turn exhibits the following +\vspace{1em} +\begin{exampleblock}{System drawbacks:} +\begin{itemize} + \item + Task-specific outputs, limiting adaptability to new needs or use cases. + \item + Monolithic design, making the system hard to maintain, reuse or understand internally. + \item + Embedded domain knowledge in hard-coded parameters, reducing transparency and flexibility. + +\end{itemize} + +\end{exampleblock} + + + + + +%\begin{itemize} +% \item + +% Convey the idea about fragmented heterogeneous data (highly collaborative, plenty of coordination, planning) +%\item +% Data analysis, also heterogeneous (but highly independent) +%\end{itemize} + + +\begin{block}{Expert-driven FAIR data exchange systems} + +\textbf{Therefore.} \textit{We aim to explore and prototype an expert-driven data exchange system, as conceptualized below.} + +\begin{figure}[H] + \centering + \includegraphics[width=\textwidth]{figures/extended_data_flow_dag_with_actris.pdf} + \caption{Diagram of the expert-driven FAIR data exchange system.} +\end{figure} + + +This system, unlike the above implementation, exhibits the following: + +\end{block} + +\vspace{1em} % Add some space before next block + + +\begin{exampleblock}{System characteristics:} +\begin{enumerate} + \item + Adaptable to new needs, making it interoperable across users and systems. + \item + Modular, allowing components to be reused, replaced, or maintained independently. + \item + Configurable with domain knowledge supplied externally, supporting expert feedback loops. + \item + Transparent, enabling monitoring of data flows and tracking of data provenance through a clear, structured design. +\end{enumerate} +\end{exampleblock} + +\textbf{Practical implementation (Technical stack)} + +\begin{figure}[H] + \centering + \includegraphics[width=0.5\textwidth]{figures/layered_stack.pdf} + %\caption{Diagram of the expert-driven FAIR data exchange system.} +\end{figure} + +\vspace{0.5em} +\colorbox{lightgray}{ + \parbox{0.95\linewidth}{ + \textbf{Code Repository:} \url{https://gitea.psi.ch/APOG_public/acsmnode.git} + } +} +\vspace{0.5em} + +\end{block} + +\end{column} + +%\end{columns} + +%\begin{columns}[t] + +\separatorcolumn + +\begin{column}{1.5\colwidth} + +\begin{block}{FAIR data chains in ACTRIS Switzerland---Use case} + + +\textbf{Challenge: }Standardized annual submission of aerosol composition observations from field stations (\textbf{Payerne} and \textbf{Jungfraujoch}) to the \textbf{EBAS database}. + +\textcolor{white}{ } +We consider raw data described in the Table below. +\textcolor{white}{white} +\begin{table}[!ht] +\resizebox{0.75\textwidth}{!}{% +\centering +\begin{tabular}{|c|c|c|} +\hline +\textbf{Data Source} & \textbf{File Formats} & \textbf{Submission Date} \\ +\hline + Aerodyne & TXT, CSV & \multirow{3}{*}{May 31, 2025} \\ +Aerosol Chemical Speciation Monitor & NAS & \\ +(ACSM) & YAML & \\ +%PTR-TOF MS & NetCDF \\ +\hline +\end{tabular} +} +\end{table} + + \end{block} +%\begin{comment} +%\begin{exampleblock}{General data chain properties:} +%\begin{itemize} +% \item +% Standards Compliance: CF convention metadata + EBAS database rules for quality control (flagging) +% \item +% \textbf{Docker} ensures consistent processing across stations and %time periods +%\end{itemize} +%\end{exampleblock} +%\end{comment} +%\textcolor{white}{white} +\begin{block}{Configurable Data Integration using YAML files} + +\textbf{Goal:} Search, Retrieve, and Integrate Raw Data in HDF5 format + +\begin{figure} +\centering +%\includegraphics[width=0.65\textwidth]{figures/EarthObservation_HSI.pdf} +\includegraphics[width=0.7\textwidth]{figures/data_integration_step.pdf} +\end{figure} +\colorbox{lightgray}{ + \parbox{0.95\linewidth}{ + \textbf{Code Repository:} \url{https://gitea.psi.ch/5505-public/dima.git} + } +} +\end{block} + + + +\begin{block}{Interactive Data Annotation for Quality Control} % Quality Control Workflow} + +\textbf{Goal:} Apply time-dependent correction factors to observations and generate quality control flags with expert validation, complying with EBAS database. + + \begin{figure} +\includegraphics[width=0.6\textwidth]{figures/quality_control_workflow.pdf} +\end{figure} +Enables reconciliation of \textbf{Automatic Diagnostic Flags}, \textbf{Station-specific Flags}, and \textbf{Manual Review Flags}. +%%\textbf{Features:} Enable reconciliation +%\begin{itemize} +% \item \textbf{Automatic Diagnostic Flags}: threshold-based detection of instrument malfunctions. +% \item +% \textbf{Expert Knowledge Flags:} Station operator insights on local conditions and maintenance events and calibration periods. +% \item +% \textbf{Manual Review Flags:} Visual inspection of time series anomalies. +%\end{itemize} + +\end{block} + +\begin{block}{Accessible Data Products for Domain-Agnostic Reuse} + +\textbf{Primary Product:} EBAS-ready files conforming to ACTRIS Level 2 quality standards. + +\textbf{Secondary Product:} A comprehensive, self-describing file that integrates: +\begin{itemize} + \item Original and intermediate data products with rich contextual and provenance metadata, as shown below. + + \begin{figure} + \includegraphics[width=0.9\textwidth]{figures/hdf5_before_after.pdf} + %\caption{Initial integrated file (left) and enhanced HDF5 file (right)} +\end{figure} + \item An auto-generated prospective provenance graph in Renku workflow format, visualized as below + +\begin{figure} + \includegraphics[width=\textwidth]{figures/workflow_acsm_data_JFJ_2024.pdf} + +\end{figure} +\end{itemize} +\end{block} + + + + %\begin{block}{References} + + % \nocite{*} + % \footnotesize{\bibliographystyle{ieeetr}\bibliography{poster}} + + %\end{block} + +\end{column} + +\separatorcolumn +\end{columns} +\end{frame} + +\end{document} diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 0000000..18ec217 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,28 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'ACSM FAIRifier Tool' +copyright = '2025, Juan F. Flórez-Ospina, Leïla H. Simon, Nora K. Nowak, Benjamin T. Brem, Martin Gysel-Beer, and Robin L. Modini' +author = 'Juan F. Flórez-Ospina, Leïla H. Simon, Nora K. Nowak, Benjamin T. Brem, Martin Gysel-Beer, and Robin L. Modini' +release = '0.0.1' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = [] + +templates_path = ['_templates'] +exclude_patterns = [] + + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_theme = 'alabaster' +html_static_path = ['_static'] diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 0000000..3218f71 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,20 @@ +.. ACSM FAIRifier Tool documentation master file, created by + sphinx-quickstart on Tue Jun 17 16:17:43 2025. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to ACSM FAIRifier Tool's documentation! +=============================================== + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search`