Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/FESOM/tripyview
Browse files Browse the repository at this point in the history
  • Loading branch information
patrickscholz committed Oct 21, 2024
2 parents 10f5488 + 84f0fd3 commit 31959ed
Show file tree
Hide file tree
Showing 16 changed files with 702 additions and 400 deletions.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
notebooks/

# Sphinx build files
docs/_build/
docs/_static/
docs/.doctrees
docs/.buildinfo
26 changes: 11 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Triangular plotting and diagnostics for FESOM2 + command line utility similar to
fdiag using plotting suite of [email protected] (former fesom2/view_pscholz folder).
Data reading got updated to xarray, plotting got updated to cartopy, actually works well for
python=3.9, 3.10, 3.11 and 3.12 (python 3.8 made recently some problems to resolve all the cartopy dependencies).
It is tested upto dart mesh size (3M surface vertices) where it allows for a decend
It is tested up to dart mesh size (3M surface vertices) where it allows for a decent
working speed (but only when used in parallel)
<br />
version: 0.3.0
Expand All @@ -32,17 +32,13 @@ make sure your conda environment uses python 3.9, 3.10, 3.11 or 3.12
# gets one thread
# -install libstdcxx-ng with conda since there is no pip package for it is needed
# so that pyvista is able to plot interactively
# -all other packages will be automatically installed by pip
conda install -c conda-forge libstdcxx-ng
cd tripyview
pip install -e .

# If you want to use the interactive features in tools/do_topo@elem_or_node.ipynb
# due to python issues you will need jupyter_server=1.23.6, jupyter_client=7.3.2,
# tornad=6.1 --> its the only combination where this features works in moment!!!
(pip install jupyter_server==1.23.6 jupyter_client==7.3.2 tornado==6.1)

# On my laptop i had problems with the classic notebook support beyond jupyter_server==2.0.0
# and had to downgrade it to jupyter_server<2.0.0. However on HPC albedo that didnt
# and had to downgrade it to jupyter_server<2.0.0. However on HPC albedo that did not
# seems to be the case.
(pip install "jupyter_server<2.0.0")
```
Expand Down Expand Up @@ -105,9 +101,9 @@ vertice/element- resolution and area)


### General time plots:
* `hovm` - plot hovmöller diagramms for 3d ocean variable over depth and time averaged over
* `hovm` - plot hovmöller diagrams for 3d ocean variable over depth and time averaged over
specific region that is defined by shapefile (see. tripyview/shapefiles/...)
* `hovm_clim` - plot hovmöller diagramms for temperature, salinity and density climatology
* `hovm_clim` - plot hovmöller diagrams for temperature, salinity and density climatology
over depth and time averaged over specific region that is defined by shapefile (see. tripyview/shapefiles/...)

* `var_t` - plots time-series of globally or shapefile (see. tripyview/shapefiles/...) averaged 2d and 3d variables
Expand All @@ -123,11 +119,11 @@ for the: Atlantic(amoc), Atlantic+Arctic(aamoc), Pacific(pmoc), Pacific+Indian O
</p>


* `zmoc_t` - plot time-series of atlantic meridional overturning circulation at specific latitudes
* `zmoc_t` - plot time-series of Atlantic meridional overturning circulation at specific latitudes
(default: which_lats: [26, 40, 'max'])


* `dmoc` - plot meridional overturning circulation in density coordinates using FESOM2 density MOC diagnostics (graditues goes to **[email protected]**), Globally,
* `dmoc` - plot meridional overturning circulation in density coordinates using FESOM2 density MOC diagnostics (gratitude goes to **[email protected]**), Globally,
for the: Atlantic(amoc), Atlantic+Arctic(aamoc), Pacific(pmoc), Pacific+Indian Ocean(ipmoc) and Indian Ocean(imoc)
* `dmoc_srf` - plot surface transformation of meridional overturning circulation in density coordinates
* `dmoc_inner` - plot inner transformation of meridional overturning circulation in density coordinates
Expand All @@ -151,7 +147,7 @@ for the: Atlantic(amoc), Atlantic+Arctic(aamoc), Pacific(pmoc), Pacific+Indian O
* `dmoc_srfcbflx` - plot surface buoyancy flux transformation for specific water-class


* `dmoc_t` - plot time-series of atlantic meridional overturning circulation in density coordinates at specific latitudes
* `dmoc_t` - plot time-series of Atlantic meridional overturning circulation in density coordinates at specific latitudes
(default: which_lats: [26, 55, 'max'])


Expand All @@ -164,7 +160,7 @@ for the: Atlantic(amoc), Atlantic+Arctic(aamoc), Pacific(pmoc), Pacific+Indian O


### 2D automatic multipanel plotting:
* plot automatised figure multipanels depending on number of choosen datasets and number
* plot automatised figure multi-panels depending on number of chosen datasets and number
of panel columns ncol (the panel arrangement uses ideas from **[email protected]**)
<p align="center" width="100%">
<img width=75% src="tripyview/tripyview_multipanel.png">
Expand All @@ -185,15 +181,15 @@ of panel columns ncol (the panel arrangement uses ideas from **Nils.Brueggemann@

## Command line batch diagnostics:
* `tripyrun <workflowfile.yml>` - command line diagnostics similar to fdiag (fdiag, served as a
template, graditues go to **[email protected]**), creates html files with linked plots.
template, gratitude go to **[email protected]**), creates html files with linked plots.

* `tripyrun <workflowfile.yml> -d <driver>` - re-run one specific driver from .yml file

* `tripyrun <workflowfile.yml> -d <driver> -v <var1 var2 ...>` - re-run specific variable
subset of one specific driver driver from .yml file

* `tripyrun <workflowfile.yml> -r` - for the case the diagnostic did not fully finish you can
render the html file from hand based on hte saved json file. The json file is update after each finished
render the html file from hand based on the saved json file. The json file is update after each finished
driver section.

<p align="center" width="100%">
Expand Down
20 changes: 20 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
@@ -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 = .
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)
151 changes: 151 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# tripyview documentation build configuration file, created by
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.

# If extensions (or modules to document with autodoc) are in another
# directory, add these directories to sys.path here. If the directory is
# relative to the documentation root, use os.path.abspath to make it
# absolute, like shown here.
import os
import sys
import tripyview
sys.path.insert(0, os.path.join(tripyview.__path__[0]))


# 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 = 'tripyview'
copyright = '2024, Patrick Scholz'
author = 'Patrick Scholz'
version = '0.3.0'
release = '0.3.0'

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode']

autodoc_mock_imports = ['mpl_toolkits', 'cartopy']

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']

# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = 'en'

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']

# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
source_suffix = '.rst'

# The master toctree document.
master_doc = 'index'

# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'

# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False



# -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
#html_theme = 'sphinx_rtd_theme'
# html_theme = 'alabaster'
html_theme = 'agogo'

# Theme options are theme-specific and customize the look and feel of a
# theme further. For a list of options available for each theme, see the
# documentation.
html_static_path = ['_static']



# -- Options for HTMLHelp output ---------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'tripyviewdoc'



# -- Options for LaTeX output ------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
'papersize': 'letterpaper',

# The font size ('10pt', '11pt' or '12pt').
#
'pointsize': '12pt',

# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
"preamble": r"""
\setcounter{secnumdepth}{3}
""",
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}



# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass
# [howto, manual, or own class]).
latex_documents = [
(master_doc, 'tripyview.tex',
u'tripyview Documentation',
u'Patrick Scholz', 'manual'),
]



# -- Options for manual page output ------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'tripyview',
u'tripyview Documentation',
[author], 1)
]



# -- Options for Texinfo output ----------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'tripyview',
u'tripyview Documentation',
author,
'tripyview',
'One line description of project.',
'Miscellaneous'),
]
44 changes: 44 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
.. tripyview documentation master file, created by
sphinx-quickstart on Sun Jun 2 16:22:36 2024.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to tripyview's documentation!
=====================================

.. toctree::
:maxdepth: 2
:caption: Contents:


.. automodule:: tripyview.sub_mesh
:members:
:undoc-members:
:show-inheritance:

.. automodule:: tripyview.sub_plot
:members:
:undoc-members:
:show-inheritance:

.. automodule:: tripyview.sub_data
:members:
:undoc-members:
:show-inheritance:

.. automodule:: tripyview.sub_transect
:members:
:undoc-members:
:show-inheritance:

.. automodule:: tripyview.sub_index
:members:
:undoc-members:
:show-inheritance:

Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
35 changes: 35 additions & 0 deletions docs/make.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
@ECHO OFF

pushd %~dp0

REM Command file for Sphinx documentation

if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=.
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
Loading

0 comments on commit 31959ed

Please sign in to comment.