Kelas kelas - panickspa/SimilarityPlugin GitHub Wiki
Semua methode dan attribute pada class yang ada pada plugin ini
killed: bool
# Status worker apakah mati atau tidak
layer : class QgsVectorLayer
# Layer pertama yang orisinil
layerDup : class QgsVectorLayer
# Duplikasi dari layer pertama dan sebagai hasil dari pemeriksaan
layerResult : class QgsVectorLayer
# sebagai hasil dari pemeriksaan dari layer pertama
layer2 : class QgsVectorLayer
# Layer kedua yang orisinil
layer2Dup : class QgsVectorLayer
# Duplikasi dari layer kedua
layerResult2 : class QgsVectorLayer
# sebagai hasil dari pemeriksaan dari layer kedua
method : int
# Index metode yang terpilih
radius : float
# Radius untuk metode NN
similarLayer : list=[]
# Hasil dari pemeriksaan kesamaan peta, index nol adalah id dari fitur layer pertama, index pertama adalah id dari fitur layer kedua, index kedua adalah skor tingkat kesamaannya
suffix : str
# Nama belakang untuk layer yang diduplikasi
scoreName : str
# Nama attribut untuk layer yang diduplikasi
translate : bool
# Status untuk pengecekan dengan menggeser geometri pada metode Wilkerstat
treshold : float
# Treshold yang ditentukan
def setTreshold(self, treshold:float)
"""
Menentukan treshold
"""
float treshold # Treshold yang ditentukan
return None
def setLayers(self, layer:QgsVectorLayer, layer2:QgsVectorLayer)
"""
Menyetel layer-layer yang orisinil
"""
class QgsVectorLayer layer # Layer pertama yang orisinil
class QgsVectorLayer layer2 # Layer kedua yang orisinil
return None
def setMethod(self, method:int)
"""
Menyetel attribut method
"""
int method # Index metode yang terpilih
return None
def setTranslate(self, translate:bool)
"""
Menyetel attribut translate
"""
bool translate #Translate Statement
return None
def setRadius(self, radius:float)
"""
Menyetel attribut radius
"""
float radius # Radius yang ditentukan oleh user
return None
def setSuffix(self, suffix:str)
"""
Menyetel attribut suffix
"""
str suffix # nama belakang untuk layer yang diduplikasi
def setScoreName(self, scoreName:str)
"""
Menyetel attribut scoreName
"""
# Parameters
str suffix # nama attribut untuk layer yang diduplikasi pada attribut tabelnya
def getSimilarLayer(self)
"""
Mendapatkan attribut self.similarLayer
"""
return self.similarLayer #List-nya
def getLayers(self)
"""
Mendapatkan semua layer yang original
"""
return [self.layer, self.layer2] # List-nya
def getLayersDup(self)
"""
Mendapatkan semua layer yang diduplikasi
"""
return [self.layerDup, self.layer2Dup] # List-nya
def setLayer(self, layer:QgsVectorLayer, layer2:QgsVectorLayer)
"""
Menyetel kedua layer yang orisinil
"""
# Parameters
class QgsVectorLayer layer # Layer pertama
class QgsVectorLayer layer2 # Layer kedua
return None
def duplicateLayer(self, currentLayer:QgsVectorLayer, suffix:str, scoreName:str)
"""
Menduplikasi layer dan menyimpannya sebagai layer sementara
"""
# Parameters
class QgsVectorLayer currentLayer # Target layer
str suffix # nama belakang layer
str scoreName # nama attribut skor di layer
return class QgsVectorLayer
def __addFeatureResult(self, feature:QgsFeature, feature2:QgsFeature, score:float)
# Menambah hasil fitur yang diperiksa kedalam layer
# Parameters
QgsFeature feature # Fitur pertama
QgsFeature featuer2 # Fitur kedua
float score # Skornya
def __calcMapCurvesGeom(self, g:QgsGeometry, g2:QgsGeometry)
# Calculate the score between the geometry in float number using GOF Mapcurves (Hargrove et al. 2006)
# Parameters
feature : class QgsFeature # Masukkan geometri pertama
feature2 : class QgsFeature # Mukkan geometri kedua
return null
def __calcMapCurves(self, feature:QgsFeature, feature2:QgsFeature)
# Penghitungan skor dan menyimpannya pada self.similarLayer. Skor akan disimpan berbentuk angka float dengan metode GOF Mapcurves (Hargrove et al. 2006)
# Parameters
feature : class QgsFeature # Masukkan fitur pertama
feature2 : class QgsFeature # Masukkan fitur kedua
return null
def __calculateSq(self, layer:QgsVectorLayer, layer2:QgsVectorLayer)
# Memeriksa kesamaan peta pada kedua layer dengan metode squential
# Parameters
layer : class QgsVectorLayer # Masukkan layer pertama
layer2 : class QgsVectorLayer # Masukkan layer kedua
return null
def __calculateKNN(self, layer:QgsVectorLayer, layer2:QgsVectorLayer)
# Memeriksa dua fitur dalam bounding box tertentu. Raidus ditentukan oleh pengguna.
# Parameters
layer : class QgsVectorLayer # Masukkan layer pertama
layer2 : class QgsVectorLayer # Masukkan layer kedua
return null
def __calculateWK(self, layer:QgsVectorLayer, layer2:QgsVectorLayer)
# Memeriksa kesamaan dengan memasangkan primary key setiap fitur pada kedua layer. Info lebih lanjut lihat https://sig.bps.go.id/
# Parameters
layer : class QgsVectorLayer # Masukkan layer pertama
layer2 : class QgsVectorLayer # Masukkan layer kedua
return null
def translateCenterGeom(self, g:QgsGeometry, target:QgsGeometry) #
# Menggeser geometri g ke tengah-tengah geometri target
# Parameters
layer : class QgsGeometry # Masukkan layer pertama
layer2 : class QgsGeometry # Masukkan layer kedua
return null
layer : class QgsVectorLayer
# Layer pertama
layer2 : class QgsVectorLayer
# Layer kedua
iface : iface
# Menyimpan reference pada QGIS interface
plugin_dir : str
# initialize plugin directory
dlg : class SimilarityPluginDialog
# Main plugin dialog
similarLayer : list = []
# Hasil proses kalkulasi
previewLayer : int = 0
# Index similarLayer yang sekarang ditampilkan pada canvas
def tr(self, message)
"""Get the translation for a string using Qt translation API.
We implement this ourselves since we do not inherit QObject.
:param message: String for translation.
:type message: str, QString
:returns: Translated version of message.
:rtype: QString
"""
# noinspection PyTypeChecker,PyArgumentList,PyCallByClass
return QCoreApplication.translate('SimilarityPlugin', message)
def add_action(
self,
icon_path,
text,
callback,
enabled_flag=True,
add_to_menu=True,
add_to_toolbar=True,
status_tip=None,
whats_this=None,
parent=None)
"""Add a toolbar icon to the toolbar.
:param icon_path: Path to the icon for this action. Can be a resource
path (e.g. ':/plugins/foo/bar.png') or a normal file system path.
:type icon_path: str
:param text: Text that should be shown in menu items for this action.
:type text: str
:param callback: Function to be called when the action is triggered.
:type callback: function
:param enabled_flag: A flag indicating if the action should be enabled
by default. Defaults to True.
:type enabled_flag: bool
:param add_to_menu: Flag indicating whether the action should also
be added to the menu. Defaults to True.
:type add_to_menu: bool
:param add_to_toolbar: Flag indicating whether the action should also
be added to the toolbar. Defaults to True.
:type add_to_toolbar: bool
:param status_tip: Optional text to show in a popup when mouse pointer
hovers over the action.
:type status_tip: str
:param parent: Parent widget for the new action. Defaults None.
:type parent: QWidget
:param whats_this: Optional text to show in the status bar when the
mouse pointer hovers over the action.
:returns: The action that was created. Note that the action is also
added to self.actions list.
:rtype: QAction
"""
def initGui(self)
"""Create the menu entries and toolbar icons inside the QGIS GUI."""
def unload(self)
"""Removes the plugin menu item and icon from QGIS GUI."""
def methodChange(self)
# interaksi saat method combo box berubah
def resultPreview(self)
# Mengaktifkan preview section
def attrPrinter(self, fieldList: object, feature: QgsFeature, place: QTextEdit)
# Menampilkan nilai attribut pada fitur yang ditentukan pada tempat tertentu
# Print feature atrribute info on text edit in preview section
# Parameters:
fieldList : object # Isian atribut berbentuk objek
feature : class QgsFeature # Fitur yang akan ditampilkan nilai atributnya
place : class QTextEdit # Tempat dimana nilai atribut diletakkan
def refreshPreview(self)
# menggambar kembali geometri pada kanvas
def nextPreview(self)
# fitur selanjutnya
def nextPrevious(self)
# fitur sebelumnya
def rmFeatResult(self)
# menghapus hasil yang sekarang ditampilkan pada daftar semua hasil (self.similarLayer)
def rmWarn(self)
# Perngiatan untuk mencegah penghapusan secara tidak sengaja
def methodChange(self)
# interaksi saat method combo box berubah
def resultPreview(self)
# Mengaktifkan preview section
def attrPrinter(self, fieldList: object, feature: QgsFeature, place: QTextEdit)
# Menampilkan nilai attribut pada fitur yang ditentukan pada tempat tertentu
# Print feature atrribute info on text edit in preview section
# Parameters:
fieldList : object # Isian atribut berbentuk objek
feature : class QgsFeature # Fitur yang akan ditampilkan nilai atributnya
place : class QTextEdit # Tempat dimana nilai atribut diletakkan
def refreshPreview(self)
# menggambar kembali geometri pada kanvas
def nextPreview(self)
# fitur selanjutnya
def nextPrevious(self)
# fitur sebelumnya
def rmFeatResult(self)
# menghapus hasil yang sekarang ditampilkan pada daftar semua hasil (self.similarLayer)
def rmWarn(self)
# Perngiatan untuk mencegah penghapusan secara tidak sengaja
def addScoreItem(self)
# Menambahkan nilai skor pada hasil
def registerToProject(self)
# Interaksi ketika self.dlg.saveBtn diklik
def finishedCalcThread(self, itemVal)
# Signal saat self.calcTask selesai
def stopCalcThread(self)
# Signal saat self.calcThread berhenti
def errorCalcThread(self)
# Signal saat self.calcTask error
def setLayers(self, layers:list)
# Menyetel attribut layer pertama dan kedua
# Parameter
list layers=[QgsVectorLayer, QgsVectorLayer]:
return None
attrOutlineEdit : class QLineEdit
# Tempat untuk memberikan nama skor pada attribut tabel dalam bentuk string (teks).
calcBtn : class QPushButton
# Tombol untuk eksekusi pemeriksaan
layerSel1 : class QgsMapComboBox
# Combo Box untuk memilih layer pertama
layerSel2 : class QgsMapComboBox
# Combo Box untuk memilih layer kedua
lineEditTreshold : class QDoubleSpinBox
# Masukkan untuk treshold tingkat kesamaan peta
mainTab : class QWidget
# Tab utama
mergeCenterCheck : class QCheckBox
# Check box untuk pemeriksaan dengan menggeser geometri ke geometri pasangannya
methodComboBox : class QCheckBox
# Combo box untuk memilih metode untuk pemeriksaan peta
nextBtn : class QPushButton
# tombol untuk menampilkan hasil selanjutnya
nnRadiusEdit : class QDoubleSpinBox
# Tempat untuk memasukkan radius bounding box yang ditentukan oleh pengguna untuk metode NN
sufLineEdit : class QLineEdit
# Tempat untuk memasukkan nama suffix layer
previewAttr : class QTextEdit
# menampilkan nilai attribut pada fitur yang sedang di lihat
previewAttr_2 : class QLineEdit
# Previewing attribute current feature in second layer
previousBtn : class QPushButton
# tombol untuk menampilkan hasil sebelumnya
progressBar : class QProgressBar
# untuk menampilkan progress pemeriksaan
SimilarityPluginDialogBase : class QDialog
# Dialog dasar untuk plugin
tabWidget : class QTabWidget
# Tab widget di plugin
widgetCanvas : class QgsMapCanvas
# Canvas widget di preview section untuk menampilkan hasilnya
stopBtn : class PushButton
# Button for stoping the calculation
msgLabel : class QLabel
# Tulisan pesan peringatan
noBtn : class QPushButton
# Tombol untuk tidak setuju
yesBtn : class QPushButton
# Tombol untuk setuju
msgLabel : class QLabel
# Pesan yang ditampilkan
okBtn : class QPushButton
# Tombol untuk kondisi ok