pygmi 2.2.7__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. pygmi-2.2.7/LICENSE.txt +623 -0
  2. pygmi-2.2.7/MANIFEST.in +7 -0
  3. pygmi-2.2.7/PKG-INFO +47 -0
  4. pygmi-2.2.7/README.md +55 -0
  5. pygmi-2.2.7/README.rst +20 -0
  6. pygmi-2.2.7/log.txt +242 -0
  7. pygmi-2.2.7/pygmi/__init__.py +22 -0
  8. pygmi-2.2.7/pygmi/clust/__init__.py +4 -0
  9. pygmi-2.2.7/pygmi/clust/crisp_clust.py +708 -0
  10. pygmi-2.2.7/pygmi/clust/datatypes.py +65 -0
  11. pygmi-2.2.7/pygmi/clust/fuzzy_clust.py +906 -0
  12. pygmi-2.2.7/pygmi/clust/graphs.py +421 -0
  13. pygmi-2.2.7/pygmi/clust/graphtool.py +667 -0
  14. pygmi-2.2.7/pygmi/clust/menu.py +139 -0
  15. pygmi-2.2.7/pygmi/clust/var_ratio.py +92 -0
  16. pygmi-2.2.7/pygmi/clust/xie_beni.py +93 -0
  17. pygmi-2.2.7/pygmi/helpdocs/linepointer.png +0 -0
  18. pygmi-2.2.7/pygmi/helpdocs/pygmi.main.html +31 -0
  19. pygmi-2.2.7/pygmi/helpdocs/pygmi.pfmod.ddisp.html +15 -0
  20. pygmi-2.2.7/pygmi/helpdocs/pygmi.pfmod.iodefs.exportkmz.html +13 -0
  21. pygmi-2.2.7/pygmi/helpdocs/pygmi.pfmod.iodefs.importpicture.html +16 -0
  22. pygmi-2.2.7/pygmi/helpdocs/pygmi.pfmod.layer.html +17 -0
  23. pygmi-2.2.7/pygmi/helpdocs/pygmi.pfmod.mext.html +44 -0
  24. pygmi-2.2.7/pygmi/helpdocs/pygmi.pfmod.misc.rangedcopy.html +16 -0
  25. pygmi-2.2.7/pygmi/helpdocs/pygmi.pfmod.param.html +37 -0
  26. pygmi-2.2.7/pygmi/helpdocs/pygmi.pfmod.prof.html +32 -0
  27. pygmi-2.2.7/pygmi/helpdocs/pygmi.pfmod.pview.html +26 -0
  28. pygmi-2.2.7/pygmi/helpdocs/pygmi.raster.cooper.gradients.html +14 -0
  29. pygmi-2.2.7/pygmi/helpdocs/pygmi.raster.cooper.tilt.html +14 -0
  30. pygmi-2.2.7/pygmi/helpdocs/pygmi.raster.cooper.visibility.html +14 -0
  31. pygmi-2.2.7/pygmi/helpdocs/pygmi.raster.dataprep.datagrid.html +13 -0
  32. pygmi-2.2.7/pygmi/helpdocs/pygmi.raster.dataprep.datamerge.html +11 -0
  33. pygmi-2.2.7/pygmi/helpdocs/pygmi.raster.dataprep.datareproj.html +11 -0
  34. pygmi-2.2.7/pygmi/helpdocs/pygmi.raster.dataprep.rtp.html +14 -0
  35. pygmi-2.2.7/pygmi/helpdocs/pygmi.raster.ginterp.html +31 -0
  36. pygmi-2.2.7/pygmi/helpdocs/pygmi.raster.igrf.html +20 -0
  37. pygmi-2.2.7/pygmi/helpdocs/pygmi.raster.normalisation.html +14 -0
  38. pygmi-2.2.7/pygmi/helpdocs/pygmi.raster.smooth.html +22 -0
  39. pygmi-2.2.7/pygmi/helpdocs/pygmi.raster.tiltdepth.html +20 -0
  40. pygmi-2.2.7/pygmi/images/Help.png +0 -0
  41. pygmi-2.2.7/pygmi/images/bringtofront.png +0 -0
  42. pygmi-2.2.7/pygmi/images/cgs2.emf +0 -0
  43. pygmi-2.2.7/pygmi/images/delete.png +0 -0
  44. pygmi-2.2.7/pygmi/images/linepointer.png +0 -0
  45. pygmi-2.2.7/pygmi/images/logo256.ico +0 -0
  46. pygmi-2.2.7/pygmi/images/logo256.png +0 -0
  47. pygmi-2.2.7/pygmi/images/pointer.png +0 -0
  48. pygmi-2.2.7/pygmi/images/pygmi.png +0 -0
  49. pygmi-2.2.7/pygmi/images/sendtoback.png +0 -0
  50. pygmi-2.2.7/pygmi/main.py +1037 -0
  51. pygmi-2.2.7/pygmi/menu_default.py +327 -0
  52. pygmi-2.2.7/pygmi/misc.py +147 -0
  53. pygmi-2.2.7/pygmi/pfmod/__init__.py +6 -0
  54. pygmi-2.2.7/pygmi/pfmod/cubes.py +1488 -0
  55. pygmi-2.2.7/pygmi/pfmod/datatypes.py +292 -0
  56. pygmi-2.2.7/pygmi/pfmod/grvmag3d.py +1265 -0
  57. pygmi-2.2.7/pygmi/pfmod/iodefs.py +1001 -0
  58. pygmi-2.2.7/pygmi/pfmod/menu.py +107 -0
  59. pygmi-2.2.7/pygmi/pfmod/misc.py +301 -0
  60. pygmi-2.2.7/pygmi/pfmod/pfmod.py +248 -0
  61. pygmi-2.2.7/pygmi/pfmod/tab_ddisp.py +425 -0
  62. pygmi-2.2.7/pygmi/pfmod/tab_layer.py +490 -0
  63. pygmi-2.2.7/pygmi/pfmod/tab_mext.py +544 -0
  64. pygmi-2.2.7/pygmi/pfmod/tab_param.py +548 -0
  65. pygmi-2.2.7/pygmi/pfmod/tab_prof.py +946 -0
  66. pygmi-2.2.7/pygmi/pfmod/tab_pview.py +740 -0
  67. pygmi-2.2.7/pygmi/raster/IGRF11.COF +1635 -0
  68. pygmi-2.2.7/pygmi/raster/__init__.py +14 -0
  69. pygmi-2.2.7/pygmi/raster/cooper.py +718 -0
  70. pygmi-2.2.7/pygmi/raster/dataprep.py +1640 -0
  71. pygmi-2.2.7/pygmi/raster/datatypes.py +123 -0
  72. pygmi-2.2.7/pygmi/raster/equation_editor.py +256 -0
  73. pygmi-2.2.7/pygmi/raster/ginterp.py +1901 -0
  74. pygmi-2.2.7/pygmi/raster/graphs.py +531 -0
  75. pygmi-2.2.7/pygmi/raster/igrf.py +860 -0
  76. pygmi-2.2.7/pygmi/raster/iodefs.py +813 -0
  77. pygmi-2.2.7/pygmi/raster/menu.py +307 -0
  78. pygmi-2.2.7/pygmi/raster/normalisation.py +187 -0
  79. pygmi-2.2.7/pygmi/raster/show_table.py +245 -0
  80. pygmi-2.2.7/pygmi/raster/smooth.py +406 -0
  81. pygmi-2.2.7/pygmi/raster/tiltdepth.py +590 -0
  82. pygmi-2.2.7/pygmi/seis/__init__.py +0 -0
  83. pygmi-2.2.7/pygmi/seis/beachball.py +751 -0
  84. pygmi-2.2.7/pygmi/seis/datatypes.py +605 -0
  85. pygmi-2.2.7/pygmi/seis/del_rec.py +410 -0
  86. pygmi-2.2.7/pygmi/seis/iodefs.py +1261 -0
  87. pygmi-2.2.7/pygmi/seis/menu.py +136 -0
  88. pygmi-2.2.7/pygmi/seis/scan_imp.py +795 -0
  89. pygmi-2.2.7/pygmi/test/__init__.py +6 -0
  90. pygmi-2.2.7/pygmi/test/pfmod.py +212 -0
  91. pygmi-2.2.7/pygmi/test/tests.py +39 -0
  92. pygmi-2.2.7/pygmi/vector/__init__.py +7 -0
  93. pygmi-2.2.7/pygmi/vector/datatypes.py +74 -0
  94. pygmi-2.2.7/pygmi/vector/graphs.py +443 -0
  95. pygmi-2.2.7/pygmi/vector/iodefs.py +345 -0
  96. pygmi-2.2.7/pygmi/vector/menu.py +127 -0
  97. pygmi-2.2.7/pygmi.egg-info/PKG-INFO +47 -0
  98. pygmi-2.2.7/pygmi.egg-info/SOURCES.txt +105 -0
  99. pygmi-2.2.7/pygmi.egg-info/dependency_links.txt +1 -0
  100. pygmi-2.2.7/pygmi.egg-info/entry_points.txt +3 -0
  101. pygmi-2.2.7/pygmi.egg-info/not-zip-safe +1 -0
  102. pygmi-2.2.7/pygmi.egg-info/requires.txt +7 -0
  103. pygmi-2.2.7/pygmi.egg-info/top_level.txt +1 -0
  104. pygmi-2.2.7/quickstart.py +35 -0
  105. pygmi-2.2.7/setup.cfg +8 -0
  106. pygmi-2.2.7/setup.py +80 -0
@@ -0,0 +1,139 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Name: menu.py (part of PyGMI)
3
+ #
4
+ # Author: Patrick Cole
5
+ # E-Mail: pcole@geoscience.org.za
6
+ #
7
+ # Copyright: (c) 2013 Council for Geoscience
8
+ # Licence: GPL-3.0
9
+ #
10
+ # This file is part of PyGMI
11
+ #
12
+ # PyGMI is free software: you can redistribute it and/or modify
13
+ # it under the terms of the GNU General Public License as published by
14
+ # the Free Software Foundation, either version 3 of the License, or
15
+ # (at your option) any later version.
16
+ #
17
+ # PyGMI is distributed in the hope that it will be useful,
18
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
+ # GNU General Public License for more details.
21
+ #
22
+ # You should have received a copy of the GNU General Public License
23
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
24
+ # -----------------------------------------------------------------------------
25
+ """ Clustering Menu Routines """
26
+
27
+ from PyQt4 import QtGui
28
+ from . import crisp_clust
29
+ from . import fuzzy_clust
30
+ from . import graphtool
31
+ from . import graphs
32
+ from ..raster import show_table
33
+ from ..raster import iodefs
34
+
35
+
36
+ class MenuWidget(object):
37
+ """
38
+ Widget class to call the main interface
39
+
40
+ This widget class creates the clustering menus to be found on the main
41
+ interface. Normal as well as context menus are defined here.
42
+
43
+ Attributes
44
+ ----------
45
+ parent : MainWidget
46
+ Reference to MainWidget class found in main.py
47
+ """
48
+ def __init__(self, parent):
49
+
50
+ self.parent = parent
51
+ self.parent.add_to_context('Cluster')
52
+ context_menu = self.parent.context_menu
53
+
54
+ # Normal menus
55
+ self.menuclustering = QtGui.QMenu(parent.menubar)
56
+ self.menuclustering.setTitle("Clustering")
57
+ parent.menubar.addAction(self.menuclustering.menuAction())
58
+
59
+ self.action_crisp_clustering = QtGui.QAction(self.parent)
60
+ self.action_crisp_clustering.setText("Crisp Clustering")
61
+ self.menuclustering.addAction(self.action_crisp_clustering)
62
+ self.action_crisp_clustering.triggered.connect(self.crisp_cluster)
63
+
64
+ self.action_fuzzy_clustering = QtGui.QAction(self.parent)
65
+ self.action_fuzzy_clustering.setText("Fuzzy Clustering")
66
+ self.menuclustering.addAction(self.action_fuzzy_clustering)
67
+ self.action_fuzzy_clustering.triggered.connect(self.fuzzy_cluster)
68
+
69
+ self.action_scatter_plot = QtGui.QAction(self.parent)
70
+ self.action_scatter_plot.setText("Scatter Plot Tool")
71
+ self.menuclustering.addAction(self.action_scatter_plot)
72
+ self.action_scatter_plot.triggered.connect(self.scatter_plot)
73
+
74
+ # Context menus
75
+ context_menu['Cluster'].addSeparator()
76
+
77
+ self.action_cluster_statistics = QtGui.QAction(self.parent)
78
+ self.action_cluster_statistics.setText("Cluster Statistics")
79
+ context_menu['Cluster'].addAction(self.action_cluster_statistics)
80
+ self.action_cluster_statistics.triggered.connect(self.cluster_stats)
81
+
82
+ self.action_show_class_data = QtGui.QAction(self.parent)
83
+ self.action_show_class_data.setText("Show Class Data")
84
+ context_menu['Cluster'].addAction(self.action_show_class_data)
85
+ self.action_show_class_data.triggered.connect(self.show_raster_data)
86
+
87
+ self.action_show_membership_data = QtGui.QAction(self.parent)
88
+ self.action_show_membership_data.setText(
89
+ "Show Membership Data (Fuzzy Only)")
90
+ context_menu['Cluster'].addAction(self.action_show_membership_data)
91
+ self.action_show_membership_data.triggered.connect(
92
+ self.show_membership_data)
93
+
94
+ self.action_show_objvrcncexbigraphs = QtGui.QAction(self.parent)
95
+ self.action_show_objvrcncexbigraphs.setText(
96
+ "Show OBJ, VRC, NCE, XBI Graphs")
97
+ context_menu['Cluster'].addAction(self.action_show_objvrcncexbigraphs)
98
+ self.action_show_objvrcncexbigraphs.triggered.connect(
99
+ self.show_vrc_etc)
100
+
101
+ self.action_export_data = QtGui.QAction(self.parent)
102
+ self.action_export_data.setText("Export Data")
103
+ context_menu['Cluster'].addAction(self.action_export_data)
104
+ self.action_export_data.triggered.connect(self.export_data)
105
+
106
+ def cluster_stats(self):
107
+ """ Basic Statistics """
108
+ self.parent.launch_context_item(show_table.ClusterStats)
109
+
110
+ def crisp_cluster(self):
111
+ """ Crisp Clustering of data"""
112
+ fnc = crisp_clust.CrispClust(self.parent)
113
+ self.parent.item_insert("Step", "Crisp\nClustering", fnc)
114
+
115
+ def export_data(self):
116
+ """ Export raster data """
117
+ self.parent.launch_context_item(iodefs.ExportData)
118
+
119
+ def fuzzy_cluster(self):
120
+ """ Fuzzy Clustering of data"""
121
+ fnc = fuzzy_clust.FuzzyClust(self.parent)
122
+ self.parent.item_insert("Step", "Fuzzy\nClustering", fnc)
123
+
124
+ def scatter_plot(self):
125
+ """ Scatter Plot Tool"""
126
+ fnc = graphtool.ScatterPlot(self.parent)
127
+ self.parent.item_insert("Step", "Scatter\nPlot\nTool", fnc)
128
+
129
+ def show_membership_data(self):
130
+ """ Show raster data """
131
+ self.parent.launch_context_item(graphs.PlotMembership)
132
+
133
+ def show_raster_data(self):
134
+ """ Show raster data """
135
+ self.parent.launch_context_item(graphs.PlotRaster)
136
+
137
+ def show_vrc_etc(self):
138
+ """ Show vrc, xbi, obj, nce graphs """
139
+ self.parent.launch_context_item(graphs.PlotVRCetc)
@@ -0,0 +1,92 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Name: var_ratio.py (part of PyGMI)
3
+ #
4
+ # Author: Patrick Cole
5
+ # E-Mail: pcole@geoscience.org.za
6
+ #
7
+ # Copyright: (c) 2013 Council for Geoscience
8
+ # Licence: GPL-3.0
9
+ #
10
+ # This file is part of PyGMI
11
+ #
12
+ # PyGMI is free software: you can redistribute it and/or modify
13
+ # it under the terms of the GNU General Public License as published by
14
+ # the Free Software Foundation, either version 3 of the License, or
15
+ # (at your option) any later version.
16
+ #
17
+ # PyGMI is distributed in the hope that it will be useful,
18
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
+ # GNU General Public License for more details.
21
+ #
22
+ # You should have received a copy of the GNU General Public License
23
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
24
+ # -----------------------------------------------------------------------------
25
+ """ Variance Ratio """
26
+
27
+ import numpy as np
28
+ import scipy.stats as ss
29
+
30
+
31
+ def var_ratio(data, uuu, center, dist_orig):
32
+ """
33
+ Variance Ratio
34
+
35
+ Calculates the Variance ratio criterion after Calinski and Harabasz,
36
+ 1974. Does not accept missing data.
37
+ Max VRC is optimal.
38
+ U can either be membership matrix (FCM) or cluster index values (k-means)
39
+
40
+ Parameters
41
+ ----------
42
+ data : numpy array
43
+ input dataset
44
+ uuu : numpy array
45
+ membership matrix (FCM) or cluster index values (k-means)
46
+ center : numpy array
47
+ cluster centers
48
+ dist_orig : numpy array
49
+
50
+ Returns
51
+ -------
52
+ vrc : numpy array
53
+ variance ration criterion
54
+ """
55
+
56
+ if uuu.ndim == 1: # check whether fuzzy or crisp info is given
57
+ crisp = uuu
58
+ else:
59
+ # alp = uuu.max(0)
60
+ crisp = uuu.argmin(0)
61
+
62
+ # sum of squared dist between cluster cent
63
+ # calc the overall mean for each data type considering the entire data set
64
+ m_all = ss.nanmean(data)
65
+ # squared dist of cluster centres from overall mean
66
+ dis_cent = (center - (np.ones([center.shape[0], 1]) * m_all)) ** 2
67
+ dis_cent = np.sum(dis_cent, 1)
68
+
69
+ icd = 0
70
+ for i in range(center.shape[0]):
71
+ # use [0] to get rid of tuple
72
+ # grab indices of data values grouped into cluster ii
73
+ index = np.nonzero(i == crisp)[0]
74
+ # no of data points falling into the i th cluster
75
+ no_clmem = len(index)
76
+ dis_cent[i] = dis_cent[i] * no_clmem
77
+ if dist_orig.size > 0:
78
+ edist = dist_orig[i, index] ** 2
79
+ else:
80
+ # calc squared distances of all values from the centre belonging
81
+ # to cluster i
82
+ edist = (data[index] - (np.ones([no_clmem, 1]) * center[i])) ** 2
83
+
84
+ icd += np.sum(edist)
85
+
86
+ # normalize squared sum by no of clusters minus one
87
+ numerator = np.sum(dis_cent) / (center.shape[0] - 1)
88
+ # normalization on number of data and number of clusters
89
+ denom = icd / (data.shape[0] - center.shape[0])
90
+ vrc = numerator / denom
91
+
92
+ return vrc
@@ -0,0 +1,93 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Name: xie_beni.py (part of PyGMI)
3
+ #
4
+ # Author: Patrick Cole
5
+ # E-Mail: pcole@geoscience.org.za
6
+ #
7
+ # Copyright: (c) 2013 Council for Geoscience
8
+ # Licence: GPL-3.0
9
+ #
10
+ # This file is part of PyGMI
11
+ #
12
+ # PyGMI is free software: you can redistribute it and/or modify
13
+ # it under the terms of the GNU General Public License as published by
14
+ # the Free Software Foundation, either version 3 of the License, or
15
+ # (at your option) any later version.
16
+ #
17
+ # PyGMI is distributed in the hope that it will be useful,
18
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
+ # GNU General Public License for more details.
21
+ #
22
+ # You should have received a copy of the GNU General Public License
23
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
24
+ # -----------------------------------------------------------------------------
25
+ """ Xie Beni """
26
+
27
+ import numpy as np
28
+
29
+
30
+ def xie_beni(data, expo, uuu, center, edist):
31
+ """
32
+ Xie Beni
33
+
34
+ Calculates the Xie-Beni index
35
+ accepts missing values when given as nan elements in the data base)
36
+ min xbi is optimal
37
+
38
+ Parameters
39
+ ----------
40
+ data : numpy array
41
+ input dataset
42
+ expo : float
43
+ uuu : numpy array
44
+ membership matrix (FCM) or cluster index values (k-means)
45
+ center : numpy array
46
+ cluster centers
47
+ edist : numpy array
48
+
49
+ Returns
50
+ -------
51
+ xbi : numpy array
52
+ xie beni index
53
+
54
+ """
55
+ if edist.size == 0: # calc euclidian distances if no distances are
56
+ # provided
57
+ for k in range(center.shape[0]): # no of clusters
58
+ # squared distance of all data values to the k-th cluster,
59
+ # contains nan for missing values
60
+ dummy = np.dot(((data - np.ones(np.size(data, 1), 1),
61
+ center[k]) ** 2).T)
62
+ # put in zero distances for all missing values, now all nans are
63
+ # replaced by zeros.
64
+ dummy[np.isnan(dummy) == 1] = 0
65
+ # calc distance matrix from dat points to centres
66
+ # (equals distfcm_mv.m)
67
+ edist[k] = np.sqrt(np.sum(dummy))
68
+
69
+ m_f = uuu ** expo
70
+ # equal to objective function without spatial constraints
71
+ numerator = np.sum((edist ** 2) * m_f)
72
+
73
+ min_cdist = np.inf # set minimal centre distance to infinity
74
+ # cnt = 0
75
+ cdist = []
76
+ for i in range(center.shape[0]): # no of clusters
77
+ dummy_cent = center
78
+ # eliminate the i th row from center
79
+ dummy_cent = np.delete(dummy_cent, i, 0)
80
+ # no of cluster minus one row
81
+ for j in range(dummy_cent.shape[0]):
82
+ # cnt += 1
83
+ # calc squared distance between the selected two clustercentrs,
84
+ # incl. nan if center values are nan
85
+ cdist.append((center[i] - dummy_cent[j]) ** 2)
86
+ cdist = np.array(cdist)
87
+ # mv=nanmin(cdist)
88
+ # dummy_mv=ones(cnt,1)*mv
89
+ # cdist(isnan(cdist(:))==1)=dummy_mv(isnan(cdist(:))==1)
90
+ cdist1 = np.sum(cdist, 1)
91
+ min_cdist = cdist1.min()
92
+ xbi = numerator / (data.shape[0] * min_cdist)
93
+ return xbi
@@ -0,0 +1,31 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <h1>Quick Start to use PyGMI</h1>
5
+ <h2>Introduction</h2>
6
+ <p>The new PyGMI interface allows for a flow chart approach to performing various geophysical tasks.</p>
7
+ <h2>Details</h2>
8
+ <p>The menus in PyGMI group tasks into categories:</p>
9
+ <ul>
10
+ <li>By clicking on a menu item, you will see that the item appears as a flow chart element on the main interface.</li>
11
+ <li>By clicking on the <img src="linepointer.png" alt="line connector"> icon on the menubar, it is possible to connect two tasks on the flow chart.</li>
12
+ <li>Double clicking on a task activates the task.</li>
13
+ <li>Right clicking on the task allows for the display of any data and results associated with that task.</li>
14
+ </ul>
15
+ <p>Tasks also are color coded depending on their state:</p>
16
+ <ul>
17
+ <li>Blue tasks still need to be activated</li>
18
+ <li>Green tasks have been activated and show a more complete context menu.</li>
19
+ <li>Red tasks are in the process of running.</li>
20
+ </ul>
21
+ <h2>Dataset Information Pane</h2>
22
+ <p>The dataset information pane shows information about the dataset such as the dataset type (e.g. Raster) and the band names. It displays information when you click on a task which has data connected to it.</p>
23
+ <h2>The Process Log Pane</h2>
24
+ <p>The process log pane shows information about the latest process which you have run. It can be helpful to know how far your processing is, or for debugging purposes.</p>
25
+ <h2>Warnings</h2>
26
+ <ul>
27
+ <li>Right clicking on a task is an extremely important part of PyGMI. It is how you display results, get histograms, and export data.</li>
28
+ <li>If you update data in an earlier task, you may need to disconnect and reconnect all later tasks to ensure that the new change is in effect in later tasks.</li>
29
+ </ul>
30
+ </body>
31
+ </html>
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <h1>Data Display</h1>
5
+ <p>The data display tab is used to view the data you are modelling, as well as the results of your calculations. It can also be used to show you the location of the profile you are currently modelling.</p>
6
+ <p>The slider below the image allows for the fading of one dataset into another. This is useful, for example, when comparing calculated gravity data to the measured gravity data.</p>
7
+ <h2>Options</h2>
8
+ <ul>
9
+ <li>Profile - allows for the display and/or selection of the profile being modelled. The Northing associated with the profile is also displayed.</li>
10
+ <li>Profile Orientation - The profiles can be modelled either west-east or south-north. This allows for selection the modelling direction. <b>It is the only place to do so.</b></li>
11
+ <li>Drop Boxes - These two drop boxes select which datasets to display. By default this is set to calculated data. The data is blue if nothing is calculated yet.</li>
12
+ <li>Slider - This allows for the fading of the one image into another. This is useful when comparing your calculated field versus your actual field.</li>
13
+ </ul>
14
+ </body>
15
+ </html>
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <h1>Export to Google Earth kmz</h1>
5
+ <p>Models can be exported to Google Earth kmz format in either smooth or original (blocky) format. Although the models themselves are in meters, it is important to know that the location of such models are in latitude and longitude. For this reason, you need to confirm the projection of the model.</p>
6
+ <p>Please note that the model heights will be adjusted to follow a curved earth, since Google Earth is a sphere.</p>
7
+ <h2>Options</h2>
8
+ <ul>
9
+ <li>Model Projection - The projection of the model, and grids associated with the model.</li>
10
+ <li>Smooth Model - Used to indicate whether the model output should be smoothed for aesthetic purposes.</li>
11
+ </ul>
12
+ </body>
13
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <h1>Profile Picture Importer</h1>
5
+ <p>The profile editor allows for the display of a picture along the profile. The importer allows for a simple set of coordinates to be assigned to the picture.</p>
6
+ <p>If a .npz file is connected to this module (imported through the import 3D model tool) then appropriate default values for the picture are filled in.</p>
7
+ <h2>Options</h2>
8
+ <ul>
9
+ <li>Profile Direction - The profile can be defined as being west to east or south to north.</li>
10
+ <li>West/South Coordinate - This is the coordinate assigned to the left side of the image.</li>
11
+ <li>East/North Coordinate - This is the coordinate assigned to the right side of the image.</li>
12
+ <li>Maximum Altitude - this is the altitude at the top of the image.</li>
13
+ <li>Depth - This is the depth of the image.</li>
14
+ </ul>
15
+ </body>
16
+ </html>
@@ -0,0 +1,17 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <h1>Layer Editor</h1>
5
+ <p>The layer editor allows for the voxel model to be edited from above. Simply select a lithology and draw the model in, as you would in a paint program. Changing the layer allows for the drawing in of lithologies at deeper depths. Please note that on the first few layers there may be sections which are air (due to the DTM), and are thus not editable.</p>
6
+ <h2>Options</h2>
7
+ <ul>
8
+ <li>Model Layer - allows for the display and/or selection of the profile being modelled. The Altitude associated with the layer is also displayed.</li>
9
+ <li>Dataset Drop Box - Allows for a dataset to be faded in and out of the layer with the aid of a slider. This can help when you need to know where the boundaries of geological units are.</li>
10
+ <li>Lithology List - Use this to select which lithology that you are currently drawing. To erase, simply select the Background lithology and draw with that.</li>
11
+ <li>Line Thickness - This allows you to change the pen thickness, which you are drawing with.</li>
12
+ <li>Ranged Copy - The ranged copy function allows for the copying of a lithology on the current layer over a range of layers. You can choose which layers to copy to, and which lithologies can be overwritten.</li>
13
+ </ul>
14
+ <h2>Tips</h2>
15
+ <p>The ranged copy function can be very useful in getting a starting model going. Draw in your basic lithology boundary and copy it over a range of applicable depths. You can now quickly correct this either in the Layer Editor or the Profile Editor</p>
16
+ </body>
17
+ </html>
@@ -0,0 +1,44 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <h1>Model Extents Parameters</h1>
5
+ <p>This tab sets up the extents of the model. The Dataset Information section associates connected raster datasets with the either DTM, magnetic data, gravity data or gravity regional data. If you are modelling actual data, this module will insist on DTM data. If nothing else, dtm data can be obtained from the SRTM archives.</p>
6
+ <p>The Model Extent Properties section sets up the model extents - by default from an associated DTM. Of importance are the X, Y and Z cell sizes. This determines the number of rows, columns and layers in the model. As a rule of thumb, models bigger than 100x100x100 may be slow, although this will depend on the hardware available.</p>
7
+ <h2>Current Models</h2>
8
+ <ul>
9
+ <li>Current Model - This only applies if you are importing a 3D model. It is the current model which you are working on.</li>
10
+ <li>Regional Model - This only applies if you are importing a 3D model. It imports applicable parts of the regional model into your current model.</li>
11
+ <li>Apply Regional Model - This applies the regional model to the current model. Changes will not occur otherwize.</li>
12
+ </ul>
13
+ <h2>Dataset Information</h2>
14
+ <p>This is used to define the data connected to the modelling module. The data is either connected manually or will be embedded withing a 3D model file.</p>
15
+ <ul>
16
+ <li>DTM Dataset - This is a Digital Terrain Model or Digital Elevation Model (DEM) of your area of study. <b>If you are modelling actual data, this is compulsory. If nothing is available, download the SRTM data from NASA.</b> It is not necessary if you are merely doing a theoretical model of, say, a dyke.</li>
17
+ <li>Magnetic Dataset - This is the magnetic data to be modelled.</li>
18
+ <li>Gravity Dataset - This is the gravity data to be modelled.</li>
19
+ <li>Gravity Regional Dataset - This is a gravity regional dataset used to apply a regional correction to the gravity data.</li>
20
+ </ul>
21
+ <h2>Model Extent Properties</h2>
22
+ <p>The model extents control the area size and depth of your model, as well as its resolution. Typically one of your datasets are used to fill in most of the fields automatically. Because the DTM is compulsory to the modelling, this is normally the default choice.</p>
23
+ <ul>
24
+ <li>Get Study Area from following Dataset - Usually the DTM dataset is chosen, but it can be any of your datasets. </li>
25
+ <li>Upper Top Left X Coordinate - This is the north-west corner X coordinate of your model in meters.</li>
26
+ <li>Upper Top Left Y Coordinate - This is the north-west corner Y coordinate of your model in meters.</li>
27
+ <li>Upper Top Left Z Coordinate - This is the north-west corner Z coordinate of your model in meters above sea level.</li>
28
+ <li>Total X Extent - the distance from east to west in the model.</li>
29
+ <li>Total Y Extent - the distance from north to south in the model.</li>
30
+ <li>Total Z Extent - the depth range of the model.</li>
31
+ <li>X and Y Cell Size - the width of each model cube in the x and y direction.</li>
32
+ <li>Z Cell Size - the height of each model cube in z direction.</li>
33
+ <li>Number of Columns (X Direction) - This is calculated automatically from extents and cell sizes.</li>
34
+ <li>Number of Rows (Y Direction) - This is calculated automatically from extents and cell sizes.</li>
35
+ <li>Number of Layers (Z Direction) - This is calculated automatically from extents and cell sizes.</li>
36
+ <li>Accept Proposed Changes - This is calculated automatically from extents and cell sizes.</li>
37
+ </ul>
38
+ <h2>Tips</h2>
39
+ <ul>
40
+ <li>Start with a low resolution model to get a general model in place first. 20x20x20 should be fine, since any bigger will get slow to model.</li>
41
+ <li>Once your low resolution model is complete, you can increase the model's resolution to a better resolution. Please note that bigger than 100x100x100 will cause calculations to become very slow (unless you have lots of memory).</li>
42
+ </ul>
43
+ </body>
44
+ </html>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <h1>Ranged Copy</h1>
5
+ <p>The ranged copy tool allows for the copying of a lithology from one layer or profile, across a range of other layers or profiles.</p>
6
+ <p>The tool allows for the user selecting which other lithologies to overwrite. </p>
7
+ <h2>Options</h2>
8
+ <ul>
9
+ <li>Master Profile - The profile from which to copy a lithology.</li>
10
+ <li>Range Start - The first profile which the master profile will copy to.</li>
11
+ <li>Range End - The last profile which the master profile will copy to.</li>
12
+ <li>Lithologies to Copy - The user can select which lithologies to copy. This can be more than one.</b></li>
13
+ <li>Lithologies to Overwrite - The user can select which lithologies to overwrite. This can be more than one. Under most circumstances, you will probably just select Background.</b></li>
14
+ </ul>
15
+ </body>
16
+ </html>
@@ -0,0 +1,37 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <h1>Geophysical Parameters</h1>
5
+ <p>This tab allows for setting all the geophysical parameters for your model. Some are general - such as survey parameters associated with the data, while others are specific to each lithology being modelled.</p>
6
+ <h2>General Properties</h2>
7
+ <ul>
8
+ <li>Gravity Regional - Gravity data needs to have a regional subtracted so that the theroetical and measured anomalies coincide. PyGMI allows you to enter this correction here.</li>
9
+ <li>Lithology Based regional Estimation - Uses one of your lithologies to automatically estimate a regional. It is meant to be a starting point, and may need to be tweaked.</li>
10
+ <li>Height of observation - Gravity - This is the gravity sensor height.</li>
11
+ <li>Height of observation - Magnetic - This is the gravity sensor height.</li>
12
+ <li>Magnetic Field Intensity - This is the intensity of the magnetic field at the time of the survey. You can get this from <a href="http://www.ngdc.noaa.gov/geomag-web/#igrfwmm">NOAA</a>.</li>
13
+ <li>Magnetic Inclination - This is the inclination of the magnetic field at the time of the survey. You can get this from <a href="http://www.ngdc.noaa.gov/geomag-web/#igrfwmm">NOAA</a>.</li>
14
+ <li>Magnetic Declination - This is the declination of the magnetic field at the time of the survey. You can get this from <a href="http://www.ngdc.noaa.gov/geomag-web/#igrfwmm">NOAA</a>.</li>
15
+ <li>Apply Changes - This must be pressed to apply any changes in the General Properties section.
16
+ </ul>
17
+ <h2>Lithological Properties</h2>
18
+ <p>PyGMI sets up geophysical properties on a lithology basis, and not on a body by body basis.</p>
19
+ <h3>Lithological Definitions List</h3>
20
+ <ul>
21
+ <li>Add New Lithological Definition - allows for adding a new definition. The user will also be able to select the color of the definition.</li>
22
+ <li>Rename Current Definition - allows for renaming a selected definition.</li>
23
+ <li>Remove Current Definition - allows for deleting a selected definition.</li>
24
+ </ul>
25
+ <h3>Lithological Properties - Lithology Name</h3>
26
+ <p> By selecting a lithology from the lithology list, its associated properties are shown here. The background lithology denotes properties associated with background (unmodelled) geology. This should be left alone under normal circumstances</p>
27
+ <ul>
28
+ <li>Density - denisty of your lithology. It applies to gravity modelling.</li>
29
+ <li>Magnetic susceptibility - susceptibility of your lithology. It applies to magnetic modelling.</li>
30
+ <li>Remanent Magnetization Intensity - Applies to lithologies with remanence.</li>
31
+ <li>Remanent Magnetization - Applies to lithologies with remanence.</li>
32
+ <li>Q Ratio - Applies to lithologies with remanence.</li>
33
+ <li>Remanent Inclination - Applies to lithologies with remanence.</li>
34
+ <li>Remanent Declination - Applies to lithologies with remanence.</li>
35
+ </ul>
36
+ </body>
37
+ </html>
@@ -0,0 +1,32 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <h1>Profile Editor</h1>
5
+ <p>The profile editor allows for the voxel model to be edited from the side. Simply select a lithology and draw the model in, as you would in a paint program. Changing the profile allows for the drawing in of lithologies at different locations.</p>
6
+ <p>The orientation of east-west or north-south can be changed on the data display tab.</p>
7
+ <p>The display of magnetic data or gravity data is changed upon calculation of either data type.</p>
8
+ <h2>Options</h2>
9
+ <ul>
10
+ <li>Profile - allows for the selection of the profile being modelled. A slider provides convenient setting of this parameter.</li>
11
+ <li>Dataset Drop Box - Allows for a vertical image to be faded in and out of the layer with the aid of a slider. This can help when you need to know where the boundaries of geological units are. The image is specially imported using 'Import Profile Picture' from the 'Potential Field Modelling' Menu on the main PyGMI interface.</li>
12
+ <li>Lithology List - Use this to select which lithology that you are currently drawing. To erase, simply select the Background lithology and draw with that.</li>
13
+ <li>Line Thickness - This allows you to change the pen thickness, which you are drawing with.</li>
14
+ <li>Ranged Copy - The ranged copy function allows for the copying of a lithology on the current layer over a range of layers. You can choose which layers to copy to, and which lithologies can be overwritten.</li>
15
+ <li>Profile Y-Axis Scale - This changes the scale of the Y-Axis. This can be important after performing a calculation, to see the full effect of the calculation.</li>
16
+ <li>Add Lithological Boundary - Adds a grid to be used as a horizontal lithological boundary. It can be used if you have, say, a grid of the crust or the bedrock to add to your model. </li>
17
+ <li>Export Profile - Export an X,Y,Z file of the profile data.</li>
18
+ </ul>
19
+ <h2>Calculations</h2>
20
+ <p>Calculations can be done by choosing one of two options from the menu bar at the top of the program:</p>
21
+ <ul>
22
+ <li>Regional Test - This is used to display a graph showing the regional decay of your model. It is a fast way to see if either your model extents are large enough, or how the calculated field would fall off near the end of your model.</li>
23
+ <li>Calculate Gravity - This calculates the gravity at the gravity height specified in the Geophysical Parameters Tab.</li>
24
+ <li>Calculate Magnetics - This is used if you want Magnetic data. The height chosen is the magnetic height.</li>
25
+ </ul>
26
+ <h2>Tips</h2>
27
+ <p>The ranged copy function can be very useful in getting a starting model going. Draw in your basic lithology boundary and copy it over a range of applicable depths. You can now quickly correct this either in the Layer Editor or the Profile Editor</p>
28
+ <h2>References</h2>
29
+ <p>Singh, B., Guptasarma, D., 2001. New method for fast computation of gravity and magnetic anomalies from arbitrary polyhedral. Geophysics 66, 521-526</p>
30
+ <p>Blakely, R.J., Potential Theory in Gravity and Magnetic Applications (1996), pp 200-201</p>
31
+ </body>
32
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <h1>Custom Profile Editor</h1>
5
+ <p>The profile editor allows for the voxel model to be edited from any angle the side. A custom profile is added by manually entering in coordinates. Simply select a lithology and draw the model in, as you would in a paint program. Changing the profile allows for the drawing in of lithologies at different custom locations.</p>
6
+ <h2>Options</h2>
7
+ <ul>
8
+ <li>Profile - allows for the selection of the profile being modelled. A slider provides convenient setting of this parameter.</li>
9
+ <li>Dataset Drop Box - Allows for a vertical image to be faded in and out of the layer with the aid of a slider. This can help when you need to know where the boundaries of geological units are. The image is specially imported using 'Import Profile Picture' from the 'Potential Field Modelling' Menu on the main PyGMI interface.</li> <li>Lithology List - Use this to select which lithology that you are currently drawing. To erase, simply select the Background lithology and draw with that.</li>
10
+ <li>Line Thickness - This allows you to change the pen thickness, which you are drawing with.</li>
11
+ <li>Profile Y-Axis Scale - This changes the scale of the Y-Axis. This can be important after performing a calculation, to see the full effect of the calculation.</li>
12
+ <li>Add Custom Profile - Manually anter the coordinates for the custom profile</li>
13
+ <li>Export Profile - Export an X,Y,Z file of the profile data.</li>
14
+ </ul>
15
+ <h2>Calculations</h2>
16
+ <p>Calculations can be done by choosing one of two options from the menu bar at the top of the program:</p>
17
+ <ul>
18
+ <li>Regional Test - This is used to display a graph showing the regional decay of your model. It is a fast way to see if either your model extents are large enough, or how the calculated field would fall off near the end of your model.</li>
19
+ <li>Calculate Gravity - This calculates the gravity at the height specified in the Geophysical Parameters Tab.</li>
20
+ <li>Calculate Magnetics - This is used if you want Magnetic data. The height chosen is the magnetic height.</li>
21
+ </ul>
22
+ <h2>References</h2>
23
+ <p>Singh, B., Guptasarma, D., 2001. New method for fast computation of gravity and magnetic anomalies from arbitrary polyhedral. Geophysics 66, 521-526</p>
24
+ <p>Blakely, R.J., Potential Theory in Gravity and Magnetic Applications (1996), pp 200-201</p>
25
+ </body>
26
+ </html>
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <h1>Horizontal Gradient Calculation</h1>
5
+ <p>The gradient calculation calculates the devrivative of the data in the azimuth specified.</p>
6
+ <h2>Options</h2>
7
+ <ul>
8
+ <li>Azimuth - This is the direction of the derivative, in the plane of the data.</li>
9
+ <li>Order - This is the order of the derivative.</li>
10
+ </ul>
11
+ <h2>References</h2>
12
+ <p>Cooper,G.R.J., Cowan, D.R. 2007. Enhancing linear features in image data using horizontal orthogonal gradient ratios. Computers and Geosciences, 33, p.981-984</p>
13
+ </body>
14
+ </html>
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <h1>Tilt Angle Calculation</h1>
5
+ <p>This calculates the tilt angle of the data. It allows for smoothing as well. It outputs the Standard tilt angle, Hyperbolic tilt angle, 2nd order tilt angle, Tilt Based Directional Derivative and the Total Derivative</p>
6
+ <h2>Options</h2>
7
+ <ul>
8
+ <li>Smoothing Matrix - an odd matrix used to smooth the data</li>
9
+ <li>Azimuth - This is the direction of the tilt angle, in degrees from east.</li>
10
+ </ul>
11
+ <h2>References</h2>
12
+ <p>Cooper,G.R.J.,Cowan, D.R. 2006. Enhancing potential field data using filters based on the local phase. Computers and Geosciences,32, p.1585-1591</p>
13
+ </body>
14
+ </html>
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <h1>Visibility Calculation</h1>
5
+ <p>This calculates various visibility measures relating to your data. The measures are Total Visibility, Visibility Variation and Visibility Vector Resultant.</p>
6
+ <h2>Options</h2>
7
+ <ul>
8
+ <li>Window Size - This is an odd number specifying the size of window to pass over your data. The visibility is calculated for each window.</li>
9
+ <li>Viewing Height - This is the height of the observer above the surface.</li>
10
+ </ul>
11
+ <h2>References</h2>
12
+ <p>Cooper,G.R.J. 2005. Analysing potential field data using visibility. Computers and Geosciences, 31, p.877-881</p>
13
+ </body>
14
+ </html>