{"name": "Change Describer", "package_name": "Change_describer", "description": "Compare two versions of any vector layer and get the differences written out in plain English \u2014 added, deleted and modified features, attribute changes field by field, and geometry edits measured as area, length or distance moved. Results come as a report table, a colour-coded change layer, a CSV file and an HTML summary.", "about": "COMPARE TWO VERSIONS OF A LAYER AND SEE EXACTLY WHAT CHANGED\r\nChange Describer answers the question every GIS team asks sooner or later: what is different between this version of the data and the previous one? Instead of a raw diff, it produces readable sentences you can paste into a change log, a permit file, a QA report or an email.\r\n\r\nExample of a generated description:\r\n\"'height' changed from 12 to 15; 'zoning' gained: RES; geometry edited (area 1200.00 m2 -> 1350.00 m2, +150.00 m2)\"\r\n\r\nWORKS WITH ANY VECTOR LAYER\r\nPoints, lines, polygons and attribute-only tables. Parcels and cadastral data, land use and zoning, utility networks, pipelines, addresses, survey points, habitats, assets, infrastructure inventories \u2014 any dataset that gets revised over time. The two versions may sit in different formats: a GeoPackage compared against a Shapefile, PostGIS against GeoJSON, a file downloaded today against last year's export.\r\n\r\nHOW IT WORKS\r\n1. Load both versions of the dataset into your QGIS project \u2014 the previous one and the current one.\r\n2. Pick the field that identifies each feature (parcel number, asset ID, code). The plugin checks straight away whether the values are unique and complete in both layers, and tells you if they are not.\r\n3. Tick the fields that matter. Fields holding a list of codes (\"RES, COM, IND\") can be marked as multi-value and are compared as sets, so reordering is not reported as a change.\r\n4. Run it and read the report.\r\n\r\nWHAT YOU GET\r\n- Report table: one row per change, with a ready-made English description, the list of changed fields and the measured geometry difference.\r\n- Change layer: only the features that changed, drawn on the map and colour-coded \u2014 green for added, red for deleted, cyan for modified. Deleted features keep their old geometry, so what disappeared is still visible.\r\n- CSV export: UTF-8 with BOM, opens correctly in Excel.\r\n- HTML summary: counts of added, deleted and modified features, which fields changed most often, and examples.\r\n\r\nDETAILS THAT SAVE TIME\r\n- Features are matched by a field, not by feature order or internal ID, so re-saving a file does not break the comparison.\r\n- NULL, empty string and whitespace are treated as the same absent value, which keeps the report free of false positives.\r\n- Numeric tolerance for data that has been through a format that rounds values.\r\n- Optional case-insensitive matching for both keys and text values.\r\n- Geometry changes are described in fitting terms: area for polygons, length for lines, distance moved for points. Measurements use the project ellipsoid, so they are correct in any coordinate reference system.\r\n \r\nTYPICAL USES\r\nChange detection and data versioning, quality control after a bulk edit or a data migration, verifying what a contractor delivered, documenting revisions of a plan or a permit drawing, building a change log for a dataset you publish regularly, and audit trails for regulated data.\r\n\r\nREQUIREMENTS\r\nQGIS 3.22 or newer. No external software, accounts or API keys.", "homepage": "https://github.com/gorniakgrzegorz/Change_describer", "repository": "https://github.com/gorniakgrzegorz/Change_describer", "tracker": "https://github.com/gorniakgrzegorz/Change_describer/issues", "author": "Grzegorz G\u00f3rniak", "tags": ["compare", "comparison", "diff", "difference", "differences", "change detection", "changes", "change log", "versions", "versioning", "revision", "attribute", "attributes", "geometry", "audit", "audit trail", "quality control", "quality assurance", "qa", "validation", "report", "reporting", "csv", "html", "monitoring", "vector", "layers", "geopackage", "shapefile", "data quality", "before after"], "downloads": 82, "latest_version": "1.0.0", "versions": [{"version": "1.0.0", "experimental": false, "qgis_min": "3.22.0", "qgis_max": "4.99.0", "downloads": 82, "uploaded_by": "gorniakgrzegorz", "upload_datetime": "2026-08-25T01:13:23.947913"}]}