From 0a2e8134f300e99c126e55b5593842b321093dcf Mon Sep 17 00:00:00 2001
From: Franck Thollard <franck.thollard@univ-grenoble-alpes.fr>
Date: Thu, 23 May 2024 15:10:46 +0200
Subject: [PATCH] setup env

---
 AUTHORS.rst                |  30 +++++++
 doc/changes.rst            |  71 +++++++++++++++
 doc/conf.py                | 176 +++++++++++++++++++++++++++++++++++++
 doc/contacts.rst           |  13 +++
 doc/funding.rst            |   7 ++
 doc/index.rst              |  20 +++++
 doc/installation.rst       |  81 +++++++++++++++++
 doc/modules.rst            |   6 ++
 doc/supported.rst          |  10 +++
 doc/test.rst               |  19 ++++
 images/logo-uga.png        | Bin 0 -> 8306 bytes
 images/logo_cnrs_small.png | Bin 0 -> 7279 bytes
 rringg/version.py          |   1 +
 13 files changed, 434 insertions(+)
 create mode 100644 AUTHORS.rst
 create mode 100644 doc/changes.rst
 create mode 100644 doc/conf.py
 create mode 100644 doc/contacts.rst
 create mode 100644 doc/funding.rst
 create mode 100644 doc/index.rst
 create mode 100755 doc/installation.rst
 create mode 100644 doc/modules.rst
 create mode 100644 doc/supported.rst
 create mode 100644 doc/test.rst
 create mode 100644 images/logo-uga.png
 create mode 100644 images/logo_cnrs_small.png
 create mode 100644 rringg/version.py

diff --git a/AUTHORS.rst b/AUTHORS.rst
new file mode 100644
index 0000000..1c445c1
--- /dev/null
+++ b/AUTHORS.rst
@@ -0,0 +1,30 @@
+Contributors
+============
+
+Here are a list of people that work, or have worked, on RRIINGG
+
+* UGA stands for University Grenoble Alpes (https://www.univ-grenoble-alpes.fr/).
+* ISTerre stands for Institut des Sciences de la Terre (https://www.isterre.fr).
+
+Current contributors
+--------------------
+
+Alphabetic order of last name : 
+
+* Aubin Bleriot Tsapong Tsague (ISTERRE/UGA),  aubin-bleriot.tsapong-tsague@univ-grenoble-alpes.fr
+* Marie-Pierre Doin (ISTERRE/CNRS) marie-pierre.doin@univ-grenoble-alpes.fr
+* Gaƫl Janex (ISTERRE/CNRS) gael.janex@univ-grenoble-alpes.fr
+* Erwan Pathier (ISTERRE/UGA) erwan.pathier@univ-grenoble-alpes.fr
+* Anne Socquet (ISTERRE/UGA) anne.socquet@univ-grenoble-alpes.fr
+* Franck Thollard (ISTERRE/CNRS) franck.thollard@univ-grenoble-alpes.fr
+
+Former contributors
+-------------------
+
+Nop
+
+Contact
+-------
+
+Anne Socquet (ISTERRE/UGA) anne.socquet@univ-grenoble-alpes.fr
+
diff --git a/doc/changes.rst b/doc/changes.rst
new file mode 100644
index 0000000..a6f8732
--- /dev/null
+++ b/doc/changes.rst
@@ -0,0 +1,71 @@
+=============
+Release Notes
+=============
+
+1.0.4 (2023-03-13)
+------------------
+
+New 
+```
+
+- new colour gradients (from Crameri et al., see Doc)
+- Clear Reference button
+- keyboard shortcuts + tooltips on profiling tools
+- autorange histogram to 5/95th percentiles (button in toolbar and in context menu)
+- Map toolbar with 2 buttons:
+	* Flip Map Vertically feature
+	* Save Map to export map view + assoc. colorbar to image files (multiple formats available) ('#75 <https://gricad-gitlab.univ-grenoble-alpes.fr/deformvis/insarviz/-/issues/75>)
+
+- Menu entry to save all figures to repository (multiple formats available) ('#75 <https://gricad-gitlab.univ-grenoble-alpes.fr/deformvis/insarviz/-/issues/75>)
+- support VRT (GDAL Virtual Format) loading ('#73 <https://gricad-gitlab.univ-grenoble-alpes.fr/deformvis/insarviz/-/issues/73>) + VRT building script (see Doc)
+- pypi packaging
+ 
+
+Fixed
+`````
+- colour display bug on Linux/Windows (discretisation)
+- reference display on Linux/Windows ('#70 <https://gricad-gitlab.univ-grenoble-alpes.fr/deformvis/insarviz/-/issues/70>)
+- plot ranges remain when clicking points 
+- jump to image 99 upon first loading, now remains on middle image
+- handle nodata absent from header
+- plot bug when switching between tools
+- date slider/spinbox discrepancy
+- colour palette also applied to general view
+
+
+Changed
+```````
+- boundaries eased up on versions of required packages
+- plot titles/descriptions outside of figures
+- plot background icon
+- Reference now only through Reference tool (no check button in plot window anymore)
+- geotiff not flipped automatically upon loading
+- LOS symbol disabled for now, needs rethinking
+- Documentation updated
+
+
+
+
+
+
+1.0.3 (2022-09-16)
+------------------
+
+New 
+```
+
+- Profile tool now links two points selected by the user, and draws plots for a selection of points (regular spacing) on this profile line (`!55 <https://gricad-gitlab.univ-grenoble-alpes.fr/deformvis/insarviz/-/merge_requests/55>`_)
+- Points tool now allows user to select individual points whose data are to be plotted (`!55 <https://gricad-gitlab.univ-grenoble-alpes.fr/deformvis/insarviz/-/merge_requests/55>`_)
+- Reference tool: once data is plotted from Profile or Points tool, a reference point or zone (rectangle) can be selected on the Map by the user, plots will be adjusted to the reference (`!55 <https://gricad-gitlab.univ-grenoble-alpes.fr/deformvis/insarviz/-/merge_requests/55>`_)
+
+
+Fixed
+`````
+- lock axes button on plots did not work on Linux (`#56 <https://gricad-gitlab.univ-grenoble-alpes.fr/deformvis/insarviz/-/issues/56>`_)
+- export to csv was faulty when more than one curve on plot ('#66 <https://gricad-gitlab.univ-grenoble-alpes.fr/deformvis/insarviz/-/issues/66>)
+
+
+Changed
+```````
+- Profile tool renamed Points (see New section)
+- Documentation updated
\ No newline at end of file
diff --git a/doc/conf.py b/doc/conf.py
new file mode 100644
index 0000000..8e188ab
--- /dev/null
+++ b/doc/conf.py
@@ -0,0 +1,176 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+from shutil import copyfile
+import os
+import rringg
+
+#
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# 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 sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+# copy Author file to the right place
+mydir = os.path.dirname(os.path.realpath(__file__))
+copyfile(mydir + "/../AUTHORS.rst", "authors.rst")
+
+# -- Project information -----------------------------------------------------
+project = 'RRINGG'
+# Author list
+author = "ISTERRE / CNRS / UGA"
+copyright = '2024 ' + author
+
+# 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.
+#
+release = rringg.__version__
+# The short X.Y version (keep semantic versioning)
+version = release
+
+# -- General configuration ---------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+needs_sphinx = '1.1'
+
+# 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.intersphinx',
+    'sphinx.ext.coverage',
+    'sphinx.ext.mathjax',
+    'sphinx.ext.viewcode',
+    'sphinx_rtd_theme'
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+# source_suffix = ['.rst', '.md']
+source_suffix = ['.rst', '.md']
+
+# The master toctree document.
+master_doc = 'index'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# 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 pattern also affects html_static_path and html_extra_path .
+exclude_patterns = [u'_build', 'Thumbs.db', '.DS_Store']
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+
+# -- 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 = {}
+html_logo = "images/logo_rringg.png"
+
+# 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 = ['html/_static']
+
+
+# Add the custom.css (https://docs.readthedocs.io/en/latest/guides/adding-custom-css.html)
+def setup(app):
+    # app.add_stylesheet('./custom.css')
+    app.add_css_file('./custom.css')
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# The default sidebars (for documents that don't match any pattern) are
+# defined by theme itself.  Builtin themes are using these templates by
+# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
+# 'searchbox.html']``.
+#
+# html_sidebars = {}
+
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'RRINGG_Documentation'
+
+
+# -- Options for LaTeX output ------------------------------------------------
+
+latex_elements = {
+    # The paper size ('letterpaper' or 'a4paper').
+    #
+    'papersize': 'a4paper',
+
+    # The font size ('10pt', '11pt' or '12pt').
+    #
+    # 'pointsize': '10pt',
+
+    # Additional stuff for the LaTeX preamble.
+    #
+    # 'preamble': '',
+
+    # 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, 'rringg_rst.tex', u'RRINGG Documentation',
+     author, '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, 'rringg', u'RRINGG Documentation',
+     [author], 1)
+]
+
+
+# -- Extension configuration -------------------------------------------------
+# Add __init__ and class description to the doc
+autoclass_content = "both"
+
+# -- Options for intersphinx extension ---------------------------------------
+
+# Example configuration for intersphinx: refer to the Python standard library.
+intersphinx_mapping = {'python': ('https://docs.python.org/', None),
+                       'numpy': ('http://docs.scipy.org/doc/numpy/', None),
+                       'scipy': ('http://docs.scipy.org/doc/scipy/reference', None)}
diff --git a/doc/contacts.rst b/doc/contacts.rst
new file mode 100644
index 0000000..fc81a83
--- /dev/null
+++ b/doc/contacts.rst
@@ -0,0 +1,13 @@
+Contacts & bug reports
+======================
+
+In case of problem or if you have any requests, you can contact the 
+the developers using the following mailing list : insarviz-sos@univ-grenoble-alpes.fr
+
+If you want to stay tuned you can register to the insarviz-info mailing list 
+by sending an email to insarviz-notification@univ-grenoble-alpes.fr with the subject 
+
+"subscribe insarviz-notification@univ-grenoble-alpes.fr FIRST_NAME LAST_NAME" 
+
+The traffic of this mailing list is very low (few emails per year) but let you know when new
+releases are made. 
diff --git a/doc/funding.rst b/doc/funding.rst
new file mode 100644
index 0000000..69fac03
--- /dev/null
+++ b/doc/funding.rst
@@ -0,0 +1,7 @@
+Funding
+=======
+
+The InsarViz project is funded by:
+
+* CNES: APR CNES (https://apr.cnes.fr/)  
+* CNRS, in particular via the MITI section on inter-disciplinarity
diff --git a/doc/index.rst b/doc/index.rst
new file mode 100644
index 0000000..9bc4509
--- /dev/null
+++ b/doc/index.rst
@@ -0,0 +1,20 @@
+.. image:: images/logo-uga.png
+   :width: 30pt
+
+.. image:: images/logo_cnrs_small.png
+   :width: 30pt
+
+InsarViz
+********
+
+.. toctree::
+    :maxdepth: 2
+    :caption: Documentation
+
+    installation
+    test
+    contacts
+    authors
+    funding
+    changes
+    modules
diff --git a/doc/installation.rst b/doc/installation.rst
new file mode 100755
index 0000000..d370539
--- /dev/null
+++ b/doc/installation.rst
@@ -0,0 +1,81 @@
+############
+Installation
+############
+
+
+Recommended Python distribution
+-------------------------------
+
+In order to run RRINGG code you will need a python distribution. We recommend the `Anaconda distribution <https://www.anaconda.com/products/individual>`_ (version 3.6 or higher).
+
+
+Code download
+-------------
+
+First, download the source code, typically using git:
+
+.. code-block :: bash
+
+    git clone git@gricad-gitlab.univ-grenoble-alpes.fr:isterre-cycle/rringg.git 
+
+Environment setup
+-----------------
+
+* **With Anaconda**
+
+We recommend you install the RRINGG tool in a virtual environment. If you have installed the `Anaconda distribution <https://www.anaconda.com/products/individual>`_, navigate to within the top-level rringg folder and create a conda environment with the required dependencies using :
+
+.. code-block :: bash
+
+ conda env create -f environment.yaml
+
+
+And activate it:
+
+.. code-block :: bash
+
+ conda activate rringg-env
+
+* **Without Anaconda**
+
+Without Anaconda, create an virtual environment, activate it and install the required packages using the following commands:
+
+.. code-block :: bash
+
+ python3 -m venv venv
+ source venv/bin/activate
+ pip install -r requirements.txt
+
+
+
+Installation type
+------------------
+Finally, install the rringg module within your virtual environment. If you do **not** want to modify the source code, follow the **Regular installation** instructions. If you would like to be able to **modify the code**, follow the **Developper install instructions**.
+
+* **Regular installation**
+
+Installing rringg in a virtual environment, or system-wide, is just a one-line command:
+
+.. code-block :: bash
+
+        pip install .
+
+* **Developper installation** 
+
+If you intend to change the source code, you should install the tool in a *editable* mode:
+
+.. code-block :: bash
+
+        pip install -e . 
+
+Test your installation
+----------------------
+
+You can check your installation by doing:
+
+.. code-block :: bash
+
+       CODE TO RUN
+
+This should print the help message. If not, your install failed.
+
diff --git a/doc/modules.rst b/doc/modules.rst
new file mode 100644
index 0000000..89c19c8
--- /dev/null
+++ b/doc/modules.rst
@@ -0,0 +1,6 @@
+API Reference
+=============
+
+.. toctree::
+   :maxdepth: 4
+
diff --git a/doc/supported.rst b/doc/supported.rst
new file mode 100644
index 0000000..36ea8fc
--- /dev/null
+++ b/doc/supported.rst
@@ -0,0 +1,10 @@
+Supported data formats
+======================
+
+As of InsarViz 1.0.0, supported input data format include all `GDAL <https://gdal.org/index.html>`_ types such as:
+
+* NSBAS-type time series (depl_cumule and associated files)
+* GeoTiffs
+* VRT (Virtual Datasets): this GDAL format is a vritual dataset composed of other GDAL datasets with repositioning, and algorithms potentially applied as well as various kinds of metadata altered or added (see `documentation <https://gdal.org/drivers/raster/vrt.html>`_). For instance, you can make a VRT composed of individual displacement map files or interferograms. We provide a `script here <https://gricad-gitlab.univ-grenoble-alpes.fr/deformvis/insarviz/-/snippets/266>`_ to create a VRT.
+
+We are developing on a mechanism to allow users to provide a **plug-in-type loader to load other types of data**. Stay tuned!
diff --git a/doc/test.rst b/doc/test.rst
new file mode 100644
index 0000000..8b897d5
--- /dev/null
+++ b/doc/test.rst
@@ -0,0 +1,19 @@
+Running all the tests
+---------------------
+
+Testing can be done classically using *unittest*:
+
+
+.. code-block :: bash
+    
+        python setup.py test
+
+
+Another way of running test is by running *pytest*. Navigate to the main insarviz folder, and run the test with the following command: 
+
+.. code-block :: bash
+    
+        pytest
+
+
+
diff --git a/images/logo-uga.png b/images/logo-uga.png
new file mode 100644
index 0000000000000000000000000000000000000000..18789ac5e88c0a7c5057a7688859f073c10f60c5
GIT binary patch
literal 8306
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
Iol`;+05Rj_xc~qF

literal 0
HcmV?d00001

diff --git a/images/logo_cnrs_small.png b/images/logo_cnrs_small.png
new file mode 100644
index 0000000000000000000000000000000000000000..f9b01986cfa70df598b2448d92ccae415de71125
GIT binary patch
literal 7279
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

literal 0
HcmV?d00001

diff --git a/rringg/version.py b/rringg/version.py
new file mode 100644
index 0000000..f102a9c
--- /dev/null
+++ b/rringg/version.py
@@ -0,0 +1 @@
+__version__ = "0.0.1"
-- 
GitLab