<body>
<div class="document" id="changelog">


<dl class="simple">
<dt>2021-03-10 (version 1.17):</dt>
<dd><ul class="simple">
<li><p>quick raster band selection and GDAL Metadata panel now appear in QGIS layer properties dialog</p></li>
<li><p>fixed smaller issues related to plugin loading and unloading</p></li>
<li><p>added bulk loading from time series definition files</p></li>
<li><p>fixes to run with QGIS 3.18+</p></li>
<li><p>move to next/previous observation with arrow right/left</p></li>
<li><p>move to next/previous observation window with CTRL + arrow right/left or A/D</p></li>
<li><p>move to last/first observation with End/Pos1 or ALT + A/D</p></li>
<li><p>select next/previous vector feature with arrow downs/up or S/W</p></li>
<li><p>added option for exclusive visibility of map views</p></li>
<li><p>show next/previous map view with PageDown/PageUp or ALT + S/W</p></li>
<li><p>set map center from/to QGIS with F1/ALT+F1</p></li>
<li><p>set map extent from/to QGIS with F2/ALT+F2</p></li>
<li><p>modified observation slider, slider shows range of visible dates</p></li>
</ul>
</dd>
<dt>2021-02-02 (version 1.16):</dt>
<dd><ul class="simple">
<li><p>fixed smaller issues</p></li>
<li><p>forward / backward button to move in time now shifts by number of opened observation dates/maps</p></li>
<li><p>next / previous feature button offers to (i) move to the next feature and (ii)
update the map dates according to the availability of raster sources for the new map extent</p></li>
<li><p>faster updates of observation data visibility</p></li>
</ul>
</dd>
<dt>2020-11-23 (version 1.15):</dt>
<dd><ul class="simple">
<li><p>source files can be opened by drag and drop to the time series tree view</p></li>
<li><p>maps can be organized in multiple rows per map view (rows x columns)</p></li>
<li><p>map descriptions can be defined with QgsExpressions, e.g. <a class="reference external" href="mailto:'@map_date">'@map_date</a>' to show the date</p></li>
<li><p>quick labels: CTRL + right mouse button opens map menu even when the feature modify map tool is activates</p></li>
<li><p>source visibility update can be run on entire time series or (new and faster) for the next time steps only</p></li>
<li><p>added &quot;follow current date&quot; option to time series table to keep focus on the map window date range</p></li>
<li><p>added wildcard +  regular expression filter to time series table</p></li>
<li><p>smaller bug fixes and improvements</p></li>
</ul>
</dd>
<dt>2020-11-06 (version 1.14):</dt>
<dd><ul class="simple">
<li><p>this version focuses on stability updates and improvements of the &quot;quick label&quot; system</p></li>
<li><p>map canvas menu now available with standard map tool (like zoom tool)</p></li>
<li><p>introduces label groups to apply quick labeling short cuts on different sets of vector fields</p></li>
<li><p>attribute table allow to selected added features automatically</p></li>
<li><p>optimized package imports</p></li>
<li><p>improved SpectralLibrary tool</p></li>
<li><p>fixed bugs</p></li>
</ul>
</dd>
<dt>2020-07-23 (version 1.13):</dt>
<dd><ul class="simple">
<li><p>time series and map settings can be stored to and reloaded from QGIS Projects</p></li>
<li><p>refactored layer styling and default raster stretching</p></li>
<li><p>fixed CRS translation bug and other smaller bugs</p></li>
<li><p>quick labels can be used to write date / datetime data into vector fields of type QDate or QDateTime</p></li>
<li><p>refactored context menus, e.g. in map view layer tree view, fixed #106</p></li>
</ul>
</dd>
<dt>2020-04-09 (version 1.12):</dt>
<dd><ul class="simple">
<li><p>TimeSeries tree view allows to change the visibility of single source images, e.g. to hide clouded observations</p></li>
<li><p>several updates to the Spectral Library Widget, e.g. import / export of profiles from ASD, ARTMO, EcoSYS or SPECCHIO</p></li>
<li><p>EOTSV allows to open images from sources with subdatasets, e.g. from Sentinel-2 or HDF images.</p></li>
</ul>
</dd>
<dt>2020-01-23 (version 1.11):</dt>
<dd><ul class="simple">
<li><p>revised unit tests for CI pipelines</p></li>
<li><p>fixed smaller issues in SensorModel</p></li>
<li><p>fixed #103: EOTSV crashed on Linux, caused by an attempt to storing a unpickable QgsTextFormat to QSettings</p></li>
</ul>
</dd>
<dt>2019-11-25 (version 1.10):</dt>
<dd><ul class="simple">
<li><p>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</p></li>
<li><p>settings dialog shows known sensor / product specification and allows to modify their default &quot;sensor name&quot;</p></li>
<li><p>fixed copying of layer styles to maps of same sensor and map view type</p></li>
<li><p>improved speed of mapping and layer buffering</p></li>
<li><p>failed image sources are logged in the EO Time Series Viewer log panel</p></li>
<li><p>Spectral Library Viewer better handles large collections of spectral profiles</p></li>
</ul>
</dd>
<dt>2019-10-02 (version 1.9):</dt>
<dd><ul class="simple">
<li><p>includes several smaller updates</p></li>
<li><p>fixed error 'shortcutVisibleInContextMenu' error that occurred with Qt &lt; 5.10</p></li>
<li><p>enhanced wavelength extraction from GDAL metadata: wavelength can be specified per band</p></li>
</ul>
</dd>
<dt>2019-09-19 (version 1.8):</dt>
<dd><ul class="simple">
<li><p>updated spectral library module</p></li>
<li><p>fixed #104: error in case of wrong spatial extent</p></li>
<li><p>default CRS properly shown in map view settings</p></li>
<li><p>user-defined CRS visible</p></li>
</ul>
</dd>
<dt>2019-08-06 (version 1.7):</dt>
<dd><ul class="simple">
<li><p>increased contrast for default map view text</p></li>
<li><p>improved reading of wavelength information, e.g. from Pleiades, Sentinel-2 and RapidEye data</p></li>
<li><p>temporal profile plot: data gaps can be shown by breaks in the profile line, data source information is correctly shown for selected points only</p></li>
<li><p>current extent can be copied via MapCanvas context menu</p></li>
<li><p>fixed #102: move maps to date of interest selected in a temporal profile plot</p></li>
</ul>
</dd>
<dt>2019-07-16 (version 1.6):</dt>
<dd><ul class="simple">
<li><p>re-design of map visualization: faster and more compact, the number of maps is fixed to n dates x m map views</p></li>
<li><p>date, sensor or map view information can be plotted within each map and become available in screenshots</p></li>
<li><p>releases map layers that are not required any more</p></li>
<li><p>slider + buttons to navigate over time series</p></li>
<li><p>fixed preview in crosshair dialog</p></li>
</ul>
</dd>
<dt>2019-07-07 (version 1.5):</dt>
<dd><ul class="simple">
<li><p>closing the EO Time Series Viewer instance will release all of its resources</p></li>
<li><p>added &quot;Lock Map Panel&quot; to avoid unwanted resizing of central widget</p></li>
<li><p>fixed missing updates of time series tree view when adding / removing source images</p></li>
<li><p>map canvas context menu lists layers with spatial extent intersecting the cursor position only</p></li>
<li><p>fixes feature selection error</p></li>
<li><p>added quick label source image to label the path of raster layer</p></li>
</ul>
</dd>
<dt>2019-07-02 (version 1.4):</dt>
<dd><ul class="simple">
<li><p>adding vector layers with sublayers will add all sublayers</p></li>
<li><p>map canvas context menu &quot;Focus on Spatial Extent&quot; will hide maps without time series data for the current spatial extent</p></li>
<li><p>labeling dock allows to iterate over vector features. the spatial map extent will be centered to each feature (#26)</p></li>
<li><p>added several convenience function to TimeSeriesViewer object</p></li>
<li><p>fixed a bug that did not allow to create new polygon features</p></li>
<li><p>temporal profile visualization: fixed icons to preview selected plot style, coordinate described by &quot;&lt;fid&gt; &lt;name&gt;&quot;, e.g. &quot;42 Deforested&quot;, fixed plot style preview</p></li>
<li><p>updated SpectralLibraryViewer</p></li>
<li><p>fixed spelling error in stacked band input dialog</p></li>
<li><p>MapViews can add raster layers that have been opened in QGIS, e.g. XYZ Tile with OpenStreetMap data</p></li>
</ul>
</dd>
<dt>2019-06-12 (version 1.3):</dt>
<dd><ul class="simple">
<li><p>fixed #99: opening example closes QGIS on linux</p></li>
<li><p>fixed #96 and #99 : docutils not installed error when showing rst/md content</p></li>
<li><p>fixed #97: TSV does not start (Linux)</p></li>
</ul>
</dd>
<dt>2019-05-31 (version 1.2):</dt>
<dd><ul class="simple">
<li><p>added SaveAllMapsDialog and menu option to export all maps as image files.</p></li>
<li><p>fixed #91: select Temporal Profile / Spectral Profile button activates the required map tools.</p></li>
<li><p>fixed #92: map canvas context menu &quot;copy to clipboard&quot; options.</p></li>
</ul>
</dd>
<dt>2019-05-24 (version 1.1):</dt>
<dd><ul class="simple">
<li><p>dates and data sources of the TimeSeries are now shown in a TreeView instead TableView</p></li>
<li><p>observation dates of current visible map canvases are highlighted in the time series tree view</p></li>
<li><p>sensor raster layer properties can be opened from MapView layer tree #87. Stats will be related to center mapcanvas.</p></li>
<li><p>fixed: StackedInputDialog, MapCanvas context menu, &quot;Save Changes?&quot; labeling dialog (#85), remove temporal profile (#86), draw new feature error (#84), Crosshair button status (#90), and some more</p></li>
</ul>
</dd>
</dl>
<p>2019-05-15 (version 1.0, major update):</p>
<blockquote>
<ul class="simple">
<li><p>labeling tools to modify vector layers.</p></li>
<li><p>quick labeling for time-labels information</p></li>
<li><p>synchronization with QGIS Map canvas center</p></li>
<li><p>SpectralLibrary can import SpectralProfiles from a raster image based on vector positions</p></li>
<li><p>simplified MapView control dock, each MapView has it's own layer tree.</p></li>
<li><p>improved MapTool organization</p></li>
<li><p>removed PyQtGraph from list of required external python packages</p></li>
</ul>
</blockquote>
<dl class="simple">
<dt>2019-03-29:</dt>
<dd><ul class="simple">
<li><p>renamed plugin folder from &quot;timeseriesviewerplugin&quot; to &quot;EOTimeSeriesViewer&quot;.</p></li>
<li><p>improved SpectraLibrary tool</p></li>
<li><p>CI tests with bitbucket pipelines</p></li>
<li><p>several bug fixes</p></li>
</ul>
</dd>
<dt>2019-03-01 (version 0.8):</dt>
<dd><ul class="simple">
<li><p>added labeling panel</p></li>
<li><p>scheduled map canvas refreshes</p></li>
<li><p>multiple images per observationdata &amp; sensor</p></li>
<li><p>fixed several bugs</p></li>
</ul>
</dd>
<dt>2018-11-13:</dt>
<dd><ul class="simple">
<li><p>fixed bugs which where caused by CRS changes</p></li>
<li><p>fixed macOS QGIS (3.4.1.) crashes caused by QgsMapCanvas constructor</p></li>
</ul>
</dd>
<dt>2018-11-09:</dt>
<dd><ul class="simple">
<li><p>uses QgsTaskManager for background loading</p></li>
<li><p>own QgsMapLayerStore to not mix-up with (main) QGIS layers</p></li>
<li><p>fixed bugs related to changes in QGIS API</p></li>
</ul>
</dd>
<dt>2018-06-20 (version 0.7):</dt>
<dd><ul class="simple">
<li><p>Visualization of images with stacked temporal information (each band = one observation date)</p></li>
<li><p>some bugfixes</p></li>
</ul>
</dd>
<dt>2018-06-12:</dt>
<dd><ul class="simple">
<li><p>Speclib I/O as CSV or ENVI-Spectral Library + CSV table for attributes</p></li>
<li><p>temporary VRTs now created in-memory (gdal VSI mechanism) instead in a disk temp path</p></li>
<li><p>Spectral Library: profile coordinate now in center of map pixel (issue #66)</p></li>
<li><p>Save map canvas to clipboard</p></li>
<li><p>Width of plot lines now scale-independent (issue #64, QPen.setCosmetic(True))</p></li>
<li><p>adding fields to spectral library (issue #61)</p></li>
</ul>
</dd>
<dt>2018-06-04 (version 0.6):</dt>
<dd><dl class="simple">
<dt>SpectralLibrary Module</dt>
<dd><ul class="simple">
<li><p>now based on in-memory QgsVectorLayer</p></li>
<li><p>Locations and values of spectral profile can be exported as vector data set</p></li>
<li><p>Locations of spectral profiles can be rendered on MapCanvases</p></li>
</ul>
</dd>
<dt>Temporal Profile Module</dt>
<dd><ul class="simple">
<li><p>now based on in-memory QgsVectorLayer</p></li>
<li><p>Locations of temporal profiles can be exported as vector data set</p></li>
<li><p>Band values of temporal profiles can be exported as CSV file</p></li>
<li><p>Locations of temporal profiles can be rendered on MapCanvases</p></li>
</ul>
</dd>
</dl>
</dd>
<dt>2018-04-17 (version 0.5):</dt>
<dd><ul class="simple">
<li><p>ported to QGIS 3, Qt5 and Python 3.6</p></li>
<li><p>improvements in temporal profile visualization</p></li>
<li><p>removed several bug</p></li>
<li><p>visibility of vector and raster layers can be toggled per map view</p></li>
<li><p>improved interaction between QGIS and EOTSV (Buttons to import/export spatial extent of map canvas or center)</p></li>
</ul>
</dd>
<dt>2018-03-29:</dt>
<dd><ul class="simple">
<li><p>improved definition of individual 2D / 3D charts per sensor &amp; pixel-location</p></li>
<li><p>added based OpenGL based 3D plot features (axis, grids, labels)</p></li>
<li><p>changed name to &quot;EO Time Series Viewer&quot; (EOTSV)</p></li>
</ul>
</dd>
<dt>2018-02-11:</dt>
<dd><ul class="simple">
<li><p>merged updates to temporal profile visualization, e.g.
save temporal profiles, compare 2D profiles between different location, experimental 3D visualization</p></li>
</ul>
</dd>
<dt>2018-01-31:</dt>
<dd><ul class="simple">
<li><p>added file filters for OpenFileDialog</p></li>
</ul>
</dd>
<dt>2018-01-19:</dt>
<dd><ul class="simple">
<li><p>initialized Sphinx-based documentation</p></li>
<li><p>improved map visualization + map settings</p></li>
</ul>
</dd>
<dt>2017-05-21:</dt>
<dd><ul class="simple">
<li><p>many changes, done in development branch &quot;develop&quot;,</p></li>
<li><p>e.g: QGIS MapCanvases for interactive maps, temporal profiles, ...</p></li>
</ul>
</dd>
<dt>2017-02-14:</dt>
<dd><ul class="simple">
<li><p>first setup for test users in the recent development branch</p></li>
</ul>
</dd>
</dl>
</div>
</body>