The Landscape Package
One JSON file carries a woodlot's corridor layers between the mapping workspace, VergeCommon and your own tools. Lengths are meters and areas are square meters. Coordinates are WGS84 longitude and latitude.
Layers
| Layer | Geometry | Properties that matter |
|---|---|---|
coreAreas | Polygon | dfm_id; core_class: old-growth-candidate, old-growth-verified (needs evidence_id), riparian-core or reserve |
retained | Polygon | Retained forest: riparian buffers, corridors, retained stands |
roads | Line or polygon | width_m for a centerline, or the package's roadWidthM |
water | Polygon | Open water; buffer stream centerlines into polygons first |
crossings | Point | passage: verified, assumed or none |
treatments | Polygon | dfm_id, period, intensity; inside a corridor only with corridor_permitted, a light intensity and a reason |
boundary | Polygon | Outline of the planning area; carried for reference, not used by the check |
parcels | Polygon | consent: covered or none; corridor on covered parcels counts as committed |
A minimal package
{
"dfm_package": "1.0",
"crs": "EPSG:4326",
"units": { "length": "m", "area": "m2" },
"params": {
"minWidthM": 100,
"minWidthSource": "Co-op woodland policy, section 4",
"roadWidthM": 6
},
"sources": { "roads": { "title": "County road centerlines", "date": "2026-05-01" } },
"layers": { "coreAreas": [], "retained": [], "roads": [], "water": [],
"crossings": [], "treatments": [], "parcels": [], "boundary": [] }
}
Run the check with the open-source dfm-core package. It is not on npm yet; install it from the repository until it is published.
import { checkConnectivity, fromLandscapePackage } from '@viridis/dfm-core';
const result = await checkConnectivity(fromLandscapePackage(pkg));
// result.status is 'pass', 'fail' or 'incomplete', with reasons