bufferscape 1.3.2

The north arrow pointed south

All three map functions drew the arrowhead on the southern end of the shaft, so the arrow under the “N” pointed down. It now points north – to true north, read from the map’s coordinate system at the sampling point, so it stays right in a projection whose grid is not aligned with the meridians. In UTM the difference from grid north is the meridian convergence, about 0.7 degrees at Maré and invisible at figure scale; in Web Mercator, used under Esri imagery, it is zero.

Hatching was incomplete on concave polygons

A hatch line crossing a concave polygon more than once kept only its first piece. Textures therefore covered only part of the polygons they belonged to – most visibly the grey hatching of unclassified ground, which is almost always concave – and every map emitted a run of “keeping first linestring only” warnings. Every piece is now drawn. This affected drawing only: areas, weights, counts and distances were never involved.

The batch log reported the wrong radius

batch_composition() printed, for each file, the coverage of its first site at the smallest radius – 20 m with the default radii – while the maps, the summary sheet and the end-of-run coverage check all use the largest. A file with three sites showed one. Every site is now reported, at the primary radius:

[ok]   SITE_1eSITE_2 @ 50 m : SITE_1 51.6% classified, 37 polygons,
       21 tanks (1 unsealed) | SITE_2 36.1% classified, 27 polygons, ...

Coverage figures read from earlier logs were therefore 20 m figures for the first site of each file. The workbook was always correct.

Smaller fixes

bufferscape 1.3.0

Surfaces digitised twice are detected

A surface traced a second time counted twice, so a buffer that should read near 100% classified could report 191%. Polygons with identical geometry are now collapsed to one on read. Genuine overlap – a tree crown over a roof – is different geometry and is untouched.

Which copy survives depends on what it carries: if only one has a class code that one is kept; if the codes conflict the first is kept and the conflicting pair is named, because silently choosing between two interpretations would hide a decision the interpreter should make.

A new coverage_flag column marks any site still above 120% after that, so duplication the geometric test cannot see is reported rather than passed on quietly. Coverage above 100% remains legitimate and is not flagged.

The aerial palette has been rebuilt

Several classes were too close to tell apart, most visibly main thoroughfare against formal parking. Every pair is now either at least 14 CIELAB units apart or separated by a texture; measured across all 378 pairs, none is ambiguous.

Where two classes genuinely look alike from above, the texture carries meaning: a grid for parking bays, vertical strokes for the deep shadow of an alley, horizontal strokes for the linear flow of a channel, a fine diagonal for a finished slab. Eight of the 28 classes now carry a texture, up from four.

Legend

Class labels were cut at 32 characters, losing the end of names such as “Fibre-cement or asbestos sheeting”. The column is wider and labels now run to 40 characters, which covers the longest name in the schema.

Wording

“unsealed tank (oviposition risk)” is now “apparently unsealed tank”, and “sealed tank” is “apparently sealed tank”. What aerial imagery supports is an appearance, not a determination: a lid is not always visible from above, and the figures should not claim more than the method can deliver.

bufferscape 1.2.1

Four failures reported from a 44-file field run, all fixed. Two of them could end a long run with nothing usable on disk.

bufferscape 1.2.0

The nomenclature now matches the published Table 1

mare_categories previously held 29 classes in 12 groups. The article and protocol define 28 classes in nine thematic groups, with class 29 (PVC roofing) removed once the nomenclature stabilised and class 24 revised. The dataset is now identical to Table 1: same identifiers, same English labels, same grouping. Identifiers stayed contiguous, so no surviving class was renumbered.

This changes output column names. Columns are built as id_category_description, and category now carries the nine thematic groups (roofing, vegetation, circulation_parking, …) rather than the earlier twelve Portuguese labels. Analyses that referred to the old column names must be updated. Areas, weights and counts are unchanged.

Any data still coded with class 29 will be reported as an unrecognised code rather than silently dropped, which is the intended behaviour.

bufferscape 1.1.0

GeoPackage support

Fixes

Renamed arguments

bufferscape 1.0.3

bufferscape 1.0.2

bufferscape 1.0.1

bufferscape 1.0.0

First release.

Core

Classification

Methods diagnostics

Figures

Export