[general]
name=qgSurf
description=Processing of geological planes and surfaces
about=qgSurf is a field-mapping/structural-geology plugin that can be used as an aid in: a) estimating the attitude of sub-planar geological surfaces given three or more points on a topographic surface; b) determining the intersection between a geological plane and a topographic surface; c) calculating the distance between points and a geological plane; d) plotting geological data in a stereonet; e) creating geological profiles.
category=Plugins
version=version 4.1.1
experimental=True
qgisMinimumVersion=3.8
author=Mauro Alberti
email=alberti.m65@gmail.com
icon=./icons/qgsurf.png

; start of optional metadata
changelog=
  4.1.1: [20260601] fixed security issues
  4.1.0: [20260328] implemented export and import methods for GeoProfiler; UI changes
  4.0.2: [20260108] refactored embedded modules and fixed missing affine link
  4.0.1: [20260104] fixed not implemented feature and offset bug in GeoProfiler
  4.0.0: [20260101] new version of GeoProfiler with additional functions
  3.2.2: [20241221] fixed error-print related bugs in Geoprofiler tool
  3.2.1: [20240608] fixed mpl(>3.7.3)-related bug ("module 'matplotlib.cbook' has no attribute 'mplDeprecation'"); changed experimental to False
  3.2.0: [20231101] improved 'DEM-plane intersections' tool; renamed 'Points-Plane Distances' tool to 'Plane distances from points/DEM cell' and improved
  3.1.0: [20230615] fixed embedded mplstereonet and point-distances bugs, in 'Best Fit Plane' added polygon layers as input and distances from mean plane as output
  3.0.1: [20230316] fixed np.float deprecation warning
  3.0.0: [20221126] added profiles module; embedded mplstereonet; restored original method for DEM-plane intersections; fixed various bugs
  2.1.3: [20220227] intercepted ogr Geometry Destroy action for ogr-related bug
  2.1.2: [20210310] updated embedded mplstereonet and apsg modules; fixed macOs gdal import error
  2.1.1: [20200502] fixed bugs related to (1) apsg plane plotting and (2) plot of linear data 
  2.1.0: [20190312] in DEM-plane intersection, dip angle is decimal (with one digit)
         [20190501] in Geological Plane - Points Distances, more variables for each point are calculated
  2.0.0: added stereonet tool from geocouche; added module for calculation of distance between points and a geological plane; improved best-fit plane module;code refactoring; removed old modules dependences
  1.0.0: added pygsf; minor modifications to GUI and help for best-fit-plane calculations
  0.5.0: porting to QGIS 3
  0.4.1: fixed bug related to deformation orientation; (re)added warning on geographic DEMs, still not correctly supported
  0.4.0: added support for geographic DEMs; fixed conceptual bug related to the use of the project CRS
  0.3.5: fixed bug related to the use of polar CRS (i.e., lat-lon)
  0.3.4: removed (for QGis compatibility issues) both "geosurface_simulation" and "geosurface_deformation" modules: they are now an independent, stand-alone Python project (simSurf, available in GitHub)
  0.3.3: best-fit-plane: added point input from loaded point/line layer
  0.3.2: best-fit-plane: added saving of one or more point set solutions as shapefiles
  0.3.1: support for on-the-fly-projection for Best-Fit-Plane interpolation and DEM-plane intersection; minor bugs fixing
  0.3.0: added modules for the processing of geological surfaces (non-planar)
  0.2.3: fix graphic bug (dem intersection symbol not deleted on plugin close)
  0.2.2: version compatible with QGis 2.0
  0.2.1: calculate best-fit plane orientation given points drawn in the QGis map window
  0.2.0: map display/interaction is now through the QGis map window

; tags are in comma separated value format, spaces are allowed
tags=raster, dem, intersection, structural geology, geological planes

homepage=https://gitlab.com/mauroalberti/qgSurf
tracker=https://gitlab.com/mauroalberti/qgSurf/issues
repository=https://gitlab.com/mauroalberti/qgSurf

; deprecated flag (applies to the whole plugin and not only to the uploaded version)
deprecated=False
