Products QGIS Scripts QGIS Package
Composite of QGIS outputs — classified Canopy Height Model, NDVI raster, map layout, and lake volume polygon

QGIS Script Bundle · 16 Scripts

Drone Mapping, Terrain & Multispectral Analysis QGIS Package

Every terrain, vegetation, and GIS utility script we run on real drone survey and plantation mapping projects — 16 Python scripts in one download.

Built for drone surveyors and GIS analysts who don't want to piece together individual scripts one workflow at a time. Every script is self-contained, runs in the QGIS Python Console, and adds its output to the project automatically.

$99 USD One-time purchase · 16 scripts · Instant download

Save $221 vs buying all 16 individually ($320)

Buy on Gumroad

What you get

generate_hillshade.py
generate_chm.py
style_chm.py
generate_contours.py
generate_contour_level_polygon.py
calculate_lake_volume.py
generate_canopy_mask.py
canopy_ndvi_median_calc.py
tree_heights_from_dsm_dtm.py
raster_mask_generator.py
zonal_statistics.py
plot_tree_attributes_histograms.py
buffer_active_layer.py
classify_layer.py
create_map_layout.py
grid_generation.py
README with setup and dependency notes
Free updates via Gumroad

All 16 scripts

Terrain Analysis

generate_hillshade.py

Coloured Hillshade

Publication-ready viridis hillshade from any DTM or DSM. Multidirectional shading, auto-downsampling, smart normalisation.

generate_chm.py

Canopy Height Model

Subtracts DTM from DSM to produce a height-above-ground raster, auto-resampling mismatched resolutions.

style_chm.py

CHM Height Classification

8 classified height bands from bare ground through tall canopy, exported with legend, north arrow, and scale bar.

generate_contours.py

Smooth Contour Lines

Gaussian-smoothed, Chaikin-rounded contour lines from a DTM. Major contours labelled with elevation.

generate_contour_level_polygon.py

Water-Level Fill Polygons

Filled polygons of every DTM pixel at or below a target elevation — flood or low-lying area mapping.

calculate_lake_volume.py

Lake / Crater Volume

Water storage volume in m³, litres, and acre-feet from a DTM and boundary polygon, plus a depth raster.

Vegetation & Field Analysis

generate_canopy_mask.py

Canopy Mask Generator

Binary canopy/ground raster from DSM − DTM. Prerequisite for canopy-only NDVI.

canopy_ndvi_median_calc.py

Canopy NDVI Median

Median NDVI per polygon plot using only canopy pixels — ignores bare soil.

tree_heights_from_dsm_dtm.py

Tree Height Extractor

Adds a height field (DSM − DTM) to point or polygon features. Auto CRS alignment.

raster_mask_generator.py

Raster Threshold Mask

Keeps only pixels above or below a threshold; everything else becomes NoData.

zonal_statistics.py

Zonal Statistics

Mean, median, min, or max of any raster per polygon zone as a new attribute field.

plot_tree_attributes_histograms.py

Attribute Histogram Plotter

Distribution histogram of any numeric field, auto-detect columns, group by category, export as PNG.

GIS Utilities

buffer_active_layer.py

Buffer Active Layer

Expands point or polygon features outward by a configurable radius in metres.

classify_layer.py

Layer Colour Classifier

Yellow → green graduated style on any numeric field. Discrete or percentile.

create_map_layout.py

A4 Map Layout Generator

Auto-generates an A4 layout with scale bar, north arrow, legend, and date title.

grid_generation.py

Survey Grid Generator

Equal-sized rectangular cells clipped to polygon boundaries. Auto UTM CRS.

Who it's for

  • Drone survey professionals who want the full workflow — terrain, vegetation, and reporting — without buying scripts one at a time
  • GIS analysts and consultants who take on varied projects and need terrain, canopy/NDVI, and cartographic tools on hand
  • Anyone processing drone survey data who is tired of manual QGIS renderer tweaking for the same recurring outputs

Requirements

QGIS 3.28 or newer — (LTR recommended)
numpy, rasterio, scipy — bundled with QGIS or via OSGeo4W Shell
shapely, pyproj — needed for a few scripts — install via OSGeo4W if needed
DSM/DTM rasters + MS bands — from drone survey output, depending on script

How to use it

  1. 1

    Load your rasters/vectors into QGIS and check (tick) or select as active the layer each script needs.

  2. 2

    Open Plugins → Python Console → Show Editor.

  3. 3

    Open the script you need — each has a HOW TO USE block at the top with exact input instructions.

  4. 4

    Adjust parameters at the bottom of the script.

  5. 5

    Click Run — all outputs are generated and added to your QGIS project automatically.

Built-in instructions in every script

Each script has a HOW TO USE block at the top that documents the active layer, checked layers, output, log path, and configurable parameters — so you always have the reference without needing to open external documentation.

Get the Drone Mapping, Terrain & Multispectral Analysis QGIS Package

16 scripts, one download. Every workflow we use on real drone survey projects, ready to run.