==============
Changelog
==============
2020-11-23 (version 1.15):
    * source files can be opened by drag and drop to the time series tree view
    * maps can be organized in multiple rows per map view
    * map descriptions can be defined with QgsExpressions, e.g. '@map_date' to show the date
    * quick labels: CTRL + right mouse button opens map menu even when the feature modify map tool is activates
    * source visibility update can be run on entire time series or (new and faster) for the next time steps only
    * added "follow current date" option to time series table to keep focus on the map window date range
    * added wildcard +  regular expression filter to time series table
    * smaller bug fixes and improvements

2020-11-06 (version 1.14):
    * this version focuses on stability updates and improvements of the "quick label" system
    * map canvas menu now available with standard map tool (like zoom tool)
    * introduces label groups to apply quick labeling short cuts on different sets of vector fields
    * attribute table allow to selected added features automatically
    * optimized package imports
    * improved SpectralLibrary tool
    * fixed bugs

2020-07-23 (version 1.13):
    * time series and map settings can be stored to and reloaded from QGIS Projects
    * refactored layer styling and default raster stretching
    * fixed CRS translation bug and other smaller bugs
    * quick labels can be used to write date / datetime data into vector fields of type QDate or QDateTime
    * refactored context menus, e.g. in map view layer tree view, fixed #106

2020-04-09 (version 1.12):
    * TimeSeries tree view allows to change the visibility of single source images, e.g. to hide clouded observations
    * several updates to the Spectral Library Widget, e.g. import / export of profiles from ASD, ARTMO, EcoSYS or SPECCHIO
    * EOTSV allows to open images from sources with subdatasets, e.g. from Sentinel-2 or HDF images.

2020-01-23 (version 1.11):
    * revised unit tests for CI pipelines
    * fixed smaller issues in SensorModel
    * fixed #103: EOTSV crashed on Linux, caused by an attempt to storing a unpickable QgsTextFormat to QSettings

2019-11-25 (version 1.10):
    * improved matching of source images to sensors: matching can be specified in the settings dialog. Sensor matching
      based on ground sampling distance + number of bands + data type and optionally wavelength and/or sensor name
    * settings dialog shows known sensor / product specification and allows to modify their default "sensor name"
    * fixed copying of layer styles to maps of same sensor and map view type
    * improved speed of mapping and layer buffering
    * failed image sources are logged in the EO Time Series Viewer log panel
    * Spectral Library Viewer better handles large collections of spectral profiles

2019-10-02 (version 1.9):
    * includes several smaller updates
    * fixed error 'shortcutVisibleInContextMenu' error that occurred with Qt < 5.10
    * enhanced wavelength extraction from GDAL metadata: wavelength can be specified per band

2019-09-19 (version 1.8):
    * updated spectral library module
    * fixed #104: error in case of wrong spatial extent
    * default CRS properly shown in map view settings
    * user-defined CRS visible

2019-08-06 (version 1.7):
    * increased contrast for default map view text
    * improved reading of wavelength information, e.g. from Pleiades, Sentinel-2 and RapidEye data
    * temporal profile plot: data gaps can be shown by breaks in the profile line, data source information is correctly shown for selected points only
    * current extent can be copied via MapCanvas context menu
    * fixed #102: move maps to date of interest selected in a temporal profile plot

2019-07-16 (version 1.6):
    * re-design of map visualization: faster and more compact, the number of maps is fixed to n dates x m map views
    * date, sensor or map view information can be plotted within each map and become available in screenshots
    * releases map layers that are not required any more
    * slider + buttons to navigate over time series
    * fixed preview in crosshair dialog

2019-07-07 (version 1.5):
    * closing the EO Time Series Viewer instance will release all of its resources
    * added "Lock Map Panel" to avoid unwanted resizing of central widget
    * fixed missing updates of time series tree view when adding / removing source images
    * map canvas context menu lists layers with spatial extent intersecting the cursor position only
    * fixes feature selection error
    * added quick label source image to label the path of raster layer

2019-07-02 (version 1.4):
    * adding vector layers with sublayers will add all sublayers
    * map canvas context menu "Focus on Spatial Extent" will hide maps without time series data for the current spatial extent
    * labeling dock allows to iterate over vector features. the spatial map extent will be centered to each feature (#26)
    * added several convenience function to TimeSeriesViewer object
    * fixed a bug that did not allow to create new polygon features
    * temporal profile visualization: fixed icons to preview selected plot style, coordinate described by "<fid> <name>", e.g. "42 Deforested", fixed plot style preview
    * updated SpectralLibraryViewer
    * fixed spelling error in stacked band input dialog
    * MapViews can add raster layers that have been opened in QGIS, e.g. XYZ Tile with OpenStreetMap data

2019-06-12 (version 1.3):
    * fixed #99: opening example closes QGIS on linux
    * fixed #96 and #99 : docutils not installed error when showing rst/md content
    * fixed #97: TSV does not start (Linux)

2019-05-31 (version 1.2):
    * added SaveAllMapsDialog and menu option to export all maps as image files.
    * fixed #91: select Temporal Profile / Spectral Profile button activates the required map tools.
    * fixed #92: map canvas context menu "copy to clipboard" options.

2019-05-24 (version 1.1):
    * dates and data sources of the TimeSeries are now shown in a TreeView instead TableView
    * observation dates of current visible map canvases are highlighted in the time series tree view
    * sensor raster layer properties can be opened from MapView layer tree #87. Stats will be related to center mapcanvas.
    * fixed: StackedInputDialog, MapCanvas context menu, "Save Changes?" labeling dialog (#85), remove temporal profile (#86), draw new feature error (#84), Crosshair button status (#90), and some more

2019-05-15 (version 1.0, major update):

    * labeling tools to modify vector layers.
    * quick labeling for time-labels information
    * synchronization with QGIS Map canvas center
    * SpectralLibrary can import SpectralProfiles from a raster image based on vector positions
    * simplified MapView control dock, each MapView has it's own layer tree.
    * improved MapTool organization
    * removed PyQtGraph from list of required external python packages

2019-03-29:
    * renamed plugin folder from "timeseriesviewerplugin" to "EOTimeSeriesViewer".
    * improved SpectraLibrary tool
    * CI tests with bitbucket pipelines
    * several bug fixes

2019-03-01 (version 0.8):
    * added labeling panel
    * scheduled map canvas refreshes
    * multiple images per observationdata & sensor
    * fixed several bugs

2018-11-13:
    * fixed bugs which where caused by CRS changes
    * fixed macOS QGIS (3.4.1.) crashes caused by QgsMapCanvas constructor

2018-11-09:
    * uses QgsTaskManager for background loading
    * own QgsMapLayerStore to not mix-up with (main) QGIS layers
    * fixed bugs related to changes in QGIS API

2018-06-20 (version 0.7):
    * Visualization of images with stacked temporal information (each band = one observation date)
    * some bugfixes

2018-06-12:
    * Speclib I/O as CSV or ENVI-Spectral Library + CSV table for attributes
    * temporary VRTs now created in-memory (gdal VSI mechanism) instead in a disk temp path
    * Spectral Library: profile coordinate now in center of map pixel (issue #66)
    * Save map canvas to clipboard
    * Width of plot lines now scale-independent (issue #64, QPen.setCosmetic(True))
    * adding fields to spectral library (issue #61)

2018-06-04 (version 0.6):
    SpectralLibrary Module
        * now based on in-memory QgsVectorLayer
        * Locations and values of spectral profile can be exported as vector data set
        * Locations of spectral profiles can be rendered on MapCanvases

    Temporal Profile Module
        * now based on in-memory QgsVectorLayer
        * Locations of temporal profiles can be exported as vector data set
        * Band values of temporal profiles can be exported as CSV file
        * Locations of temporal profiles can be rendered on MapCanvases

2018-04-17 (version 0.5):
    * ported to QGIS 3, Qt5 and Python 3.6
    * improvements in temporal profile visualization
    * removed several bug
    * visibility of vector and raster layers can be toggled per map view
    * improved interaction between QGIS and EOTSV (Buttons to import/export spatial extent of map canvas or center)

2018-03-29:
    * improved definition of individual 2D / 3D charts per sensor & pixel-location
    * added based OpenGL based 3D plot features (axis, grids, labels)
    * changed name to "EO Time Series Viewer" (EOTSV)

2018-02-11:
    * merged updates to temporal profile visualization, e.g.
      save temporal profiles, compare 2D profiles between different location, experimental 3D visualization

2018-01-31:
    * added file filters for OpenFileDialog

2018-01-19:
    * initialized Sphinx-based documentation
    * improved map visualization + map settings

2017-05-21:
    * many changes, done in development branch "develop",
    * e.g: QGIS MapCanvases for interactive maps, temporal profiles, ...

2017-02-14:
    * first setup for test users in the recent development branch

