diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..b27f5bfe4ba935861e7c2193daaa20bae660b4b8 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,177 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = build + +# User-friendly check for sphinx-build +ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) +$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) +endif + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext + +help: + @echo "Please use \`make <target>' where <target> is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " xml to make Docutils-native XML files" + @echo " pseudoxml to make pseudoxml-XML files for display purposes" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/pyNEMO.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/pyNEMO.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/pyNEMO" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/pyNEMO" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +latexpdfja: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through platex and dvipdfmx..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." + +xml: + $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml + @echo + @echo "Build finished. The XML files are in $(BUILDDIR)/xml." + +pseudoxml: + $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml + @echo + @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000000000000000000000000000000000000..b778f9ff800963f5337a7f1e402592e13fd8aef1 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,242 @@ +@ECHO OFF + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set BUILDDIR=build +set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source +set I18NSPHINXOPTS=%SPHINXOPTS% source +if NOT "%PAPER%" == "" ( + set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% + set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% +) + +if "%1" == "" goto help + +if "%1" == "help" ( + :help + echo.Please use `make ^<target^>` where ^<target^> is one of + echo. html to make standalone HTML files + echo. dirhtml to make HTML files named index.html in directories + echo. singlehtml to make a single large HTML file + echo. pickle to make pickle files + echo. json to make JSON files + echo. htmlhelp to make HTML files and a HTML help project + echo. qthelp to make HTML files and a qthelp project + echo. devhelp to make HTML files and a Devhelp project + echo. epub to make an epub + echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter + echo. text to make text files + echo. man to make manual pages + echo. texinfo to make Texinfo files + echo. gettext to make PO message catalogs + echo. changes to make an overview over all changed/added/deprecated items + echo. xml to make Docutils-native XML files + echo. pseudoxml to make pseudoxml-XML files for display purposes + echo. linkcheck to check all external links for integrity + echo. doctest to run all doctests embedded in the documentation if enabled + goto end +) + +if "%1" == "clean" ( + for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i + del /q /s %BUILDDIR%\* + goto end +) + + +%SPHINXBUILD% 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.http://sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "html" ( + %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/html. + goto end +) + +if "%1" == "dirhtml" ( + %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. + goto end +) + +if "%1" == "singlehtml" ( + %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. + goto end +) + +if "%1" == "pickle" ( + %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the pickle files. + goto end +) + +if "%1" == "json" ( + %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the JSON files. + goto end +) + +if "%1" == "htmlhelp" ( + %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run HTML Help Workshop with the ^ +.hhp project file in %BUILDDIR%/htmlhelp. + goto end +) + +if "%1" == "qthelp" ( + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run "qcollectiongenerator" with the ^ +.qhcp project file in %BUILDDIR%/qthelp, like this: + echo.^> qcollectiongenerator %BUILDDIR%\qthelp\pyNEMO.qhcp + echo.To view the help file: + echo.^> assistant -collectionFile %BUILDDIR%\qthelp\pyNEMO.ghc + goto end +) + +if "%1" == "devhelp" ( + %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. + goto end +) + +if "%1" == "epub" ( + %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The epub file is in %BUILDDIR%/epub. + goto end +) + +if "%1" == "latex" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "latexpdf" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + cd %BUILDDIR%/latex + make all-pdf + cd %BUILDDIR%/.. + echo. + echo.Build finished; the PDF files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "latexpdfja" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + cd %BUILDDIR%/latex + make all-pdf-ja + cd %BUILDDIR%/.. + echo. + echo.Build finished; the PDF files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "text" ( + %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The text files are in %BUILDDIR%/text. + goto end +) + +if "%1" == "man" ( + %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The manual pages are in %BUILDDIR%/man. + goto end +) + +if "%1" == "texinfo" ( + %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. + goto end +) + +if "%1" == "gettext" ( + %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The message catalogs are in %BUILDDIR%/locale. + goto end +) + +if "%1" == "changes" ( + %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes + if errorlevel 1 exit /b 1 + echo. + echo.The overview file is in %BUILDDIR%/changes. + goto end +) + +if "%1" == "linkcheck" ( + %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck + if errorlevel 1 exit /b 1 + echo. + echo.Link check complete; look for any errors in the above output ^ +or in %BUILDDIR%/linkcheck/output.txt. + goto end +) + +if "%1" == "doctest" ( + %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest + if errorlevel 1 exit /b 1 + echo. + echo.Testing of doctests in the sources finished, look at the ^ +results in %BUILDDIR%/doctest/output.txt. + goto end +) + +if "%1" == "xml" ( + %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The XML files are in %BUILDDIR%/xml. + goto end +) + +if "%1" == "pseudoxml" ( + %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. + goto end +) + +:end diff --git a/docs/source/_static/add-variable.jpg b/docs/source/_static/add-variable.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8efe0d74446cbc83724171d8fc3eeae6fc23fe48 Binary files /dev/null and b/docs/source/_static/add-variable.jpg differ diff --git a/docs/source/_static/eg2.png b/docs/source/_static/eg2.png new file mode 100644 index 0000000000000000000000000000000000000000..3db4576156149f1157f1d56ded5aed005c0c2ad3 Binary files /dev/null and b/docs/source/_static/eg2.png differ diff --git a/docs/source/_static/generator-gui.jpg b/docs/source/_static/generator-gui.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d77bbabedf5e58445d64424799aa75139840607 Binary files /dev/null and b/docs/source/_static/generator-gui.jpg differ diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 0000000000000000000000000000000000000000..0138b9555b599057eecabe06837d476261612639 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,274 @@ +# -*- coding: utf-8 -*- +# +# pyNEMO documentation build configuration file, created by +# sphinx-quickstart on Thu Jun 25 15:08:06 2015. +# +# 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. + +import sys +import os + +# 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. +sys.path.insert(0, os.path.abspath('../..')) + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# 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.napoleon', 'sphinx.ext.todo' +] + +# Napoleon settings +napoleon_google_docstring = True +napoleon_numpy_docstring = True +napoleon_include_init_with_doc = False +napoleon_include_private_with_doc = False +napoleon_include_special_with_doc = False +napoleon_use_admonition_for_examples = False +napoleon_use_admonition_for_notes = False +napoleon_use_admonition_for_references = False +napoleon_use_ivar = False +napoleon_use_param = True +napoleon_use_rtype = True +napoleon_use_keyword = True + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'pyNEMO' +copyright = u'2015, James Harle, Srikanth Nagella, Shirley Crompton' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '0.1' +# The full version, including alpha/beta/rc tags. +release = '0.1' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = [] + +# The reST default role (used for this markup: `text`) to use for all +# documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + +# If true, keep warnings as "system message" paragraphs in the built documents. +#keep_warnings = False + + +# -- 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' + +# 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_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# "<project> v<release> documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# Add any extra paths that contain custom files (such as robots.txt or +# .htaccess) here, relative to this directory. These files are copied +# directly to the root of the documentation. +#html_extra_path = [] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a <link> tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'pyNEMOdoc' + + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { +# The paper size ('letterpaper' or 'a4paper'). +#'papersize': 'letterpaper', + +# The font size ('10pt', '11pt' or '12pt'). +#'pointsize': '10pt', + +# Additional stuff for the LaTeX preamble. +#'preamble': '', +} + +# 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 = [ + ('index', 'pyNEMO.tex', u'pyNEMO Documentation', + u'James Harle, Srikanth Nagella, Shirley Crompton', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'pynemo', u'pyNEMO Documentation', + [u'James Harle, Srikanth Nagella, Shirley Crompton'], 1) +] + +# If true, show URL addresses after external links. +#man_show_urls = False + + +# -- 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 = [ + ('index', 'pyNEMO', u'pyNEMO Documentation', + u'James Harle, Srikanth Nagella, Shirley Crompton', 'pyNEMO', 'One line description of project.', + 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +#texinfo_appendices = [] + +# If false, no module index is generated. +#texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#texinfo_show_urls = 'footnote' + +# If true, do not generate a @detailmenu in the "Top" node's menu. +#texinfo_no_detailmenu = False diff --git a/docs/source/examples.rst b/docs/source/examples.rst new file mode 100644 index 0000000000000000000000000000000000000000..dfe9c5c384c029af489ba59eeba045f0e622ffb4 --- /dev/null +++ b/docs/source/examples.rst @@ -0,0 +1,354 @@ +Examples +======== +Here we provide two worked examples using pyNEMO. The first is a setup of the Northwest European Shelf using +a remote dataset. The second is an end-to-end setup of a small regional model in the tropics. + +Example 1: Northwest European Shelf +=================================== + + +.. figure:: _static/eg1.png + :align: center + + Northwest European Shelf Bathymetry + + +This example has been tested on the ARCHER HPC facillity *(22 Feb 2017)*. + +First, create a working directory into which the code can +run. All the data required for this example are held on a +THREDDS server so no addtional data are required. + +.. note:: make sure cray-netcdf-hdf5parallel cray-hdf5-parallel are loaded. + This example has been consructed under PrgEnv-intel. e.g. + +:: + + module swap PrgEnv-cray PrgEnv-intel + module load cray-netcdf-hdf5parallel + module load cray-hdf5-parallel + +.. note:: Be careful to avoid symbolic links in NEMO control files. + +:: + + cd $WDIR + mkdir OUTPUT + +Now we're ready to generate the boundary conditions using pyNEMO. +If this is not installed follow the `installation guide` or a quick +setup could be as follows: + +:: + + cd ~ + module load anaconda + conda create --name pynemo_env scipy=0.16.0 numpy matplotlib=1.5.1 basemap netcdf4 libgfortran=1.0.0 + source activate pynemo_env + conda install -c conda-forge seawater=3.3.4 + conda install -c https://conda.anaconda.org/srikanthnagella thredds_crawler + conda install -c https://conda.anaconda.org/srikanthnagella pyjnius + export LD_LIBRARY_PATH=/opt/java/jdk1.7.0_45/jre/lib/amd64/server:$LD_LIBRARY_PATH + svn checkout https://ccpforge.cse.rl.ac.uk/svn/pynemo + cd pynemo/trunk/Python + python setup.py build + export PYTHONPATH=~/.conda/envs/pynemo/lib/python2.7/site-packages/:$PYTHONPATH + python setup.py install --prefix ~/.conda/envs/pynemo + cp data/namelist.bdy $WDIR + cd $WDIR + +Next we need to modify the namelist.bdy file to point it to the correct +data sources. First we need to create an ncml file to gather input data +and map variable names. First we update *sn_src_dir*, *sn_dst_dir* and +*cn_mask_file* to reflect the working path (e.g. sn_src_dir = '$WDIR/test.ncml', +sn_dst_dir = '$WDIR/OUTPUT' and cn_mask_file = '$WDIR/mask.nc'). +Explicitly write out $WDIR. Next we need to generate test.ncml. + +.. note:: pynemo may have to be run on either espp1 or espp2 (e.g. ssh -Y espp1) + as the JVM doesn't have sufficient memory on the login nodes. + +:: + + ssh -Y espp1 + module load anaconda + source activate pynemo_env + cd $WDIR + pynemo_ncml_generator + +For each of the tracer and dynamics variables enter the following URL as +the source directory: + +http://esurgeod.noc.soton.ac.uk:8080/thredds/dodsC/PyNEMO/data + +Add a regular expression for each (Temperature, Salinity and Sea Surface +Height each use: .\*T\\.nc$ and the velocities use .\*V\\.nc$ and .\*V\\.nc$) +After each entry click the Add button. Finally fill in the output file +including directory path (this should match *sn_src_dir*). Once this is complete +click on the generate button and an ncml file should be written to $WDIR. + +Then using pynemo we define the area we want to model and generate some +boundary conditions: + +.. note:: I've had to add the conda env path to the $PYTHONPATH as python does + seem to be able to pick up pyjnius!? + +:: + + export LD_LIBRARY_PATH=/opt/java/jdk1.7.0_45/jre/lib/amd64/server:$LD_LIBRARY_PATH + export PYTHONPATH=~/.conda/envs/pynemo_env/lib/python2.7/site-packages:$PYTHONPATH + pynemo -g -s namelist.bdy + +Once the area of interest is selected and the close button is clicked, +open boundary data should be generated in $WDIR/OUTPUT. + + +Example 2: Lighthouse Reef +========================== + +.. figure:: _static/eg2.png + :align: center + + Regional Mask / SSH after 1 day / SST after 1 day + + +This example has been tested on the ARCHER HPC facillity. + +First, create a working directory into which the NEMO +source code can be checked out. Create an inputs directory +to unpack the forcing tar ball. + +.. note:: make sure cray-netcdf-hdf5parallel cray-hdf5-parallel are loaded. + This example has been consructed under PrgEnv-intel. + +:: + + cd $WDIR + mkdir INPUTS + cd INPUTS + wget ftp.nerc-liv.ac.uk:/pub/general/jdha/inputs.tar.gz + tar xvfz inputs.tar.gz + rm inputs.tar.gz + cd ../ + svn co http://forge.ipsl.jussieu.fr/nemo/svn/branches/2014/dev_r4621_NOC4_BDY_VERT_INTERP@5709 + svn co http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/branchs/xios-1.0@629 + cd xios-1.0 + cp $WDIR/INPUTS/arch-XC30_ARCHER.* ./arch + ./make_xios --full --prod --arch XC30_ARCHER --netcdf_lib netcdf4_par + +Next we setup our experiment directory and drop an updated +dtatsd.F90 into MY_SRC to allow the vertical interpolation +of initial conditions on to the new verictal coordinates. +We also apply several patches for bugs in the code. + +.. note:: when executing ./makenemo for the first time only choose OPA_SRC. + For some reason even though LIM_2 is not chosen key_lim2 is + in the cpp keys. This means the first call to ./makenemo will fail. + Just vi LH_REEF/cpp_LH_REEF.fcm and remove key_lim2 and re-issue + the make command. + +:: + + export CDIR=$WDIR/dev_r4621_NOC4_BDY_VERT_INTERP/NEMOGCM/CONFIG + export TDIR=$WDIR/dev_r4621_NOC4_BDY_VERT_INTERP/NEMOGCM/TOOLS + cd $CDIR/../NEMO/OPA_SRC/SBC + patch -b < $WDIR/INPUTS/fldread.patch + cd ../DOM + patch -b < $WDIR/INPUTS/dommsk.patch + cd ../BDY + patch -b < $WDIR/INPUTS/bdyini.patch + cd $CDIR + rm $CDIR/../NEMO/OPA_SRC/TRD/trdmod.F90 + cp $WDIR/INPUTS/arch-* ../ARCH + ./makenemo -n LH_REEF -m XC_ARCHER_INTEL -j 10 + cp $WDIR/INPUTS/cpp_LH_REEF.fcm ./LH_REEF + cp $WDIR/INPUTS/dtatsd.F90 LH_REEF/MY_SRC/ + +To generate bathymetry, initial conditions and grid information +we first need to compile some of the NEMO TOOLS (after a small +bugfix - and to allow direct passing of arguments). For some +reason GRIDGEN doesn't like INTEL: + +:: + + cd $WDIR/dev_r4621_NOC4_BDY_VERT_INTERP/NEMOGCM/TOOLS/WEIGHTS/src + patch -b < $WDIR/INPUTS/scripinterp_mod.patch + patch -b < $WDIR/INPUTS/scripinterp.patch + patch -b < $WDIR/INPUTS/scrip.patch + patch -b < $WDIR/INPUTS/scripshape.patch + patch -b < $WDIR/INPUTS/scripgrid.patch + cd ../../ + ./maketools -n WEIGHTS -m XC_ARCHER_INTEL + ./maketools -n REBUILD_NEMO -m XC_ARCHER_INTEL + module unload cray-netcdf-hdf5parallel cray-hdf5-parallel + module swap PrgEnv-intel PrgEnv-cray + module load cray-netcdf cray-hdf5 + ./maketools -n GRIDGEN -m XC_ARCHER + module swap PrgEnv-cray PrgEnv-intel + export TDIR=$WDIR/dev_r4621_NOC4_BDY_VERT_INTERP/NEMOGCM/TOOLS + +.. note:: my standard ARCHER ENV is intel with parallel netcdf you may need to edit accordingly + +Back in $WDIR/INPUTS, create a new coordinates file from the +existing global 1/12 mesh and refine to 1/84 degree resolution: + +:: + + cd $TDIR/GRIDGEN + cp $WDIR/INPUTS/namelist_R12 ./ + ln -s namelist_R12 namelist.input + ./create_coordinates.exe + cp 1_coordinates_ORCA_R12.nc $WDIR/INPUTS/coordinates.nc + +To create the bathymetry we use the gebco dataset. On ARCHER I +had to use a non-default nco module for netcdf operations to work. +I also had to cut down the gebco data as the SCRIP routines failed +for some unknown reason. + +:: + + cd $WDIR/INPUTS + module load nco/4.5.0 + ncap2 -s 'where(topo > 0) topo=0' gebco_1_cutdown.nc tmp.nc + ncflint --fix_rec_crd -w -1.0,0.0 tmp.nc tmp.nc gebco_in.nc + rm tmp.nc + module unload nco cray-netcdf cray-hdf5 + module load cray-netcdf-hdf5parallel cray-hdf5-parallel + $TDIR/WEIGHTS/scripgrid.exe namelist_reshape_bilin_gebco + $TDIR/WEIGHTS/scrip.exe namelist_reshape_bilin_gebco + $TDIR/WEIGHTS/scripinterp.exe namelist_reshape_bilin_gebco + +We perform a similar operation to create the initial conditions: + +.. note:: I've put a sosie pre-step in here to flood fill the land. + I tried using sosie for 3D intepolation, but not convinced. + +:: + + cd ~ + mkdir local + svn co svn://svn.code.sf.net/p/sosie/code/trunk sosie + cd sosie + cp $WDIR/INPUTS/make.macro ./ + make + make install + export PATH=~/local/bin:$PATH + cd $WDIR/INPUTS + sosie.x -f initcd_votemper.namelist + sosie.x -f initcd_vosaline.namelist + $TDIR/WEIGHTS/scripgrid.exe namelist_reshape_bilin_initcd_votemper + $TDIR/WEIGHTS/scrip.exe namelist_reshape_bilin_initcd_votemper + $TDIR/WEIGHTS/scripinterp.exe namelist_reshape_bilin_initcd_votemper + $TDIR/WEIGHTS/scripinterp.exe namelist_reshape_bilin_initcd_vosaline + +Finally we setup weights files for the atmospheric forcing: + +:: + + $TDIR/WEIGHTS/scripgrid.exe namelist_reshape_bilin_atmos + $TDIR/WEIGHTS/scrip.exe namelist_reshape_bilin_atmos + $TDIR/WEIGHTS/scripshape.exe namelist_reshape_bilin_atmos + $TDIR/WEIGHTS/scrip.exe namelist_reshape_bicubic_atmos + $TDIR/WEIGHTS/scripshape.exe namelist_reshape_bicubic_atmos + + +Next step is to create the mesh and mask files that will be used +in the generation of the open boundary conditions: + +:: + + cd $CDIR + cp $WDIR/INPUTS/cpp_LH_REEF.fcm LH_REEF/ + ln -s $WDIR/INPUTS/bathy_meter.nc $CDIR/LH_REEF/EXP00/bathy_meter.nc + ln -s $WDIR/INPUTS/coordinates.nc $CDIR/LH_REEF/EXP00/coordinates.nc + cp $WDIR/INPUTS/runscript $CDIR/LH_REEF/EXP00 + cp $WDIR/INPUTS/namelist_cfg $CDIR/LH_REEF/EXP00/namelist_cfg + cp $WDIR/INPUTS/namelist_ref $CDIR/LH_REEF/EXP00/namelist_ref + ./makenemo clean + ./makenemo -n LH_REEF -m XC_ARCHER_INTEL -j 10 + cd LH_REEF/EXP00 + ln -s $WDIR/xios-1.0/bin/xios_server.exe xios_server.exe + qsub -q short runscript + + +If that works, we then need to rebuild the mesh and mask files in +to single files for the next step: + +:: + + $TDIR/REBUILD_NEMO/rebuild_nemo -t 24 mesh_zgr 96 + $TDIR/REBUILD_NEMO/rebuild_nemo -t 24 mesh_hgr 96 + $TDIR/REBUILD_NEMO/rebuild_nemo -t 24 mask 96 + mv mesh_zgr.nc mesh_hgr.nc mask.nc $WDIR/INPUTS + rm mesh_* mask_* LH_REEF_0000* + cd $WDIR/INPUTS + +Now we're ready to generate the boundary conditions using pyNEMO. +If this is not installed follow the `installation guide` or a quick +setup could be as follows: + +:: + + cd ~ + module load anaconda + conda create --name pynemo_env scipy=0.16.0 numpy matplotlib=1.5.1 basemap netcdf4 libgfortran=1.0.0 + source activate pynemo_env + conda install -c conda-forge seawater=3.3.4 + conda install -c https://conda.anaconda.org/srikanthnagella thredds_crawler + conda install -c https://conda.anaconda.org/srikanthnagella pyjnius + export LD_LIBRARY_PATH=/opt/java/jdk1.7.0_45/jre/lib/amd64/server:$LD_LIBRARY_PATH + svn checkout https://ccpforge.cse.rl.ac.uk/svn/pynemo + cd pynemo/trunk/Python + python setup.py build + export PYTHONPATH=~/.conda/envs/pynemo/lib/python2.7/site-packages/:$PYTHONPATH + python setup.py install --prefix ~/.conda/envs/pynemo + cd $WDIR/INPUTS + +Start up pynemo and generate boundary conditions. First we need to +create a few ncml files to gather input data and map variable names. +Then using pynemo we define the area we want to model: + +.. note:: pynemo may have to be run on either espp1 or espp2 (e.g. ssh -Y espp1) + as the JVM doesn't have sufficient memory on the login nodes. + +:: + + ssh -Y espp1 + module load anaconda + source activate pynemo_env + cd $WDIR/INPUTS + pynemo_ncml_generator + +.. note:: The ncml files already exist in the INPUTS directory. There is no need + generate them. It's a little tricky at the momment as the ncml generator + doesn't have all the functionality required for this example. Next step + is to fire up pynemo. You can change the mask or accept the default by just + hitting the close button (that really should say 'build' or 'go' or such like). + Also I've had to add the conda env path to the $PYTHONPATH as python does + seem to be able to pick up pyjnius!? + +:: + + export LD_LIBRARY_PATH=/opt/java/jdk1.7.0_45/jre/lib/amd64/server:$LD_LIBRARY_PATH + export PYTHONPATH=~/.conda/envs/pynemo_env/lib/python2.7/site-packages:$PYTHONPATH + pynemo -g -s namelist.bdy + +Let's have a go at running the model after exiting espp1 (after a few variable +renamings, due to inconsistencies to be ironed out): + +:: + + exit + cd $WDIR/INPUTS + module unload cray-netcdf-hdf5parallel cray-hdf5-parallel + module load nco/4.5.0 + ncrename -v deptht,gdept LH_REEF_bdyT_y1980m01.nc + ncrename -v depthu,gdepu LH_REEF_bdyU_y1980m01.nc + ncrename -v depthv,gdepv LH_REEF_bdyV_y1980m01.nc + module unload nco + module load cray-netcdf-hdf5parallel cray-hdf5-parallel + cd $CDIR/LH_REEF/EXP00 + ln -s $WDIR/INPUTS/coordinates.bdy.nc $CDIR/LH_REEF/EXP00/coordinates.bdy.nc + sed -e 's/nn_msh = 3/nn_msh = 0/' namelist_cfg > tmp + sed -e 's/nn_itend = 1/nn_itend = 1440 /' tmp > namelist_cfg + cp $WDIR/INPUTS/*.xml ./ + qsub -q short runscript diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 0000000000000000000000000000000000000000..0d69c13f88c214cb74653bf0cb192bcf394cd96e --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,24 @@ +NRCT User Guide +================= + +Contents: + +.. toctree:: + :maxdepth: 3 + + intro + installation + usage + ncml_generator_usage + examples + troubleshooting + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/docs/source/installation.rst b/docs/source/installation.rst new file mode 100644 index 0000000000000000000000000000000000000000..0f7a7435419d31648c430e95c57d5e3d6c9059f5 --- /dev/null +++ b/docs/source/installation.rst @@ -0,0 +1,52 @@ +Installation +============ +This page provides a guide to installing pyNEMO. + +Dependencies +^^^^^^^^^^^^ + +1. Python 2.7 (Not tested with 3.x) +2. scipy +3. netCDF4-python +4. numpy +5. matplotlib +6. basemap +7. thredds_crawler +8. seawater +9. pyjnius (optional) + +Anaconda +^^^^^^^^ + +Using conda: pyNEMO supports Win64, OSX and Linux. for other operating systems please build from source. + +.. note:: It is recommended to create a seperate virtual environment for pyNEMO. + Please follow the instructions on doing this at http://www.continuum.io/blog/conda + +:: + + conda install -c https://conda.anaconda.org/srikanthnagella pynemo + +This will install pynemo and its dependencies. This build is generally outdated as development and +bug fixes to the source are a regular occurrence. It may be better to install from source until a beta +release is available. + +From Source +^^^^^^^^^^^ + +Installing pyNEMO using other flavours of software or from source. Install all the dependencies and +download the source code from svn and install. + +:: + + svn checkout http://ccpforge.cse.rl.ac.uk/svn/pynemo/trunk/Python/ + python setup.py install + +.. note:: If building from source in the Anaconda environment all dependencies can + be installed using conda apart from thredds_crawler and pyjnius which can + be installed using the following Anaconda channel: + +:: + + conda install -c https://conda.anaconda.org/srikanthnagella thredds_crawler + conda install -c https://conda.anaconda.org/srikanthnagella pyjnius diff --git a/docs/source/intro.rst b/docs/source/intro.rst new file mode 100644 index 0000000000000000000000000000000000000000..463a8df2bc2fc96eb4afb33ba20b3f176263b350 --- /dev/null +++ b/docs/source/intro.rst @@ -0,0 +1,21 @@ +Introduction +============ + + +The NRCT is a tool to set up the lateral boundary conditions for a regional `NEMO <http://www.nemo-ocean.eu>`_ +model configuration. The tool is written in Python, largely within the +`Anaconda <https://store.continuum.io/cshop/anaconda/>`_ environment to aid +wider distribution and to facilitate development. In their current form these +tools are by no means generic and polished, but it is hoped will form a foundation +from which something more formal can be developed. The following sections provide a quick-start guide with +worked examples to help the user get up and running with the tool. + +The tool essentially uses geographical and depth information from the source +data (e.g. a global ocean simulation) and destination simulation (i.e. the +proposed regional NEMO model configuration) to determine which source points are required +for data extraction. This is done using a kdtree approximate nearest neighbour +algorithm. The idea behind this targetted method is that it provides a generic +method of interpolation for any flavour of ocean model in order to set up a +regional NEMO model configuration. At present (alpha release) the tools do not +contain many options, but those that exist are accessed either through a NEMO style +namelist or a convient GUI. diff --git a/docs/source/ncml_generator_usage.rst b/docs/source/ncml_generator_usage.rst new file mode 100644 index 0000000000000000000000000000000000000000..b5c90bda7e423950f15182db6f54213728a6726d --- /dev/null +++ b/docs/source/ncml_generator_usage.rst @@ -0,0 +1,96 @@ +pyNEMO NcML Generator Usage +=========================== + +This GUI tool facilitates the creation of a virtual dataset for input into pyNEMO. The virtual dataset is defined using NetCDF Markup Language (`NcML <http://www.unidata.ucar.edu/software/thredds/current/netcdf-java/ncml/Tutorial.html>`_ ). + +Using NcML, it is possible to: + +1. modify metadata +2. modify and restructure variables +3. combine or aggregate data from multiple datasets. The datasets may reside in the local file system or in a remote OPeNDAP (http://www.opendap.org/) server. + + +Generator GUI +^^^^^^^^^^^^^ + +.. _NcML_gui: +.. figure:: _static/generator-gui.jpg + :align: center + + Overview of the NcML Generator GUI. + + +Users need to follow three distinct steps when using the GUI to generate the virtual dataset: + +1. Define a target output NcML file +2. Define the individal variable +3. Generate the NcML file + +Define a Target Output File +--------------------------- + +User should provide the path and name of the target NcML file. The convention is to use *.ncml* as the file suffix. The target file can be specified manually using the input text box or visually using the *Select file* button. Clicking the button will bring up a file dialogue. + + +Define the Individual Data Variable +----------------------------------- + +The nemo data variables are grouped into the following types : + +1. Tracer (temperature, salinity) +2. Dynamics (zonal velocity, meridian velocity, sea surface height) +3. Ice (ice thickness, leads fraction, snow thickness) +4. Ecosystem (reserved for future use) +5. Grid (reserved for future use) + +Users can access the required variable by selecting the tab widget and the variable from the *Variable* dropdown list. + +.. _NcML_gui_completed: +.. figure:: _static/add-variable.jpg + :align: center + + Example definition of the *Ice thickness variable*. + +For each variable, users must provide information for: + +* Source directory - the location of the folder containing the input datasets. User can provide an absolute path to a local file folder or an OPeNDAP endpoint, e.g. http://esurgeod.noc.soton.ac.uk:8080/thredds/dodsC/PyNEMO/data/ +* Existing variable name - name used in the source datasets + +Users may further filter the source datasets using: + +* Include subdirs - check the box to include contents in the sub directories under the specified *Source directory* +* Regular expression - provides a search pattern for filtering the files. See the **Regex** section below for more information. + +After completing the variable form, users should click the *Add* button to store the input value. Alternatively, users can use the *Reset* button to reset the input to the previously saved values. If there are no existing values, the variable tab will be reset to the default state. + +Generate the NcML file +---------------------- + +After adding all the variables, users can generate the NcML file by clicking the *Generate* button. If the operation is successful, a pop-up confirmation dialogue will appear. The generated NcML file can then be used in the bdy file to set up the NEMO simulation. + + +Regular Expression (Regex) +^^^^^^^^^^^^^^^^^^^^^^^^^^ +Regular expression is a special text string for describing a search pattern to match against some text. You may compare using regex to filter what files to include in your datasets against using wildcard (*) to specify a file search pattern in your computer. + +A detailed description of how to define regular expression for filtering datasets in NcML is available at http://www.unidata.ucar.edu/software/thredds/current/netcdf-java/ncml/AnnotatedSchema4.html#regexp. + +The following table provides some typical examples of regex: + ++---------------+------------------------+---------------------------+ +| Regex | Matching File Path | Description | ++===============+========================+===========================+ +| .*V\\.nc$ | c:/dir/dir/dir/abcV.nc | The file path ends in | ++---------------+------------------------+---------------------------+ +| | d:/muV.nc | V.nc | ++---------------+------------------------+---------------------------+ +| .*\\.nc$ | c:/dir/dir/dir/\*.nc | The file suffix is nc | ++---------------+------------------------+---------------------------+ +| | d:/\*.nc | | ++---------------+------------------------+---------------------------+ +|.*/2015.*\\.nc$| c:/dir/2015_01_16.nc | The file path contains | ++---------------+------------------------+---------------------------+ +| | d:/2015*.nc | 2015 and the file suffix | ++---------------+------------------------+---------------------------+ +| | e:/a/b/c/20151106T.nc | is nc | ++---------------+------------------------+---------------------------+ diff --git a/docs/source/troubleshooting.rst b/docs/source/troubleshooting.rst new file mode 100644 index 0000000000000000000000000000000000000000..769efdbba38af7e4392863a0c60a2d43923fd230 --- /dev/null +++ b/docs/source/troubleshooting.rst @@ -0,0 +1,14 @@ +Troubleshooting +=============== + +1. pyNEMO crashing in MacOSX (Yosemite)? + +* Downgrade the scipy package to 0.15 + +2. How to make pyNEMO to work behind firewall/proxy? + +* Set the environment variable http_proxy. eg. in Linux export http_proxy=<proxy-server>:<proxy-port> + +3. Getting this error 'Warning: Please make sure pyjnius is installed and jvm.dll/libjvm.so/libjvm.dylib is in the path' ? + +* This error is displayed when the application cannot find the java installation on the local machine. please install a java 7.x runtime from http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html and append the path to the library in the system path. eg. on windows SET PATH="C:\\Program Files (x86)\\Java\\jre1.7\\bin\\client" on Linux in shell export LD_LIBRARY_PATH=/opt/java/jdk1.7.0_45/jre/lib/amd64/server:$LD_LIBRARY_PATH in osx export DYLD_LIBRARY_PATH=/System/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/server:$DYLD_LIBRARY_PATH diff --git a/docs/source/usage.rst b/docs/source/usage.rst new file mode 100644 index 0000000000000000000000000000000000000000..fd1a6c32114908bd0de0c39d497ef104fae96363 --- /dev/null +++ b/docs/source/usage.rst @@ -0,0 +1,64 @@ +Usage +===== +There are two tools available in pyNEMO. They are described in detail below. + +pynemo +------ + +This command line tool reads a BDY file, extracts boundary data and prepares +the data for a NEMO simulation. The bdy file is a plain text file containing +key value pairs. Please look at the sample `namelist.bdy +<http://ccpforge.cse.rl.ac.uk/gf/project/pynemo/scmsvn/?action=browse&path=%2Ftrunk%2FPython%2Fdata%2Fnamelist.bdy&view=markup>`_ +file, which shares common syntax with the NEMO simulation namelist input file. + +.. note:: Directory paths in bdy file can be relative or absolute. + The application picks the relative path from the current working + directory. + +Syntax for pynemo command is + +:: + + > pynemo [-g] -s <bdy file> + +For help + +:: + + > pynemo -h + > usage: pynemo [-g] -s <namelist.bdy> + > -g (optional) will open settings editor before extracting the data + > -s <bdy filename> file to use + +Example comamnd + +:: + + > pynemo -g -s namelist.bdy + + +pynemo_settings_editor +---------------------- + +This tool will open a window where you can edit the mask and change the values of bdy parameters. + +Syntax for pynemo_settings_editor command is + +:: + + > pynemo_settings_editor [-s <bdy filename>] + +.. note:: If no file name is specified then a file dialog box will open to select a file. + +For help + +:: + + > pynemo_settings_editor -h + > usage: pynemo_settings_editor -s <namelist.bdy> + +Example: + +:: + + pynemo_settings_editor -s namelist.bdy