From 59c693f081dc9e9c9ff62b3ab3f8a9cdde295b91 Mon Sep 17 00:00:00 2001 From: Victor Poughon <victor.poughon@cnes.fr> Date: Tue, 12 Mar 2019 15:53:01 +0100 Subject: [PATCH] DOC: reorder cookbook and update style --- Documentation/Cookbook/Art/logo-with-text.png | Bin 0 -> 20602 bytes .../Scripts/otbGenerateWrappersRstDoc.py | 2 +- .../Cookbook/_static/css/otb_theme.css | 23 ++++- ...{OTB-Applications.rst => CliInterface.rst} | 97 +----------------- .../Cookbook/rst/CompilingOTBFromSource.rst | 2 + .../Cookbook/rst/EnvironmentVariables.rst | 31 ++++++ ...{AdvancedUse.rst => ExtendedFilenames.rst} | 38 +------ .../Cookbook/rst/GraphicalInterface.rst | 42 ++++++++ Documentation/Cookbook/rst/Installation.rst | 3 +- Documentation/Cookbook/rst/PythonAPI.rst | 50 +++++++++ .../{QGIS-interface.rst => QGISInterface.rst} | 0 Documentation/Cookbook/rst/conf.py.in | 11 +- Documentation/Cookbook/rst/index.rst | 36 ++++++- Documentation/Cookbook/rst/index_TOC.rst | 18 ---- 14 files changed, 187 insertions(+), 166 deletions(-) create mode 100644 Documentation/Cookbook/Art/logo-with-text.png rename Documentation/Cookbook/rst/{OTB-Applications.rst => CliInterface.rst} (76%) create mode 100644 Documentation/Cookbook/rst/EnvironmentVariables.rst rename Documentation/Cookbook/rst/{AdvancedUse.rst => ExtendedFilenames.rst} (79%) create mode 100644 Documentation/Cookbook/rst/GraphicalInterface.rst create mode 100644 Documentation/Cookbook/rst/PythonAPI.rst rename Documentation/Cookbook/rst/{QGIS-interface.rst => QGISInterface.rst} (100%) delete mode 100644 Documentation/Cookbook/rst/index_TOC.rst diff --git a/Documentation/Cookbook/Art/logo-with-text.png b/Documentation/Cookbook/Art/logo-with-text.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd561876be4a2ef8150c6a7e99806dbd1821e3b GIT binary patch literal 20602 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 literal 0 HcmV?d00001 diff --git a/Documentation/Cookbook/Scripts/otbGenerateWrappersRstDoc.py b/Documentation/Cookbook/Scripts/otbGenerateWrappersRstDoc.py index e8f486fedf..6af59db0d2 100755 --- a/Documentation/Cookbook/Scripts/otbGenerateWrappersRstDoc.py +++ b/Documentation/Cookbook/Scripts/otbGenerateWrappersRstDoc.py @@ -404,7 +404,7 @@ def GenerateRstForApplications(rst_dir): appNames = [app for app in allApps if app not in blackList] appIndexFile = open(rst_dir + '/Applications.rst', 'w') - appIndexFile.write(RstPageHeading("Applications", "2", ref="apprefdoc")) + appIndexFile.write(RstPageHeading("All Applications", "2", ref="apprefdoc")) print("Generating rst for {} applications".format(len(appNames))) diff --git a/Documentation/Cookbook/_static/css/otb_theme.css b/Documentation/Cookbook/_static/css/otb_theme.css index d9553257a4..54aa37cc9f 100644 --- a/Documentation/Cookbook/_static/css/otb_theme.css +++ b/Documentation/Cookbook/_static/css/otb_theme.css @@ -1,10 +1,27 @@ -.wy-nav-content { - max-width: 800px; +/* Style of the toctree captions + * inspired from sphinx-rtd-theme docs + */ +.wy-menu-vertical header, .wy-menu-vertical p.caption { + color: #2980b9; /* sphinx blue */ + line-height: 32px; + font-weight: bold; + text-transform: uppercase; + white-space: nowrap; + margin-top: .8em; } /* Reduce the effect of the p bottom margin before lists * Very useful for choice parameters in app doc for example */ -p + ul { +.wy-nav-content .document p + ul { margin-top: -18px; } + +/* Custom colors for the logo background */ +.wy-side-nav-search, .wy-nav-top { + background: #1e1f22; /* otb black */ +} + +.wy-side-nav-search input[type="text"] { + border-color: #1e1f22; /* otb black */ +} diff --git a/Documentation/Cookbook/rst/OTB-Applications.rst b/Documentation/Cookbook/rst/CliInterface.rst similarity index 76% rename from Documentation/Cookbook/rst/OTB-Applications.rst rename to Documentation/Cookbook/rst/CliInterface.rst index 45ffa46e87..f2bd7ec688 100644 --- a/Documentation/Cookbook/rst/OTB-Applications.rst +++ b/Documentation/Cookbook/rst/CliInterface.rst @@ -1,5 +1,5 @@ -A brief tour of OTB Applications -================================ +Command-line interface +====================== OTB ships with more than 100 ready to use applications for remote sensing tasks. They usually expose existing processing functions from the underlying C++ @@ -142,99 +142,6 @@ Parameters are passed to the application using the parameter key (which might include one or several ``.`` character), prefixed by a ``-``. Command-line examples are provided in the chapter :ref:`apprefdoc`. -Graphical launcher ------------------- - -The graphical interface for the applications provides a useful -interactive user interface to set the parameters, choose files, and -monitor the execution progress. - -This launcher needs the same two arguments as the command line launcher: - -:: - - $ otbApplicationLauncherQt module_name [MODULEPATH] - -The application paths can be set with the ``OTB_APPLICATION_PATH`` -environment variable, as for the command line launcher. Also, as for the -command-line application, a more simple script is generated and -installed by OTB to ease the configuration of the module path: to -launch the graphical user interface, one will start the -``otbgui_Rescale`` script. - -The resulting graphical application displays a window with several tabs: - -- Parameters is where you set the parameters and execute the - application. - -- Logs is where you see the output given by the application during its - execution. - -- Progress is where you see a progress bar of the execution (not - available for all applications). - -- Documentation is where you find a summary of the application - documentation. - -In this interface, every optional parameter has a check box that you -have to tick if you want to set a value and use this parameter. The -mandatory parameters cannot be unchecked. - -The interface of the application is shown here as an example: - -.. figure:: Art/QtImages/rescale_param.png - :align: center - -Python interface ----------------- - -The applications can also be accessed from Python, through a module -named ``otbApplication``. However, there are technical requirements to use it. -If you use OTB through standalone packages, you should use the supplied -environment script ``otbenv`` to properly setup variables such as -``PYTHONPATH`` and ``OTB_APPLICATION_PATH`` (on Unix systems, don't forget to -source the script). In other cases, you should set these variables depending on -your configuration. - -On Unix systems, it is typically available in the ``/usr/lib/otb/python`` -directory. Depending on how you installed OTB, you may need to configure the -environment variable ``PYTHONPATH`` to include this directory so that the module -becomes available from Python. - -On Windows, you can install the ``otb-python`` package, and the module -will be automatically available from an OSGeo4W shell. - -As for the command line and GUI launchers, the path to the application -modules needs to be properly set with the ``OTB_APPLICATION_PATH`` -environment variable. The standard location on Unix systems is -``/usr/lib/otb/applications``. On Windows, the applications are -available in the ``otb-bin`` OSGeo4W package, and the environment is -configured automatically so ``OTB_APPLICATION_PATH`` doesn't need to be modified -``OTB_APPLICATION_PATH``. - -Once your environment is set, you can use OTB applications from Python, just -like this small example: - -.. code-block:: python - - # Example on the use of the Smoothing application - - # The python module providing access to OTB applications is otbApplication - import otbApplication as otb - - # Let's create the application with codename "Smoothing" - app = otb.Registry.CreateApplication("Smoothing") - - # We set its parameters - app.SetParameterString("in", "my_input_image.tif") - app.SetParameterString("type", "mean") - app.SetParameterString("out", "my_output_image.tif") - - # This will execute the application and save the output file - app.ExecuteAndWriteOutput() - -For more information about this Python interface, check the recipe section. - Load and save parameters to XML ------------------------------- diff --git a/Documentation/Cookbook/rst/CompilingOTBFromSource.rst b/Documentation/Cookbook/rst/CompilingOTBFromSource.rst index b02513c620..d5fa3737f2 100644 --- a/Documentation/Cookbook/rst/CompilingOTBFromSource.rst +++ b/Documentation/Cookbook/rst/CompilingOTBFromSource.rst @@ -1,3 +1,5 @@ +.. _compilingfromsource: + Compiling OTB from source ========================= diff --git a/Documentation/Cookbook/rst/EnvironmentVariables.rst b/Documentation/Cookbook/rst/EnvironmentVariables.rst new file mode 100644 index 0000000000..c44915c3e1 --- /dev/null +++ b/Documentation/Cookbook/rst/EnvironmentVariables.rst @@ -0,0 +1,31 @@ +Environment variables +===================== + +The following environment variables are parsed by Orfeo ToolBox. Note +that they only affect default values, and that settings in extended +filenames, applications, Monteverdi or custom C++ code might override +those values. + +* ``OTB_DEM_DIRECTORY``: Default directory were DEM tiles are + stored. It should only contain ```.hgt`` or or georeferenced + ``.tif`` files. Empty if not set (no directory set) +* ``OTB_GEOID_FILE``: Default path to the geoid file that will be used + to retrieve height of DEM above ellipsoid. Empty if not set (no + geoid set) +* ``OTB_MAX_RAM_HINT``: Default maximum memory that OTB should use for + processing, in MB. If not set, default value is 128 MB. +* ``OTB_LOGGER_LEVEL``: Default level of logging for OTB. Should be + one of ``DEBUG``, ``INFO``, ``WARNING``, ``CRITICAL`` or ``FATAL``, + by increasing order of priority. Only messages with a higher + priority than the level of logging will be displayed. If not set, + default level is ``INFO``. + +In addition to OTB specific environment variables, the following +environment variables are parsed by third party libraries and also +affect how OTB works: + +* ``GDAL_CACHEMAX``: GDAL has an internal cache mechanism to avoid reading or decoding again image chunks. This environment variable controls the amount of memory that GDAL can use for caching. By default, GDAL can use up to 5 percent of the system's available RAM, which may be a lot. In addition, caching is only needed if the processing chain is likely to request the same chunk several times, which is unlikely to happen for a standard pixel based OTB pipeline. Setting a lower value facilitates the allocation of more memory to OTB itself (using applications ``-ram`` parameter or ``OTB_MAX_RAM_HINT`` environment variable). If the value is small, i.e. less than 100 000, it is assumed to be in megabytes, otherwise, it is assumed to be in bytes. +* ``GDAL_NUM_THREADS``: GDAL can take advantage of multi-threading to decode some formats. This variable controls the number of threads GDAL is allowed to use. +* ``OPJ_NUM_THREADS``: OpenJpeg can take advantage of multi-threading when decoding images. This variable controls the number of threads OpenJpeg is allowed to use. +* ``ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS``: This variable controls the number of threads used by ITK for processing. + diff --git a/Documentation/Cookbook/rst/AdvancedUse.rst b/Documentation/Cookbook/rst/ExtendedFilenames.rst similarity index 79% rename from Documentation/Cookbook/rst/AdvancedUse.rst rename to Documentation/Cookbook/rst/ExtendedFilenames.rst index d3c436edfe..d007f9221f 100644 --- a/Documentation/Cookbook/rst/AdvancedUse.rst +++ b/Documentation/Cookbook/rst/ExtendedFilenames.rst @@ -1,43 +1,7 @@ -Advanced Use -============ - -This section describes advanced configuration options and tricks. - -Environment variables that affect Orfeo ToolBox ------------------------------------------------ - -The following environment variables are parsed by Orfeo ToolBox. Note -that they only affect default values, and that settings in extended -filenames, applications, Monteverdi or custom C++ code might override -those values. - -* ``OTB_DEM_DIRECTORY``: Default directory were DEM tiles are - stored. It should only contain ```.hgt`` or or georeferenced - ``.tif`` files. Empty if not set (no directory set) -* ``OTB_GEOID_FILE``: Default path to the geoid file that will be used - to retrieve height of DEM above ellipsoid. Empty if not set (no - geoid set) -* ``OTB_MAX_RAM_HINT``: Default maximum memory that OTB should use for - processing, in MB. If not set, default value is 128 MB. -* ``OTB_LOGGER_LEVEL``: Default level of logging for OTB. Should be - one of ``DEBUG``, ``INFO``, ``WARNING``, ``CRITICAL`` or ``FATAL``, - by increasing order of priority. Only messages with a higher - priority than the level of logging will be displayed. If not set, - default level is ``INFO``. - -In addition to OTB specific environment variables, the following -environment variables are parsed by third party libraries and also -affect how OTB works: - -* ``GDAL_CACHEMAX``: GDAL has an internal cache mechanism to avoid reading or decoding again image chunks. This environment variable controls the amount of memory that GDAL can use for caching. By default, GDAL can use up to 5 percent of the system's available RAM, which may be a lot. In addition, caching is only needed if the processing chain is likely to request the same chunk several times, which is unlikely to happen for a standard pixel based OTB pipeline. Setting a lower value facilitates the allocation of more memory to OTB itself (using applications ``-ram`` parameter or ``OTB_MAX_RAM_HINT`` environment variable). If the value is small, i.e. less than 100 000, it is assumed to be in megabytes, otherwise, it is assumed to be in bytes. -* ``GDAL_NUM_THREADS``: GDAL can take advantage of multi-threading to decode some formats. This variable controls the number of threads GDAL is allowed to use. -* ``OPJ_NUM_THREADS``: OpenJpeg can take advantage of multi-threading when decoding images. This variable controls the number of threads OpenJpeg is allowed to use. -* ``ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS``: This variable controls the number of threads used by ITK for processing. - .. _extended-filenames: Extended filenames ------------------- +================== Extended filenames are an interesting feature of OTB. With them, it is possible to control several aspects of the behavior of OTB in the OTB-Applications or in our diff --git a/Documentation/Cookbook/rst/GraphicalInterface.rst b/Documentation/Cookbook/rst/GraphicalInterface.rst new file mode 100644 index 0000000000..e78535be53 --- /dev/null +++ b/Documentation/Cookbook/rst/GraphicalInterface.rst @@ -0,0 +1,42 @@ +Graphical interface +=================== + +The graphical interface for the applications provides a useful +interactive user interface to set the parameters, choose files, and +monitor the execution progress. + +This launcher needs the same two arguments as the command line launcher: + +:: + + $ otbApplicationLauncherQt module_name [MODULEPATH] + +The application paths can be set with the ``OTB_APPLICATION_PATH`` +environment variable, as for the command line launcher. Also, as for the +command-line application, a more simple script is generated and +installed by OTB to ease the configuration of the module path: to +launch the graphical user interface, one will start the +``otbgui_Rescale`` script. + +The resulting graphical application displays a window with several tabs: + +- Parameters is where you set the parameters and execute the + application. + +- Logs is where you see the output given by the application during its + execution. + +- Progress is where you see a progress bar of the execution (not + available for all applications). + +- Documentation is where you find a summary of the application + documentation. + +In this interface, every optional parameter has a check box that you +have to tick if you want to set a value and use this parameter. The +mandatory parameters cannot be unchecked. + +The interface of the application is shown here as an example: + +.. figure:: Art/QtImages/rescale_param.png + :align: center diff --git a/Documentation/Cookbook/rst/Installation.rst b/Documentation/Cookbook/rst/Installation.rst index d24b59a50f..928ba0bcb0 100644 --- a/Documentation/Cookbook/rst/Installation.rst +++ b/Documentation/Cookbook/rst/Installation.rst @@ -13,8 +13,7 @@ Other binaries can be available as packages (OSGeo packages, Debian/Ubuntu packages, OpenSuse packages), however be advised that they may not be up-to-date nor delivered with full features. If you want to build from source or if we don’t provide packages for your system, -information is available in the `Software Guide <http://orfeo-toolbox.org/SoftwareGuide/>`_, -in the section "Building from Source". +information is available in the :ref:`compilingfromsource` section. You can get latest binary packages from our `Download page <https://www.orfeo-toolbox.org/download>`__. diff --git a/Documentation/Cookbook/rst/PythonAPI.rst b/Documentation/Cookbook/rst/PythonAPI.rst new file mode 100644 index 0000000000..9ddecaabca --- /dev/null +++ b/Documentation/Cookbook/rst/PythonAPI.rst @@ -0,0 +1,50 @@ +Python API +========== + +The applications can also be accessed from Python, through a module +named ``otbApplication``. However, there are technical requirements to use it. +If you use OTB through standalone packages, you should use the supplied +environment script ``otbenv`` to properly setup variables such as +``PYTHONPATH`` and ``OTB_APPLICATION_PATH`` (on Unix systems, don't forget to +source the script). In other cases, you should set these variables depending on +your configuration. + +On Unix systems, it is typically available in the ``/usr/lib/otb/python`` +directory. Depending on how you installed OTB, you may need to configure the +environment variable ``PYTHONPATH`` to include this directory so that the module +becomes available from Python. + +On Windows, you can install the ``otb-python`` package, and the module +will be automatically available from an OSGeo4W shell. + +As for the command line and GUI launchers, the path to the application +modules needs to be properly set with the ``OTB_APPLICATION_PATH`` +environment variable. The standard location on Unix systems is +``/usr/lib/otb/applications``. On Windows, the applications are +available in the ``otb-bin`` OSGeo4W package, and the environment is +configured automatically so ``OTB_APPLICATION_PATH`` doesn't need to be modified +``OTB_APPLICATION_PATH``. + +Once your environment is set, you can use OTB applications from Python, just +like this small example: + +.. code-block:: python + + # Example on the use of the Smoothing application + + # The python module providing access to OTB applications is otbApplication + import otbApplication as otb + + # Let's create the application with codename "Smoothing" + app = otb.Registry.CreateApplication("Smoothing") + + # We set its parameters + app.SetParameterString("in", "my_input_image.tif") + app.SetParameterString("type", "mean") + app.SetParameterString("out", "my_output_image.tif") + + # This will execute the application and save the output file + app.ExecuteAndWriteOutput() + +For more information about this Python interface, check the recipe section. + diff --git a/Documentation/Cookbook/rst/QGIS-interface.rst b/Documentation/Cookbook/rst/QGISInterface.rst similarity index 100% rename from Documentation/Cookbook/rst/QGIS-interface.rst rename to Documentation/Cookbook/rst/QGISInterface.rst diff --git a/Documentation/Cookbook/rst/conf.py.in b/Documentation/Cookbook/rst/conf.py.in index 8b9c33a394..22133a3acf 100644 --- a/Documentation/Cookbook/rst/conf.py.in +++ b/Documentation/Cookbook/rst/conf.py.in @@ -53,10 +53,10 @@ source_suffix = '.rst' #source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index_TOC' +master_doc = 'index' # General information about the project. -project = u'OTB CookBook' +project = u'Orfeo ToolBox' copyright = u'@OTB_COPYRIGHT_TEXT@' #copyright = u'2014, OTB Team' # The version info for the project you're documenting, acts as replacement for @@ -119,8 +119,9 @@ html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] # 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 = {} - +html_theme_options = { + 'logo_only': True +} # The name for this set of Sphinx documents. If None, it defaults to @@ -132,7 +133,7 @@ html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] # The name of an image file (relative to this directory) to place at the top # of the sidebar. -html_logo = "rst/Art/logo.png" +html_logo = "rst/Art/logo-with-text.png" # 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 diff --git a/Documentation/Cookbook/rst/index.rst b/Documentation/Cookbook/rst/index.rst index cae81054b1..a96f5cd0a4 100644 --- a/Documentation/Cookbook/rst/index.rst +++ b/Documentation/Cookbook/rst/index.rst @@ -1,8 +1,3 @@ -.. OTB documentation master file, created by - sphinx-quickstart on Thu Jul 9 11:22:08 2015 - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - Welcome to Orfeo ToolBox! ========================= @@ -44,3 +39,34 @@ For other documentation, be sure to read: - `Doxygen <http://orfeo-toolbox.org/doxygen/>`_, for exhaustive documentation of the C++ API. +Table of Contents +================= + +.. toctree:: + :maxdepth: 2 + :caption: Get Started + + Installation + Monteverdi + +.. toctree:: + :maxdepth: 2 + :caption: Applications + + CliInterface + GraphicalInterface + PythonAPI + QGISInterface + Recipes + Applications + +.. toctree:: + :maxdepth: 1 + :caption: Advanced use + + EnvironmentVariables + ExtendedFilenames + CompilingOTBFromSource + C++ + FAQ + Contributors diff --git a/Documentation/Cookbook/rst/index_TOC.rst b/Documentation/Cookbook/rst/index_TOC.rst deleted file mode 100644 index e09a9db205..0000000000 --- a/Documentation/Cookbook/rst/index_TOC.rst +++ /dev/null @@ -1,18 +0,0 @@ -Table of Contents -================= - -.. toctree:: - :maxdepth: 3 - - index - Installation - CompilingOTBFromSource - OTB-Applications - QGIS-interface - Monteverdi - AdvancedUse - Recipes - Applications - C++ - FAQ - Contributors -- GitLab