Showing posts with label geomorphology. Show all posts
Showing posts with label geomorphology. Show all posts

Sunday, 2 March 2014

qProf supports on-the-fly reprojection and multiples profile lines

The new version, 0.2.2, of this plugin for Quantum GIS has now support for on-the-fly reprojection of layers in a project. The profile will be created with the CRS set by the user in the Quantum GIS project.

Moreover, it also possible to use multiple lines for the profile creation, that will be merged into one for the profile creation. Since it could happen that the order of the single lines is not the correct one for the profile creation, it has been added the option of reading the correct order from an integer field defined in the attribute table of the layer (see figure below).

Example of layer with multiple lines (4), that are digitized with an incorrect order (see in the attribute table), but with the correct order set in the field 'id' of the attribute table (also used for the labelling of the lines in the map).

Profile created with the correct line order, set in the attribute table as in the previous figure.


A bug related to the saving of results as shapefiles in Linux has also been removed.

The new version can be installed by using the plugin manager of Quantum GIS, or by downloading it from the Quantum GIS  plugin repository at http://plugins.qgis.org/plugins/qProf/ or at https://bitbucket.org/mauroalberti/qprof/downloads.





Tuesday, 25 June 2013

Best-fit geological plane inferred from DEM and georeferenced points along traces

We want to calculate the plane attitude that best fits a set of points located on a DEM. These points could follow a geologic trace, for instance a stratification or a fault that we or others have mapped in the field. In other cases, we could clearly see lineaments in a satellite or aerial image, and we want to extract the geological information exposed by these lineaments.
qgSurf, a plugin for QuantumGIS, an open-source and free GIS software, adds this functionality in its new version (0.2.1, installable from QGIS plugin manager or downloadable from QGis plugin repository). Previously its aim was to calculate the intersections between a geological plane and a DEM. The calculation of the best-fit plane given points on a DEM is a somewhat inverse procedure so that they complement each other.
To see a short help for the plugin, look at: https://bitbucket.org/mauroalberti/qgsurf/wiki/Help



The basis of the algorithm is the application of singular value decomposition to derive the eigenvectors of a set of measures. See for instance the discussion in Best fit plane algorithms why different results?
Obviously we have to dispose of a DEM, e.g., Aster or SRTM or others.
A very interesting QGis plugin, OpenLayers, allows to load GoogleEarth or Bing maps in a project, in order to use them as backgrounds for our analysis. However, this requires the on-the-fly reprojection of layers while qgSurf does not support it for DEMs, so we need to set as the project projection that of the DEM: UTM, Lambert, or whatsoever.

The processing sequence is:

a) load in the QGis project the required DEM(s) layers and whatsoever vector or image layers needed for your analysis

b) use "Get current raster layers" in qgSurf plugin: this will allow the plugin to know which raster layers are currently loaded

c) from the "Use DEM" combo box, choose the required DEM and make sure that the QGis project and the DEM have the same projection

d) from the "Best-fit-plane calculation", press "Define points in map": this will allow you to define in the canvas at least three, and possibly more, points, whose coordinates will be listed in the plugin widget.

e) with at least three points defined, you can calculate the best-fit plane by pressing "Calculate best-fit-plane": a message box will report the dip direction and dip angle of the calculated plane

f) you can add even more points and again calculate the best-fit plane; otherwise, if you want to start a new analysis on the same DEM, go to e), or if you want to use another DEM, go to c) if it is already loaded in the project, or load it in the project and then go to b)


Example

Mt. Raparo, Basilicata, limestones of the Panormide Complex.

Source DEM is Aster, projected in WGS84-UTM33N.  Base map is Bing, loaded in QGis via openLayers plugin. Project CRS is set to the same of the source DEM, i.e. WGS84-UTM33N, otherwise the plugin wouldn't work.

Two level are recognizable in the aerial image, and a few points are drawn to derive their attitude using the new plugin functionality. The results are 336.2 / 8.7 and 337.8 / 13.0 (dip direction nd dip angle).





The results are checked with field measurement made by myself and M.C. Lapenta during field work in 1991: 320 / 5, 290 / 15 and 345 / 15. The geological plane attitudes are congruent both with themselves and with field measurements (note that while the field measurements refer to magnetic North, GIS-derived values refer to map top for the current projection).









Friday, 10 February 2012

A Quantum GIS plug-in for the determination of plane topographic traces

     Topographic traces of planes can be derived by means of gSurf [1], a Python application that, given a DEM and a plane, determines the intersections (as points) between these two surfaces. This tool is now available also as a plug-in for Quantum GIS. Why Quantum GIS? Because it is a user-friendly, open source and free GIS software, that allows a simple and rapid integration between its core functionalities and Python- and Qt-based modules. 

     This plug-in can be installed by copying the plug-in folder into the standard Python plug-ins folder for Quantum GIS. Since it presents the same interface, tools and theoretical bases as the stand-alone Python application, the reader is referred to previous posts for additional information [1, 2, 3]. It was tested in Quantum GIS 1.7.3 in both Windows Vista and Ubuntu Lucid Lynx (10.4 LTS) and can be freely downloaded here (license: GPL v. 3). 

Fig. 1. Screenshot of the plugin window.

    Next I describe an example of application and result validation using data from the Valnerina zone between S. Anatolia di Narco and Cerreto di Spoleto (Umbria, Central Italy), where Plio-Pleistocene normal faults dissect the previous Miocene thrust-and-fold structure. Geological data derive from my PhD thesis. The example regards a normal fault, for which a structural measure and the topographic trace are available (Fig. 2). The structural measure value is (dip direction, dip angle) = (227°, 58°). However, it cannot be considered representative of the general orientation of this fault, since the computed trace (white line in Fig. 2) does not fit well the mapped fault trace. 

Fig. 2.  Fault traces superposed onto DEM. White dots (mimicking a line) represent the computed intersections for a plane with measured values of dip direction and angle (227°, 58°). The red circle represents the measure location.

     A value of (219°, 61°) seems more appropriate to fit the mapped trace, even with some deviation due to local erroneous fault trace mapping or fault surface deviations from the general orientation (Fig. 3). 

Fig. 3. A plane-solution with a better fitting to the mapped fault trace.
Plane orientation is (dip direction, dip angle) = (210°, 61°).

     In order to demonstrate the correctness of the computed theoretical result, a method routinely used in geology has been applied to the intersections. The highest and lowest intersections between the results and the contour lines derived from the DEM has been extracted, and their vertical and horizontal separations computed. The vertical separation is equal to (1100 – 650) m = 450 m, while the horizontal separation is equal to about 245 m (Fig. 4). This values indicate a dip angle of 61.4°, to be confronted with the theoretical value of 61°. The orientations of the two intersection lines, that are parallel as expected, suggest a dip direction of about 220°, to be compared with the theoretical value of 219°.
We can be therefore confident of the correctness of the application results. 

Fig. 4. Screenshot showing part of the two lines representing the intersection directions with height of 1100 m asl (blue line, top) and 650 m asl (blue line, bottom-left). Their separation is approximately of 245.5 m.



Related posts

[1] gSurf: una applicazione Python per calcolare interattivamente l'intersezione fra piani e DEM.
http://gisoftw.blogspot.com/2012/01/gsurf-una-applicazione-python-per.html 

[2] Calculating the intersections between planes and DEM: a Python implementation
http://gisoftw.blogspot.com/2012/01/calculating-intersections-between.html

[3] Intersezioni tra DEM e superfici planari, un tema di interesse in geologia
http://gisoftw.blogspot.com/2011/12/intersezioni-tra-dem-e-superfici.html