diff --git a/.github/workflows/build-book-pullrequest.yaml b/.github/workflows/build-book-pullrequest.yaml index 186039b22..0de5ab90b 100644 --- a/.github/workflows/build-book-pullrequest.yaml +++ b/.github/workflows/build-book-pullrequest.yaml @@ -28,7 +28,7 @@ permissions: contents: read env: - DOCKER_TAG: pr_105 + DOCKER_TAG: pr_104 jobs: build-book: diff --git a/.github/workflows/build-book.yaml b/.github/workflows/build-book.yaml index c54f7d1a2..3166035cf 100644 --- a/.github/workflows/build-book.yaml +++ b/.github/workflows/build-book.yaml @@ -25,7 +25,7 @@ on: type: string # had a lot of trouble with boolean types, see https://github.com/actions/runner/issues/1483 env: - DOCKER_TAG: pr_105 + DOCKER_TAG: pr_104 jobs: build-container: diff --git a/.github/workflows/deploy-book.yaml b/.github/workflows/deploy-book.yaml index 620f18a93..dbc86dd9d 100644 --- a/.github/workflows/deploy-book.yaml +++ b/.github/workflows/deploy-book.yaml @@ -12,7 +12,7 @@ jobs: uses: ./.github/workflows/build-book.yaml with: environment_name: erad-2024-dev - environment_file: environment.yml + environment_file: binder/environment.yml path_to_notebooks: ./ deploy: diff --git a/.github/workflows/publish-book.yaml b/.github/workflows/publish-book.yaml index bd71a989d..f5209679b 100644 --- a/.github/workflows/publish-book.yaml +++ b/.github/workflows/publish-book.yaml @@ -10,12 +10,12 @@ jobs: uses: ./.github/workflows/build-book.yaml with: environment_name: erad-2024-dev - environment_file: environment.yml + environment_file: binder/environment.yml path_to_notebooks: ./ link-check: uses: ./.github/workflows/link-checker.yaml with: environment_name: erad-2024-dev - environment_file: environment.yml + environment_file: binder/environment.yml path_to_notebooks: ./ diff --git a/binder/Dockerfile b/binder/Dockerfile index 3f29db3c7..d09936008 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1 +1 @@ -FROM ghcr.io/openradar/erad2024:pr_105 +FROM ghcr.io/openradar/erad2024:pr_104 diff --git a/binder/environment.yml b/binder/environment.yml index d6642c7dc..39fcf937f 100644 --- a/binder/environment.yml +++ b/binder/environment.yml @@ -63,6 +63,7 @@ dependencies: - rioxarray # needed for LROSE / pyrad - metpy + - jupyterlab_rise - pip - pip: - git+https://github.com/pydata/xarray@d33e4ad9407591cc7287973b0f8da47cae396004 diff --git a/environment.yml b/environment.yml deleted file mode 100644 index 2503c32e1..000000000 --- a/environment.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: erad2024-dev -channels: - - conda-forge -dependencies: - - jupyter-book - - jupyterlab - - jupyter_server - - sphinx-pythia-theme - - arm_pyart - - cartopy - - matplotlib - - numpy - - pydda - - pyrad_arm - - wradlib - - xradar>=0.6.3 - - numpy<2.0 - - python<=3.11 - - mystmd - - pip - - pip: - - git+https://github.com/pydata/xarray@d33e4ad9407591cc7287973b0f8da47cae396004 diff --git a/myst.yml b/myst.yml index a53d9d7aa..ed40ece75 100755 --- a/myst.yml +++ b/myst.yml @@ -52,12 +52,8 @@ project: copyright: '2024' toc: - file: README.md - - title: Preamble - children: - - file: notebooks/how-to-cite.md - - title: Schedule - children: - - file: schedule.md + - file: notebooks/how-to-cite.md + - file: schedule.md - title: Getting started children: - file: getting_started.md @@ -65,16 +61,13 @@ project: - file: notebooks/environment.ipynb - title: Radar Software Foundations children: - - title: XRadar - children: - - file: notebooks/xradar-pyart/xradar-basics.ipynb + - file: presentations/intro-to-open-radar-science.ipynb + - file: notebooks/xradar-pyart/xradar-basics.ipynb - title: Py-ART and wradlib children: - file: notebooks/xradar-pyart/pyart-basics.ipynb - file: notebooks/wradlib/wradlib_clutter_beamblockage.ipynb - - title: GPM-API - children: - - file: notebooks/gpm-api/gpm-api-intro.ipynb + - file: notebooks/gpm-api/gpm-api-intro.ipynb - title: BALTRAD children: - pattern: notebooks/baltrad/baltrad_short_course/*.ipynb @@ -83,23 +76,24 @@ project: - title: LROSE children: - file: notebooks/lrose/LROSE_Basics.ipynb - - file: notebooks/lrose/LROSE_ERAD_fractl_samurai.ipynb - - file: notebooks/lrose/DD_Tornado_ERAD2024.ipynb + - file: notebooks/lrose/DD_Tornado_ERAD24.ipynb + - file: notebooks/lrose/testing/stress_testing.ipynb - - title: Notebook Environment - children: - - file: notebooks/environment.ipynb - - title: Retrieving winds with PyDDA - children: - - file: notebooks/Retrieving_winds_with_pydda.ipynb - - title: ARCO Radar Datasets + - title: Project Workflows children: - - file: notebooks/Analysis-Ready/ARCO-Datasets.ipynb - - file: notebooks/Analysis-Ready/QPE-QVPs.ipynb - - title: Spaceborne - Ground Radar Matching and Calibration - children: - - file: notebooks/gpm-api/SR_GR_Calibration_Applied.ipynb - - file: notebooks/gpm-api/SR_GR_Matching_Procedure.ipynb + - title: LROSE & PyDDA multi doppler analysis + children: + - file: notebooks/Retrieving_winds_with_pydda.ipynb + - file: notebooks/lrose/LROSE_ERAD_fractl_samurai.ipynb + - title: ARCO Radar Datasets + children: + - file: notebooks/Analysis-Ready/ARCO-Datasets.ipynb + - file: notebooks/Analysis-Ready/QPE-QVPs.ipynb + - title: Spaceborne - Ground Radar Matching and Calibration + children: + - file: notebooks/gpm-api/SR_GR_Calibration_Applied.ipynb + - file: notebooks/gpm-api/SR_GR_Matching_Procedure.ipynb + - file: notebooks/pyrad/description-pyrad-tutorial.ipynb jupyter: binder: repo: openradar/erad2024 @@ -107,6 +101,8 @@ project: abbreviations: ARM: Atmospheric Radiation Measurement NCAR: National Center for Atmospheric Research + settings: + output_matplotlib_strings: remove site: options: favicon: notebooks/images/icons/favicon.ico @@ -115,8 +111,10 @@ site: nav: - title: Conference Home url: https://www.erad2024.it - - title: Open Radar Community + - title: Community url: https://openradarscience.org + - title: Discourse + url: https://openradar.discourse.group/ actions: - title: Launch Environment url: https://binder.projectpythia.org/v2/gh/openradar/erad2024/main?labpath=notebooks diff --git a/notebooks/environment.ipynb b/notebooks/environment.ipynb index 9ef1c9be4..16e930f20 100644 --- a/notebooks/environment.ipynb +++ b/notebooks/environment.ipynb @@ -4,16 +4,16 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Environment overview" + "# Environment overview\n", + "\n", + "This notebook gives a short over view over the installed packages and the environment.\n" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "!env" + "## Linux Environment" ] }, { @@ -22,16 +22,14 @@ "metadata": {}, "outputs": [], "source": [ - "!conda list" + "!env" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "import wradlib as wrl" + "## Conda Environment" ] }, { @@ -40,7 +38,7 @@ "metadata": {}, "outputs": [], "source": [ - "wrl.show_versions()" + "!conda list" ] } ], diff --git a/notebooks/how-to-cite.md b/notebooks/how-to-cite.md index 04ae30ad3..fbb3ce18a 100644 --- a/notebooks/how-to-cite.md +++ b/notebooks/how-to-cite.md @@ -1,4 +1,4 @@ -# How to Cite This Cookbook +# How to Cite The material in this Project Pythia Cookbook is licensed for free and open consumption and reuse. All code is served under [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0), while all non-code content is licensed under [Creative Commons BY 4.0 (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/). Effectively, this means you are free to share and adapt this material so long as you give appropriate credit to the Cookbook authors and the Project Pythia community. diff --git a/notebooks/pyrad/description-pyrad-tutorial.ipynb b/notebooks/pyrad/description-pyrad-tutorial.ipynb index b0e4891f7..9e24998ce 100644 --- a/notebooks/pyrad/description-pyrad-tutorial.ipynb +++ b/notebooks/pyrad/description-pyrad-tutorial.ipynb @@ -6,7 +6,7 @@ "jp-MarkdownHeadingCollapsed": true }, "source": [ - "# Pyrad tutorial\n", + "# Pyrad QPE Exercise\n", "\n", "- An overview of pyrad is provided [here](../../presentations/pdf/Pyrad_architecture_and_principles.pdf).\n", "- Pyrad documentation can be found [here](https://meteoswiss.github.io/pyrad/).\n", @@ -84,8 +84,8 @@ "# Beyond QPE\n", "\n", "Pyrad has much more features available than just QPE. Have a look at the two config file sets that covers other projects discussed in this course:\n", - "- [Dual-Doppler analysis using PyDDA](../../pyrad/config/dda.txt)\n", - "- [Quasi-Vertical profiles](../../pyrad/config/qvp.txt)\n", + "- [Dual-Doppler analysis using PyDDA](../../pyrad/config-examples/dda.txt)\n", + "- [Quasi-Vertical profiles](../../pyrad/config-examples/qvp.txt)\n", "\n", "There are many more examples of config files available in the [Pyrad examples repository](https://github.com/MeteoSwiss/pyrad-examples/).\n", "\n", @@ -107,11 +107,6 @@ } ], "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, "language_info": { "codemirror_mode": { "name": "ipython", diff --git a/presentations/images/baltrad-functionality.svg b/presentations/images/baltrad-functionality.svg new file mode 100644 index 000000000..7c65cdfc3 --- /dev/null +++ b/presentations/images/baltrad-functionality.svg @@ -0,0 +1 @@ +DescriptionEnvironmentPackageDatabase manager subsystemPython, Javabaltrad-dbDistribution and Exchange subsystemJavaBaltradDexWeb map servicesOGC Map Serverbaltrad_wmsBALTRAD interface to EUMETNET OPERA’s BUFR SoftwareC, PythonbbufrBeam blockage correctionC, PythonbeambTask manager/scheduler subsystemJavabeastAnomaly (non-precipitation echo) detection and removalC, PythonbRopoCreation of PNG images to use in Google MapsPythonGoogleMapsPluginInstallation wizardPythonnode-installerData injector using ODIM_H5 and Rainbow file formatsJavaOdimH5Product generation framework and toolboxC, PythonRAVEWind productsC, Pythonbaltrad_wrwpPolarimetric processing chainC, Pythonbaltrad-ppc \ No newline at end of file diff --git a/presentations/images/baltrad-images.png b/presentations/images/baltrad-images.png new file mode 100644 index 000000000..05c9836e5 Binary files /dev/null and b/presentations/images/baltrad-images.png differ diff --git a/presentations/images/lrose-functionality.svg b/presentations/images/lrose-functionality.svg new file mode 100644 index 000000000..4e97be27d --- /dev/null +++ b/presentations/images/lrose-functionality.svg @@ -0,0 +1 @@ +RadxPrint: Print file properties and determine if it is supported by RadxRadxConvertand RadxBufr: Conversion from 25 formats to CfRadialConvertHawkEyeDisplay14 tools:compare merge and filter fieldsDetect sun hits and analyse themQuality ControlRadx2GridGrid23 tools:KDP and AttenuationParticle Identification, hydrometeor classificationRain rate and rainfall accumulationBeam blockage estimationConvective/stratiformMesocyclonesRefractivity and moistureTitan (Thunderstorm Identification, Tracking, Analysis and Nowcasting)Echo5 tools:VADMulti-Doppler retrievalVortexOptical FlowWind \ No newline at end of file diff --git a/presentations/images/lrose-images.png b/presentations/images/lrose-images.png new file mode 100644 index 000000000..ff98ae0be Binary files /dev/null and b/presentations/images/lrose-images.png differ diff --git a/presentations/images/open-radar-forum.png b/presentations/images/open-radar-forum.png new file mode 100644 index 000000000..3ff314520 Binary files /dev/null and b/presentations/images/open-radar-forum.png differ diff --git a/presentations/images/open-radar-tools.png b/presentations/images/open-radar-tools.png new file mode 100644 index 000000000..ea90696cc Binary files /dev/null and b/presentations/images/open-radar-tools.png differ diff --git a/presentations/images/open-radar-workflow-tasks.png b/presentations/images/open-radar-workflow-tasks.png new file mode 100644 index 000000000..04b9fe74e Binary files /dev/null and b/presentations/images/open-radar-workflow-tasks.png differ diff --git a/presentations/images/openradar-landing-page.png b/presentations/images/openradar-landing-page.png new file mode 100644 index 000000000..c3cb94833 Binary files /dev/null and b/presentations/images/openradar-landing-page.png differ diff --git a/presentations/images/pyart-functionality.svg b/presentations/images/pyart-functionality.svg new file mode 100644 index 000000000..fc82a64ba --- /dev/null +++ b/presentations/images/pyart-functionality.svg @@ -0,0 +1 @@ +FunctionalityModuleCategoryReading and writing gridded and polar dataio and aux_ioReading/writingAttenuation, bias, noise in RhoHV, Doppler velocity de-aliasing, PhiDP processing, Despeckling and clutter filteringcorrectCorrecting radar fieldsSecondary moments (e.g. Noise, SNR, CDR, KDP)VAD, hydrometeor classification, RR, Column ExtractionretrieveRetrievingHorizontal grid plotting, 3D grid slice plotting, PPI, RHI, ray, Pseudo-PPI, Cross SectionsgraphPlottingmapCompositingAccording to temperature, position with respect to iso-0°, moments, moments and texturesfiltersFiltering \ No newline at end of file diff --git a/presentations/images/pyart-images.png b/presentations/images/pyart-images.png new file mode 100644 index 000000000..7abc526ab Binary files /dev/null and b/presentations/images/pyart-images.png differ diff --git a/presentations/images/pyrad-functionality.svg b/presentations/images/pyrad-functionality.svg new file mode 100644 index 000000000..04b335ab6 --- /dev/null +++ b/presentations/images/pyrad-functionality.svg @@ -0,0 +1 @@ +Gridded dataSpectral dataIQ dataPoint of interestRegion of interestTemporal statistics0-Doppler filteringsRhoHV filteringSpectral noise filtering (Spectral clipping)Point of interestRegion of interestSpectral power, phase, reflectivity, ZDR, RhoHV, PhiDPNoise estimationComputation of polarimetric and Doppler momentsTransformation into IQ data (inverse FFT)Computation of polarimetric and Doppler moments (lag-N estimators)Transformation into spectral data (FFT)CapabilitiesMappedimage/contourCross-sectionsHistogramsSave datain netcdfRange/Angle/Time-Doppler plotSave data in netcdfProducts \ No newline at end of file diff --git a/presentations/images/pyrad-images.jpg b/presentations/images/pyrad-images.jpg new file mode 100644 index 000000000..1a432200e Binary files /dev/null and b/presentations/images/pyrad-images.jpg differ diff --git a/presentations/images/secret-sauce.png b/presentations/images/secret-sauce.png new file mode 100644 index 000000000..2e28d858c Binary files /dev/null and b/presentations/images/secret-sauce.png differ diff --git a/presentations/images/wradlib-functionality.svg b/presentations/images/wradlib-functionality.svg new file mode 100644 index 000000000..5448fd520 --- /dev/null +++ b/presentations/images/wradlib-functionality.svg @@ -0,0 +1 @@ +CommentsFunctionalityModuleGage adjustmentadjustHitschfeld, PIA from KDPAttenuation CorrectionattenFuzzy logic classifierHydrometeor ClassificationclassifyClutter IdentificationclutterMultiple Radar compositingCompositioncompKDP retrieval, texture computation, de-polarization ratio computationDual-Pol and Differential PhasedpGeoreferencinggeorefMany readers, some put data in xarraysRaw data I/OioInterpolation functionsInterpolationipolBeam blockage calculations, Bright band contaminationData Qualityquale.g. linear to dBData TransformationtrafoDespeckle, derivate, etc.Utility FunctionsutilComparison between radar-base precipitation and ground truthVerificationverifyPPI, RHI, etc.VisualizationvisCreate and work with 3D gridsVertical Profile of ReflectivityvprZonal StatisticszonalstatsZ-R Conversionszr \ No newline at end of file diff --git a/presentations/images/wradlib-images.png b/presentations/images/wradlib-images.png new file mode 100644 index 000000000..2d403a41b Binary files /dev/null and b/presentations/images/wradlib-images.png differ diff --git a/presentations/intro-to-open-radar-science.ipynb b/presentations/intro-to-open-radar-science.ipynb new file mode 100644 index 000000000..504b0c35d --- /dev/null +++ b/presentations/intro-to-open-radar-science.ipynb @@ -0,0 +1,655 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# An Introduction to Open Radar Science" + ] + }, + { + "cell_type": "markdown", + "id": "1", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## What is Open Science?\n", + "\n", + "
\n", + "\n", + "
\n", + "\n", + "Image based on [Ramachandran et al. 2021](https://doi.org/10.1029/2020EA001562)" + ] + }, + { + "cell_type": "markdown", + "id": "2", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### What Does this look like in the Weather Radar Community?\n", + "- Since the late 2000s (and even before) there has been a number of major open source projects released (see e.g. https://openradarscience.org).\n", + "- Some of them are in a mature stage and are widely used in an academic (mostly) but also operational environment" + ] + }, + { + "cell_type": "markdown", + "id": "3", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "- Most make use of modern tools (e.g. github, conda, docker) and practices (e.g. Continuous Integration, automatic tests) that make them easy to evolve and deploy\n", + "- Most are backed by major weather services or academic institutions\n", + "Projects are not competing among them but collaborating : Best practices and inter-operability are discussed regularly and joint open source courses have been organized for years at major radar conferences (AMS, ERAD) " + ] + }, + { + "cell_type": "markdown", + "id": "4", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## The Conceptual Idea of the Open Radar Stack" + ] + }, + { + "cell_type": "markdown", + "id": "5", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "### Common weather radar processing workflows\n", + "\n", + "![radar workflows](images/open-radar-workflow-tasks.png)" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "### The Open Radar Tools\n", + "\n", + "![open radar tools](images/open-radar-tools.png)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "7", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "#### Additional Tools that Can be used with/for Weather Radar Data\n", + "\n", + "- [MetPy](https://unidata.github.io/MetPy/latest/index.html)\n", + " - a collection of tools in Python for reading, visualizing, and performing calculations with weather data\n", + "- [tobac](https://tobac.readthedocs.io/en/latest/)\n", + " - a Python package for rapidly identify, track and analyze clouds in different types of gridded datasets, such as 3D model output from cloud-resolving model simulations or 2D data from satellite retrievals." + ] + }, + { + "cell_type": "markdown", + "id": "8", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Introductions of the Core Open Radar Stack" + ] + }, + { + "cell_type": "markdown", + "id": "9", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### Wradlib *(Keep the magic to the minimum (let the user decide))*\n", + "- https://wradlib.org\n", + "- One of the oldest packages (2011)\n", + "- Open platform for collaborative development of algorithms\n", + "- Python-based\n", + "- Linux/Windows/Mac\n", + "- Flat data model that allows maximum flexibility to interact with the data." + ] + }, + { + "cell_type": "markdown", + "id": "10", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "- xarray readers available (now in xradar as of 2.0)\n", + "- Comprehensively addresses the full radar processing chain\n", + "- Mainly geared to interactive use in research but used in operations too\n", + "- Easy to install (PyPI, conda, Docker Hub)" + ] + }, + { + "cell_type": "markdown", + "id": "11", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "#### Functionality\n", + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "12", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "#### Sample Image\n", + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "13", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### Py-ART *(It's all about the data model)*\n", + "- https://arm-doe.github.io/pyart/\n", + "- Created in the context of the ARM program (2013)\n", + "- Open platform for collaborative development of algorithms\n", + "- Mostly Python-based (some modules in C, Cython and FORTRAN)" + ] + }, + { + "cell_type": "markdown", + "id": "14", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "- Linux/Windows/Mac\n", + "- Core : Radar object that structures the radar data and metadata mirroring the C/F Radial standard\n", + "- Limited scope. Base block to built upon\n", + "- Rich ecosystem of packages: ART-VIEW, PyTDA, PyDDA, TINT, Pyrad...\n", + "- Easy to install (PyPI, conda)" + ] + }, + { + "cell_type": "markdown", + "id": "15", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "#### Functionality\n", + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "16", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "#### Sample Image\n", + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "17", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### Pyrad *(Flexible and replicable data processing chains with no programming)*\n", + "- https://github.com/MeteoSwiss/pyrad\n", + "- Initially developed at MeteoSwiss. Now shared development between MeteoSwiss and Météo-France\n", + "- Python-based weather radar data processing framework capable of operating in real time or off-line\n", + "- Core based on ARM-DOE Py-ART (Pyrad major contributor)\n", + "- Easy to install (PyPI, conda)" + ] + }, + { + "cell_type": "markdown", + "id": "18", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "#### Functionality\n", + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "19", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "#### Sample Image\n", + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "20", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### LROSE *(High quality building blocks forcomplex workflows)*\n", + "- http://lrose.net/ \n", + "- Based on legacy of NCAR and CSU tools\n", + "- Fast native cross-platform applications\n", + "- Mostly C++\n", + "- Linux/Mac/partially Windows\n", + "- Many stand-alone tools\n", + "- Stores data in CF/Radial" + ] + }, + { + "cell_type": "markdown", + "id": "21", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "#### Functionality\n", + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "22", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "#### Sample Image\n", + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "23", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### BALTRAD *(Advanced Weather Radar Network)*\n", + "- Heritage from the Nordic Network NORDRAD. Partly funded by the EU. BALTRAD and BALTRAD+ projects (2009-2014). 13 partners in 10 countries\n", + "- Real-time data exchange and data processing\n", + "- Sub-packages written in different languages\n", + " - Data exchange: JAVA\n", + " - Data processing: C and Python" + ] + }, + { + "cell_type": "markdown", + "id": "24", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "- Linux/Mac\n", + "- Distributed networking, partners exchange polar data and process them using a common toolbox\n", + "- Uses ODIM-H5\n", + "- Documentation: https://baltrad.github.io/ \n", + "- Code: https://github.com/baltrad" + ] + }, + { + "cell_type": "markdown", + "id": "25", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "#### Functionality\n", + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "26", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "#### Sample Image\n", + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "27", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### Conclusions on the Open Radar Stack\n", + "- Acknowledge software when you use it – treat it like a paper\n", + " - Most projects have Digital Object Identifiers (DOIs)\n", + "- Contribute back to projects\n", + " - Report bugs, suggest enhancements, share feedback!\n", + "- Do not be afraid to contribute\n", + " - We all started somewhere – your code will be reviewed + tests ensure things do not break" + ] + }, + { + "cell_type": "markdown", + "id": "28", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "- Open Source does not end at making things open\n", + " - Support, documentation, consistency, etc. are required\n", + "- Take a look at existing projects to see if you can collaborate/coordinate!" + ] + }, + { + "cell_type": "markdown", + "id": "29", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## The Open Radar Community" + ] + }, + { + "cell_type": "markdown", + "id": "30", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### More on Open Science: Beyond the Tools\n", + "
\n", + "\n", + "
\n", + "\n", + "- Open Science = Open Data + Open Algorithms + Open Software + Open Peer Review + Open Access Publication" + ] + }, + { + "cell_type": "markdown", + "id": "31", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "- Thereby, science process and outputs can be:\n", + " - ✅ Transparent\n", + " - ✅ Reproducible\n", + " - ✅ Transferrable\n", + " - ✅ Collaborative\n", + " - ✅ Credible!\n", + " - ✅ Durable, sustainable" + ] + }, + { + "cell_type": "markdown", + "id": "32", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "
\n", + "

Important

\n", + " No conflict between Intellectual Property Rights (IPR) and licensing.\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "33", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "#### Recommendations for Open Scientists\n", + "- Use Git for collaborative change/version code management\n", + " - GitHub: github.com \n", + " - GitLab: gitlab.com\n", + "- Linux virtual machine on your local computer\n", + " - Cost-effective near-replication of official environments\n", + " - Good for development, even while traveling\n", + " - VM is the starting point, a vehicle, for creating transferrable computational environments" + ] + }, + { + "cell_type": "markdown", + "id": "34", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "- Today’s cloud instance is an “elaborated” VM (Jupyterhub/Binderhub)\n", + "- If you have a choice, use an open programming language\n", + "- Avoid proprietary algorithms like Numerical Recipes\n", + "- Publish code\n", + "- Publish data\n", + "- Publish code & data associated with a study/paper\n", + "- Publish in Open Access journals" + ] + }, + { + "cell_type": "markdown", + "id": "35", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### The Open Radar Forum - Establishing a Community of Practice\n", + "https://openradar.discourse.group/\n", + "\n", + "
\n", + "\n", + "
" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "36", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Conclusions\n", + "https://openradarscience.org\n", + "\n", + "
\n", + "\n", + "
\n", + "\n", + "- There is no “silver bullet” for open science\n", + "- Try to use open languages where possible\n", + "- Share your work!\n", + "- Join the conversation on the forum\n", + "- You can find more posts relevant to the Open Radar Community on our website (at the top) and on the forum\n", + "- We have monthly meetings! Join!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + } + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}