Toolkit release 1 is available

See your property in one survey.

The page is for owners of rural properties and for other persons who need to know the survey results.

You get an offline atlas and printed pages. The offline atlas links every result. Each result states its limits.

Limits. The toolkit works only in NSW at this time. The lot boundary is a reference. A registered surveyor did not make the lot boundary. The flow lines are a model.

The toolkit uses public online mapping, aerial imagery, satellite imagery, and LiDAR. The toolkit uses other geospatial data, direct observation on the ground, and landowner knowledge. The toolkit uses these sources together.

Wholistic makes a toolkit for rural property surveys and reports. You can use the toolkit for more than one property. Toolkit release 1 is complete. More modules come next.

The problem

The facts about a block sit in separate places. The places are public maps, imagery, LiDAR, the ground, and the landowner. The toolkit joins these facts into one survey.

What goes into a survey

How the toolkit makes a survey Public data NSW Spatial Services cadastre ELVIS LiDAR, imagery, rainfall + Drone Flights where useful Optional terrain model + Field observations Landowner knowledge Field notes and photos Survey Boundary, terrain, observations Offline atlas. Limits for each result.
Public data and field observations go into the survey. The survey uses a drone flight where a flight is useful. A drone terrain model can supply the terrain. Field observations include landowner knowledge, field notes, and photos.

What a survey gives you

A survey gives you these results.

Lot boundary

You get the lot boundary for any NSW lot and plan. The source is the NSW Spatial Services cadastre.

Terrain

You get slope, drainage lines, contours, and flow lines.

Field observations

You get field observations. The field observations include landowner knowledge, field notes, places, and photos.

Offline atlas

You get one offline atlas. The offline atlas links every result. Open the offline atlas in a browser. The offline atlas does not need the internet.

Printed pages

You get printed pages at handover, with the offline atlas.

Data integrity

You get SHA-256 manifests for the source data and the results. You can examine the source data and the results at a later date.

How a survey works

A survey follows five steps.

  1. Before the visit

    The work starts with public data. The public data includes the lot boundary and the ELVIS LiDAR terrain. The public data includes the aerial imagery, the satellite imagery, and the BOM rainfall records.

  2. On the visit

    Guy walks the property with the landowner. Guy makes drone flights where a flight is useful. The visit includes field notes and photos.

  3. After the visit

    The toolkit builds the maps and the results. Guy examines the maps and the results.

  4. Handover

    At this step you get the offline atlas and the printed pages.

  5. Revisit

    A second visit compares the results with the conditions on the property. The second visit updates the results.

Toolkit release 1

Available now

The modules in this section are available now.

survey init

Run this command to make a new private survey folder for a property. The command uses a template to make the folder.

survey.yaml

Each property has one survey.yaml file. The file records the lot and the plan, the coordinate system, the data paths, and the modules to run.

Lot boundary

The toolkit gets the lot boundary for any NSW lot and plan. The source is the NSW Spatial Services cadastre. The toolkit works only in NSW at this time. The lot boundary is a reference. A registered surveyor did not make the lot boundary.

Terrain

The toolkit builds slope, drainage lines, contours, and flow lines from an ELVIS LiDAR DEM or a drone terrain model. The toolkit made the terrain from the reference ELVIS LiDAR in 6 seconds. The flow lines are a model.

Field observations

The toolkit records landowner knowledge and field notes. The field observations include places and photos.

Data integrity

The toolkit writes SHA-256 manifests for the source data and the results. You can use a manifest to examine the files at a later date.

Offline atlas

The survey report command writes the offline atlas.

Tests

51 tests pass on Python 3.11 and on Python 3.13.

Output rules

Each public query saves the raw response with its time and SHA-256. Each output README has the sections Key results, Files, Limits, and Rebuild.

How to use the toolkit

The survey command runs the toolkit. Install the toolkit first. Then make a private survey folder for one property.

One toolkit holds the code, the tests, the templates, and the documents. You can use the toolkit for more than one property. The toolkit holds no property data. The toolkit files are private at this time.

Each property has one private survey folder. The private survey folder holds survey.yaml, the source data, the field observations, and the results. Property data stays in that private survey folder.

Toolkit and survey folders One toolkit holds the code, the tests, the templates, and the documents. You can use the toolkit for more than one property. The toolkit holds no property data. Each private survey folder uses the one toolkit. Each private survey folder holds survey.yaml, the source data, the field observations, and the results. Run survey init <dir>. Then edit survey.yaml. Then run survey check. Then run survey site --fetch. Then run survey terrain. Then run survey observe. Then run survey report. The survey report command writes outputs/index.html. That file is the offline atlas. The file is in the outputs folder. Toolkit and survey folders Each private survey folder uses the one toolkit. Toolkit Re-usable code tests templates documents No property data Each survey folder Survey folder Private survey.yaml source data observations outputs Survey folder Private survey.yaml source data observations outputs Survey folder Private survey.yaml source data observations outputs Command sequence Run this workflow for one property. 1 survey init <dir> Make the survey folder. 2 Edit survey.yaml After survey init. 3 survey check Check survey.yaml and list the sources. 4 survey site --fetch Get the lot boundary and its area. 5 survey terrain Make the terrain outputs. 6 survey observe Add field observations. 7 survey report Write the offline atlas. writes outputs/index.html Offline atlas. In the outputs folder.
Edit survey.yaml after survey init and before survey check. The survey report command writes the offline atlas at outputs/index.html.

Install

Run this command in the toolkit folder.

python3 -m pip install -e '.[test]'

Use Python 3.11 or a later version of Python. You need numpy, rasterio, Pillow, and PyYAML. This command gives you the survey command.

Workflow

Do these steps in this order. Use -s with each command. Set -s to the private survey folder or to survey.yaml. The survey init command uses the name of the new private survey folder.

  1. Make a private survey folder

    Run survey init. The command makes a new private survey folder. The folder has a survey.yaml file from the template.

    survey init example-block
  2. Edit survey.yaml

    Edit survey.yaml in the private survey folder. Set the property name, the state, the lot, the plan, the crs, the modules, and the sources.

  3. Examine survey.yaml

    Run survey check.

    survey check -s example-block
  4. Get the lot boundary

    Run survey site with --fetch. The command gets the lot boundary from the NSW Spatial Services cadastre. The command gives the lot area.

    survey site -s example-block --fetch
  5. Make the terrain

    Run survey terrain. The command makes slope, aspect, hillshade, flow, contours, and flow lines from the ELVIS LiDAR DEM. The command reads an ELVIS LiDAR DEM or a drone terrain model. DEM means digital elevation model. ELVIS LiDAR comes from Geoscience Australia.

    survey terrain -s example-block
  6. Add field observations

    Run survey observe. The flag form adds one field observation. The csv form can add many field observations from a file.

    survey observe -s <folder or survey.yaml> --by NAME --category CATEGORY --note "NOTE" --lon LON --lat LAT
  7. Write the offline atlas

    Run survey report. The survey report command writes the offline atlas at outputs/index.html.

    survey report -s example-block

Run every module

You can use one command in place of the steps above. Edit survey.yaml first. Then run survey all with --fetch.

survey all -s example-block --fetch

The survey all command runs all modules. Then the survey all command writes the offline atlas.

Example survey.yaml

Use these keys: property name, state, lot, plan, crs, modules, and sources. The lot in this example is 7. The plan in this example is DP000000.

Set the lot key to the lot for the property. Set the plan key to the plan for the property. Set the crs key to the coordinate system for the property. The paths in the sources key are examples.

Example of survey.yaml. The lot is 7. The plan is DP000000.
property:
  name: Example block
  state: NSW
  lot: "7"
  plan: "DP000000"
crs: EPSG:28356
modules:
  - site
  - terrain
  - observations
  - report
sources:
  lidar: data/lidar
  drone: data/drone
property name
The name of the property. Put the name under property.
state
The state for the property. Toolkit release 1 uses NSW.
lot
The lot identifier. This example uses 7.
plan
The plan identifier. This example uses DP000000.
crs
The coordinate system. Use an EPSG code for a projected coordinate system. This example uses EPSG:28356.
modules
The modules to run. This example uses site, terrain, observations, and report.
sources
Set each data path to the path for that source data. The provider list is under Data sources. Those names are not path keys.

Example observe command

The survey observe command records landowner knowledge and field notes. The flag form adds one field observation. The csv form can add many field observations from a file.

survey observe -s <folder or survey.yaml> --by NAME --category CATEGORY --note "NOTE" --lon LON --lat LAT

Give --by, --category, --note, --lon, and --lat on the flag form. Do not give those flags with --csv FILE. --date, --confidence, --place, and --photo are optional on the flag form. Use --by for the name of the person. Use --category for the subject of the field observation. Use --note for the text of the field observation. Use --lon for the longitude. Use --lat for the latitude. Use --date for the date of the field observation. Use --confidence for the certainty of the field observation. Use --place for the place name. Use --photo for the photo file. You can add field observations from a comma-separated value (CSV) file. FILE is the path to the CSV file.

survey observe -s <folder or survey.yaml> --csv FILE

Run survey observations to show the observations table.

survey observations -s example-block

Command reference

Set -s in the same way as in Workflow.

  • survey init <dir> The command makes a new private survey folder from a template.
  • survey check -s <folder or survey.yaml> The survey check command examines survey.yaml. The command shows the source data paths.
  • survey site -s <folder or survey.yaml> [--fetch] The command gets the lot boundary from the NSW Spatial Services cadastre. See the survey site step for the lot area.
  • survey terrain -s <folder or survey.yaml> The command makes slope, aspect, hillshade, flow, contours, and flow lines from the ELVIS LiDAR DEM.
  • survey observe -s <folder or survey.yaml> --by --category --note --lon --lat [--date --confidence --place --photo] The flag form adds one field observation.
  • survey observe -s <folder or survey.yaml> --csv FILE The csv form adds field observations from a CSV file.
  • survey observations -s <folder or survey.yaml> The command shows the observations table.
  • survey integrity create -s <folder or survey.yaml> The command makes a SHA-256 manifest.
  • survey integrity verify -s <folder or survey.yaml> The survey integrity verify command examines the SHA-256 manifest.
  • survey report -s <folder or survey.yaml> The survey report command writes the offline atlas at outputs/index.html.
  • survey all -s <folder or survey.yaml> [--fetch] The survey all command runs all modules. Then the survey all command writes the offline atlas.

Folder layout

The toolkit writes the results in the private survey folder.

example-block/
  survey.yaml
  source data
  field observations
  outputs/
    index.html
survey.yaml
The survey.yaml file for the property.
source data
The private survey folder holds the source data. The sources key gives the data paths.
field observations
The private survey folder holds the field observations. The field observations include places and photos.
raw response
Each public query saves the raw response. The raw response has the time and the SHA-256 value.
outputs/index.html
The offline atlas. Open the offline atlas in a browser.
README
Each output has a README. The README sections are Key results, Files, Limits, and Rebuild.
SHA-256 manifest
The manifest records the source data and the results.

Run survey integrity create to make the manifest.

survey integrity create -s example-block

Run survey integrity verify to examine the manifest.

survey integrity verify -s example-block

Limits

NSW
The toolkit works only in NSW at this time.
Lot boundary
The lot boundary is a reference. A registered surveyor did not make the lot boundary.
Flow lines
The flow lines are a model.
Results
See Rules.

Not in toolkit release 1

Planned modules

Toolkit release 1 does not include these modules. Future work includes the solar module and the vegetation and bushfire module.

Water

The water module is future work. The water design is version 3. The approval date is 15 October 2026. Toolkit release 1 does not include the water module.

Water release 1

  • Water register. One map shows every tank, dam, pump, trough, tap, spring, bore, and pipe. Each asset has an ID, a capture method, and an accuracy.
  • Pipe profiles. The toolkit builds a profile for a pipe run that a person walked. A profile shows the ground, the static head range, and the high and low points.
  • Dams. A dam result shows the catchment, a volume range, and the houses and roads below the wall.
Pipe profile with high and low points Static head range High point Pipe that a person walked Ground Low point
A profile of one walked pipe run. The line is the pipe. The filled shape is the ground. The marks show the high point and the low point. The bracket shows the static head range. The toolkit draws this profile only for a run that a person walked or traced.

Water release 2

Water release 2 shows water supply and maintenance.

  • Days of water. Days of water left per tank.
  • Outage card. The card shows the equipment that operates when the power is off.
  • Fire card. The card is for the owner and the fire brigade. The card shows the water volume, the fitting, the gate, and the turning place.
  • Flood. The module makes a flood check. The module shows the work after a flood.
  • Season sheets. The September sheet is for the dry and fire season. The February sheet is for the storm and flood season.
  • Fridge pages. Three pages for the fridge.

Later

  • Rules that may apply. The module shows rules that can apply. The module shows the rules in a list. The list is not legal advice.
  • Roof yield.
  • Pumping energy and solar pumps. The module shows the energy that the pumps use. The module shows solar pumps.
  • Irrigation demand (FAO-56).
  • Sensor imports.
  • A handover pack.

Water rules

  • Every number has a method and a range.
  • The toolkit never prints "compliant", "pass", or "OK".
  • The toolkit draws a pipe only after a person walks that pipe or traces that pipe.
  • You can tell a measured item from a reported item.
  • Each asset gets a sticker. The sticker shows the ID as large text and a QR code. The sticker does not show coordinates.

Solar

The solar module is future work. The module shows the annual solar resource and the shading. The module shows possible places for panels.

Vegetation and bushfire

The vegetation and bushfire module is future work. The module shows the canopy height. The module shows a screen for bushfire asset protection. The module shows a tree walk in rank order.

Future work list for the survey toolkit This figure is the future work list for the rural property survey toolkit. Toolkit release 1 is complete. More modules come next. Available now includes survey init and survey.yaml. Available now includes the lot boundary, the terrain, and the field observations. Available now includes data integrity and the offline atlas. Available now includes the output rules and the 51 tests on Python 3.11 and on Python 3.13. Water release 1 is future work. Water release 1 includes the water register, pipe profiles, and dams. Water release 2 is future work. Water release 2 includes the days of water left in each tank. Water release 2 includes the outage card, the fire card, the flood check, and the season sheets. Next includes solar, vegetation and bushfire, and the flood screen. Next includes drone survey, the photo map, and the 3D terrain model. Next includes energy (Victron systems), a live web map, and a client report. Next includes other states. Future work Survey toolkit Toolkit release 1 is complete. More modules come next. Available now Lot boundary Terrain Field observations Data integrity Offline atlas Planned Water release 1 Water register Pipe profiles Dams Planned Water release 2 Supply and maintenance Days of water left per tank Outage card Fire card Flood check Season sheets Next Solar Vegetation and bushfire Flood screen Drone survey Photo map 3D terrain model Energy (Victron systems) Live web map Client report Other states
The list below shows this future work.

Also on the list

The sections above show the solar module, the water module, and the vegetation and bushfire module. The list below shows the future work that is not in the sections above. The reference work gives the flood screen, the photo map from drone photo GPS, and the 3D terrain model.

  • Flood screen.
  • Photo map from drone photo GPS.
  • 3D terrain model.
  • Drone survey.
  • Energy (Victron systems).
  • Live web map.
  • Client report.
  • Other states.

Rules

Keep these rules for every survey.

Raw response

Each public query saves the raw response with its time and SHA-256.

README sections

Each output README has four sections: Key results, Files, Limits, and Rebuild.

Limits in writing

Each result states its limits.

No property data in the toolkit

The toolkit holds no property data. Property data stays in the private survey folder for that property.

The water module has more rules. See Water rules.

Data sources

The toolkit uses these sources.

  • NSW Spatial Services cadastre
  • ELVIS LiDAR (Geoscience Australia)
  • BOM rainfall gauges (Bureau of Meteorology)
  • NASA POWER solar and weather data
  • SILO climate data
  • Drone surveys made in WebODM
  • NSW imagery

Status and contact

Status
The status is early. Toolkit release 1 is complete. Two clients wait for their first surveys. See the future work list for the next modules.
Toolkit release 1
The completion date of toolkit release 1 is 15 October 2026. Toolkit release 1 is available now.
Water design
The water design is version 3. See Planned modules for the approval date.
Reference property
Guy Stewart first made the toolkit on a reference property. Guy Stewart tested the toolkit on that property. The reference property is on the NSW North Coast. The area of the property is 3.8 ha. The toolkit gives the reference lot boundary area as 38,373.534 m2.
Tests
The Tests card gives the test result.
Operator
Guy Stewart, Wholistic, Nimbin, NSW North Coast, Australia.
Contact
wholistic.com.au