Home › QGIS 4 readiness › Adopt a plugin
This week’s porting candidate · Week of
Adopt a QGIS plugin
304 popular plugins (10,000+ downloads) are not listed for QGIS 4 and have had no release in at least 2 years. Each week we highlight one that many people still depend on.
- Porting candidates
- 304
- Combined downloads
- 14.1M
- Median since last release
- 5.5 years
Porting candidates, not abandoned plugins. Difficulty badges are automatic estimates from a scan of each plugin’s code, and repository data can’t show whether a maintainer has moved on. Before you start, check the plugin’s existing issues and contact the maintainer, since many welcome co-maintainers and pull requests. Then follow the official QGIS porting guide.
This week’s porting candidate
Catalog Planet Labs
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis plugin lets you get images from the Planet Labs API(Version 1).
Why flagged: Not listed for QGIS 4; last release 2,745 days ago; 38,536 downloads
Why Medium? Score 4
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
__init__.py:61,accesssite.py:111and 70 more - +1 Deprecated QGIS/Qt APIs (QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
menulayer.py:54,menulayer.py:105and 1 more - +1 Size of the plugin's own Python code (2,126 lines in 9 files)
Scanned v2.0 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
More porting candidates
303 more
Freehand raster georeferencer
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateInteractive georeferencing of rasters
Why flagged: Not listed for QGIS 4; last release 2,096 days ago; 700,096 downloads
Why Hard? Score 8
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
exportgeorefrasterdialog.py:77,exportgeorefrasterdialog.py:83and 22 more - +2 Qt Designer .ui files (4 .ui files)
exportgeorefrasterdialog.ui:1,freehandrastergeoreferencerdialog.ui:1and 2 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
exportgeorefrasterdialog.py:14,freehandrastergeoreferencer.py:14and 15 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
freehandrastergeoreferencer.py:234,freehandrastergeoreferencer_maptools.py:44and 44 more - +1 exec_() calls (removed in PyQt6)
exportgeorefrasterdialog.py:84,freehandrastergeoreferencer.py:288and 5 more - +1 Size of the plugin's own Python code (2,158 lines in 12 files)
Scanned v0.8.3 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
go2streetview
Not QGIS 4 readyPort difficulty: Hard · Automatic estimatea plugin for Google Street View interaction within QGIS
Why flagged: Not listed for QGIS 4; last release 896 days ago; 601,817 downloads
Why Hard? Score 11
- +3 Removed Qt/PyQt/QGIS APIs (The PyQt Qt module)
go2streetview.py:22,go2streetviewDialog.py:22and 1 more - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
go2streetview.py:203,go2streetview.py:216and 50 more - +2 Qt Designer .ui files (5 .ui files)
ui_go2streetview.ui:1,ui_go2streetviewDum.ui:1and 3 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
go2streetview.py:22,go2streetview.py:23and 6 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
go2streetview.py:240,go2streetview.py:242and 41 more - +1 exec_() calls (removed in PyQt6)
go2streetviewDialog.py:226,go2streetviewDialog.py:233and 1 more - +1 Size of the plugin's own Python code (1,592 lines in 5 files)
Scanned v10.0 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (The PyQt Qt module)
TMS for Korea
Not QGIS 4 readyPort difficulty: Hard · Automatic estimate한국 사용자를 위한 QGIS 지도 타일 플러그인 — 브이월드, 네이버, OpenStreetMap, Azure 지도 (QGIS 4.x. Azure 지도는 사용자 구독 키 필요)
Why flagged: Not listed for QGIS 4; last release 1,639 days ago; 504,071 downloads
Why Hard? Score 10
Hard regardless of score: removed qt subsystem (qtwebkit, qtxmlpatterns, qtscript…).
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
openlayers_layer.py:27,ui_openlayers_ovwidget.ui:1 - +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
openlayers_layer.py:403,openlayers_plugin.py:387 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"); QgsCoordinateTransform(source, destination) without a transform context)
openlayers_ovwidget.py:77,openlayers_ovwidget.py:95and 3 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
openlayers_layer.py:219,openlayers_layer.py:288and 16 more - +1 Size of the plugin's own Python code (1,519 lines in 17 files)
- +1 Qt Designer .ui files (3 .ui files)
ui_about_dialog.ui:1,ui_openlayers_ovwidget.ui:1and 1 more
Scanned v3.0.5 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
autoSaver
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateauto save current project and modified layers in edit mode at specified interval
Why flagged: Not listed for QGIS 4; last release 984 days ago; 307,899 downloads
Why Easy? Score 2
- +1 exec_() calls (removed in PyQt6)
autoSaver-master/autosave.py:421,autoSaver/autosave.py:428 - +1 Qt Designer .ui files (2 .ui files)
autoSaver-master/ui_autosave_dialog_base.ui:1,autoSaver/ui_autosave_dialog_base.ui:1
Scanned v2.9 on 2026-11-03. How difficulty is estimated
- +1 exec_() calls (removed in PyQt6)
SCP-Plugin
Not QGIS 4 readyPort difficulty: Easy · Automatic estimatePlugin for Structured Conservation Planning of Marine Protected Areas
Why flagged: Not listed for QGIS 4; last release 3,055 days ago; 281,030 downloads
Why Easy? Score 3
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
about/doAbout.py:80,input_manager.py:21and 40 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
input_manager.py:314,input_manager.py:316and 6 more
Scanned v2.0 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
NumericalDigitize
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateNumerical Digitize is QGIS plugin for creating and editing features by inserting, changing or deleting numerical values of vertex's coordinates from keybord…
Why flagged: Not listed for QGIS 4; last release 826 days ago; 270,310 downloads
Why Medium? Score 5
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
addFeatureGUI.py:174,addFeatureGUI.py:211and 38 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
addFeatureGUI.py:147,addFeatureGUI.py:148and 32 more - +1 Size of the plugin's own Python code (1,574 lines in 8 files)
- +1 Qt Designer .ui files (2 .ui files)
addFeatureGUI.ui:1,chooseFeatureGUI.ui:1
Scanned v0.4.8 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Coordinate Capture
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateCapture mouse coordinates in different CRS
Why flagged: Not listed for QGIS 4; last release 2,282 days ago; 224,874 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
coordinate_capture_map_tool.py:37,coordinate_capture_map_tool.py:56and 2 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
coordinate_capture.py:79,coordinate_capture.py:243and 6 more
Scanned v0.2 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
GarminCustomMap
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateExport the current map canvas to a Garmin Custom Map (.kmz-file)
Why flagged: Not listed for QGIS 4; last release 1,452 days ago; 200,280 downloads
Why Medium? Score 4
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
GarminCustomMap.py:23,GarminCustomMap.py:24and 3 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
GarminCustomMap.py:445,resources.py:1 - +1 exec_() calls (removed in PyQt6)
GarminCustomMap.py:242,GarminCustomMap.py:282and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
GarminCustomMap.py:56,GarminCustomMap.py:239and 15 more
Scanned v3.4.2 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Google Street View Layer
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateA QGIS plugin that uses your road layer, and creates a layer or table with the most recent Google Street View capture data. Google API Key required!
Why flagged: Not listed for QGIS 4; last release 1,660 days ago; 182,124 downloads
Why Medium? Score 4
- +2 Processing usage (Implements a Processing provider)
google_street_view_layer_provider.py:37 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
google_street_view_layer_algorithm.py:40,google_street_view_layer_algorithm.py:41 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
google_street_view_layer_algorithm.py:120,google_street_view_layer_algorithm.py:564and 7 more
Scanned v0.1 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
PostGIS geoprocessing tools
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateA set of tools to do geoprocessing with PostGIS layers. The spatial SQL queries are run in the server where the layers come from, and the result will be a…
Why flagged: Not listed for QGIS 4; last release 2,632 days ago; 155,895 downloads
Why Medium? Score 4
- +2 Processing usage (Implements a Processing provider)
OgrGeoprocessingProvider.py:57 - +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
bufferlayers.py:82,bufferlayersvariable.py:81and 40 more - +1 Size of the plugin's own Python code (2,169 lines in 18 files)
Scanned v0.9 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Multi-distance buffer
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateCreate multiple distance buffers
Why flagged: Not listed for QGIS 4; last release 3,004 days ago; 143,678 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
MultiDistanceBuffer.py:114,MultiDistanceBuffer.py:119and 6 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
MultiDistanceBuffer_gui.py:56,MultiDistanceBuffer_gui.py:59and 14 more
Scanned v3.2.4 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
ArcheoCAD
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateGenerates a vectorial layer of Polygons, Rectangles, Circles and Ellipses using vertices.
Why flagged: Not listed for QGIS 4; last release 1,812 days ago; 140,174 downloads
Why Medium? Score 5
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Dialog/archeoCadRectDialog.py:30,Dialog/archeoCadRectDialog.py:31and 15 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
Dialog/archeoCadRectDialog.py:99,Dialog/archeoCadRectDialog.py:101and 7 more - +1 exec_() calls (removed in PyQt6)
Dialog/archeocadSuperDialog.py:139,archeocad.py:133and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Dialog/archeocadSuperDialog.py:72,Dialog/archeocadSuperDialog.py:138and 7 more - +1 Qt Designer .ui files (2 .ui files)
ui/ui_archeocad.ui:1,ui/ui_archeocad_Rect.ui:1
Scanned v3.2.2 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Map Library
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateA map library which makes it easy to add much used maps to your project.
Why flagged: Not listed for QGIS 4; last release 1,224 days ago; 138,215 downloads
Why Medium? Score 6
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
QTreeWidgetCustom.py:13,QTreeWidgetCustom.py:15and 27 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
map_library_dialog.py:27,map_library_dialog.py:28and 2 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
map_library.py:829,network/networkaccessmanager.py:257 - +1 Qt Designer .ui files (2 .ui files)
map_library_dialog_base.ui:1,map_library_settings_dialog_base.ui:1
Scanned v1.3 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
QPackage
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateQpackage is a tool to save both your QGIS project and data contained in the project to a new directory.
Why flagged: Not listed for QGIS 4; last release 3,202 days ago; 133,142 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
ModeleListeCouches.py:1,ModeleListeCouches.py:2and 12 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
QPackage_dialog.py:80,QPackage_dialog.py:111and 6 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
ModeleListeCouches.py:20,ModeleListeCouches.py:27and 10 more
Scanned v1.5 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Processing R Provider
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateA Processing provider for connecting to the R statistics framework
Why flagged: Not listed for QGIS 4; last release 1,032 days ago; 131,735 downloads
Why Medium? Score 6
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
gui/script_editor/script_editor_dialog.py:143,gui/script_editor/script_editor_dialog.py:144and 24 more - +2 Processing usage (Implements a Processing provider)
processing/provider.py:36 - +1 Deprecated QGIS/Qt APIs (QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
processing/algorithm.py:786,processing/outputs.py:88and 5 more - +1 Size of the plugin's own Python code (2,638 lines in 19 files)
Scanned v4.1.0 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Vector Bender
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateDoes to vectors what georefencers does to raster. This feature is also known as "rubber sheeting".
Why flagged: Not listed for QGIS 4; last release 2,536 days ago; 123,275 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
vectorbender.py:177,vectorbender.py:192and 12 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
vectorbenderdialog.py:19,vectorbenderdialog.py:174and 9 more
Scanned v0.2.1 on 2026-11-03. How difficulty is estimated
Repository not suppliedIssue trackerPorting guide
- +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
Sentinel-2 Download
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis plugin allows users to download the Sentinel-2 Satellite image from Google Earth Engine into QGIS and save to Google Drive.
Why flagged: Not listed for QGIS 4; last release 1,646 days ago; 122,480 downloads
Why Medium? Score 5
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Sentinel2_Download_Dialog.py:2,Sentinel2_Download_Dialog.py:3and 3 more - +1 Deprecated QGIS/Qt APIs (QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
Sentinel2_Download_Dialog.py:305 - +1 exec_() calls (removed in PyQt6)
Sentinel2_Download_Menu.py:57,Sentinel2_Download_Menu.py:61 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Sentinel2_Download_Dialog.py:57,Sentinel2_Download_Dialog.py:157and 6 more - +1 Qt Designer .ui files (2 .ui files)
forms/sentinel2_download_dialog_vietnam.ui:1,forms/sentinel2_download_dialog_world.ui:1
Scanned v3.5.7 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
AGT - Archaeological Geophysics Toolbox
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateThis plugin provides basic tools for processing archaeo-geophysical data: Geoscan Research RM15/RM85, Sensys MXPDA, Bartington Grad601, Geonics EM31, Geophex…
Why flagged: Not listed for QGIS 4; last release 1,001 days ago; 116,644 downloads
Why Hard? Score 10
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Dialog/CalibrationDialog.py:160,Dialog/CalibrationDialog.py:171and 123 more - +2 Size of the plugin's own Python code (5,445 lines in 37 files)
- +2 Qt Designer .ui files (23 .ui files)
ui/ui_CalibrationDialog.ui:1,ui/ui_EM31Dialog.ui:1and 21 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
AGT.py:31,AGT.py:32and 48 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"); QgsCoordinateTransform(source, destination) without a transform context)
Dialog/InterpolateurDialog.py:69,Dialog/InterpolateurDialog.py:72and 71 more - +1 exec_() calls (removed in PyQt6)
AGT.py:282,AGT.py:299and 10 more - +1 Processing usage (Uses Processing)
Dialog/InterpolateurDialog.py:34,Dialog/InterpolateurDialog.py:36and 46 more
Scanned v3.1.5 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Buffer by Percentage
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateBuffer polygon features so the buffered area is a specified percentage of the original area
Why flagged: Not listed for QGIS 4; last release 2,348 days ago; 111,634 downloads
Why Easy? Score 3
- +2 Processing usage (Implements a Processing provider)
bufferbypercentage.py:116 - +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
bufferbypercentage.py:174,bufferbypercentage.py:180and 4 more
Scanned v0.3.3 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Temporal/Spectral Profile Tool
Not QGIS 4 readyPort difficulty: Medium · Automatic estimatePlots profile from raster bands. Based on Profile Tool.
Why flagged: Not listed for QGIS 4; last release 1,157 days ago; 108,082 downloads
Why Medium? Score 6
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
temporalprofileplugin.py:246,tools/doprofile.py:82and 58 more - +1 Bundled executable or library code (2 vendored Python files)
nc_time_axis/and 1 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
resources.py:1,temporalprofileplugin.py:151 - +1 exec_() calls (removed in PyQt6)
temporalprofileplugin.py:319,tools/plottingtool.py:313and 3 more - +1 Qt Designer .ui files (2 .ui files)
ui/about.ui:1,ui/profiletool.ui:1
Scanned v2.1.3 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
layer2kmz
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateBuild a kmz file from a layer of points, lines or polygons
Why flagged: Not listed for QGIS 4; last release 2,368 days ago; 105,441 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
layer2kmz.py:24,layer2kmz.py:25and 5 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
layer2kmz.py:175,layer2kmz.py:177and 5 more
Scanned v1.5.3 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Data-Driven Input Mask
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateOpens a data-driven input mask for any PostgreSQL Layer
Why flagged: Not listed for QGIS 4; last release 913 days ago; 103,108 downloads
Why Hard? Score 11
- +4 Size of the plugin's own Python code (6,752 lines in 9 files)
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
ddui.py:45,ddui.py:72 - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
datadriveninputmask.py:226,datadriveninputmask.py:228and 142 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
icons.py:1 - +1 exec_() calls (removed in PyQt6)
dddialog.py:120,dddialog.py:238and 26 more
Scanned v2.5.0 on 2026-11-03. How difficulty is estimated
QChatGPT
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateA plugin integration between QGIS and openai API.
Why flagged: Not listed for QGIS 4; last release 1,225 days ago; 99,589 downloads
Why Medium? Score 4
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
install_packages/check_dependencies.py:40,install_packages/check_dependencies.py:42and 33 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
qchatqpt.py:292,qchatqpt.py:311
Scanned v0.7 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
PointConnector
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateCreating lines between points following a from-to list.
Why flagged: Not listed for QGIS 4; last release 2,787 days ago; 99,240 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
point_connector_dialog.py:25 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
point_connector.py:272,resources_rc.py:1and 2 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
point_connector.py:282,point_connector.py:284and 4 more
Scanned v2.0 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Red Layer
Not QGIS 4 readyPort difficulty: Easy · Automatic estimatequick georeferenced sketches and annotations
Why flagged: Not listed for QGIS 4; last release 2,022 days ago; 95,481 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
redLayerModule.py:493,redLayerModule.py:506and 4 more - +1 Qt Designer .ui files (2 .ui files)
redLayerModule_dialog_base.ui:1,ui_note_dialog.ui:1
Scanned v2.2 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
changeDataSource
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateRight click on layer tree to change single layer datasource of click on icon to change datasources globally
Why flagged: Not listed for QGIS 4; last release 2,219 days ago; 89,491 downloads
Why Hard? Score 8
- +3 Removed Qt/PyQt/QGIS APIs (QFontMetrics.width() (use horizontalAdvance()); QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
changeDataSource.py:337,setdatasource.py:128 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
changeDataSource.py:27,changeDataSource.py:28and 5 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
changeDataSource.py:180,changeDataSource.py:181and 8 more - +1 exec_() calls (removed in PyQt6)
changeDataSource.py:465,changeDataSource_dialog.py:98 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
changeDataSource.py:195,changeDataSource.py:196and 13 more - +1 Qt Designer .ui files (3 .ui files)
browsedatasource.ui:1,changeDataSource_dialog_base.ui:1and 1 more
Scanned v3.1 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QFontMetrics.width() (use horizontalAdvance()); QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
VoGIS-ProfilTool
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateCreate profiles from DEMs using vector geometries or a digitized line.
Why flagged: Not listed for QGIS 4; last release 2,866 days ago; 89,471 downloads
Why Medium? Score 6
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
util/createProfile.py:411,util/createProfile.py:422and 118 more - +1 Bundled executable or library code (31 vendored Python files)
util/xlsxwriter/and 30 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
resources_rc.py:1,util/createProfile.py:154and 24 more - +1 exec_() calls (removed in PyQt6)
vogisprofiltoolmain.py:131,vogisprofiltoolmaindialog.py:206and 2 more - +1 Size of the plugin's own Python code (2,943 lines in 32 files)
Scanned v3.0.2 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
MapBiomas Collection
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin lets you add the anual land use and land cover maps from the MapBiomas Project (http://mapbiomas.org/) as a collection of WMS layer.
Why flagged: Not listed for QGIS 4; last release 1,819 days ago; 88,286 downloads
Why Easy? Score 1
- +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
mapbiomascollection.py:137,mapbiomascollection.py:146and 11 more
Scanned v1.4 on 2026-11-03. How difficulty is estimated
- +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Virtual Raster Builder
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateA QGIS Plugin to create GDAL Virtual Raster (VRT) files by drag and drop.
Why flagged: Not listed for QGIS 4; last release 2,089 days ago; 87,375 downloads
Why Hard? Score 12
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
vrtbuilder/widgets.py:1234,vrtbuilder/widgets.py:1235 - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
vrtbuilder/virtualrasters.py:901,vrtbuilder/widgets.py:397and 49 more - +2 Qt Designer .ui files (4 .ui files)
vrtbuilder/ui/about.ui:1,vrtbuilder/ui/batchbuild.ui:1and 2 more - +1 Bundled executable or library code (302 vendored Python files)
vrtbuilder/externals/and 301 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
vrtbuilder/virtualrasters.py:30 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
vrtbuilder/ui/resources.py:1,vrtbuilder/ui/vrtbuilderresources_rc.py:1and 6 more - +1 exec_() calls (removed in PyQt6)
vrtbuilder/__main__.py:30,vrtbuilder/widgets.py:308and 2 more - +1 Size of the plugin's own Python code (2,826 lines in 7 files)
Scanned v0.9.20210222T174536.master on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
Attribute painter
Not QGIS 4 readyPort difficulty: Medium · Automatic estimatePlugin for easy replication of attributes values between features of the same or even different layer
Why flagged: Not listed for QGIS 4; last release 1,254 days ago; 86,947 downloads
Why Medium? Score 5
- +3 Removed Qt/PyQt/QGIS APIs (qApp (use QApplication.instance()); QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
attributepainter.py:119,attributepainter.py:401and 1 more - +1 Deprecated QGIS/Qt APIs (QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
attributepainter.py:282 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
attributepainter.py:123,attributepainter.py:150and 14 more
Scanned v5.3 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (qApp (use QApplication.instance()); QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
RasterTool
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateExtract Pixel value from raster files (.tif) into a CSV file and convert input Raster file to point shapefile and create 3D plot of input raster data.
Why flagged: Not listed for QGIS 4; last release 2,579 days ago; 84,482 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
RasterTool.py:24,RasterTool.py:25and 7 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Processing usage (Uses Processing)
RasterTool.py:45
Scanned v0.2 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Serval
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateRaster editing tools
Why flagged: Not listed for QGIS 4; last release 1,121 days ago; 83,702 downloads
Why Medium? Score 4
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
band_spin_boxes.py:20,band_spin_boxes.py:21and 25 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
selection_tool.py:27,selection_tool.py:29and 10 more - +1 Size of the plugin's own Python code (1,648 lines in 10 files)
Scanned v3.32.0 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Advanced Line Editor
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateAdds line editing tools (segment deletion, ...)
Why flagged: Not listed for QGIS 4; last release 2,849 days ago; 82,263 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
advanced_line_editor.py:281,advanced_line_editor.py:290and 9 more
Scanned v1.3 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
QEPANET
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateThis plugin links QGIS and EPANET. It provides: a set of dedicated editing tools to build a correct EPANET network, to run the simulation and to analyse the…
Why flagged: Not listed for QGIS 4; last release 764 days ago; 82,256 downloads
Why Hard? Score 13
Hard regardless of score: bundled executable or library code.
- +4 Size of the plugin's own Python code (11,663 lines in 49 files)
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
tools/parameters.py:7,tools/parameters.py:8and 18 more - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
geo_utils/vector_utils.py:38,model/inp_writer.py:952and 187 more - +1 Bundled executable or library code (5 native binaries)
bin/32bit/ELF/epanet2d:1,bin/32bit/WindowsPE/epanet2d.exe:1and 3 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
tools/parameters.py:8 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
geo_utils/vector_utils.py:26,model/network.py:32and 111 more - +1 exec_() calls (removed in PyQt6)
qepanet.py:250,tools/add_pipe_tool.py:119and 15 more
Scanned v2.5.6 on 2026-11-03. How difficulty is estimated
Cloud Masking
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateCloudMasking is a Qgis plugin for make the masking of clouds, cloud shadow, cirrus, aerosols, ice/snow and water for Landsat (4, 5, 7, 8, 9) products using…
Why flagged: Not listed for QGIS 4; last release 892 days ago; 80,341 downloads
Why Hard? Score 6
Hard regardless of score: bundled executable or library code.
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
cloud_masking.py:183,cloud_masking.py:192and 41 more - +1 Bundled executable or library code (46 native binaries, 57 vendored Python files)
libs/fmask/_fillminima.so:1,libs/fmask/_valueindexes.so:1and 101 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
cloud_masking.py:260,cloud_masking.py:270and 12 more - +1 Size of the plugin's own Python code (2,581 lines in 10 files)
- +1 Qt Designer .ui files (3 .ui files)
ui/about.ui:1,ui/aerosolC2L2.ui:1and 1 more
Scanned v24.6 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
QWater
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateHydraulic design and analysis of water supply networks
Why flagged: Not listed for QGIS 4; last release 818 days ago; 79,929 downloads
Why Hard? Score 16
Hard regardless of score: bundled executable or library code.
- +4 Size of the plugin's own Python code (7,303 lines in 38 files)
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
addon/qepanet/tools/parameters.py:7,addon/qepanet/tools/parameters.py:8and 18 more - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
GHydraulicsInpWriter.py:68,GHydraulicsModel.py:82and 184 more - +2 Qt Designer .ui files (5 .ui files)
QWater_03Export.ui:1,QWater_Rename_dialog.ui:1and 3 more - +1 Bundled executable or library code (7 native binaries, 565 vendored Python files)
bin/32bit/ELF/epanet2d:1,bin/32bit/WindowsPE/epanet2d.exe:1and 570 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
QWater_03Export.py:28,QWater_04Static_Head.py:29and 1 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
GHydraulicsCommon.py:74,GHydraulicsInpWriter.py:119and 79 more - +1 exec_() calls (removed in PyQt6)
QWaterPlugin.py:456,QWaterPlugin.py:567and 6 more - +1 Processing usage (Uses Processing)
QWater_02Flow.py:31,QWater_02Flow.py:92
Scanned v3.3.2 on 2026-11-03. How difficulty is estimated
Batch Hillshader
Not QGIS 4 readyPort difficulty: Medium · Automatic estimatePlugin to generate a three light exposure hillshade (shaded relief by combining three light exposures)
Why flagged: Not listed for QGIS 4; last release 1,129 days ago; 79,390 downloads
Why Medium? Score 7
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
plugin_utils/raster_funs.py:119 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
batch_hillshader.py:204,batch_hillshader.py:212 - +1 Size of the plugin's own Python code (1,630 lines in 14 files)
- +1 Qt Designer .ui files (2 .ui files)
batch_hillshader_dialog_base.ui:1,dlgabout.ui:1
Scanned v2.4.4 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
Animate OSM
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateAnimates OSM changes within a time frame and bounding box. This plugin has been developed for creating visualizations of work processed in hotosm.org tasks…
Why flagged: Not listed for QGIS 4; last release 2,941 days ago; 79,169 downloads
Why Medium? Score 4
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
aniosm.py:197,aniosm.py:264and 23 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
aniosm.py:27,aniosm.py:28and 3 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
aniosm.py:495,aniosm.py:496and 4 more
Scanned v0.3.0 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
qNote
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateSave notes in QGIS projects
Why flagged: Not listed for QGIS 4; last release 1,163 days ago; 77,823 downloads
Why Medium? Score 6
- +3 Removed Qt/PyQt/QGIS APIs (The PyQt Qt module)
QTextEditEnhanced.py:5,qnote_panel.py:5 - +1 exec_() calls (removed in PyQt6)
QTextEditEnhanced.py:49,QTextEditEnhanced.py:67 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
QTextEditEnhanced.py:19,QTextEditEnhanced.py:24and 11 more - +1 Qt Designer .ui files (2 .ui files)
ui/ui_hyperlink.ui:1,ui/ui_panel.ui:1
Scanned v2.3 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (The PyQt Qt module)
RiverGIS
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateRiverGIS is a QGIS plugin that helps you create HEC-RAS flow model.
Why flagged: Not listed for QGIS 4; last release 3,115 days ago; 77,509 downloads
Why Medium? Score 7
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
dlg_rasCreateRasLayers.py:67,dlg_rasImportDataIntoRasTables.py:288and 22 more - +2 Size of the plugin's own Python code (4,815 lines in 16 files)
- +2 Qt Designer .ui files (5 .ui files)
ui/ui_importDataIntoRasTables.ui:1,ui/ui_rasCreateRasLayers.ui:1and 3 more - +1 exec_() calls (removed in PyQt6)
ras1dFunctions.py:453,rivergis.py:349and 2 more
Scanned v3.0 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Hqgis
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateRouting, Geocoding, POI search, Isochrones with the HERE API.
Why flagged: Not listed for QGIS 4; last release 1,094 days ago; 77,074 downloads
Why Hard? Score 8
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
GetMapCoordinates.py:71,GetMapCoordinates.py:88and 24 more - +2 Processing usage (Implements a Processing provider)
HqgisProvider.py:39 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
HqgisAlgorithm_POIs.py:14,HqgisAlgorithm_POIs.py:15and 11 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
HqgisAlgorithm_POIs.py:163,HqgisAlgorithm_POIs.py:391and 99 more - +1 exec_() calls (removed in PyQt6)
hqgis.py:720,hqgis.py:1421 - +1 Size of the plugin's own Python code (2,710 lines in 10 files)
Scanned v1.2.3 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
postgisQueryBuilder
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateUser friendly postgis query generation. Tutorial on website.
Why flagged: Not listed for QGIS 4; last release 2,582 days ago; 76,775 downloads
Why Hard? Score 9
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
PSQL.py:373,postgisquerybuilder.py:163and 23 more - +2 Qt Designer .ui files (6 .ui files)
ui-converttotabledialog.ui:1,ui_askcredentialdialog.ui:1and 4 more - +1 Bundled executable or library code (22 vendored Python files)
extlibs/and 21 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
PSQL.py:27,PSQL.py:28and 8 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
PSQL.py:417,resources_rc.py:1 - +1 exec_() calls (removed in PyQt6)
PSQL.py:109,PSQL.py:117and 22 more - +1 Size of the plugin's own Python code (2,108 lines in 10 files)
Scanned v2.0.1 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
RS&GIS
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateOperates on raw satellite data (Landsat 1-8 & LISS) to produce standard outputs and user defined custom band outputs
Why flagged: Not listed for QGIS 4; last release 1,602 days ago; 76,031 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
RSGIS_M.py:25,RSGIS_M.py:26and 2 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Size of the plugin's own Python code (2,386 lines in 3 files)
Scanned v1.2 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
realcentroid
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateCreate internal point for a polygon layer
Why flagged: Not listed for QGIS 4; last release 2,452 days ago; 75,392 downloads
Why Medium? Score 4
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
realcentroid.py:25,realcentroid.py:26and 4 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
realcentroid.py:175,resources.py:1 - +1 exec_() calls (removed in PyQt6)
realcentroid.py:227,realcentroid_dialog.py:84 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
realcentroid.py:212,realcentroid_dialog.py:54and 5 more
Scanned v1.0.3 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Coordinates Converter
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateCoordinates converter plugin developed for the purpose of converting coordinates from/to DMS, decimal degree and utm.
Why flagged: Not listed for QGIS 4; last release 1,996 days ago; 74,736 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
Split Polygon
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateSplit polygon is a QGIS plugin developed to solve the problem of dividing polygons into different ways
Why flagged: Not listed for QGIS 4; last release 1,875 days ago; 74,622 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
split_polygon.py:24,split_polygon.py:25and 4 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
resources.py:1,split_polygon.py:268
Scanned v1.2 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Coordinator
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateCapture, transform and use coordinates
Why flagged: Not listed for QGIS 4; last release 2,143 days ago; 73,828 downloads
Why Medium? Score 6
- +3 Removed Qt/PyQt/QGIS APIs (The PyQt Qt module)
coordinator.py:27,coordinator_dockwidget.py:31and 1 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
coordinator.py:27,coordinator.py:29and 6 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
coordinator.py:173,coordinator.py:187and 16 more
Scanned v0.4 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (The PyQt Qt module)
QGIS2Mapea4
Not QGIS 4 readyPort difficulty: Easy · Automatic estimatePlugin to create web map with geographic data of Andalusia (Spain) using the Mapea4 javascript library. Complemento para crear visores de mapas web con datos…
Why flagged: Not listed for QGIS 4; last release 3,054 days ago; 71,032 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
qgis2mapea.py:29,qgis2mapea.py:30and 4 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
qgis2mapea.py:229,qgis2mapea.py:247and 6 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
qgis2mapea.py:247,qgis2mapea.py:363and 5 more
Scanned v0.1 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Locate points along lines
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateCreating points along lines
Why flagged: Not listed for QGIS 4; last release 3,136 days ago; 67,603 downloads
Why Medium? Score 4
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
locate_points.py:129,locate_points_dialog.py:110 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
locate_points.py:32,locate_points.py:132and 2 more
Scanned v0.3.4 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
Dissolve with stats
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateGroup entities with same value for one field, calculate statistics on the other fields
Why flagged: Not listed for QGIS 4; last release 2,764 days ago; 67,259 downloads
Why Medium? Score 4
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
dissolve_stats.py:24,dissolve_stats.py:25and 2 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
dissolve_stats_dialog.py:148,resources.py:1and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
dissolve_stats.py:285,dissolve_stats_dialog.py:80and 7 more - +1 Processing usage (Uses Processing)
dissolve_stats.py:30
Scanned v0.6 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Shapefile Encoding Fixer
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateFix broken encoding declaration in ESRI Shapefiles
Why flagged: Not listed for QGIS 4; last release 1,114 days ago; 67,097 downloads
Why Easy? Score 1
- +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
encoding_fixer_plugin.py:153,encoding_fixer_plugin.py:154and 9 more
Scanned v0.7.1 on 2026-11-03. How difficulty is estimated
- +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
LandXml import plugin
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateImport parcels and nodes from a LINZ LandXml file
Why flagged: Not listed for QGIS 4; last release 1,369 days ago; 66,738 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
LandXmlDialog.py:15,LandXmlDialog.py:16and 4 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
LandXmlResources.py:1
Scanned v2.4 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
QMetaTiles
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateGenerates MetaTiles for export to the LatLonGO mobile solution.
Why flagged: Not listed for QGIS 4; last release 2,674 days ago; 66,682 downloads
Why Medium? Score 4
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
qtiles_utils.py:37,qtiles_utils.py:40and 1 more - +1 exec_() calls (removed in PyQt6)
qmetatiles.py:100,qmetatiles.py:104 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
aboutdialog.py:47,qtilesdialog.py:52and 18 more - +1 Qt Designer .ui files (2 .ui files)
ui/aboutdialogbase.ui:1,ui/qtilesdialogbase.ui:1
Scanned v1.5 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
Asistente LADM-COL
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateAssistant to capture and manage data for Colombian multipurpose cadastre
Why flagged: Not listed for QGIS 4; last release 1,370 days ago; 66,297 downloads
Why Hard? Score 16
- +4 Size of the plugin's own Python code (38,110 lines in 252 files)
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
gui/dialogs/dlg_get_db_or_schema_name.py:19,gui/dialogs/dlg_get_db_or_schema_name.py:23and 2 more - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
__init__.py:69,app_interface.py:69and 873 more - +2 Processing usage (Implements a Processing provider)
lib/processing/ladm_col_provider.py:29 - +2 Qt Designer .ui files (69 .ui files)
lib/processing/algs/ui/DlgFieldsCalculator.ui:1,ui/change_detection/changes_all_parcels_panel_widget.ui:1and 67 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
gui/dialogs/dlg_welcome_screen.py:20,gui/field_data_capture/base_field_data_capture_controller.py:19and 4 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType); QVariant() as NULL (use qgis.core.NULL))
config/quality_rules_config.py:156,config/quality_rules_config.py:157and 146 more - +1 exec_() calls (removed in PyQt6)
app_interface.py:83,asistente_ladm_col_plugin.py:245and 53 more
Scanned v3.1.13 on 2026-11-03. How difficulty is estimated
Area Along Vector
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateCreate an area along a vector depending on a field value. Right and left sides can be distinguished.
Why flagged: Not listed for QGIS 4; last release 3,007 days ago; 65,301 downloads
Why Medium? Score 5
- +2 Processing usage (Implements a Processing provider)
area_along_vector_provider.py:41 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
area_along_vector_algorithm.py:36,area_along_vector_algorithm.py:37and 1 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
area_along_vector_algorithm.py:86,area_along_vector_algorithm.py:176and 3 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
area_along_vector_algorithm.py:96,area_along_vector_algorithm.py:108and 7 more
Scanned v2.0 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Mappia Publisher
Not QGIS 4 readyPort difficulty: Not assessed · Automatic estimateShare your maps online (raster and shape) as a profissional. Easily make your QGIS maps online 24/7 (for free, no private server required). (Beta Access…
Why flagged: Not listed for QGIS 4; last release 738 days ago; 63,705 downloads
Why not assessed?
v2.11.0 has not been scanned yet. Unscanned plugins are never shown as Easy.
Raster Tracer
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin allows user to automaticaly trace lineal features of the underlaying raster map, simply by clicking on knots of lines on map.
Why flagged: Not listed for QGIS 4; last release 1,280 days ago; 63,509 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
pointtool.py:131,pointtool.py:198and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
astar.py:97,autotrace.py:11and 15 more
Scanned v0.3.3 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
NTv2 Datum Transformations
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateNTv2 Datum Transformations for the QGIS Processing toolbox. This plugin is directly derived from https://github.com/qgispt/processing_pttransform originally…
Why flagged: Not listed for QGIS 4; last release 2,632 days ago; 62,428 downloads
Why Medium? Score 4
- +2 Size of the plugin's own Python code (3,365 lines in 28 files)
- +2 Processing usage (Implements a Processing provider)
DETransformProvider.py:65
Scanned v0.20 on 2026-11-03. How difficulty is estimated
Open LiDAR Toolbox
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateOpen Tools for LiDAR Data Preparation and Analysis in Archaeology
Why flagged: Not listed for QGIS 4; last release 811 days ago; 61,833 downloads
Why Medium? Score 5
- +2 Size of the plugin's own Python code (3,717 lines in 14 files)
- +2 Processing usage (Implements a Processing provider)
open_lidar_tools/open_lidar_tools_provider.py:48 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
open_lidar_tools/algorithms/base_data.py:63,open_lidar_tools/algorithms/base_data.py:86and 8 more
Scanned v2.3 on 2026-11-03. How difficulty is estimated
Geometric Attributes
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateA set of tools for calculating attributes along the centerline including width, deviation, transects, shape, sinuosity and adjacency.
Why flagged: Not listed for QGIS 4; last release 1,290 days ago; 61,264 downloads
Why Hard? Score 8
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Adjacency.py:75,Adjacency.py:99and 62 more - +2 Size of the plugin's own Python code (3,223 lines in 20 files)
- +2 Processing usage (Implements a Processing provider)
geometric_attributes_provider.py:55 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
configure.py:18 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
Adjacency.py:67,Adjacency.py:82and 62 more
Scanned v0.4 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
RasterStats
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateRaster Statistics toolbox for QGIS
Why flagged: Not listed for QGIS 4; last release 2,599 days ago; 61,151 downloads
Why Easy? Score 1
- +1 exec_() calls (removed in PyQt6)
rasterstats_dialogs.py:90,rasterstats_menu.py:74
Scanned v0.4.3 on 2026-11-03. How difficulty is estimated
- +1 exec_() calls (removed in PyQt6)
OrfeoToolbox Provider
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateOrfeoToolbox Processing provider.
Why flagged: Not listed for QGIS 4; last release 926 days ago; 61,116 downloads
Why Easy? Score 3
- +2 Processing usage (Implements a Processing provider)
OtbAlgorithmProvider.py:40 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
OtbAlgorithm.py:181,OtbAlgorithm.py:271and 12 more
Scanned v3.0.3 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
QGIS GML Application Schema Toolbox
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateConsumption and use of GML complex features like INSPIRE harmonised data (vector), GeoSciML within QGIS
Why flagged: Not listed for QGIS 4; last release 2,076 days ago; 61,041 downloads
Why Hard? Score 14
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
gui/load_wizard_xml.py:12,gui/load_wizard_xml.py:13and 2 more - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
core/load_gmlas_in_qgis.py:337,creation_dialog.py:62and 72 more - +2 Size of the plugin's own Python code (5,235 lines in 40 files)
- +2 Qt Designer .ui files (10 .ui files)
ui/bbox_widget.ui:1,ui/database_widget.ui:1and 8 more - +1 Bundled executable or library code (3 vendored Python files)
extlibs/and 2 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
gui/load_wizard.py:12,gui/load_wizard_wfs.py:12and 2 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
core/load_gml_as_xml.py:91,core/load_gml_as_xml.py:94and 41 more - +1 exec_() calls (removed in PyQt6)
gui/bbox_widget.py:50,gui/load_wizard_wfs.py:209and 8 more - +1 Processing usage (Uses Processing)
core/gmlas_postgis_db.py:5,gui/bbox_widget.py:9
Scanned v1.3.1 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
Space Syntax Toolkit
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateCollection of tools for space syntax analysis workflows in a GIS environment.
Why flagged: Not listed for QGIS 4; last release 1,159 days ago; 60,555 downloads
Why Hard? Score 12
- +4 Size of the plugin's own Python code (12,820 lines in 72 files)
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
EssToolkit.py:263,EssToolkit.py:267and 116 more - +2 Qt Designer .ui files (21 .ui files)
analysis/engines/DepthmapNet/ui_DepthmapAdvanced.ui:1,analysis/engines/DepthmapNet/ui_DepthmapNetSettingsWidget.ui:1and 19 more - +1 Bundled executable or library code (805 vendored Python files)
external/and 804 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
analysis/engines/DepthmapNet/DepthmapNetSocket.py:22 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
analysis/AnalysisTool.py:328,analysis/AnalysisTool.py:559and 187 more - +1 exec_() calls (removed in PyQt6)
catchment_analyser/catchment_analyser_dialog.py:87,network_segmenter/network_segmenter_dialog.py:214and 5 more
Scanned v0.3.10 on 2026-11-03. How difficulty is estimated
Spline
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateSplines digitizing tool (spline = a chain of lines). Comes with a Processing algorithm for converting lines into splines.
Why flagged: Not listed for QGIS 4; last release 2,139 days ago; 60,427 downloads
Why Medium? Score 4
- +2 Processing usage (Implements a Processing provider)
processing_provider/provider.py:6 - +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
processing_provider/processing_alg.py:32,processing_provider/processing_alg.py:33and 14 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
processing_provider/processing_alg.py:113,processing_provider/processing_alg.py:121and 12 more
Scanned v0.2 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Multiple Layer Selection
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateAllow the selection/deselection of features of multiple layers
Why flagged: Not listed for QGIS 4; last release 965 days ago; 58,614 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
MultLayerSelection.py:136,MultiLayerRectangleSelection.py:17and 5 more
Scanned v2.0.1 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
Customize ToolBars
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateCreate customs Toolbars for Qgis.
Why flagged: Not listed for QGIS 4; last release 2,795 days ago; 57,806 downloads
Why Medium? Score 6
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
CustomToolbar.py:50,CustomToolbar.py:56and 29 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
About.py:27,CustomToolbar.py:25and 6 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
gui/resources_rc.py:1 - +1 exec_() calls (removed in PyQt6)
CustomToolbar.py:76,CustomToolbar.py:81and 3 more - +1 Processing usage (Uses Processing)
utils/utils.py:11,utils/utils.py:12and 4 more
Scanned v1.1 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Least-Cost Path
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateFind the least cost path with given cost raster and points
Why flagged: Not listed for QGIS 4; last release 1,436 days ago; 57,782 downloads
Why Medium? Score 4
- +2 Processing usage (Implements a Processing provider)
least_cost_path_provider.py:37 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
least_cost_path_algorithm.py:33,least_cost_path_algorithm.py:34 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
least_cost_path_algorithm.py:101,least_cost_path_algorithm.py:109and 7 more
Scanned v1.1 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Animove
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateAniMove for QGIS
Why flagged: Not listed for QGIS 4; last release 1,596 days ago; 57,617 downloads
Why Medium? Score 4
- +2 Processing usage (Implements a Processing provider)
animove_provider.py:44 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
animove_kernel_density.py:107,animove_kernel_density.py:242and 17 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
animove_kernel_density.py:125,animove_mcp.py:85and 8 more
Scanned v3.0.1 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
QuickMultiAttributeEdit3
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateQuickMultiAttributeEdit3 plugin is a quick and handy way to edit an attribute field value for all selected elements in the current/active layer.
Why flagged: Not listed for QGIS 4; last release 2,445 days ago; 57,419 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
quickmultiattributeedit_dialogs.py:23,quickmultiattributeedit_library.py:23and 3 more - +1 Deprecated QGIS/Qt APIs (QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
quickmultiattributeedit_dialogs.py:62,quickmultiattributeedit_dialogs.py:64and 2 more
Scanned v3.0.3 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Cxf_in
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateCaricatore file CXF Catasto
Why flagged: Not listed for QGIS 4; last release 2,557 days ago; 57,331 downloads
Why Hard? Score 9
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
db_delete.py:56 - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
catdialog.py:63,catdialog.py:271and 58 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
catdialog.py:26,cxf_in.py:26and 11 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
catdialog.py:42,catdialog.py:43and 7 more - +1 exec_() calls (removed in PyQt6)
catdialog.py:273,catdialog.py:279and 5 more - +1 Size of the plugin's own Python code (2,488 lines in 13 files)
Scanned v9.2 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
Layout Loader
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateLoad and modify layout templates
Why flagged: Not listed for QGIS 4; last release 2,407 days ago; 55,775 downloads
Why Medium? Score 4
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
layout_loader.py:24,layout_loader.py:25and 6 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
profile/python/expressions/mgrsfunctions.py:58,resources.py:1 - +1 exec_() calls (removed in PyQt6)
layout_loader.py:130,layout_loader.py:165and 4 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
layout_loader.py:90,layout_loader.py:154and 8 more
Scanned v1.1 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Batch Heatmaps
Not QGIS 4 readyPort difficulty: Medium · Automatic estimatePlugin to automatically generate heatmaps
Why flagged: Not listed for QGIS 4; last release 2,372 days ago; 55,458 downloads
Why Medium? Score 5
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
batch_heatmaps.py:25,batch_heatmaps.py:26and 3 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
batch_heatmaps.py:240,batch_heatmaps.py:381and 2 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
batch_heatmaps.py:241,batch_heatmaps.py:248and 7 more - +1 Processing usage (Uses Processing)
batch_heatmaps.py:34 - +1 Qt Designer .ui files (2 .ui files)
batch_heatmaps_dialog_base.ui:1,progress_dialog_base.ui:1
Scanned v1.1 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
DataExplorer: Data Analysis and Visualization
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateCalculate and show statistical properties for a field
Why flagged: Not listed for QGIS 4; last release 1,532 days ago; 55,292 downloads
Why Easy? Score 3
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
dataexplorer_utils.py:50,dataexplorer_utils.py:59and 30 more - +1 exec_() calls (removed in PyQt6)
dataexplorer.py:103,dataexplorer.py:107 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
aboutdialog.py:26,dataexplorer_utils.py:90and 14 more
Scanned v3.1.1 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
Azimuth Measurement
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateJust measure Azimuth when you draw a line
Why flagged: Not listed for QGIS 4; last release 2,568 days ago; 54,704 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
azimuth_measurement.py:200,draw_mono_line_map_tool.py:23and 6 more
Scanned v0.2.2 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
Select Within
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateCentroid within, point of surface within, pole of inaccessibility within, percentage within, and mostly within selection. Works best with lines and polygons…
Why flagged: Not listed for QGIS 4; last release 3,160 days ago; 53,759 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
resource_rc.py:1,select_within.py:300 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
select_within.py:187,select_within.py:289and 5 more
Scanned v0.4 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
MultiEdit
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateMultiEdit chooses an attribute value from a vector layer and selecting the matching features, changes all the corresponding to a new value: useful if you have…
Why flagged: Not listed for QGIS 4; last release 1,914 days ago; 53,754 downloads
Why Hard? Score 5
Hard regardless of score: removed qt subsystem (qtwebkit, qtxmlpatterns, qtscript…).
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
about.ui:1 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
multiedit.py:98,multiedit.py:150and 5 more - +1 Qt Designer .ui files (2 .ui files)
about.ui:1,ui_multiedit.ui:1
Scanned v1.1 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
ExcelSync
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateLinks an Excel (.xlsx) file to a Shapefile (or any other layer). For every row on the layer a row in the Excel file is created. Derived information like area…
Why flagged: Not listed for QGIS 4; last release 2,689 days ago; 53,132 downloads
Why Easy? Score 3
- +1 Bundled executable or library code (2 packaged libraries)
libs/xlrd-1.2.0-py2.py3-none-any.whl:1,libs/xlwt-1.3.0-py2.py3-none-any.whl:1 - +1 Deprecated QGIS/Qt APIs (QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
gui/excel_sync_dialog.py:149 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
core/shp_excel_sync.py:106,core/shp_excel_sync.py:115and 10 more
Scanned v3.6 on 2026-11-03. How difficulty is estimated
- +1 Bundled executable or library code (2 packaged libraries)
QuickPrint
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThe QuickPrint Plugin for QGIS3
Why flagged: Not listed for QGIS 4; last release 1,959 days ago; 53,093 downloads
Why Medium? Score 5
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
quick_print3.py:23,quick_print3.py:25and 5 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
quick_print3.py:344,quick_print3.py:388 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
quick_print3.py:99,quick_print3.py:300and 5 more - +1 Qt Designer .ui files (2 .ui files)
quick_print3_dialog_base.ui:1,quick_print3_settings_dialog_base.ui:1
Scanned v3.6.1 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Split Features On Steroids
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateSplit features showing areas on each side allowing the edition of the cutting line vertices
Why flagged: Not listed for QGIS 4; last release 3,150 days ago; 53,080 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
plugin.py:149,plugin.py:258and 11 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
plugin.py:137,plugin.py:138and 15 more
Scanned v0.13 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
OpeNoise Map
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateopeNoise Map allows to compute the noise level generated by point source or by road source at fixed receiver points and buildings.
Why flagged: Not listed for QGIS 4; last release 864 days ago; 51,336 downloads
Why Hard? Score 12
- +4 Size of the plugin's own Python code (7,149 lines in 21 files)
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
opeNoise.py:143,opeNoise.py:145and 97 more - +2 Qt Designer .ui files (18 .ui files)
tools/BK_skin_30_03/ui_ApplyNoiseSymbology.ui:1,tools/BK_skin_30_03/ui_AssignNoiseExposure.ui:1and 16 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
tools/do_CreateGrid.py:28,tools/do_CreateGrid.py:29and 4 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
resources.py:1,tools/do_AssignNoiseExposure.py:213and 97 more - +1 exec_() calls (removed in PyQt6)
opeNoise.py:148,opeNoise.py:159and 8 more - +1 Processing usage (Uses Processing)
tools/on_CreateGrid.py:4,tools/on_CreateGrid.py:23and 2 more
Scanned v2.2 on 2026-11-03. How difficulty is estimated
Zoom To Postcode
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateZoom the map extent to a UK postcode
Why flagged: Not listed for QGIS 4; last release 2,984 days ago; 51,319 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
zoom_to_postcode.py:33,zoom_to_postcode.py:34and 4 more - +1 Deprecated QGIS/Qt APIs (QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
zoom_to_postcode.py:210 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
zoom_to_postcode.py:160,zoom_to_postcode.py:198and 8 more
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Oracle Georaster Plugin
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateAccess Oracle Georaster using GDAL
Why flagged: Not listed for QGIS 4; last release 1,611 days ago; 51,304 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
oscars_georaster_dialog.py:26,oscars_georaster_dialog.py:27and 6 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
oscars_georaster_dialog.py:102,oscars_georaster_dialog.py:160and 7 more
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Flow Trace
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateSelect line segments upstream of a selected line segment
Why flagged: Not listed for QGIS 4; last release 1,914 days ago; 49,822 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
flowtrace.py:24,flowtrace.py:25and 3 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v1.1.1 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
MySQL Importer
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateImport spatial and table data into MySQL/MariaDB
Why flagged: Not listed for QGIS 4; last release 3,174 days ago; 49,804 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
mysql_import.py:23,mysql_import.py:24and 3 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v0.7.3 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Plain Geometry Editor
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateEdit geometry of features using plain text (WKT, WKB)
Why flagged: Not listed for QGIS 4; last release 2,779 days ago; 49,106 downloads
Why Easy? Score 2
- +1 Bundled executable or library code (18 vendored Python files)
qgissettingmanager/and 17 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
geomeditors/wkteditor.py:91,gui/geomeditordialog.py:59and 4 more
Scanned v3.0.0 on 2026-11-03. How difficulty is estimated
- +1 Bundled executable or library code (18 vendored Python files)
OS Translator II
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateA plugin for loading Ordnance Survey Products.
Why flagged: Not listed for QGIS 4; last release 1,073 days ago; 48,586 downloads
Why Hard? Score 8
- +3 Removed Qt/PyQt/QGIS APIs (The PyQt Qt module)
styler.py:20 - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
os_translator_ii_dialog.py:121,os_translator_ii_dialog.py:135and 29 more - +1 exec_() calls (removed in PyQt6)
os-translator-ii-cli.py:227,os-translator-ii-standalone.py:27and 4 more - +1 Size of the plugin's own Python code (1,905 lines in 13 files)
- +1 Qt Designer .ui files (2 .ui files)
ui/os_translator_ii_dialog_base.ui:1,ui/result_dialog_base.ui:1
Scanned v3.2.6 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (The PyQt Qt module)
Spatial Analysis Toolbox
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis plugin adds some useful algorithms for Spatial Analysis.
Why flagged: Not listed for QGIS 4; last release 1,667 days ago; 48,410 downloads
Why Medium? Score 6
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
algorithms/CloneLayer.py:38,algorithms/CorrelationMatrix.py:32and 35 more - +2 Processing usage (Implements a Processing provider)
spatialanalysistoolbox_provider.py:43 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
algorithms/EntropyIndex.py:20,algorithms/LocationQuotient.py:25 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
algorithms/CloneLayer.py:25,algorithms/DummyVariables.py:33and 13 more
Scanned v0.3 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Magnetic Declination
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateCalculates the magnetic heading from a true geographic heading and vice versa.
Why flagged: Not listed for QGIS 4; last release 1,074 days ago; 47,644 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
Magnetic_declination.py:233,Magnetic_declination.py:539and 8 more
Scanned v2.4.4 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
Cartography Tools
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateA set of map tools and Processing algorithms for cartographic tools
Why flagged: Not listed for QGIS 4; last release 1,983 days ago; 47,556 downloads
Why Medium? Score 6
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
gui/gui_utils.py:109,gui/gui_utils.py:113and 47 more - +2 Processing usage (Implements a Processing provider)
processing/provider.py:33 - +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
processing/algorithm.py:68,processing/algorithm.py:105and 9 more - +1 Size of the plugin's own Python code (2,273 lines in 17 files)
Scanned v1.2.1 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Cartographic Line Generalization
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateGeneralize lines suitable for presentation on printed or screen maps.
Why flagged: Not listed for QGIS 4; last release 1,638 days ago; 46,117 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
cartolinegen.py:24,cartolinegen.py:25and 5 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
cartolinegen.py:209,resources.py:1 - +1 Processing usage (Uses Processing)
cartolinegen.py:297
Scanned v3.2.2 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
SVG2ColoR
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateGenerates color-ramp styles from SVG files. It also compatible with CPT-CITY styles. SVG2ColoR improves your color-ramp library, by the way your maps look…
Why flagged: Not listed for QGIS 4; last release 2,965 days ago; 45,946 downloads
Why Hard? Score 5
Hard regardless of score: removed qt subsystem (qtwebkit, qtxmlpatterns, qtscript…).
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
svg2color.py:27 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
svg2color.py:24,svg2color.py:25and 4 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
DB Style Manager
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateManage your styles stored in PostGIS
Why flagged: Not listed for QGIS 4; last release 2,950 days ago; 45,861 downloads
Why Medium? Score 4
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
plugin.py:129,plugin.py:139and 9 more - +1 Deprecated QGIS/Qt APIs (QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
plugin.py:157,plugin.py:159and 4 more
Scanned v0.8 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
GIS4WRF
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateToolkit for pre- and post-processing, visualizing, and running simulations in WRF
Why flagged: Not listed for QGIS 4; last release 1,733 days ago; 45,723 downloads
Why Hard? Score 12
- +4 Size of the plugin's own Python code (7,001 lines in 62 files)
- +3 Removed Qt/PyQt/QGIS APIs (The PyQt Qt module)
plugin/ui/dialog_nml_editor.py:12 - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
__init__.py:52,plugin/geo.py:35and 101 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
__init__.py:28,__init__.py:29and 49 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
plugin/resources/resources.py:1 - +1 exec_() calls (removed in PyQt6)
plugin/plugin.py:91,plugin/ui/widget_datasets.py:339and 3 more
Scanned v0.14.7 on 2026-11-03. How difficulty is estimated
Concave Hull
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateComputes a concave hull containing a set of features
Why flagged: Not listed for QGIS 4; last release 2,868 days ago; 45,502 downloads
Why Medium? Score 4
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
concave_hull.py:584,concave_hull.py:706and 65 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
concave_hull.py:24,concave_hull.py:25and 4 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
concave_hull.py:770,concave_hull.py:839and 5 more
Scanned v2.0 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Add a point road sign
Not QGIS 4 readyPort difficulty: Medium · Automatic estimatePlugin that adds a point road sign to a traffic management design.
Why flagged: Not listed for QGIS 4; last release 2,450 days ago; 45,297 downloads
Why Medium? Score 4
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Add_a_point_road_sign.py:32,Add_a_point_road_sign.py:33and 4 more - +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
Add_a_point_road_sign.py:540,Add_a_point_road_sign.py:546and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Add_a_point_road_sign.py:171,Add_a_point_road_sign.py:235and 12 more - +1 Qt Designer .ui files (2 .ui files)
ui/Add_a_point_road_sign.ui:1,ui/Type_preview_Dialog.ui:1
Scanned v1.0.1 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Layer Board
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateView and edit vector and raster properties for the project layers in a table
Why flagged: Not listed for QGIS 4; last release 2,586 days ago; 43,843 downloads
Why Medium? Score 5
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
layer_board.py:361,layer_board.py:429and 19 more - +1 Bundled executable or library code (8 vendored Python files)
qgis_plugin_tools/and 7 more - +1 Deprecated QGIS/Qt APIs (QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
layer_board.py:407,layer_board.py:409 - +1 exec_() calls (removed in PyQt6)
layer_board.py:893,layer_board.py:1104
Scanned v1.0.1 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
MBTiles images extract
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateWith this QGIS plugin you can take an MBTiles file and extract all the tiles as images to a local folder. This plugin can be very useful for debugging…
Why flagged: Not listed for QGIS 4; last release 2,938 days ago; 43,609 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
mbtiles2img.py:26,mbtiles2img.py:27and 2 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources_rc.py:1
Scanned v0.4 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
3D Arcs
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateTool to convert 2D lines to 3D Arcs
Why flagged: Not listed for QGIS 4; last release 810 days ago; 43,125 downloads
Why Easy? Score 3
- +2 Processing usage (Implements a Processing provider)
arc_3d_provider.py:38 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
arc_3d_algorithm.py:79,arc_3d_algorithm_layer_parameters.py:79and 1 more
Scanned v0.2 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
ProfileFromPoints
Not QGIS 4 readyPort difficulty: Easy · Automatic estimatePlots profile or cross section of survey points
Why flagged: Not listed for QGIS 4; last release 1,137 days ago; 43,025 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
profileFromPoints_dialog.py:122,profileFromPoints_dialog.py:123and 10 more - +1 Processing usage (Uses Processing)
profileFromPoints_dialog.py:39
Scanned v3.2 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
Processing Workflows
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateA plugin that adds workflow functionality to Processing.
Why flagged: Not listed for QGIS 4; last release 1,650 days ago; 42,946 downloads
Why Hard? Score 8
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
DeleteWorkflowAction.py:51,DeleteWorkflowAction.py:52and 69 more - +2 Processing usage (Implements a Processing provider)
WorkflowOnlyAlgorithmProvider.py:10,WorkflowProviderBase.py:43 - +1 Bundled executable or library code (33 vendored Python files)
markdown/and 32 more - +1 exec_() calls (removed in PyQt6)
CreateEditCollectionAction.py:20,Workflow.py:171and 2 more - +1 Size of the plugin's own Python code (1,893 lines in 19 files)
- +1 Qt Designer .ui files (2 .ui files)
ui/CollectionDialog.ui:1,ui/DlgWorkflowCreator.ui:1
Scanned v2.0.2 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
QWeb
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateThis plugin enables users to open a window within the QGIS environment where the user can browse through the web.
Why flagged: Not listed for QGIS 4; last release 2,473 days ago; 42,545 downloads
Why Hard? Score 6
Hard regardless of score: removed qt subsystem (qtwebkit, qtxmlpatterns, qtscript…).
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
Qweb.py:32,Qweb.py:33and 1 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Qweb.py:24,Qweb.py:25and 5 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Qweb.py:236,Qweb.py:396and 4 more
Scanned v0.2.1 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
Layer Metadata Search
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateSearch for PostGIS tables using metadata
Why flagged: Not listed for QGIS 4; last release 1,598 days ago; 41,955 downloads
Why Medium? Score 6
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
geo_cat.py:73,geo_cat.py:74and 19 more - +1 Deprecated QGIS/Qt APIs (QVariant() as NULL (use qgis.core.NULL))
dbutils.py:85,dbutils.py:87and 2 more - +1 exec_() calls (removed in PyQt6)
geo_cat.py:237,geo_cat.py:249and 1 more - +1 Size of the plugin's own Python code (1,532 lines in 8 files)
- +1 Qt Designer .ui files (2 .ui files)
ui/config_dialog_base.ui:1,ui/geo_cat_dialog_base.ui:1
Scanned v2.3.1 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Batch Vector Layer Saver
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateSaves multiple layers in different formats in a batch mode.
Why flagged: Not listed for QGIS 4; last release 2,911 days ago; 41,856 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
batch_vector_layer_saver.py:24,batch_vector_layer_saver.py:25and 4 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
batch_vector_layer_saver.py:265,batch_vector_layer_saver.py:267and 5 more
Scanned v0.9 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
CSMapMaker
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateMake CS topographic map represents valleys by blueish color and ridges by reddish color
Why flagged: Not listed for QGIS 4; last release 2,673 days ago; 41,811 downloads
Why Medium? Score 4
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
csmap.py:220,csmap.py:250and 2 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
csmap.py:274,csmap.py:281and 8 more - +1 Processing usage (Uses Processing)
csmap_make.py:10,csmap_make.py:43and 2 more
Scanned v0.5 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
ImportEpanetInpFiles
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateIMPORT/EXPORT EPANET INP Files
Why flagged: Not listed for QGIS 4; last release 1,479 days ago; 41,503 downloads
Why Medium? Score 5
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
main.py:23,main.py:39and 19 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
Epa2GIS.py:362,Epa2GIS.py:368and 54 more - +1 exec_() calls (removed in PyQt6)
main.py:137,main.py:179and 5 more - +1 Size of the plugin's own Python code (2,484 lines in 4 files)
Scanned v1.6.6 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Geospatial Simulation
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateGeospatial tool for managing point-based simulation models
Why flagged: Not listed for QGIS 4; last release 2,837 days ago; 41,389 downloads
Why Medium? Score 7
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
GeoprocessorDlg.py:121,GeoprocessorDlg.py:175and 21 more - +2 Qt Designer .ui files (6 .ui files)
Ui_ControlFileDlg.ui:1,Ui_GeoprocessorDlg.ui:1and 4 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
ControlFileDlg.py:41,ControlFileDlg.py:42and 18 more - +1 exec_() calls (removed in PyQt6)
GeospatialSimulation.py:101,GeospatialSimulation.py:109and 3 more - +1 Size of the plugin's own Python code (1,796 lines in 11 files)
Scanned v1.3 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Active FIre
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateActive Fire Data within 24 hours (MODIS)
Why flagged: Not listed for QGIS 4; last release 1,727 days ago; 41,295 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
active_fire.py:39,active_fire.py:42and 1 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v0.3 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
QRealTime
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis plugin connects you to Aggregate Servers like ODK Central, KoboToolbox and ODK Aggregate. Now it is easier to convert layer into form, import filled data…
Why flagged: Not listed for QGIS 4; last release 1,107 days ago; 40,059 downloads
Why Medium? Score 5
- +1 Bundled executable or library code (1 packaged library, 91 vendored Python files)
pyxform/validators/odk_validate/bin/ODK_Validate.jar:1,pyxform/and 90 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
QRealTime.py:25,QRealTime.py:26and 7 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
QRealTime.py:207,QRealTime_dialog.py:68and 10 more - +1 exec_() calls (removed in PyQt6)
QRealTime.py:258,QRealTime.py:276 - +1 Qt Designer .ui files (3 .ui files)
QRealTime_dialog_base.ui:1,QRealTime_dialog_import.ui:1and 1 more
Scanned v4.4.3 on 2026-11-03. How difficulty is estimated
- +1 Bundled executable or library code (1 packaged library, 91 vendored Python files)
QWeather
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateWeather Information based on Yahoo API.
Why flagged: Not listed for QGIS 4; last release 2,369 days ago; 39,557 downloads
Why Easy? Score 3
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
QWeather.py:422,QWeather.py:607and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
QWeather.py:51,QWeather.py:96and 13 more
Scanned v3.2.1 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
HTP Geoprocessor
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateGeospatial tool for geoprocessing HTP sensor data
Why flagged: Not listed for QGIS 4; last release 2,837 days ago; 38,853 downloads
Why Medium? Score 4
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
GeoprocessorDlg.py:56,GeoprocessorDlg.py:57and 9 more - +1 exec_() calls (removed in PyQt6)
HTPGeoprocessor.py:82,HTPGeoprocessor.py:86and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
GeoprocessorDlg.py:120,GeoprocessorDlg.py:174and 14 more - +1 Qt Designer .ui files (3 .ui files)
Ui_GeoprocessorDlg.ui:1,Ui_MapCreatorDlg.ui:1and 1 more
Scanned v1.2 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
bulkvectorexport
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateexport vector layers to common format and crs
Why flagged: Not listed for QGIS 4; last release 2,440 days ago; 38,692 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
bulkvectorexport.py:25,bulkvectorexport.py:26and 2 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
bulkvectorexport.py:197,bulkvectorexport.py:205and 1 more
Scanned v1.1 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
agknow for QGIS
Not QGIS 4 readyPort difficulty: Medium · Automatic estimatePlugin for using the ag|knowledge REST API from <a href="https://geocledian.com">geo|cledian</a>
Why flagged: Not listed for QGIS 4; last release 1,492 days ago; 37,714 downloads
Why Medium? Score 5
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
agknow_qgis.py:316,agknow_qgis.py:317and 92 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
agknow_qgis_dockwidget.py:363,agknow_qgis_dockwidget.py:364and 10 more - +1 Size of the plugin's own Python code (2,261 lines in 6 files)
- +1 Qt Designer .ui files (2 .ui files)
agknow_qgis_dockwidget_base.ui:1,agknow_qgis_dockwidget_timeslider.ui:1
Scanned v0.7.5 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Standard Deviational Ellipse
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateCreate a standard deviational ellipse for a set of points
Why flagged: Not listed for QGIS 4; last release 2,482 days ago; 37,689 downloads
Why Medium? Score 5
- +3 Removed Qt/PyQt/QGIS APIs (activated[str]-style signal overloads)
SDEllipse_dialog.py:117 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
SDEllipse.py:133,SDEllipse.py:140and 8 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
SDEllipse_dialog.py:100,SDEllipse_dialog.py:102and 11 more
Scanned v3.0.5 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (activated[str]-style signal overloads)
Curve Number Generator
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateCurve Number Generator plugin has multiple algorithms to generate the curve number layer for any area of interest using different datasets.
Why flagged: Not listed for QGIS 4; last release 829 days ago; 37,665 downloads
Why Hard? Score 8
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
processing/tools/registration.py:12,processing/tools/registration.py:109and 1 more - +2 Processing usage (Implements a Processing provider)
processing/curve_number_generator_provider.py:45 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
processing/algorithms/conus_nlcd_ssurgo/conus_nlcd_ssurgo.py:91,processing/algorithms/conus_nlcd_ssurgo/conus_nlcd_ssurgo.py:99and 6 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
processing/algorithms/conus_nlcd_ssurgo/conus_nlcd_ssurgo.py:102,processing/algorithms/conus_nlcd_ssurgo/conus_nlcd_ssurgo.py:109and 8 more - +1 Size of the plugin's own Python code (2,303 lines in 15 files)
Scanned v2.2.2 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
PDOK Locatieserver Locator Filter
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis is a plugin which adds a PDOK Locatieserver (dutch geocoder) to QGIS
Why flagged: Not listed for QGIS 4; last release 3,066 days ago; 37,535 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
pdoklocatieserverfilter.py:135,resources.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
networkaccessmanager.py:234,networkaccessmanager.py:266and 8 more
Scanned v0.2.1 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
Isochrones
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateAutomates isochrone map creation in Qgis
Why flagged: Not listed for QGIS 4; last release 1,460 days ago; 37,246 downloads
Why Medium? Score 4
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
iso/base.py:791,resources.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
gui/qgis_isochrone_dialog.py:109,iso/base.py:140and 5 more - +1 Size of the plugin's own Python code (1,779 lines in 11 files)
- +1 Processing usage (Uses Processing)
iso/base.py:25,iso/base.py:28
Scanned v0.1.2 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
SLD4raster
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateGenerates SLD (Styled Layer Descriptor) for raster layers.
Why flagged: Not listed for QGIS 4; last release 3,059 days ago; 36,830 downloads
Why Medium? Score 4
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
dialogs.py:27,dialogs.py:28and 5 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
sld4raster.py:253,sld4raster.py:618 - +1 Qt Designer .ui files (2 .ui files)
geoserver_upload.ui:1,sld4raster_dialog_base.ui:1
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Spatial Design Network Analysis
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis plugin allows you to use your installation of sDNA from within the QGIS GIS software.
Why flagged: Not listed for QGIS 4; last release 2,107 days ago; 36,508 downloads
Why Medium? Score 4
- +2 Processing usage (Implements a Processing provider)
sdna_plugin_provider.py:41 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
sdna_plugin_algorithm.py:26,sdna_plugin_provider.py:25 - +1 Deprecated QGIS/Qt APIs (QgsProcessing.Type* source types (use Qgis.ProcessingSourceType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
sdna_plugin_algorithm.py:58,sdna_plugin_algorithm.py:87and 2 more
Scanned v4.1.0 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Video Uav Tracker
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateReplay a video in sync with a gps track displayed on the map (3d OPTIONS with 'panda3d' module installed)
Why flagged: Not listed for QGIS 4; last release 3,272 days ago; 36,298 downloads
Why Hard? Score 13
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
NewProject.py:42,NewProject.py:43and 6 more - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
CanvasMarkers.py:90,CanvasMarkers.py:127and 186 more - +2 Size of the plugin's own Python code (3,439 lines in 17 files)
- +2 Qt Designer .ui files (8 .ui files)
Setup3D.ui:1,VideoGis_dockwidget_base.ui:1and 6 more - +1 Bundled executable or library code (10 vendored Python files)
geographiclib/and 9 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
AddPoint.py:42,AddPoint.py:43and 29 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
NewProject.py:468,NewProject.py:470and 11 more - +1 exec_() calls (removed in PyQt6)
NewProject.py:116,NewProject.py:473and 3 more
Scanned v2.1 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
Zoom to Paste
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateZoom to a specified point on the map from the Clipboard comma delimited
Why flagged: Not listed for QGIS 4; last release 1,995 days ago; 35,686 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v3.0.3 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
QBan(o)
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateQBAN(O) permet de géolocaliser vos adresses issues d'un fichier excel ou CSV. Il se sert de la base BAN (Base Adresse Nationale).
Why flagged: Not listed for QGIS 4; last release 1,276 days ago; 35,101 downloads
Why Medium? Score 7
- +3 Removed Qt/PyQt/QGIS APIs (qApp (use QApplication.instance()))
QBano_dialog.py:148 - +2 Processing usage (Implements a Processing provider)
QBano_provider.py:28 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
QBano.py:23,QBano.py:24and 10 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
QBano_dialog.py:129,QBano_dialog.py:130and 18 more
Scanned v1.8 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (qApp (use QApplication.instance()))
Quick Attribution
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateDefine the attributes for a layer first and then digitize a number of geometries with all the same attributes.
Why flagged: Not listed for QGIS 4; last release 2,887 days ago; 34,912 downloads
Why Easy? Score 1
- +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
AttributesDock.py:52,AttributesDock.py:66and 4 more
Scanned v3.6 on 2026-11-03. How difficulty is estimated
- +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
CoGo Plugin
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateA plugin to capture coordinates, bearings and distances and to use these to construct and manage land parcels.
Why flagged: Not listed for QGIS 4; last release 1,947 days ago; 34,548 downloads
Why Hard? Score 10
Hard regardless of score: removed qt subsystem (qtwebkit, qtxmlpatterns, qtscript…).
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
ui_crsselector.ui:1 - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
cogo_dialogs.py:123,cogo_dialogs.py:124and 117 more - +2 Size of the plugin's own Python code (3,107 lines in 8 files)
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
cogo_dialogs.py:23,cogo_dialogs.py:24and 8 more - +1 exec_() calls (removed in PyQt6)
cogo_dialogs.py:316,cogo_dialogs.py:424and 17 more - +1 Qt Designer .ui files (3 .ui files)
ui_crsselector.ui:1,ui_pgnewconnection.ui:1and 1 more
Scanned v3.8 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
GisTools
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateGis simple tools
Why flagged: Not listed for QGIS 4; last release 2,262 days ago; 34,416 downloads
Why Medium? Score 5
- +1 Bundled executable or library code (7 vendored Python files)
gis_tools_libs/gpxpy/and 6 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
gis_tools_gui/gis_tools_gpx_convert_dialog.py:27,gis_tools_gui/gis_tools_gpx_convert_dialog.py:28and 1 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
gis_tools_apps/gpx_convert/processing_gpx.py:53,gis_tools_apps/gpx_convert/processing_gpx.py:55and 5 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
gis_tools_apps/gpx_convert/processing_gpx.py:102,gis_tools_apps/gpx_convert/processing_gpx.py:145and 15 more - +1 Qt Designer .ui files (2 .ui files)
gis_tools_gui/gis_tools_dockwidget_base.ui:1,gis_tools_gui/gis_tools_gpx_convert_dialog.ui:1
Scanned v0.3 on 2026-11-03. How difficulty is estimated
- +1 Bundled executable or library code (7 vendored Python files)
Sort and Number
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin sorts and numbers an attribute table.
Why flagged: Not listed for QGIS 4; last release 2,779 days ago; 34,366 downloads
Why Easy? Score 3
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
resources.py:1,sort_number.py:328and 1 more - +1 exec_() calls (removed in PyQt6)
sort_number.py:309,sort_number.py:389and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
sort_number.py:307,sort_number.py:308and 4 more
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
AnnotationManager
Not QGIS 4 readyPort difficulty: Easy · Automatic estimatePanel to manage annnotations
Why flagged: Not listed for QGIS 4; last release 2,726 days ago; 33,749 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
manager.py:95,manager.py:110and 2 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
manager.py:54,manager.py:92and 9 more
Scanned v0.5 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
BoundaryDelineation
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateThis plugin simplifies manual digitization from remote sensing imagery.
Why flagged: Not listed for QGIS 4; last release 2,492 days ago; 33,697 downloads
Why Hard? Score 11
Hard regardless of score: removed qt subsystem (qtwebkit, qtxmlpatterns, qtscript…).
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
BoundaryDelineationDock.py:149 - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
BoundaryDelineation.py:191,BoundaryDelineation.py:260and 21 more - +1 Bundled executable or library code (482 vendored Python files)
lib/networkx/and 481 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
BoundaryDelineation.py:51,BoundaryDelineation.py:52and 12 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
BoundaryDelineation.py:518,BoundaryDelineation.py:602and 9 more - +1 Size of the plugin's own Python code (2,498 lines in 9 files)
- +1 Processing usage (Uses Processing)
BoundaryDelineation.py:49,utils.py:42 - +1 Qt Designer .ui files (2 .ui files)
BoundaryDelineationDock.ui:1,BoundaryDelineationIts4landWindow.ui:1
Scanned v13.0 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
PS Time Series Viewer
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateComputation and visualization of time series of speed for Permanent Scatterers derived from satellite interferometry
Why flagged: Not listed for QGIS 4; last release 813 days ago; 33,338 downloads
Why Easy? Score 1
- +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
pstimeseries_plugin.py:87,ui/create_plot_dialog.py:261and 14 more
Scanned v1.1.1 on 2026-11-03. How difficulty is estimated
- +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Easy Processing Tool
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateEasy Processing Tool for Korean. Add multiple layer, Add length or area attributes, Create centroid layer, Convert or set coordinate system.
Why flagged: Not listed for QGIS 4; last release 2,411 days ago; 32,978 downloads
Why Hard? Score 10
- +2 Size of the plugin's own Python code (4,293 lines in 24 files)
- +2 Qt Designer .ui files (16 .ui files)
add_layer_multi_dialog_base.ui:1,address_finder_dialog_base.ui:1and 14 more - +1 Bundled executable or library code (179 vendored Python files)
lib/et_xmlfile/,lib/openpyxl/and 177 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
add_layer_multi_dialog.py:26,add_layer_multi_dialog.py:27and 67 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
add_layer_multi_dialog.py:181,add_layer_multi_dialog.py:184and 32 more - +1 exec_() calls (removed in PyQt6)
add_layer_multi_dialog.py:264,address_finder_dialog.py:470and 27 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
add_layer_multi_dialog.py:117,address_finder_dialog.py:194and 13 more - +1 Processing usage (Uses Processing)
print_simple_composition_dialog.py:39,print_simple_composition_dialog.py:310and 3 more
Scanned v0.4 on 2026-11-03. How difficulty is estimated
Gimp Selection Feature
Not QGIS 4 readyPort difficulty: Easy · Automatic estimatePlugin for adding selected area in GIMP how a feature in polygon layer.
Why flagged: Not listed for QGIS 4; last release 2,222 days ago; 32,723 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
gimpselectionfeature.py:358,gimpselectionfeature.py:474 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
__init__.py:66,gimpselectionfeature.py:69and 17 more
Scanned v1.6 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
CalcArea2
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateShow layer area and length when editing.
Why flagged: Not listed for QGIS 4; last release 1,771 days ago; 32,691 downloads
Why Easy? Score 3
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
calcareaevent.py:132,calcareaevent.py:133and 33 more - +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
calcareaevent.py:571
Scanned v0.1 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
PostTelemac
Not QGIS 4 readyPort difficulty: Not assessed · Automatic estimatePost Treatment for Telemac (and Anuga , HECRAS 2D as experimental)
Why flagged: Not listed for QGIS 4; last release 1,950 days ago; 32,149 downloads
Why not assessed?
The automatic scan of v1.2.1 could not finish: cannot parse meshlayerlibs/tri/triangulation.py:5 (SyntaxError). Unscanned plugins are never shown as Easy.
AmigoCloud
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateAmigoCloud
Why flagged: Not listed for QGIS 4; last release 2,073 days ago; 32,074 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
amigocloud_dialog.py:28,amigocloud_dialog.py:29and 9 more - +1 exec_() calls (removed in PyQt6)
amigocloud_dialog.py:71,amigocloud_q.py:193 - +1 Qt Designer .ui files (2 .ui files)
amigocloud_dialog_base.ui:1,settings_dialog.ui:1
Scanned v0.18 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Bivariate legend
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin helps creating bivariate legends
Why flagged: Not listed for QGIS 4; last release 2,089 days ago; 31,761 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
bivariate_legend.py:27,bivariate_legend.py:28and 3 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
bivariate_legend.py:154,bivariate_legend.py:165and 10 more
Scanned v1.0.2 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Catalog on the fly
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateAutomatically adds images that are in the catalog layer that intersect with the map area.
Why flagged: Not listed for QGIS 4; last release 2,068 days ago; 31,182 downloads
Why Easy? Score 3
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
__init__.py:66,catalogotf.py:87and 26 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
catalogotf.py:487,catalogotf.py:492and 4 more
Scanned v2.9.1 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Projestions
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateProjestions: projection suggestions
Why flagged: Not listed for QGIS 4; last release 2,509 days ago; 29,927 downloads
Why Medium? Score 4
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
projestions.py:23,projestions_dialog.py:26and 1 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
projestions_dialog.py:61,projestions_dialog.py:65and 2 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
projestions.py:54,projestions.py:55and 6 more - +1 Processing usage (Uses Processing)
projestions_geoms.py:1,projestions_geoms.py:26and 1 more
Scanned v1.0.1 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Layer Style Loader
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateLoad multiple layer styles based on layer names. Select a parent folder. Qml files in the subdirectories which match by layer name will get the style assigned.
Why flagged: Not listed for QGIS 4; last release 1,009 days ago; 29,737 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v0.4 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
Extractor
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateExtractor allows for the extraction of data from raster images based on point, line, and polygon vectors and the application of zonal statistics. Its…
Why flagged: Not listed for QGIS 4; last release 1,091 days ago; 29,661 downloads
Why Hard? Score 8
- +3 Removed Qt/PyQt/QGIS APIs (The PyQt Qt module)
src/PandasModel.py:1 - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Extractor_dialog.py:61,Extractor_dialog.py:98and 35 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Extractor_dialog.py:32,src/AddDelim.py:7and 4 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QVariant() as NULL (use qgis.core.NULL))
resources.py:1,src/PandasModel.py:13and 4 more - +1 exec_() calls (removed in PyQt6)
Extractor.py:195,Extractor_dialog.py:743and 9 more
Scanned v1.2 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (The PyQt Qt module)
ANA Data Acquisition
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateThe ANA Data Acquisition tool automatically downloads several pluviometric and fluviometric stations provided by the brazilian National Water Agency (ANA)
Why flagged: Not listed for QGIS 4; last release 1,861 days ago; 28,731 downloads
Why Hard? Score 4
Hard regardless of score: bundled executable or library code.
- +1 Bundled executable or library code (1 native binary)
data/Down_ANA.exe:1 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
ana_data_acquisition.py:24,ana_data_acquisition.py:25and 2 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
ana_data_acquisition.py:209,ana_data_acquisition.py:254and 2 more
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +1 Bundled executable or library code (1 native binary)
Coord List
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateCoordList
Why flagged: Not listed for QGIS 4; last release 1,008 days ago; 28,479 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
coord_list.py:24,coord_list.py:25and 4 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
coord_list.py:238,coord_list.py:239and 6 more
Scanned v0.32 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Stream Feature Extractor
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateA tool to extract features from a stream network.
Why flagged: Not listed for QGIS 4; last release 1,816 days ago; 28,377 downloads
Why Hard? Score 9
Hard regardless of score: removed qt subsystem (qtwebkit, qtxmlpatterns, qtscript…).
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
stream_help_dialog_base.ui:1 - +1 Bundled executable or library code (136 vendored Python files)
third_party/and 135 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
stream_help_dialog.py:17,stream_options_dialog.py:25 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
stream_utilities.py:188,stream_utilities.py:189and 15 more - +1 exec_() calls (removed in PyQt6)
stream_feature_extractor.py:345,stream_feature_extractor.py:352 - +1 Size of the plugin's own Python code (1,508 lines in 8 files)
- +1 Qt Designer .ui files (2 .ui files)
stream_help_dialog_base.ui:1,stream_options_dialog_base.ui:1
Scanned v2.0.0 on 2026-11-03. How difficulty is estimated
Repository not suppliedIssue trackerPorting guide
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
Offline-MapMatching
Not QGIS 4 readyPort difficulty: Medium · Automatic estimatea QGIS-plugin for matching a trajectory with a network using a Hidden Markov Model and Viterbi algorithm
Why flagged: Not listed for QGIS 4; last release 2,276 days ago; 28,261 downloads
Why Medium? Score 7
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
mm/hidden_states/hidden_model.py:43,mm/map_matcher.py:20and 44 more - +2 Processing usage (Implements a Processing provider)
mm_processing/offline_map_matching_provider.py:41 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
mm/hidden_states/hidden_model.py:9,mm/hidden_states/hidden_model.py:10and 13 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
mm/map_matcher.py:196,mm/map_matcher.py:235and 17 more - +1 Size of the plugin's own Python code (1,616 lines in 20 files)
Scanned v3.0.0 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
QRectangleCreator
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateQRectangleCreator allows you to create a polygon (rectangle) with the specified width, length on the rotation.
Why flagged: Not listed for QGIS 4; last release 2,731 days ago; 28,230 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
QRectangleCreator.py:26,QRectangleCreator.py:27and 3 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
QRectangleCreator.py:204,QRectangleCreator.py:222and 5 more
Scanned v0.3 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Menu Builder
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateCreate your own menus with your favorite layers
Why flagged: Not listed for QGIS 4; last release 3,038 days ago; 27,368 downloads
Why Medium? Score 5
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
menu_builder_dialog.py:80,menu_builder_dialog.py:83and 39 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
menu_builder.py:19,menu_builder.py:20and 4 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
menu_builder.py:123,menu_builder_dialog.py:383and 3 more
Scanned v0.9.2 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Land Survey Codes Import
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateThis plugin allows you to easily import data from a land survey (GPS or total station) to draw automatically in a database using a codification (aka Field…
Why flagged: Not listed for QGIS 4; last release 1,577 days ago; 27,222 downloads
Why Hard? Score 8
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
available_codes.py:39,available_codes.py:40and 54 more - +2 Size of the plugin's own Python code (3,727 lines in 27 files)
- +2 Processing usage (Implements a Processing provider)
land_survey_provider.py:44 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
available_codes.py:26,land_survey_provider.py:33and 5 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
gui/resources.py:1,gui/resources_rc.py:1and 6 more
Scanned vv0.3.0 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Distribution Map Generator
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateA QGIS plugin to batch create distribution maps from point data.
Why flagged: Not listed for QGIS 4; last release 2,977 days ago; 26,722 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources_rc.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
distromap.py:103,distromap.py:109and 4 more
Scanned v1.0.0 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
PostGIS Sampling Tool
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateManagement of triggers in PostGIS database to copy attributes based on spatial relation
Why flagged: Not listed for QGIS 4; last release 2,347 days ago; 26,209 downloads
Why Medium? Score 4
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
config_dialog.py:141,config_dialog.py:142and 21 more - +1 exec_() calls (removed in PyQt6)
__init__.py:39,config_dialog.py:144and 4 more - +1 Qt Designer .ui files (3 .ui files)
config_dialog.ui:1,trigger_dialog.ui:1and 1 more
Scanned v1.5.1 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Area Weighted Average
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateArea Weighted Average.
Why flagged: Not listed for QGIS 4; last release 1,121 days ago; 26,208 downloads
Why Medium? Score 7
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
processing/registration.py:14,processing/registration.py:103and 1 more - +2 Processing usage (Implements a Processing provider)
processing/area_weighted_average_provider.py:41 - +1 Deprecated QGIS/Qt APIs (QgsProcessing.Type* source types (use Qgis.ProcessingSourceType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
processing/area_weighted_average_algorithm.py:93,processing/area_weighted_average_algorithm.py:101and 3 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
processing/area_weighted_average_algorithm.py:110,processing/area_weighted_average_algorithm.py:115and 7 more
Scanned v0.2.1 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
Azimuth Measurement Map Tool
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateMeasure azimuth and distance between two points
Why flagged: Not listed for QGIS 4; last release 1,759 days ago; 25,648 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
lib/draw_mono_line_map_tool.py:24,lib/draw_mono_line_map_tool.py:25and 5 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
azimuth_distance_measurement.py:359,azimuth_distance_measurement.py:362and 11 more
Scanned v0.4 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
Heightmap Export
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateEasily create 16-bit PNG heightmaps from DEM data.
Why flagged: Not listed for QGIS 4; last release 2,806 days ago; 25,619 downloads
Why Medium? Score 7
- +2 Size of the plugin's own Python code (4,110 lines in 14 files)
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
PathTracer/PathTracer.py:76 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsCoordinateTransform(source, destination) without a transform context)
heightmapexport_dialog.py:343,resources_rc_2.py:1and 1 more - +1 exec_() calls (removed in PyQt6)
PathTracer/PathTracer.py:96,heightmapexport.py:70and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
PathTracer/gui/path_tracer_gui.py:256,PathTracer/gui/path_tracer_gui.py:315and 5 more - +1 Qt Designer .ui files (2 .ui files)
PathTracer/gui/PathTracerGUI_UI.ui:1,heightmapexport_dialog_base.ui:1
Scanned v0.5.0 on 2026-11-03. How difficulty is estimated
CKAN-Browser
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateDownload and display Open Data from CKAN Metadata Servers
Why flagged: Not listed for QGIS 4; last release 2,649 days ago; 24,718 downloads
Why Hard? Score 11
- +3 Removed Qt/PyQt/QGIS APIs (qApp (use QApplication.instance()))
ckan_browser_dialog.py:338,ckan_browser_dialog.py:358 - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
ckan_browser.py:45,ckan_browser.py:51and 65 more - +2 Qt Designer .ui files (4 .ui files)
ckan_browser_dialog_base.ui:1,ckan_browser_dialog_dataproviders.ui:1and 2 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
ckan_browser.py:23,ckan_browser.py:24and 24 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources_rc.py:1 - +1 exec_() calls (removed in PyQt6)
ckan_browser.py:241,ckan_browser.py:255and 3 more - +1 Size of the plugin's own Python code (2,441 lines in 13 files)
Scanned v0.4.0 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (qApp (use QApplication.instance()))
Save_DXF
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin exports a laye to DXF file
Why flagged: Not listed for QGIS 4; last release 1,380 days ago; 24,630 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
Save_DXF.py:207,resources.py:1
Scanned v0.1 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
qLidar
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateQGIS plugin to use point clouds from LIDAR or Photogrammetry
Why flagged: Not listed for QGIS 4; last release 1,731 days ago; 24,594 downloads
Why Hard? Score 10
Hard regardless of score: bundled executable or library code.
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
multipleFileSelectorDialog/multiple_file_selector_dialog.py:129,multipleFileSelectorDialog/multiple_file_selector_dialog.py:130and 176 more - +2 Size of the plugin's own Python code (4,011 lines in 16 files)
- +2 Qt Designer .ui files (5 .ui files)
multipleFileSelectorDialog/multiple_file_selector_dialog.ui:1,processListEditionDialog/process_list_edition_dialog.ui:1and 3 more - +1 Bundled executable or library code (42 native binaries)
libCpp/CGAL-vc140-mt-4.13.dll:1,libCpp/basic.dll:1and 40 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
multipleFileSelectorDialog/multiple_file_selector_dialog.py:11,multipleFileSelectorDialog/multiple_file_selector_dialog.py:12and 30 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
qLidar_dockwidget.py:187,qLidar_dockwidget.py:284and 28 more - +1 exec_() calls (removed in PyQt6)
processListEditionDialog/process_list_edition_dialog.py:76,processListEditionDialog/process_list_edition_dialog.py:98and 118 more
Scanned v0.7 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
French Address
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateResearch and location based on the <a href="https://geo.api.gouv.fr/adresse">API BAN</a> provided by the French government .
Why flagged: Not listed for QGIS 4; last release 1,765 days ago; 24,487 downloads
Why Medium? Score 7
- +3 Removed Qt/PyQt/QGIS APIs (The PyQt Qt module)
modules/api_address.py:10 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
modules/api_address.py:10 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
modules/coordinates.py:37,modules/coordinates.py:51and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
french_address.py:243,french_address.py:248and 16 more - +1 Qt Designer .ui files (2 .ui files)
french_address_dockwidget_base.ui:1,french_address_result_setting.ui:1
Scanned v1.3.0 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (The PyQt Qt module)
NetworkGT
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateNetworkGT (Network Geometry and Topology) Toolbox is a set of tools designed for the geometric and topological analysis of fracture networks.
Why flagged: Not listed for QGIS 4; last release 2,186 days ago; 23,920 downloads
Why Hard? Score 10
- +4 Size of the plugin's own Python code (35,848 lines in 154 files)
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
networkgt/configureNetworkGT.py:56,networkgt/configureNetworkGT.py:58and 139 more - +2 Processing usage (Implements a Processing provider)
network_gt_provider.py:80 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
networkgt/configureNetworkGT.py:18,networkgt/sampling/Grid_Plots.py:18and 1 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
networkgt/digitising/Extend_Trim.py:69,networkgt/digitising/Extend_Trim.py:74and 154 more
Scanned v1.0 on 2026-11-03. How difficulty is estimated
GeODinQGIS
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateThis plugin connects GeODin with QGIS
Why flagged: Not listed for QGIS 4; last release 839 days ago; 23,682 downloads
Why Hard? Score 8
- +4 Size of the plugin's own Python code (10,886 lines in 48 files)
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
GeODinQGIS.py:201,GeODinQGIS.py:210and 61 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1,resources_rc.py:1and 2 more - +1 exec_() calls (removed in PyQt6)
GeODinQGIS.py:276,ui/gqgis_bas.py:202and 12 more
Scanned v3.0.2417.1 on 2026-11-03. How difficulty is estimated
SuperLabeling
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateAdd your label by mouse click only.
Why flagged: Not listed for QGIS 4; last release 2,765 days ago; 23,234 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
SuperLabelingDialog.py:59,SuperLabelingDialog.py:74and 8 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
SuperLabelingDialog.py:25,SuperLabelingDialog.py:85and 7 more
Scanned vver.1.4 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
Kuwahara Filter
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateApplies Kuwahara Filter
Why flagged: Not listed for QGIS 4; last release 1,590 days ago; 22,956 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v2.5.5 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
Tree Density Calculator
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThe Tree Density Calculator is designed to calculate tree densities based on local maxima.
Why flagged: Not listed for QGIS 4; last release 2,174 days ago; 22,362 downloads
Why Medium? Score 4
- +2 Processing usage (Implements a Processing provider)
interfaces/localmaxfilter_provider.py:24 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
images/lmf_resources_rc.py:1 - +1 exec_() calls (removed in PyQt6)
interfaces/local_max_filter_gui.py:185,localmaxfilter_plugin.py:75
Scanned v1.5.7 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
QGeoloGIS
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateVisualization of well logs in QGIS
Why flagged: Not listed for QGIS 4; last release 1,963 days ago; 21,735 downloads
Why Hard? Score 13
- +4 Size of the plugin's own Python code (8,430 lines in 25 files)
- +3 Removed Qt/PyQt/QGIS APIs (The PyQt Qt module; activated[str]-style signal overloads)
data_selector.py:101,edit_plot.py:23 - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
data_selector.py:70,data_selector.py:75and 44 more - +2 Qt Designer .ui files (4 .ui files)
config_create_dialog.ui:1,configure_plot_dialog.ui:1and 2 more - +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
config_create_dialog.py:54,qgis_plugin.py:137 - +1 exec_() calls (removed in PyQt6)
config.py:315,config.py:353and 17 more
Scanned v1.9.0 on 2026-11-03. How difficulty is estimated
Aino
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateFind geospatial data and run AI-powered spatial analysis directly in QGIS
Why flagged: Not listed for QGIS 4; last release 917 days ago; 21,612 downloads
Why Medium? Score 6
- +2 Qt Designer .ui files (4 .ui files)
src/login/ui_files/login.ui:1,src/login/ui_files/signup.ui:1and 2 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
src/main_tab/__init__.py:6 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
resources.py:1,src/main_tab/helpers.py:102and 2 more - +1 exec_() calls (removed in PyQt6)
osm_parser.py:186,src/login/signup_tab.py:35and 2 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
src/main_tab/__init__.py:78,src/main_tab/__init__.py:119and 4 more
Scanned v0.1.2 on 2026-11-03. How difficulty is estimated
- +2 Qt Designer .ui files (4 .ui files)
ScriptRunner 3
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateRun scripts to automate QGIS tasks
Why flagged: Not listed for QGIS 4; last release 3,178 days ago; 21,546 downloads
Why Hard? Score 8
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
syntax.py:24,syntax.py:95and 2 more - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
preferences_dialog.py:97,preferences_dialog.py:98and 24 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
argsdialog.py:3,preferences.py:18and 14 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
argsdialog.py:71,scriptrunner.py:680and 3 more
Scanned v3.0.5 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
Contrast homogenizer
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateApplies the contrast enhancement parameters of the selected layer to all visible layers
Why flagged: Not listed for QGIS 4; last release 2,626 days ago; 21,477 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v3.2 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
Vertical Photo Placer
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThe Vertical Photo Placer (VPP) is a free open source plugin for QGIS that performs quick placement of vertical drone photos on map
Why flagged: Not listed for QGIS 4; last release 1,174 days ago; 21,301 downloads
Why Medium? Score 5
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
ui/file_edit.py:64,ui/file_edit.py:71and 30 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
ui/file_edit.py:65,ui/file_edit.py:72and 2 more - +1 Size of the plugin's own Python code (1,990 lines in 13 files)
Scanned v0.3 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Vector field layer manager
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateDraw a point layer with arrow symbols
Why flagged: Not listed for QGIS 4; last release 935 days ago; 21,276 downloads
Why Hard? Score 8
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
VectorFieldLayerWidget.py:3,VectorFieldLayerWidget.py:4and 4 more - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
VectorFieldLayerDialog.py:16,VectorFieldLayerDialog.py:24and 76 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
VectorFieldLayerDialog.py:1,VectorFieldLayerManager.py:11and 6 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
VectorFieldLayerManager.py:46,VectorFieldLayerManager.py:48and 2 more - +1 Size of the plugin's own Python code (1,538 lines in 8 files)
Scanned v1.1.1 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
Geo Simplification (processing)
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis plugin contains different tools for line/polygon simplification and generalization
Why flagged: Not listed for QGIS 4; last release 2,012 days ago; 21,129 downloads
Why Medium? Score 6
- +2 Size of the plugin's own Python code (3,051 lines in 7 files)
- +2 Processing usage (Implements a Processing provider)
geo_sim_processing_provider.py:40 - +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
chordal_axis_algorithm.py:127,chordal_axis_algorithm.py:170and 43 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
chordal_axis_algorithm.py:157,chordal_axis_algorithm.py:189and 5 more
Scanned v1.2.0 on 2026-11-03. How difficulty is estimated
QWaterModel
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateQWaterModel is a simple tool to calculate evapotranspiration from thermal images.
Why flagged: Not listed for QGIS 4; last release 1,366 days ago; 21,042 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v1.5 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
Quick Layer
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateSwitch between the images of your choice using your favour keys how shortcuts.
Why flagged: Not listed for QGIS 4; last release 1,816 days ago; 20,882 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v0.3 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
Move Features
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin moves the features from one location to another based on several methods.
Why flagged: Not listed for QGIS 4; last release 1,999 days ago; 20,865 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v2.0 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
LINZ Data Importer
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateImport LDS OGC Datasets into QGIS
Why flagged: Not listed for QGIS 4; last release 1,565 days ago; 20,818 downloads
Why Medium? Score 4
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
linz_data_importer.py:91,linz_data_importer.py:92and 20 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
gui/service_dialog.py:21,linz_data_importer.py:28 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v2.3.1 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
ClusterMap
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateReceives polygon shapefile as input and applies clustering methods for the generation of choropleth maps
Why flagged: Not listed for QGIS 4; last release 963 days ago; 20,627 downloads
Why Medium? Score 5
- +2 Processing usage (Implements a Processing provider)
clustering_provider/clustering_provider.py:42 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
ClusterMap.py:24,ClusterMap.py:25and 6 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
clustering_provider/hierarchicalclusteringalgorithm.py:161,clustering_provider/kmeansclusteringalgorithm.py:158and 1 more - +1 Qt Designer .ui files (2 .ui files)
gui/CustomWidgets/hierarchicalWidget/hierarchicalWidget.ui:1,gui/CustomWidgets/kmeansWidget/kmeansWidget.ui:1
Scanned v1.2 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Calidad-CAR
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateCalidad-CAR is a tool for mathematical modelling of water quality in rivers.
Why flagged: Not listed for QGIS 4; last release 2,788 days ago; 20,548 downloads
Why Medium? Score 6
- +2 Qt Designer .ui files (9 .ui files)
ui/calidad_car_dialog_base.ui:1,ui/dialogo_cargar_archivo_base.ui:1and 7 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
resources.py:1,src/geometry.py:120 - +1 exec_() calls (removed in PyQt6)
calidad_car.py:263,calidad_car.py:329and 10 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
dialogo_arhivo_entrada.py:106,dialogo_csv.py:48and 8 more - +1 Size of the plugin's own Python code (2,813 lines in 22 files)
Scanned v1.1.1.p3 on 2026-11-03. How difficulty is estimated
- +2 Qt Designer .ui files (9 .ui files)
ProcessX
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateThis Plug-In adds a new processing provider to QGIS. It contains a great variety of different processing algorithms.
Why flagged: Not listed for QGIS 4; last release 988 days ago; 20,539 downloads
Why Hard? Score 10
- +4 Size of the plugin's own Python code (7,493 lines in 29 files)
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
algorithms/opentripplanner/OtpRoutes.py:126,algorithms/opentripplanner/OtpRoutes.py:518and 150 more - +2 Processing usage (Implements a Processing provider)
processx_provider.py:69 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
algorithms/opentripplanner/OtpRoutes.py:22,algorithms/opentripplanner/OtpTraveltime.py:22and 24 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
algorithms/opentripplanner/OtpRoutes.py:159,algorithms/opentripplanner/OtpRoutes.py:160and 189 more
Scanned v1.7.1 on 2026-11-03. How difficulty is estimated
Geomapfish Locator
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateA locator filter for Geomapfish services
Why flagged: Not listed for QGIS 4; last release 822 days ago; 20,498 downloads
Why Medium? Score 5
- +1 Bundled executable or library code (23 vendored Python files)
qgissettingmanager/and 22 more - +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
core/locator_filter.py:136,core/locator_filter.py:241 - +1 exec_() calls (removed in PyQt6)
core/geomapfish_locator_plugin.py:98,core/geomapfish_locator_plugin.py:165and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
core/geomapfish_locator_plugin.py:125,core/geomapfish_locator_plugin.py:126and 10 more - +1 Qt Designer .ui files (2 .ui files)
ui/filter_configuration.ui:1,ui/geomapfish_settings.ui:1
Scanned v1.3.8 on 2026-11-03. How difficulty is estimated
- +1 Bundled executable or library code (23 vendored Python files)
Aderyn Data Search
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateThis plugin searches the LERC Wales Aderyn wildlife database.
Why flagged: Not listed for QGIS 4; last release 2,619 days ago; 20,493 downloads
Why Hard? Score 11
- +4 Size of the plugin's own Python code (22,818 lines in 9 files)
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
aderyn.py:459,aderyn.py:464and 30 more - +1 Bundled executable or library code (34 vendored Python files)
XlsxWriter/and 33 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
aderyn.py:24,aderyn.py:25and 8 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
aderyn.py:356,aderyn.py:406and 42 more - +1 exec_() calls (removed in PyQt6)
aderyn.py:957,aderyn.py:1261and 2 more - +1 Qt Designer .ui files (2 .ui files)
aderyn_dialog_base.ui:1,settings_dialog.ui:1
Scanned v1.0 on 2026-11-03. How difficulty is estimated
Multiple Layers Tools
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateMultiple Layers Tools, like Edit, Commit, Undo, Filter, Clear filter and Load styles from DB. (fr) Outils multicouches : éditer, enregistrer, annuler…
Why flagged: Not listed for QGIS 4; last release 1,912 days ago; 20,321 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
multiple_layers_tools.py:25,multiple_layers_tools.py:30and 1 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v1.2 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Buffer Without Overlaps
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin creates a buffer around features of given type, without overlaps.
Why flagged: Not listed for QGIS 4; last release 942 days ago; 20,284 downloads
Why Easy? Score 3
- +2 Processing usage (Implements a Processing provider)
buffer_without_overlaps_provider.py:37 - +1 Deprecated QGIS/Qt APIs (QgsProcessing.Type* source types (use Qgis.ProcessingSourceType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
buffer_without_overlaps_algorithm.py:69,buffer_without_overlaps_algorithm.py:74and 3 more
Scanned v0.5 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Stereonet
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateDisplays a geologic stereonet of selected data
Why flagged: Not listed for QGIS 4; last release 3,094 days ago; 19,933 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
__init__.py:25,__init__.py:26and 1 more - +1 Deprecated QGIS/Qt APIs (QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
__init__.py:58 - +1 Size of the plugin's own Python code (2,360 lines in 9 files)
Scanned v0.3 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Table to Style
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateReads an attribute table (usually in dbf or text format) with pixel value information and attributes and creates a new style for raster display.
Why flagged: Not listed for QGIS 4; last release 2,360 days ago; 19,821 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v2.1 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
Qgeo
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis plugin loads and displays geoscientific spatial data for Queensland, Australia. Layers can be loaded using property (lot-plan) or extent searches. The…
Why flagged: Not listed for QGIS 4; last release 1,097 days ago; 19,736 downloads
Why Medium? Score 5
- +2 Processing usage (Implements a Processing provider)
qgeo_provider.py:49 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
cadastral.py:42,nr_collector.py:43and 9 more - +1 Deprecated QGIS/Qt APIs (QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
cadastral.py:119,nr_collector.py:235 - +1 Size of the plugin's own Python code (1,637 lines in 11 files)
Scanned v2.1 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Color to Attribute
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateCreate a new colum in a layer holding each feature color.
Why flagged: Not listed for QGIS 4; last release 2,498 days ago; 19,645 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
color_attribute_dialog.py:27,color_attribute_dialog.py:28 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
color_attribute.py:240,color_attribute.py:304and 2 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
color_attribute.py:210,color_attribute.py:216and 18 more
Scanned v0.2.1 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
ICSM NTv2 Transformer
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin uses official ICSM grids to transform between Australian coordinate systems.
Why flagged: Not listed for QGIS 4; last release 3,146 days ago; 19,470 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
icsm_qgis_transformer.py:447,icsm_qgis_transformer.py:467and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
icsm_qgis_transformer.py:89,icsm_qgis_transformer.py:91and 13 more
Scanned v1.1.1 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
TlugProcessing
Not QGIS 4 readyPort difficulty: Not assessed · Automatic estimateTLUBN Algorithms (is continued as ThToolBox)
Why flagged: Not listed for QGIS 4; last release 2,825 days ago; 19,246 downloads
Why not assessed?
The automatic scan of v2.7.99 could not finish: cannot parse _ExtractMinMaxZ.py:108 (SyntaxError). Unscanned plugins are never shown as Easy.
versioning
Not QGIS 4 readyPort difficulty: Medium · Automatic estimatepostgis database versioning
Why flagged: Not listed for QGIS 4; last release 2,603 days ago; 19,225 downloads
Why Medium? Score 7
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
plugin.py:122,plugin.py:143and 22 more - +2 Size of the plugin's own Python code (4,022 lines in 11 files)
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
plugin.py:30,plugin.py:31and 2 more - +1 exec_() calls (removed in PyQt6)
plugin.py:267,plugin.py:569and 5 more - +1 Qt Designer .ui files (2 .ui files)
commit_msg.ui:1,revision_dialog.ui:1
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Merge Selected Features (Processing)
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateMerge selected features in a polygon vector layer
Why flagged: Not listed for QGIS 4; last release 1,769 days ago; 19,223 downloads
Why Easy? Score 3
- +2 Processing usage (Implements a Processing provider)
merge_selected_features_provider.py:37 - +1 Deprecated QGIS/Qt APIs (QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
merge_selected_features_algorithm.py:45,merge_selected_features_algorithm.py:46
Scanned v0.1 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Wincan 2 QGEP
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateWincan 2 QGEP allows importing Wincan data into QGEP.
Why flagged: Not listed for QGIS 4; last release 2,341 days ago; 19,110 downloads
Why Medium? Score 7
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
core/utils.py:22,core/utils.py:29and 30 more - +2 Qt Designer .ui files (4 .ui files)
ui/databrowserdialog.ui:1,ui/inspectionwidget.ui:1and 2 more - +1 Bundled executable or library code (13 vendored Python files)
qgissettingmanager/and 12 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
gui/observationtable.py:29,gui/observationtable.py:30 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources_rc.py:1
Scanned v1.1.0 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Standard Distance
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateCalculate and representate the position standard deviation of a set of features.
Why flagged: Not listed for QGIS 4; last release 929 days ago; 19,059 downloads
Why Medium? Score 5
- +2 Processing usage (Implements a Processing provider)
StandardDistanceProvider.py:25 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
StandardDistanceAlg.py:3 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
StandardDistanceAlg.py:67,StandardDistanceAlg.py:68and 5 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
StandardDistanceAlg.py:72,StandardDistanceAlg.py:76and 4 more
Scanned v1.0.3 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Road Inspection Viewer
Not QGIS 4 readyPort difficulty: Easy · Automatic estimatePlugin displaying photos from road inspection.
Why flagged: Not listed for QGIS 4; last release 1,455 days ago; 18,976 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
extra_window.py:25,play_thread.py:21and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
extra_window.py:81,road_inspection_viewer.py:126and 4 more - +1 Qt Designer .ui files (2 .ui files)
ui/extra_window.ui:1,ui/road_inspection_viewer.ui:1
Scanned v1.2.5 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
JSON Eater
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateFlexible JSON importer for different structures - GeoJSON format is not required
Why flagged: Not listed for QGIS 4; last release 2,211 days ago; 18,811 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
json_eater_dialog.py:83,json_eater_dialog.py:127and 2 more
Scanned v0.3 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
Qveg
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis plugin loads Queensland vegetation management data from the Queensland government feature server. Layers can be loaded using property (lot-plan)…
Why flagged: Not listed for QGIS 4; last release 1,097 days ago; 18,771 downloads
Why Medium? Score 6
- +2 Processing usage (Implements a Processing provider)
qveg_provider.py:49 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
cadastral.py:41,nr_collector.py:44and 10 more - +1 Deprecated QGIS/Qt APIs (QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
cadastral.py:119,nr_collector.py:245and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
qbasemap_algorithm.py:223,qextent_algorithm.py:256and 4 more - +1 Size of the plugin's own Python code (2,327 lines in 12 files)
Scanned v5.5 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Covid19 Tracker
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin tracks COVID19 live
Why flagged: Not listed for QGIS 4; last release 2,152 days ago; 18,620 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
Covid19_Tracker.py:372,resources.py:1and 2 more - +1 Processing usage (Uses Processing)
Covid19_Tracker.py:223,Covid19_Tracker.py:308
Scanned v0.2 on 2026-11-03. How difficulty is estimated
RepositoryTracker not suppliedPorting guide
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
Select by relationship
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThe plugin allows to select records through tables based on relationships one-to-one or one-to-many specified inside a QGIS project.
Why flagged: Not listed for QGIS 4; last release 1,720 days ago; 18,566 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
select_by_relationship_plugin.py:264 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
select_by_relationship_plugin.py:59,select_by_relationship_plugin.py:60and 10 more
Scanned v0.3.3 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Raster Vision
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateWork with Raster Vision data in QGIS
Why flagged: Not listed for QGIS 4; last release 2,956 days ago; 18,551 downloads
Why Medium? Score 7
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
experiment_dialog.py:54,experiment_dialog.py:56and 20 more - +2 Qt Designer .ui files (5 .ui files)
config_dialog_base.ui:1,experiment_dialog_base.ui:1and 3 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
config_dialog.py:15,config_dialog.py:16and 16 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
config_dialog.py:50,experiment_dialog.py:148and 3 more
Scanned v0.8 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Gban
Not QGIS 4 readyPort difficulty: Easy · Automatic estimatePlugin that enables geocoding/reverse geocoding in France using the BAN API.
Why flagged: Not listed for QGIS 4; last release 2,725 days ago; 18,353 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
gban.py:66,gban.py:137and 3 more
Scanned v1.1 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
GMSH
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis is a plugin to interract with the GMSH mesh generator (see http://geuz.org/gmsh).
Why flagged: Not listed for QGIS 4; last release 2,089 days ago; 18,349 downloads
Why Medium? Score 5
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
exportGeometry.py:169,exportGeometry.py:193and 28 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
exportGeometry.py:4,exportGeometry.py:5and 8 more - +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
exportGeometry.py:218,exportGeometry.py:227and 6 more - +1 exec_() calls (removed in PyQt6)
exportGeometry.py:326,exportGeometry.py:374and 8 more
Scanned v0.2.2 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Automatic Backup
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateCreate automatic backup for your project
Why flagged: Not listed for QGIS 4; last release 2,503 days ago; 18,297 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources_rc.py:1
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
arrayPlus
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateFunctions to manipulate arrays and maps in field calculator
Why flagged: Not listed for QGIS 4; last release 2,089 days ago; 18,277 downloads
Why Easy? Score 1
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
array_plus.py:24,array_plus.py:25and 3 more
Scanned v1.7 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
OpenTripPlanner Plugin
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis plugin makes OpenTripPlanner 1.5 functionalities accessible from within QGIS
Why flagged: Not listed for QGIS 4; last release 1,785 days ago; 18,260 downloads
Why Medium? Score 5
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
otp_plugin.py:201,otp_plugin.py:202and 103 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
otp_plugin.py:28,otp_plugin.py:29and 6 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
otp_plugin_worker_isochrones.py:98,otp_plugin_worker_isochrones.py:99and 51 more - +1 Size of the plugin's own Python code (2,100 lines in 6 files)
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Catchment
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateCalculate point catchment areas (isochrones) using Graphhopper on OpenStreetMap roads, e.g. for educational planning.
Why flagged: Not listed for QGIS 4; last release 1,472 days ago; 17,733 downloads
Why Medium? Score 7
- +3 Removed Qt/PyQt/QGIS APIs (QDesktopWidget (use QScreen))
ui/maindialog.py:4,ui/maindialog.py:117and 1 more - +1 Bundled executable or library code (41 vendored Python files)
qgis_plugin_tools/and 40 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
core/isochrone_creator.py:142,core/isochrone_creator.py:169and 6 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
core/isochrone_creator.py:323,ui/catchment_area_panel.py:27and 4 more - +1 Processing usage (Uses Processing)
core/isochrone_creator.py:9,core/isochrone_creator.py:10and 2 more
Scanned v0.4.3 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QDesktopWidget (use QScreen))
Layer tiles mapcanvas
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateCreate a layer with grid of tiles from extent and zoom of map canvas
Why flagged: Not listed for QGIS 4; last release 1,825 days ago; 17,640 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type))
layertilesmapcanvas.py:423 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
layertilesmapcanvas.py:210,layertilesmapcanvas.py:520and 17 more
Scanned v1.4 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type))
TerraBrasilis Data Source
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThe QGIS plugin provides access to the WMS services of the Spatial Data Infrastructure TerraBrasilis.
Why flagged: Not listed for QGIS 4; last release 912 days ago; 17,592 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
terrabrasilis_datasource.py:24,terrabrasilis_datasource.py:25and 3 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v1.0.0 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
GeoJson Renderer
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugins renders geojson files. The file to render is specified as a GET parameter and downloaded or located locally on the server. The qml style to use…
Why flagged: Not listed for QGIS 4; last release 2,381 days ago; 17,575 downloads
Why Easy? Score 1
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
render_geojson.py:34,render_geojson.py:35and 1 more
Scanned vv0.4 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
AttributesJoinByLine
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateAttributesJoinByLine allows you to copy attributes from the source layer to the target layer by using a line.
Why flagged: Not listed for QGIS 4; last release 2,497 days ago; 17,563 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
AttributesJoinByLine.py:29,dialogs/attributes_join_by_line.py:15and 6 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1,tools/attributesJoinByLine.py:289
Scanned v0.4 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
MongoConnector
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateQGIS plugin to add geospatial data from mongodb database.
Why flagged: Not listed for QGIS 4; last release 2,053 days ago; 17,302 downloads
Why Medium? Score 6
- +3 Removed Qt/PyQt/QGIS APIs (activated[str]-style signal overloads)
connect_action.py:55,connect_action.py:56and 1 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
connect_action.py:24,connect_action.py:25and 4 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type))
qgsmongolayer.py:172,qgsmongolayer.py:175and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
connect_action.py:115,connect_action.py:135and 4 more
Scanned v1.3.1 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (activated[str]-style signal overloads)
IBAMA processing
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateAlgorithms for processing framework
Why flagged: Not listed for QGIS 4; last release 2,281 days ago; 17,244 downloads
Why Medium? Score 4
- +2 Processing usage (Implements a Processing provider)
__init__.py:53 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
algorithms/footprint_algorithm.py:141,algorithms/footprint_algorithm.py:182and 6 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
algorithms/footprint_algorithm.py:267,algorithms/footprint_algorithm.py:268and 4 more
Scanned v1.6 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Field find/replace
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateSimple screen to quickly perform find/replace on text in columns.
Why flagged: Not listed for QGIS 4; last release 2,201 days ago; 17,241 downloads
Closest Points
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateget the closest points for one layer to another
Why flagged: Not listed for QGIS 4; last release 2,312 days ago; 17,099 downloads
Why Medium? Score 4
- +2 Processing usage (Implements a Processing provider)
processing_provider.py:39 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
find_all_closest_points_for_each_feature/all_closest_points_algorithm.py:32,find_all_closest_points_for_each_feature/all_closest_points_algorithm.py:33and 3 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
find_all_closest_points_for_each_feature/all_closest_points_algorithm.py:80,find_all_closest_points_for_each_feature/all_closest_points_algorithm.py:88and 13 more
Scanned v1.0.1 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
IBGE Cartography Index Map
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin displays in QGIS the index layers from IBGE Cartography Department.| O plugin exibe no QGIS as camadas de índice da Coordenação de Cartografia do…
Why flagged: Not listed for QGIS 4; last release 1,863 days ago; 17,048 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v0.4.1 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
Groundwater Vulnerability
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateGroundwater Vulnerability Mapping (GLA method)
Why flagged: Not listed for QGIS 4; last release 2,701 days ago; 17,008 downloads
Why Medium? Score 5
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
gla_loose.py:6,gla_loose.py:7and 10 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
gwv_main.py:232,resources.py:1 - +1 exec_() calls (removed in PyQt6)
gla_main.py:187,gla_main.py:203and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
gla_loose.py:58,gla_loose.py:59and 10 more - +1 Qt Designer .ui files (3 .ui files)
ui_files/ui_gla_dialog.ui:1,ui_files/ui_lith_l.ui:1and 1 more
Scanned v2.0 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
shptoobs
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateConverts shape files to RayMan input objectfiles (.obs) and/or loads .obs files as vector layers.
Why flagged: Not listed for QGIS 4; last release 2,754 days ago; 16,997 downloads
Why Medium? Score 4
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
shp_to_obs.py:19,shp_to_obs.py:20and 1 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
resources.py:1,shp_to_obs.py:395and 10 more - +1 exec_() calls (removed in PyQt6)
shp_to_obs.py:889,shp_to_obs.py:904 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
shp_to_obs.py:236,shp_to_obs.py:471and 12 more
Scanned v1.1.3 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Easy Print Menu
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateEasy to print and handle PDF pages in one file
Why flagged: Not listed for QGIS 4; last release 896 days ago; 16,851 downloads
Why Hard? Score 10
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
modules/plot/plot_layout_menu.py:23,modules/plot/plot_layout_menu.py:24and 2 more - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
i18n/translations.py:30,i18n/translations.py:31and 139 more - +2 Size of the plugin's own Python code (4,699 lines in 29 files)
- +2 Qt Designer .ui files (5 .ui files)
i18n/translations.ui:1,modules/plot/plot_layout_menu.ui:1and 3 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
modules/plot/plot_config.py:14,modules/plot/plot_config.py:15and 26 more
Scanned v1.3.0 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
PrecisionCursor
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateGives you a button to switch the mouse cursor to a high precision pointer
Why flagged: Not listed for QGIS 4; last release 906 days ago; 16,840 downloads
Why Easy? Score 1
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
__init__.py:18,__init__.py:19and 1 more
Scanned v1.1.D on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Toggle Active Layer
Not QGIS 4 readyPort difficulty: Easy · Automatic estimatePlugin for toggle visibility of active layer
Why flagged: Not listed for QGIS 4; last release 2,459 days ago; 16,708 downloads
MODIS_NITK
Not QGIS 4 readyPort difficulty: Easy · Automatic estimatePlugin to process MODIS data available in HDF Format to user friendly GeoTiff (.tif) format and provide an option for Time Series analysis of raster dataset…
Why flagged: Not listed for QGIS 4; last release 2,579 days ago; 16,700 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
modis_nitk.py:24,modis_nitk.py:25and 4 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1,resources_rc.py:1 - +1 Processing usage (Uses Processing)
modis_nitk.py:39,modis_nitk.py:47
Scanned v0.3 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
PostNAS Suchfunktionen
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateSearchfunction for PostNAS Database
Why flagged: Not listed for QGIS 4; last release 2,417 days ago; 16,506 downloads
Why Hard? Score 10
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
PostNAS_SearchDialog.py:44 - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
PostNAS_AccessControl.py:164,PostNAS_AccessControl.py:243and 49 more - +2 Qt Designer .ui files (4 .ui files)
PostNAS_AccessControl_UserDialog.ui:1,PostNAS_ConfDialogBase.ui:1and 2 more - +1 Deprecated QGIS/Qt APIs (QgsCoordinateTransform(source, destination) without a transform context)
PostNAS_SearchDialog.py:1053 - +1 exec_() calls (removed in PyQt6)
PostNAS_AccessControl.py:32,PostNAS_AccessControl.py:91and 43 more - +1 Size of the plugin's own Python code (1,962 lines in 9 files)
Scanned v1.4.0 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
Importer2OSMbasemap
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateImport data into a QGIS Project, with OSM basemap
Why flagged: Not listed for QGIS 4; last release 1,676 days ago; 16,307 downloads
Why Hard? Score 11
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
widgets/import_manager/import_manager.py:86 - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
project.py:65,project.py:105and 33 more - +2 Qt Designer .ui files (5 .ui files)
widgets/about/about_dialog.ui:1,widgets/create_project/create_project_dialog.ui:1and 3 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
project.py:65,project.py:105and 60 more - +1 exec_() calls (removed in PyQt6)
widgets/create_project/create_project_dialog.py:60,widgets/import_data/import_data.py:51and 5 more - +1 Size of the plugin's own Python code (2,611 lines in 24 files)
- +1 Processing usage (Uses Processing)
widgets/import_data/importer.py:14
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
Cesium ion
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateBrowse and add datasets from Cesium ion
Why flagged: Not listed for QGIS 4; last release 982 days ago; 16,237 downloads
Why Easy? Score 3
- +1 exec_() calls (removed in PyQt6)
gui/data_items.py:141,gui/data_items.py:169 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
core/api_client.py:129,core/api_client.py:134and 17 more - +1 Qt Designer .ui files (2 .ui files)
ui/asset_by_id.ui:1,ui/select_token.ui:1
Scanned vv1.0.2 on 2026-11-03. How difficulty is estimated
- +1 exec_() calls (removed in PyQt6)
Clip to Hemisphere
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateClip vector layers to the hemisphere of the earth centered on a user specified point in order to use them in an orthographic projection without introducing…
Why flagged: Not listed for QGIS 4; last release 2,235 days ago; 16,196 downloads
Why Easy? Score 3
- +2 Processing usage (Implements a Processing provider)
ClipToHemisphere.py:50 - +1 Deprecated QGIS/Qt APIs (QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
ClipToHemisphere.py:118
Scanned v0.4 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
FS3
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateQuickly generate, display, and compare basic statistics and graphs for numeric and text fields of vector layer(s)
Why flagged: Not listed for QGIS 4; last release 3,073 days ago; 16,026 downloads
Why Hard? Score 7
Hard regardless of score: removed qt subsystem (qtwebkit, qtxmlpatterns, qtscript…).
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
fs3Run.py:26 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
fs3.py:15,fs3.py:16and 14 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
layerFieldGetter.py:35,layerFieldGetter.py:50and 1 more - +1 Size of the plugin's own Python code (1,551 lines in 9 files)
- +1 Qt Designer .ui files (2 .ui files)
fs3.ui:1,graphOptions.ui:1
Scanned v1.0.1 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
Export to SQL Server
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateExports a vector layer to a new SQL Server database connection.
Why flagged: Not listed for QGIS 4; last release 827 days ago; 16,005 downloads
Why Easy? Score 3
- +2 Processing usage (Implements a Processing provider)
OgrGeoprocessingProvider.py:43 - +1 Deprecated QGIS/Qt APIs (QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
OgrToSQLServer.py:95
Scanned v0.5 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Canadian Web Services
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin provides easy access to many geospatial web services in the Canadian (.ca) domain.
Why flagged: Not listed for QGIS 4; last release 2,606 days ago; 15,834 downloads
Why Easy? Score 3
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
canadian_web_services.py:236,canadian_web_services.py:454and 4 more - +1 Qt Designer .ui files (2 .ui files)
canadian_web_services_dialog_base.ui:1,info.ui:1
Scanned v1.1 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
Pghydro Tools
Not QGIS 4 readyPort difficulty: Easy · Automatic estimatePgHydro Tools Interface for PgHydro Extension for PostgreSQL/PostGIS
Why flagged: Not listed for QGIS 4; last release 2,051 days ago; 15,699 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
pghydro_tools_dialog.py:3 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Size of the plugin's own Python code (1,738 lines in 3 files)
Scanned v3.2 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
PgMetadata
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateStore some metadata about layers which are stored in PostgreSQL. It's possible to define title, abstract, links, contacts etc. It also provides some search…
Why flagged: Not listed for QGIS 4; last release 801 days ago; 15,521 downloads
Why Hard? Score 8
Hard regardless of score: removed qt subsystem (qtwebkit, qtxmlpatterns, qtscript…).
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
dock.py:30,resources/ui/dock.ui:1 - +2 Processing usage (Implements a Processing provider)
processing/provider.py:25 - +1 Bundled executable or library code (17 vendored Python files)
qgis_plugin_tools/and 16 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
connection_manager.py:163,connection_manager.py:171and 17 more - +1 Size of the plugin's own Python code (1,522 lines in 17 files)
Scanned v1.3.1 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
GeoCSV
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin creates a vector layer from the loaded csv file to make it available to edit
Why flagged: Not listed for QGIS 4; last release 1,430 days ago; 15,340 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
Layer From Clipboard
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateCreate layer from clipboard data
Why flagged: Not listed for QGIS 4; last release 3,062 days ago; 15,313 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
cbdatamodel.py:4,cbdatamodel.py:6and 3 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
layer_from_clipboard_dialog.py:118,resources.py:1and 2 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
cbdatamodel.py:30,cbdatamodel.py:87and 6 more
Scanned v0.12 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Constraint Checker
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateGenerate reports of constraints (e.g. planning constraints) applicable to an area of interest.
Why flagged: Not listed for QGIS 4; last release 2,793 days ago; 15,295 downloads
Why Medium? Score 5
- +2 Qt Designer .ui files (4 .ui files)
ui/ui_configuration.ui:1,ui/ui_constraint_results.ui:1and 2 more - +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
constraintchecker.py:114,freehand_polygon_maptool.py:39and 2 more - +1 exec_() calls (removed in PyQt6)
checker.py:127,constraintchecker.py:150and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
checker.py:58,checker.py:59and 18 more
Scanned v1.2 on 2026-11-03. How difficulty is estimated
- +2 Qt Designer .ui files (4 .ui files)
Area Ratio
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateArea ration of polygons within an other polygon
Why flagged: Not listed for QGIS 4; last release 1,755 days ago; 15,206 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
arearatio_dialog.py:27,arearatio_dialog.py:28 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Processing usage (Uses Processing)
arearatio.py:30,arearatio.py:32and 1 more
Scanned v0.2 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
GeoData CZ/SK
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis plugin gathers cz/sk data sources.
Why flagged: Not listed for QGIS 4; last release 1,362 days ago; 15,177 downloads
Why Medium? Score 6
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Geo_Data.py:215,Geo_Data_dialog.py:91and 37 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
data_sources/LPIS_view/source.py:48,data_sources/LPIS_view/source.py:119and 1 more - +1 exec_() calls (removed in PyQt6)
Geo_Data.py:242,crs_trans/ShiftGrid.py:118 - +1 Size of the plugin's own Python code (1,909 lines in 47 files)
- +1 Qt Designer .ui files (2 .ui files)
Geo_Data_dialog_base.ui:1,data_sources/LPIS_view/options_dialog_base.ui:1
Scanned v0.6 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Map Corners Coordinates
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateQGIS plugin for saving map canvas coordinates into a text file.
Why flagged: Not listed for QGIS 4; last release 2,376 days ago; 15,116 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
map_corners_coordinates.py:24,map_corners_coordinates.py:25and 3 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
map_corners_coordinates.py:261,map_corners_coordinates.py:295and 4 more
Scanned v2.0.0 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
CSV Batch Import
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateBatch import of CSV vector layers
Why flagged: Not listed for QGIS 4; last release 1,197 days ago; 15,095 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
csv_layers_list.py:1,csv_layers_list.py:2 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
csv_layers_list.py:232,csv_layers_list.py:234and 13 more
Scanned v0.3 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
CDAU Downloader
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateDescarga de capas del Callejero Digital de Andalucía Unificado (España)
Why flagged: Not listed for QGIS 4; last release 3,354 days ago; 15,058 downloads
Why Medium? Score 5
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
cdau_downloader.py:391,cdau_downloader.py:392and 2 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
cdau_downloader.py:38,cdau_downloader.py:39and 6 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
qml/resources.py:1,resources.py:1
Scanned v0.3 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
GTFS Loader
Not QGIS 4 readyPort difficulty: Easy · Automatic estimatePlugin for loading GTFS files
Why flagged: Not listed for QGIS 4; last release 2,100 days ago; 15,023 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
GTFS.py:32,GTFS.py:33and 3 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
gtfs_reader/__init__.py:83,gtfs_reader/shapes.py:24and 4 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
GTFS.py:224,GTFS.py:232and 8 more
Scanned v1.0.0 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
AustrianElevation1m
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateAustrianElevation
Why flagged: Not listed for QGIS 4; last release 3,152 days ago; 14,902 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
AustrianElevation.py:17,AustrianElevation.py:18and 3 more - +1 Deprecated QGIS/Qt APIs (QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
AustrianElevation.py:111
Scanned v2.0 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Profile Export
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateA plugin to export raster profiles to xml files
Why flagged: Not listed for QGIS 4; last release 2,487 days ago; 14,771 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
profileexportdialog.py:1,profileexportdialog.py:2and 4 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
profileexportdialog.py:28,profileexportplugin.py:46and 2 more
Scanned v0.5.1 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Vietnamese Font Converter
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis tool helps to convert charsets between encodings, from Vietnamese's UTF-8 to Internationalized (Unicode) and vice versa. For non-Vietnamese users, you…
Why flagged: Not listed for QGIS 4; last release 3,008 days ago; 14,643 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
vn_fonts.py:26,vn_fonts.py:27and 3 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
resources_rc.py:1,vn_fonts.py:157
Scanned v3.2 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Easy Template Print
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis plugin makes it easy to print using templates and text
Why flagged: Not listed for QGIS 4; last release 1,370 days ago; 14,603 downloads
Why Medium? Score 6
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
InstantPrintTool.py:99,InstantPrintTool.py:101and 22 more - +1 Bundled executable or library code (16 vendored Python files)
PyPDF2/and 15 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
EasyTemplatePrint.py:25,EasyTemplatePrint.py:26and 4 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
InstantPrintTool.py:222,InstantPrintTool.py:240and 3 more - +1 exec_() calls (removed in PyQt6)
EasyTemplatePrint.py:101,InstantPrintTool.py:618and 1 more
Scanned v2.6 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Pelias Geocoding
Not QGIS 4 readyPort difficulty: Medium · Automatic estimatePelias forward and reverse geocoding toolbox for QGIS.
Why flagged: Not listed for QGIS 4; last release 2,815 days ago; 14,567 downloads
Why Medium? Score 7
- +2 Processing usage (Implements a Processing provider)
proc/provider.py:38 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
core/client.py:30,core/response_handler.py:24and 13 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
core/response_handler.py:118,core/response_handler.py:127and 15 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
gui/PeliasToolsDialogConfig.py:201,proc/freetext_proc.py:105and 12 more - +1 Size of the plugin's own Python code (2,354 lines in 20 files)
- +1 Qt Designer .ui files (2 .ui files)
gui/PeliasMainUI.ui:1,gui/PeliasToolsConfigUI.ui:1
Scanned v0.1 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Geodesic Tools
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateQGIS3 plugin containing geodesic tools for rectangular mapping, finding intersection point of a line and a circle, finding intersection point of two lines and…
Why flagged: Not listed for QGIS 4; last release 1,000 days ago; 14,557 downloads
Why Hard? Score 9
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
core/click_tool.py:18,core/click_tool.py:19and 34 more - +2 Qt Designer .ui files (5 .ui files)
resources/ui/displacement_dockwidget.ui:1,resources/ui/intersect_lines_dialog.ui:1and 3 more - +1 Bundled executable or library code (26 vendored Python files)
qgis_plugin_tools/and 25 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
core/displacement_tool.py:5,core/displacement_tool.py:6and 13 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
core/displacement_tool.py:52,core/displacement_tool.py:205and 27 more - +1 Size of the plugin's own Python code (2,277 lines in 22 files)
- +1 Processing usage (Uses Processing)
core/displacement_tool.py:7,core/explode_lines.py:1and 11 more
Scanned vv2.1.1 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
QGIS Hats
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateBecause people are not wearing enough hats.
Why flagged: Not listed for QGIS 4; last release 2,532 days ago; 14,356 downloads
Why Hard? Score 4
Hard regardless of score: removed qt subsystem (qtwebkit, qtxmlpatterns, qtscript…).
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
__init__.py:56 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
__init__.py:56
Scanned v1.8 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
Track Profile to Web
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateLeaflet interactive web profiles.
Why flagged: Not listed for QGIS 4; last release 2,722 days ago; 14,354 downloads
Why Hard? Score 6
Hard regardless of score: removed qt subsystem (qtwebkit, qtxmlpatterns, qtscript…).
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
track_profile_2_web_dialog.py:35,track_profile_2_web_dialog_base.ui:1 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
track_profile_2_web.py:24,track_profile_2_web.py:25and 1 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
resources.py:1,track_profile_2_web_dialog.py:237and 1 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
track_profile_2_web_dialog.py:82,track_profile_2_web_dialog.py:86and 9 more
Scanned v1.3 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
Rectanglify
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateAdd a digitizing tool which "rectanglifies" selected features of a polygon vector layer
Why flagged: Not listed for QGIS 4; last release 2,380 days ago; 14,164 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
rectanglify.py:27,rectanglify.py:28and 2 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
rectanglify.py:157,rectanglify.py:167and 2 more
Scanned v1.0.3 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
UAV Mapping Path Generator (for Litchi)
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateThis plugin provides a Litchi-compatible UAV flight path for mapping missions, based on an input polygon and drone camera parameters. The output is a .csv…
Why flagged: Not listed for QGIS 4; last release 840 days ago; 14,145 downloads
Why Hard? Score 8
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
drone_path.py:29,drone_path.py:30and 18 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
drone_path.py:28,drone_path.py:29and 2 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
drone_path.py:276,drone_path.py:348and 92 more - +1 exec_() calls (removed in PyQt6)
drone_path.py:213,drone_path.py:315and 9 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
drone_path.py:209,drone_path.py:212and 18 more - +1 Processing usage (Uses Processing)
drone_path.py:39
Scanned v0.4.1 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
MTOPOpenData
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateAcceso a servicios webs del Ministerio de Transporte y Obras Públicas (MTOP) de Uruguay. EN: Access to geographic webservices of the Ministerio de Transporte…
Why flagged: Not listed for QGIS 4; last release 2,589 days ago; 13,923 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
MTOPOpenData.py:24,MTOPOpenData.py:25and 3 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v1.4 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Layer Tree Icons
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateLayer tree icons customization
Why flagged: Not listed for QGIS 4; last release 1,928 days ago; 13,677 downloads
Why Medium? Score 4
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
colorfontdialog.py:46,colorfontdialog.py:51and 42 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
colorfontdialog.py:3,colorfontdialog.py:11and 15 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
customtreemodel.py:213,customtreemodel.py:219and 6 more
Scanned v1.5.3 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Layer Group Filter
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateManage your Layer Filters (data subset) using layer-groups
Why flagged: Not listed for QGIS 4; last release 2,815 days ago; 13,675 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
layer_group_filter.py:25,layer_group_filter.py:26and 3 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v0.2 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Forest Roads Network
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateA plugin to create a vectorial network of forest roads of different types according to the flux of timber going through them.
Why flagged: Not listed for QGIS 4; last release 2,593 days ago; 13,608 downloads
Why Medium? Score 7
- +2 Size of the plugin's own Python code (3,674 lines in 9 files)
- +2 Processing usage (Implements a Processing provider)
forestRoadNetwork_provider.py:44 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
CostRasterCreator_algorithm.py:39,CostRasterCreator_algorithm.py:40and 6 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
RoadTypeDetermination_algorithm.py:106,RoadTypeDetermination_algorithm.py:156and 29 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
CostRasterCreator_algorithm.py:130,CostRasterCreator_algorithm.py:186and 17 more
Scanned v1.6 on 2026-11-03. How difficulty is estimated
maps2WinBUGS
Not QGIS 4 readyPort difficulty: Medium · Automatic estimatea tool to facilitate data processing for Bayesian spatial modeling
Why flagged: Not listed for QGIS 4; last release 820 days ago; 13,393 downloads
Why Medium? Score 6
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
maps2winbugs.py:172,maps2winbugs.py:180and 36 more - +2 Qt Designer .ui files (7 .ui files)
plugin/attr2BUGS_dialog_base.ui:1,plugin/editor_dialog_base.ui:1and 5 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
plugin/splusimport.py:155,plugin/splusimport.py:156and 2 more - +1 exec_() calls (removed in PyQt6)
maps2winbugs.py:198,maps2winbugs.py:245and 6 more
Scanned v3.0 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Deactivate Active Labels
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateon/off layer’s label
Why flagged: Not listed for QGIS 4; last release 2,521 days ago; 13,379 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v0.5 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
Graphab
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateGraphab for QGIS
Why flagged: Not listed for QGIS 4; last release 742 days ago; 13,327 downloads
Why Hard? Score 13
- +4 Size of the plugin's own Python code (6,593 lines in 36 files)
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
GraphabPlugin.py:128,GraphabProject.py:146and 52 more - +2 Processing usage (Implements a Processing provider)
processing/Graphab3Provider.py:33,processing/GraphabProvider.py:33 - +2 Qt Designer .ui files (13 .ui files)
OsRaster/ui_files/OsRaster_dialog_base.ui:1,OsRaster/ui_files/OsRaster_option_raster_window.ui:1and 11 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
GraphabProject.py:42,OsRaster/OsRaster.py:38and 17 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
GraphabProject.py:311,OsRaster/OsRaster.py:749and 1 more - +1 exec_() calls (removed in PyQt6)
OsRaster/OsRaster.py:186,OsRaster/raster_dialog.py:121and 13 more
Scanned v0.6.9 on 2026-11-03. How difficulty is estimated
Zonal Exact Extract
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateZonal Statistics of rasters using Exact Extract library
Why flagged: Not listed for QGIS 4; last release 764 days ago; 13,189 downloads
Why Hard? Score 10
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression); QFontMetrics.width() (use horizontalAdvance()))
widgets/codeEditor.py:232,widgets/codeEditor.py:252and 7 more - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
packages_installer/packages_installer_dialog.py:133,packages_installer/packages_installer_dialog.py:234and 35 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
task_classes.py:12 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Size of the plugin's own Python code (1,793 lines in 15 files)
- +1 Processing usage (Uses Processing)
task_classes.py:11 - +1 Qt Designer .ui files (2 .ui files)
packages_installer/packages_installer_dialog.ui:1,zonal_exact_dialog_base.ui:1
Scanned v0.6 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression); QFontMetrics.width() (use horizontalAdvance()))
EZPrinter
Not QGIS 4 readyPort difficulty: Medium · Automatic estimatePrint your maps easily.
Why flagged: Not listed for QGIS 4; last release 2,201 days ago; 12,951 downloads
Why Medium? Score 4
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
printWindow.py:3,printWindow.py:4and 1 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
clickTool.py:65,ezprinter.py:237and 5 more - +1 Qt Designer .ui files (2 .ui files)
ezprinter_dockwidget_base.ui:1,printWindow.ui:1
Scanned v1.3.1 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
qgis2fds
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateExport wildfire cases to FDS and import temporal FDS results
Why flagged: Not listed for QGIS 4; last release 1,253 days ago; 12,948 downloads
Why Medium? Score 5
- +2 Processing usage (Implements a Processing provider)
qgis2fds_provider.py:14 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type))
algos/sampling.py:133,algos/sampling.py:160 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
qgis2fds_algorithm.py:104,qgis2fds_algorithm.py:130and 11 more - +1 Size of the plugin's own Python code (1,876 lines in 16 files)
Scanned v1.0.2 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
GSI-VTDownloader
Not QGIS 4 readyPort difficulty: Medium · Automatic estimate地理院ベクトルタイルをダウンロードしベクターレイヤーとして読み込むためのプラグイン。A plugin to download and decode GSI Vectortiles.
Why flagged: Not listed for QGIS 4; last release 1,977 days ago; 12,846 downloads
Why Medium? Score 5
- +1 Bundled executable or library code (43 vendored Python files)
exlib/and 42 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
rubberband_maptool.py:1,rubberband_maptool.py:2and 1 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
gsi_geojson_generator.py:224,rubberband_maptool.py:14and 2 more - +1 Processing usage (Uses Processing)
gsi_geojson_generator.py:11 - +1 Qt Designer .ui files (2 .ui files)
gsi_geojson_generator_indicator_base.ui:1,vtdownloader_dialog_base.ui:1
Scanned v0.2.2 on 2026-11-03. How difficulty is estimated
- +1 Bundled executable or library code (43 vendored Python files)
QMapshaper
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis allows running mapshaper tool (need to be locally installed) as a processing tool or using interactive GUI tool.
Why flagged: Not listed for QGIS 4; last release 1,192 days ago; 12,716 downloads
Why Medium? Score 6
- +2 Processing usage (Implements a Processing provider)
qmapshaper_provider.py:16 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
classes/class_qmapshaper_data_preparer.py:103,classes/class_qmapshaper_data_preparer.py:122and 1 more - +1 exec_() calls (removed in PyQt6)
qmapshaper_plugin.py:111,qmapshaper_plugin.py:121 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
classes/class_qmapshaper_data_preparer.py:77,classes/class_qmapshaper_runner.py:19and 16 more - +1 Size of the plugin's own Python code (1,535 lines in 26 files)
Scanned v0.8.2 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Turn Gray
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateChange layout items' black color into gray (or any other color).
Why flagged: Not listed for QGIS 4; last release 1,502 days ago; 12,708 downloads
Why Medium? Score 6
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
turn_gray.py:57 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
composer_item_color_setters.py:1,margin_guides_dialog.py:26and 6 more - +1 exec_() calls (removed in PyQt6)
turn_gray.py:180,turn_gray.py:221 - +1 Qt Designer .ui files (2 .ui files)
margin_guides_dialog.ui:1,turn_gray_dialog_base.ui:1
Scanned v3.1.1 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
Equirectangular Viewer
Not QGIS 4 readyPort difficulty: Hard · Automatic estimatePlugin for viewer local equirectangular images.
Why flagged: Not listed for QGIS 4; last release 1,945 days ago; 12,653 downloads
Why Hard? Score 6
Hard regardless of score: removed qt subsystem (qtwebkit, qtxmlpatterns, qtscript…).
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
Geo360Dialog.py:44,Geo360Dialog.py:45 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
geom/transformgeom.py:5 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
Geo360Dialog.py:314,Geo360Dialog.py:352and 4 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Geo360.py:150,Geo360Dialog.py:141and 10 more
Scanned v1.4 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
RealEarth
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis plugin allows users to directly access SSEC RealEarth web services public catalog of near real-time satellite imagery and related ancillary data through…
Why flagged: Not listed for QGIS 4; last release 785 days ago; 12,572 downloads
Why Medium? Score 5
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
customWidget/CustomDropDown.py:32,customWidget/CustomDropDown.py:33and 110 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
customWidget/CheckableQMenu.py:2,customWidget/CheckableQMenu.py:3and 32 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1,resources_rc.py:1 - +1 Size of the plugin's own Python code (2,500 lines in 19 files)
Scanned v0.8.3 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
DDG Street Images
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThe plugin open DDG street images in the browser
Why flagged: Not listed for QGIS 4; last release 2,957 days ago; 12,531 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
ddg_street_images.py:29,ddg_street_images.py:30and 3 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v1.0.3 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Neural Network MLPClassifier
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThe Neural Network MLPClassifier predicts classified images using supervised classification.
Why flagged: Not listed for QGIS 4; last release 2,174 days ago; 12,521 downloads
Why Medium? Score 4
- +2 Processing usage (Implements a Processing provider)
interfaces/lnns_provider.py:24 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
images/lnns_resources_rc.py:1 - +1 exec_() calls (removed in PyQt6)
interfaces/__init__.py:68,interfaces/lnns_gui.py:221and 1 more
Scanned v1.0.7 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Create Layer From Selected Features
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin creates a layer using selected features.
Why flagged: Not listed for QGIS 4; last release 1,764 days ago; 12,326 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v1.2 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
CoordGuesser
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateUnscrambles, parses and guesses coordinates.
Why flagged: Not listed for QGIS 4; last release 3,136 days ago; 12,170 downloads
Why Medium? Score 4
- +2 Qt Designer .ui files (4 .ui files)
CoordGuesser_dialog_base.ui:1,CoordGuesser_dialog_base_draft.ui:1and 2 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
CoordGuesser_.py:23,CoordGuesser_.py:24and 8 more - +1 Deprecated QGIS/Qt APIs (QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
CoordGuesser_dialog.py:48,CoordGuesser_dialog.py:188and 2 more
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +2 Qt Designer .ui files (4 .ui files)
Automatic numbering plugin
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateAutomatic numbering of polygons
Why flagged: Not listed for QGIS 4; last release 1,521 days ago; 12,159 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
auto_numbering.py:231,auto_numbering.py:232and 1 more
Scanned v0.5 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
TopoJSON Writer
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateWrite vector layers to TopoJson
Why flagged: Not listed for QGIS 4; last release 2,101 days ago; 12,154 downloads
Why Hard? Score 5
Hard regardless of score: removed qt subsystem (qtwebkit, qtxmlpatterns, qtscript…).
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
topojson_writer.py:31,topojson_writer.py:32 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType))
resources.py:1,topojson_writer.py:204 - +1 Processing usage (Uses Processing)
topojson_writer.py:28
Scanned v0.1.1 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt subsystem (QtWebKit, QtXmlPatterns, QtScript…)
Redistricting for QGIS
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateElectorate Redistricting and Equalisation
Why flagged: Not listed for QGIS 4; last release 1,219 days ago; 11,975 downloads
Why Medium? Score 7
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
packages/helper/qgis_util.py:61,packages/helper/qgis_util.py:64and 53 more - +2 Qt Designer .ui files (4 .ui files)
ui_configuration.ui:1,ui_redistricting_constituencies.ui:1and 2 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
redistricting_dock.py:492,redistricting_dock.py:923and 7 more - +1 exec_() calls (removed in PyQt6)
redistricting_dock.py:1056,redistricting_dock.py:1208 - +1 Size of the plugin's own Python code (2,402 lines in 23 files)
Scanned v0.4.4 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Forest Road Designer
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateThis plugin serves as support of foresters in the design of forest roads
Why flagged: Not listed for QGIS 4; last release 1,178 days ago; 11,926 downloads
Why Hard? Score 10
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
forest_road_designer.py:254,forest_road_designer_dockwidget.py:744and 39 more - +2 Size of the plugin's own Python code (5,473 lines in 29 files)
- +2 Processing usage (Implements a Processing provider)
processing_provider/provider.py:7 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
frd_interactive_tool.py:20,optimizer_qgis.py:38 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
forest_road_designer_dockwidget.py:506,forest_road_designer_dockwidget.py:517and 32 more - +1 exec_() calls (removed in PyQt6)
forest_road_designer.py:258,forest_road_designer_dockwidget.py:1085and 1 more - +1 Qt Designer .ui files (2 .ui files)
dlgabout.ui:1,forest_road_designer_dockwidget_base.ui:1
Scanned v3.0.91 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
ODKTrace2WKT
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin converts ODK geotraces to Well-Known Text
Why flagged: Not listed for QGIS 4; last release 2,621 days ago; 11,895 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v0.1 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
GeoKKP-GIS
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateThis plugin ports GeoKKP for National Land Agency of Indonesia
Why flagged: Not listed for QGIS 4; last release 1,365 days ago; 11,875 downloads
Why Hard? Score 15
- +4 Size of the plugin's own Python code (19,457 lines in 83 files)
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
modules/geocoding.py:140 - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
geokkp.py:496,geokkp.py:569and 130 more - +2 Qt Designer .ui files (64 .ui files)
ui/Init.ui:1,ui/addlayerv2.ui:1and 62 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
modules/azimuthdistance_plot.py:8,modules/desain_gambar_denah.py:9and 2 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3); QgsCoordinateTransform(source, destination) without a transform context)
geokkp.py:1445,modules/convert_layer.py:124and 18 more - +1 exec_() calls (removed in PyQt6)
modules/api/networkaccessmanager.py:253,modules/geocoding.py:97 - +1 Processing usage (Uses Processing)
geokkp.py:57,modules/pemetaan_persil_masif.py:3and 13 more
Scanned v1.2.0 on 2026-11-03. How difficulty is estimated
geoCore
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateCreates graphical representations of geoscientific drillings
Why flagged: Not listed for QGIS 4; last release 1,921 days ago; 11,707 downloads
Why Medium? Score 4
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
petroProfile.py:202,petroProfile_dialog.py:182 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
petroProfile_dialog.py:173,petroProfile_dialog.py:217and 7 more - +1 Qt Designer .ui files (2 .ui files)
petroProfile_dialog_base.ui:1,scale_dialog_base.ui:1
Scanned v0.8.1 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
Download raster GEE
Not QGIS 4 readyPort difficulty: Hard · Automatic estimatedownload_raster_gee
Why flagged: Not listed for QGIS 4; last release 1,080 days ago; 11,669 downloads
Why Hard? Score 4
Hard regardless of score: bundled executable or library code.
- +1 Bundled executable or library code (13 native binaries, 87 vendored Python files)
ext_libs/rasterio/_base.cp39-win_amd64.pyd:1,ext_libs/rasterio/_env.cp39-win_amd64.pyd:1and 98 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
downloader_qgis.py:77,downloader_qgis.py:382and 8 more - +1 Processing usage (Uses Processing)
downloader_qgis.py:18
Scanned v0.2.1 on 2026-11-03. How difficulty is estimated
- +1 Bundled executable or library code (13 native binaries, 87 vendored Python files)
Survey design plugin
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateA plugin to design biomass surveys along coast lines. The survey design dialog can be opened under Survey -> Survey design. Developed for NIWA, New Zealand
Why flagged: Not listed for QGIS 4; last release 2,257 days ago; 11,642 downloads
Why Medium? Score 6
- +1 Bundled executable or library code (33 vendored Python files)
xlsxwriter/and 32 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
pointsample.py:2,pointsurveydialog.py:4and 18 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
pointsample.py:18,pointsample.py:24and 35 more - +1 exec_() calls (removed in PyQt6)
pointsurveydialog.py:50,pointsurveydialog.py:56and 2 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
pointsample.py:28,pointsurveydialog.py:50and 11 more - +1 Qt Designer .ui files (3 .ui files)
pointsurveydialogbase.ui:1,surveypropertiesbase.ui:1and 1 more
Scanned v0.6 on 2026-11-03. How difficulty is estimated
- +1 Bundled executable or library code (33 vendored Python files)
QGribDownloader
Not QGIS 4 readyPort difficulty: Medium · Automatic estimatedownload gribs from opengribs.org
Why flagged: Not listed for QGIS 4; last release 2,018 days ago; 11,637 downloads
Why Medium? Score 4
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
QGribDownloader.py:24,QGribDownloader.py:25and 10 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
QGribDownloader_dockwidget.py:135,QGribDownloader_dockwidget.py:139and 6 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
QGribDownloader.py:238,QGribDownloader_dockwidget.py:94and 11 more - +1 Qt Designer .ui files (2 .ui files)
QGribDownloader_dockwidget_base.ui:1,QGribDownloader_server_status.ui:1
Scanned v0.5 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Adresssuche
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateSearching for an adresspoint in Germany based on offical data - ALKIS Adresssuche
Why flagged: Not listed for QGIS 4; last release 1,317 days ago; 11,614 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
address_search.py:27,address_search.py:28and 1 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
address_search.py:352,address_search.py:442and 2 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
address_search.py:189,address_search.py:196and 6 more
Scanned v0.1 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Eqip
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateQGIS Pip Management
Why flagged: Not listed for QGIS 4; last release 892 days ago; 11,608 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
configuration/options.py:17,configuration/options.py:18and 1 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
configuration/options.py:201,configuration/options.py:215and 17 more
Scanned v0.2.9 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Webmap Utilities
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis plugin provides tools for clustered and hierarchical visualization of vector layers, creation of Relief Shading and management of scales using zoom levels.
Why flagged: Not listed for QGIS 4; last release 1,140 days ago; 11,557 downloads
Why Medium? Score 4
- +2 Processing usage (Implements a Processing provider)
src/algorithms/provider.py:8 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
resources.py:1,src/algorithms/clusterizationByDistance.py:19and 4 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
src/algorithms/clusterizationByDistance.py:20,src/algorithms/createAerialPerspective.py:21and 12 more
Scanned v0.1 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Autocurve
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateAutomatic cleanup of arcs after editing geometries (convert to curve and harmonize arc centers)
Why flagged: Not listed for QGIS 4; last release 1,695 days ago; 11,302 downloads
Why Easy? Score 1
- +1 Processing usage (Uses Processing)
plugin.py:30
Scanned v0.5 on 2026-11-03. How difficulty is estimated
- +1 Processing usage (Uses Processing)
PPConverter
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateConvert PhoToPlan-images to GeoTIFFs
Why flagged: Not listed for QGIS 4; last release 2,700 days ago; 11,286 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
ppconverter.py:23,ppconverter.py:24and 3 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
AwaP
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis plugin takes in outlines of urban blocks and the boundary of area of interest, and calculates area-weighted average parameter (AwaP)
Why flagged: Not listed for QGIS 4; last release 790 days ago; 11,226 downloads
Why Medium? Score 5
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
awap.py:97,awap.py:100and 23 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
awap.py:24,awap.py:27and 6 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
awap_worker.py:275,awap_worker.py:276and 4 more - +1 Processing usage (Uses Processing)
awap.py:38,awap.py:40and 1 more
Scanned v2.0.2 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Civil Engineering Tools Provider
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateTools to automate the early design of civil engineering projects. This is a Provider with three tools: Reservoir, Earthworks and LRS
Why flagged: Not listed for QGIS 4; last release 1,608 days ago; 11,116 downloads
Why Medium? Score 5
- +2 Processing usage (Implements a Processing provider)
CivilEng_provider.py:43 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
CivilEng_provider.py:34,Earthworks_algorithm.py:46and 2 more - +1 Deprecated QGIS/Qt APIs (QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
Earthworks_algorithm.py:71,LRS_algorithm.py:65and 2 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Earthworks_algorithm.py:72,Earthworks_algorithm.py:73and 4 more
Scanned v0.2 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Report Plugin
Not QGIS 4 readyPort difficulty: Medium · Automatic estimatePlugin for fast reporting of issues to the tracker
Why flagged: Not listed for QGIS 4; last release 2,737 days ago; 11,057 downloads
Why Medium? Score 6
- +1 Bundled executable or library code (1 packaged library)
deps/requests-2.21.0-py2.py3-none-any.whl:1 - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
conf_widget.py:12,conf_widget.py:14and 11 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
main_widget.py:125,main_widget.py:250 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
main_widget.py:173,main_widget.py:174and 11 more - +1 Qt Designer .ui files (2 .ui files)
ui/conf_widget.ui:1,ui/main_widget.ui:1
Scanned v1.0.0 on 2026-11-03. How difficulty is estimated
- +1 Bundled executable or library code (1 packaged library)
Geographical detector
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateA tool for measuring spatial stratified heterogeneity and spatial associations of geographical attributes
Why flagged: Not listed for QGIS 4; last release 1,651 days ago; 11,051 downloads
Why Medium? Score 4
- +2 Processing usage (Implements a Processing provider)
geographical_detector_provider.py:42 - +1 Deprecated QGIS/Qt APIs (QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
geographical_detector_algorithm.py:95 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
geographical_detector_algorithm.py:107,geographical_detector_algorithm.py:114and 13 more
Scanned v1.3.0 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
Find Dataset
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateFinds datatesets, from a specific folder(s), that intersect a location in the map
Why flagged: Not listed for QGIS 4; last release 2,867 days ago; 11,030 downloads
Why Medium? Score 4
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
find_dataset.py:24,find_dataset.py:25and 3 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
find_dataset.py:158,find_dataset.py:159and 4 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
DatasetTools.py:174,DatasetTools.py:176and 7 more - +1 Processing usage (Uses Processing)
find_dataset.py:46
Scanned v1.1.0 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Floodplain Inundation Calculator
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateThis plugin calculates inundation durations in floodplains.
Why flagged: Not listed for QGIS 4; last release 1,731 days ago; 11,003 downloads
Route Builder
Not QGIS 4 readyPort difficulty: Medium · Automatic estimate"Route Builder" is a QGIS plugin with a set of tools that calculates shortest routes in street networks using data from OpenStreetMap (OSM) and using the A*…
Why flagged: Not listed for QGIS 4; last release 931 days ago; 10,962 downloads
Why Medium? Score 5
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
second_dialog.py:1 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
resources.py:1,route_builder.py:52 - +1 exec_() calls (removed in PyQt6)
route_builder.py:98,route_builder.py:180 - +1 Processing usage (Uses Processing)
route_builder.py:23 - +1 Qt Designer .ui files (2 .ui files)
create_route_dialog_base.ui:1,route_builder_dialog_base.ui:1
Scanned v0.1 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
WAPlugin
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateProvides access to all the WaPOR data and includes it in the QGIS canvas as another raster layer, providing WaPOR data easy access to the QGIS users…
Why flagged: Not listed for QGIS 4; last release 797 days ago; 10,959 downloads
Why Medium? Score 7
- +2 Size of the plugin's own Python code (4,137 lines in 11 files)
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
wap_plugin.py:46 - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
resources.py:1,resources_rc.py:1and 2 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
utils/tools.py:120,wap_plugin.py:421and 4 more - +1 Processing usage (Uses Processing)
utils/managers.py:4 - +1 Qt Designer .ui files (3 .ui files)
wap_plugin_data_details.ui:1,wap_plugin_dialog_base.ui:1and 1 more
Scanned v3.0.3 on 2026-11-03. How difficulty is estimated
buildSeg
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateDeep learning building segmentation.
Why flagged: Not listed for QGIS 4; last release 1,622 days ago; 10,943 downloads
Why Easy? Score 2
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
buildSeg.py:292,resources.py:1 - +1 Processing usage (Uses Processing)
utils/simplify.py:3
Scanned v0.3 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
PowerPan
Not QGIS 4 readyPort difficulty: Medium · Automatic estimatePowerPan lets you explore an area inch by inch.
Why flagged: Not listed for QGIS 4; last release 3,066 days ago; 10,929 downloads
Why Medium? Score 6
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
power_pan_dockwidget.py:27,power_pan_dockwidget.py:29and 4 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
power_pan_dockwidget.py:26,power_pan_dockwidget.py:27and 2 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
power_pan.py:173,power_pan_dockwidget.py:77and 5 more
Scanned v2.0 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QRegExp (use QRegularExpression))
Trail Elevation Stats
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateCalculate information such as cumulative elevation gain from a DEM and a line layer.
Why flagged: Not listed for QGIS 4; last release 2,617 days ago; 10,901 downloads
Why Easy? Score 3
- +2 Processing usage (Implements a Processing provider)
trail_elevation_stats_provider.py:37 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsProcessing.Type* source types (use Qgis.ProcessingSourceType))
trail_elevation_stats_algorithm.py:98,trail_elevation_stats_algorithm.py:201and 9 more
Scanned v0.2 on 2026-11-03. How difficulty is estimated
- +2 Processing usage (Implements a Processing provider)
SPC PopGIS
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateQGIS Plugin Integration with SPC PopGIS
Why flagged: Not listed for QGIS 4; last release 2,991 days ago; 10,846 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
popgis_util.py:9 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
popgis.py:261,popgis.py:282and 4 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
popgis.py:173,popgis.py:282and 7 more
Scanned v0.6 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
digitizer
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateDigitizing old Plans
Why flagged: Not listed for QGIS 4; last release 1,100 days ago; 10,803 downloads
Why Easy? Score 3
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
digitizer_dialog.py:30,digitizer_dialog.py:35 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
digitizer_dialog.py:97,digitizer_dialog.py:99and 6 more - +1 Processing usage (Uses Processing)
digitizer_dialog.py:37
Scanned v1.0.2 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Socrata
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateDownload maps from Socrata-powered data portals
Why flagged: Not listed for QGIS 4; last release 2,405 days ago; 10,720 downloads
Why Medium? Score 4
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Socrata.py:26,Socrata.py:27and 1 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1 - +1 exec_() calls (removed in PyQt6)
Socrata.py:279,Socrata.py:319 - +1 Qt Designer .ui files (3 .ui files)
Domain_maps.ui:1,MessageBox.ui:1and 1 more
Scanned v2.2 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
PisteCreator
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateDisplay along and cross slope infos when editing line layer.
Why flagged: Not listed for QGIS 4; last release 1,924 days ago; 10,680 downloads
Why Hard? Score 8
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
PisteCreator.py:245,Utils.py:422and 96 more - +2 Size of the plugin's own Python code (4,063 lines in 9 files)
- +2 Qt Designer .ui files (4 .ui files)
gui/Option_dock.ui:1,gui/Option_dock_truck_option.ui:1and 2 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
gui/plot_view.py:25,gui/plot_view.py:26and 1 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type))
Utils.py:261,Utils.py:276and 4 more
Scanned v2.0.1 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Assisted-MapMatching
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateThis QGIS plugin match a GPS track on a network using leuvenMapMatching and allow the user to modify the result.
Why flagged: Not listed for QGIS 4; last release 1,722 days ago; 10,604 downloads
Why Medium? Score 7
- +4 Size of the plugin's own Python code (6,257 lines in 38 files)
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3))
map_matching.py:716,map_matching.py:742and 7 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
map_matching.py:266,map_matching.py:271and 8 more - +1 Processing usage (Uses Processing)
model/imports.py:11,model/network.py:1and 1 more
Scanned v1.1 on 2026-11-03. How difficulty is estimated
Interface Catchment
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateCalculates the interface catchment on urban blocks within a specified walking distance.
Why flagged: Not listed for QGIS 4; last release 790 days ago; 10,535 downloads
Why Medium? Score 4
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
icworker.py:2,icworker.py:5and 6 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc))
icworker.py:334,icworker.py:348and 4 more - +1 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
icworker.py:29,icworker.py:33and 11 more - +1 Processing usage (Uses Processing)
icworker.py:12,icworker.py:45and 1 more
Scanned v2.0.3 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
Road Emission Calculator
Not QGIS 4 readyPort difficulty: Hard · Automatic estimateThe plugin calculate emissions for selected roads. The plugin using external library "EmissionCalculatorLib". This python library uses formulas and factors…
Why flagged: Not listed for QGIS 4; last release 3,164 days ago; 10,478 downloads
Why Hard? Score 9
Hard regardless of score: bundled executable or library code.
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Overlay.py:22,Overlay.py:24and 26 more - +2 Qt Designer .ui files (4 .ui files)
errorwidgetitem.ui:1,road_emission_calculator_dialog_base.ui:1and 2 more - +1 Bundled executable or library code (3 native binaries, 191 vendored Python files)
lib/sqlalchemy/cprocessors.so:1,lib/sqlalchemy/cresultproxy.so:1and 192 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
WaitingSpinnerWidget.py:191 - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsCoordinateTransform(source, destination) without a transform context)
copyLatLonTool.py:42,copyLatLonTool.py:79and 4 more - +1 exec_() calls (removed in PyQt6)
WaitingSpinnerWidget.py:201,road_emission_calculator.py:857 - +1 Size of the plugin's own Python code (2,964 lines in 25 files)
Scanned v0.3 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
GWAT - Watershed Analysis Toolbox by Geomeletitiki
Not QGIS 4 readyPort difficulty: Not assessed · Automatic estimateSemi-automated Hydrological Basin Analysis toolbox.
Why flagged: Not listed for QGIS 4; last release 732 days ago; 10,464 downloads
Why not assessed?
v3.0.0 has not been scanned yet. Unscanned plugins are never shown as Easy.
Tempus
Not QGIS 4 readyPort difficulty: Hard · Automatic estimatePlugin to interact with a Tempus instance. Tempus is a framework for multimodal route planning
Why flagged: Not listed for QGIS 4; last release 2,904 days ago; 10,332 downloads
Why Hard? Score 9
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
routing_dock.py:51,routing_dock.py:71and 12 more - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
altitude_profile.py:34,altitude_profile.py:35and 72 more - +2 Size of the plugin's own Python code (3,162 lines in 17 files)
- +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsCoordinateTransform(source, destination) without a transform context)
resources_rc.py:1,routing_dock.py:67and 14 more - +1 exec_() calls (removed in PyQt6)
consolelauncher.py:160,tempus_plugin.py:613and 1 more
Scanned v1.1.1 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
Fonctions SIGMOÉ
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateNew functions usable for automatic calculation in the expression builder
Why flagged: Not listed for QGIS 4; last release 805 days ago; 10,327 downloads
Why Easy? Score 1
- +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
sgm_expression_functions.py:106,sgm_expression_functions.py:107and 9 more
Scanned v3.0.5 on 2026-11-03. How difficulty is estimated
- +1 Deprecated QGIS/Qt APIs (QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType); QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
Check, Define & Convert CRS
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateCheck, define and convert CRS
Why flagged: Not listed for QGIS 4; last release 1,547 days ago; 10,325 downloads
Why Medium? Score 4
- +2 Qt Designer .ui files (4 .ui files)
convertVN2000_DialogBase.ui:1,coordSysChecker_DialogBase.ui:1and 2 more - +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
checkDialog.py:1,checkDialog.py:2and 9 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc); QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3); QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n"))
crs_tools.py:588,crs_tools.py:589and 4 more
Scanned v1.0 on 2026-11-03. How difficulty is estimated
- +2 Qt Designer .ui files (4 .ui files)
On-the-Fly-Shortest-Path
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateInteractively find shortest path between points over a line network and calculate the Fiber Loss Budget of a fiber optic network (backbone or FTTH)
Why flagged: Not listed for QGIS 4; last release 860 days ago; 10,294 downloads
Why Medium? Score 6
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
bridge.py:112,bridgingLineTool.py:42and 46 more - +2 Qt Designer .ui files (6 .ui files)
DlgConfiguration.ui:1,DlgDockWidget.ui:1and 4 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
onthefly_shortest_path.py:361,onthefly_shortest_path.py:1016and 24 more - +1 Size of the plugin's own Python code (2,887 lines in 9 files)
Scanned v1.3.1 on 2026-11-03. How difficulty is estimated
- +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
Radiotrack
Not QGIS 4 readyPort difficulty: Medium · Automatic estimateVisualizes radiotracking data
Why flagged: Not listed for QGIS 4; last release 1,894 days ago; 10,186 downloads
Why Medium? Score 6
- +3 Removed Qt/PyQt/QGIS APIs (Qt.MidButton, Qt.TextColorRole, Qt.BackgroundColorRole, QPainter.HighQualityAntialiasing; QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
Radiotrack_dockwidget.py:392,compat.py:78and 2 more - +2 Unscoped enums (Qt.UserRole instead of Qt.ItemDataRole.UserRole)
QgsController.py:90,Radiotrack.py:169and 44 more - +1 Deprecated QGIS/Qt APIs (QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type); Compiled Qt resources (PyQt6 has no pyrcc); QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType))
QgsController.py:150,QgsController.py:166and 5 more
Scanned v0.12 on 2026-11-03. How difficulty is estimated
- +3 Removed Qt/PyQt/QGIS APIs (Qt.MidButton, Qt.TextColorRole, Qt.BackgroundColorRole, QPainter.HighQualityAntialiasing; QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO))
Andalusian Population
Not QGIS 4 readyPort difficulty: Not assessed · Automatic estimateThis plugin allows easier access to information about the population of Andalusia (region of Spain)
Why flagged: Not listed for QGIS 4; last release 963 days ago; 10,075 downloads
Why not assessed?
v3.1 has not been scanned yet. Unscanned plugins are never shown as Easy.
Geoportal LU
Not QGIS 4 readyPort difficulty: Easy · Automatic estimateUse services from the luxembourgish Geoportal in QGIS
Why flagged: Not listed for QGIS 4; last release 2,284 days ago; 10,064 downloads
Why Easy? Score 2
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
geoportail_lu.py:37,geoportail_lu.py:38and 3 more - +1 Deprecated QGIS/Qt APIs (Compiled Qt resources (PyQt6 has no pyrcc))
resources.py:1
Scanned v0.17 on 2026-11-03. How difficulty is estimated
- +1 Direct PyQt5 imports (qgis.PyQt imports are fine)
How candidates are chosen
- Not listed in the QGIS 4.0 feed of the QGIS plugin repository.
- At least 10,000 downloads and no release for 730 days or more.
- The plugin supplies an http(s) repository or issue tracker, so there is somewhere to start.
- Deprecated and experimental-only plugins are left out, as are plugins whose main function is now built into QGIS. Candidates are sorted by downloads, with community votes and port difficulty available above.
- The spotlight highlights the most-voted candidate (or steps weekly through the candidate list when votes are tied).
“I need this ported” records an anonymous upvote stored in Cloudflare D1 with a signed browser cookie to stop repeat votes (no account or email required). “Offer to port” opens a prefilled issue on the plugin’s GitHub, GitLab or Gitea tracker for you to review before posting, or the plugin’s own tracker elsewhere. Nothing is posted for you, and GIS Plugins does not track who is porting what.
How difficulty is estimated
Each badge is an automatic estimate. The candidate’s current release is downloaded from plugins.qgis.org and its code is scanned without being run. Points are added once per category:
- Direct PyQt5 imports: +1 (imports through
qgis.PyQtadd nothing). - A Qt subsystem removed in Qt 6, such as QtWebKit: +3, and always Hard.
- Removed Qt, PyQt or QGIS APIs: +3. Deprecated ones: +1.
exec_(): +1 for 2 or more calls. Unscoped enums such asQt.UserRole: +1 for 6–20, +2 for more.- The plugin’s own Python code: +1 over 1,500 lines, +2 over 3,000, +4 over 6,000. Generated files, tests, vendored code and release tooling are not counted.
- Bundled executable or library code: +1, and always Hard for native binaries (.so, .pyd, .dll, .dylib, executables).
- Processing: +1, or +2 for a plugin that implements a Processing provider. Qt Designer
.uifiles: +1 for 2–3, +2 for more.
Easy is 0–3 points, Medium 4–7 and Hard 8 or more. Not assessed means the release has not been scanned yet, the download failed, the ZIP is over 25 MiB (200 MiB unpacked) or unsafe, or its code could not be parsed. Unscanned plugins are never shown as Easy.
API rules (version 2026-10)
- Removed: QRegExp (use QRegularExpression) source
- Removed: QDesktopWidget (use QScreen) source
- Removed: QMatrix (use QTransform) source
- Removed: qApp (use QApplication.instance()) source
- Removed: The PyQt Qt module source
- Removed: Qt.MidButton, Qt.TextColorRole, Qt.BackgroundColorRole, QPainter.HighQualityAntialiasing source
- Removed: activated[str]-style signal overloads source
- Removed: QFontMetrics.width() (use horizontalAdvance()) source
- Removed: QGIS 2 APIs (QgsMapLayerRegistry, legendInterface, QgsMessageLog.INFO) source
- Deprecated: QVariant.Int-style type constants (QGIS 4 shims them; use QMetaType.Type) source
- Deprecated: Compiled Qt resources (PyQt6 has no pyrcc) source
- Deprecated: QgsWkbTypes enums (use Qgis.WkbType and Qgis.GeometryType) source
- Deprecated: QgsMapLayer.VectorLayer-style layer types (use Qgis.LayerType) source
- Deprecated: QgsProcessing.Type* source types (use Qgis.ProcessingSourceType) source
- Deprecated: QgsVectorFileWriter.writeAsVectorFormat/V2 (use writeAsVectorFormatV3) source
- Deprecated: QgsCoordinateReferenceSystem(int) (use fromEpsgId or "EPSG:n") source
- Deprecated: QgsCoordinateTransform(source, destination) without a transform context source
- Deprecated: QVariant() as NULL (use qgis.core.NULL) source
An estimate from code patterns, not a review: it can miss work and overcount easy fixes. Read the code and talk to the maintainer before you commit to a port.