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
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.
-
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.
-
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.
-
After the visit
The toolkit builds the maps and the results. Guy examines the maps and the results.
-
Handover
At this step you get the offline atlas and the printed pages.
-
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.
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.
-
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 -
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.
-
Examine survey.yaml
Run
survey check.survey check -s example-block -
Get the lot boundary
Run
survey sitewith--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 -
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 -
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 -
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.
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 FILEThe 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.
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.
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