Obtaining Lidar Data & Creating Terrain
Home > Guides > Building GSPro Courses > Lidar Data & Overlays
Overview
This section covers the free QGIS-based workflow for obtaining lidar data, creating heightmaps, generating satellite overlays, and importing everything into Unity. This is the foundation of your course - getting this right is critical.
1. Lidar to Terrain Free Process
Lidar Creation Overview, Intro, and Best Practices
📺 Lidar Creation Overview, Intro, and Best Practices (theory)
Essential viewing before starting the lidar workflow. Covers the complete process and common pitfalls.
Key Topics:
- Inner vs outer terrain strategy
- Resolution considerations
- Data sources and quality
- CRS (Coordinate Reference System) importance
2. QGIS Setup
Downloading and Unpacking the QGIS Support Files
📺 Downloading and Unpacking the QGIS Support Files
Download the OPCD-provided QGIS support files that streamline the workflow.
Support Files Include:
- Pre-configured QGIS project templates
- Batch processing scripts (.bat files)
- CRS presets for common regions
Installing QGIS
Install the free QGIS software (Geographic Information System).
QGIS Setup
Configure QGIS with the proper settings and plugins for course building.
3. Project Setup
Project Folders
Set up your QGIS project folder structure for organized data management.
Recommended Folder Structure:
MyCourse/QGIS/
├── lidar_raw/
├── lidar_processed/
├── overlays/
├── shapefiles/
└── exports/
Opening QGIS File and Loading Course Location
📺 Opening QGIS File and Loading Course Location
Open your QGIS project and locate your course using web mapping services.
Getting an Image of the Course Layout
📺 Getting an Image of the Course Layout
Capture a reference image of your course layout for planning your inner and outer terrain boundaries.
4. Downloading and Preparing Lidar Data
Downloading Lidar
Step-by-step guide to finding and downloading lidar data for your course location.
Common Data Sources:
- USA: USGS Earth Explorer, NOAA Digital Coast
- UK: Environment Agency Lidar Data
- Canada: GeoGratis
- Australia: ELVIS
- Global: OpenTopography
Data Formats:
- LAZ/LAS (point cloud) - preferred
- DEM/DTM (pre-processed heightmap) - alternative
Setting the Correct CRS for Your Project
📺 Setting the Correct CRS for your Project
Critical step: set the coordinate reference system that matches your lidar data.
Common CRS:
- USA: State Plane or UTM zones
- Global: UTM zones based on longitude
- Match your lidar metadata!
5. Creating Shapefiles (Defining Your Terrain Boundaries)
Creating Inner and Outer Shapefile Layers
📺 Creating Inner and Outer Shapefile Layers
Create polygon layers that define your course boundaries.
Inner vs Outer:
- Inner: The playable course area (high detail)
- Outer: Surrounding landscape (lower detail for context)
Inner Plot Setup
Draw your inner boundary polygon around the course you want to build.
Best Practices:
- Include all playable holes
- Add buffer around greens/tees
- Keep it tight to maintain performance
- Typical size: 500m x 1000m to 1km x 2km
Outer Plot Setup
Draw your outer boundary for the surrounding landscape.
Best Practices:
- Provides visual context
- 2-4x larger than inner
- Lower resolution is fine
- Helps with orientation
6. Processing Lidar Data
Converting LAZ/LAS Point Clouds to a Merged TIF in CloudCompare
📺 Converting LAZ/LAS Point Clouds to a Merged TIF in CloudCompare
If you have point cloud data (LAZ/LAS files), use CloudCompare to convert to raster format.
CloudCompare Workflow:
- Import all LAZ/LAS files
- Merge point clouds
- Rasterize to DEM
- Export as GeoTIFF
Converting DEM/DTM to a Merged TIF in QGIS
📺 Converting DEM/DTM to a Merged TIF in QGIS
If you have pre-processed DEM/DTM files, merge them in QGIS.
7. Creating Heightmaps
Creating Our Outer Heightmaps in TIF Format
📺 Creating Our Outer Heightmaps in TIF Format
Clip your lidar data to the outer boundary and export as GeoTIFF.
Creating Our Inner Heightmaps in TIF Format
📺 Creating Our Inner Heightmaps in TIF Format
Clip your lidar data to the inner boundary and export as GeoTIFF.
Getting the Max/Min Values For Our Heightmaps
📺 Getting the Max/Min Values For Our Heightmaps
Critical step: record the elevation range (min/max) for your heightmaps. You'll need these values in Unity.
Record These Values:
- Inner heightmap: min elevation, max elevation
- Outer heightmap: min elevation, max elevation
- Keep them in a text file in your project folder
8. Creating Satellite Overlays
Creating Google and Bing Inner and Outer Overlays in TIF Format
📺 Creating Google and Bing Inner and Outer Overlays in TIF Format
Capture satellite imagery from both Google and Bing for comparison.
Why Both?
- Different update dates
- Different resolutions in different areas
- Bing often has better grass/fairway detail
- Google sometimes has better tree/shadow detail
9. Converting to Unity-Compatible Formats
Converting Inner and Outer Heightmaps to RAW Format
📺 Converting Inner and Out Heightmaps to RAW Format
Convert your GeoTIFF heightmaps to RAW format for Unity import.
RAW Format:
- Unity's native heightmap format
- 16-bit grayscale
- Exact resolution must be power of 2 + 1 (e.g., 1025x1025, 2049x2049)
Converting Google and Bing Overlays to JPG Format
📺 Converting Google and Bing Inner and Outer Overlays to TIF to JPG Format
Convert satellite overlays to JPG for use in Unity.
Format Requirements:
- JPG format (compression reduces file size)
- Match heightmap resolution
- Same coordinate alignment
Alternative: TIF to RAW and JPG in QGIS (Appendix B)
📺 Alternative conversion of TIF to RAW and JPG in QGIS
Alternative method using QGIS instead of batch scripts.
Troubleshooting .bat Files
If the batch conversion scripts aren't working, watch this troubleshooting guide.
10. Importing into Unity
Importing the RAW Heightmaps and Overlays Into Unity
📺 Importing the RAW Heightmaps and Overlays Into Unity
Import your processed heightmaps and satellite overlays into your Unity project.
Creating A Scene For Your Terrain
📺 Creating A Scene For Your Terrain
Set up a new Unity scene specifically for your course.
Creating A Terrain For Your Scene
📺 Creating A Terrain For Your Scene
Create Unity terrain objects and apply your heightmap data.
Key Settings:
- Terrain width/length (matches your real-world dimensions)
- Terrain height (max elevation - min elevation)
- Heightmap resolution
Adding An Overlay To The Terrain
📺 Adding An Overlay To The Terrain
Apply your satellite imagery as a texture on the terrain.
Verifying the Scale of Your Terrain and Overlays
📺 Verifying the Scale of Your Terrain and Overlays
Critical quality check: ensure your terrain dimensions match real-world measurements.
Verification Methods:
- Measure known distances (e.g., driving range length)
- Compare hole lengths to scorecards
- Check fairway widths
Lining Up Your Plot (Outer) with Your Terrain (Inner)
📺 Lining Up Your Plot (Outer) with Your Terrain (Inner)
Align your outer terrain with your inner terrain for seamless transitions.
11. Using the OPCD Prepared Lidar Package (V4)
Importing Your Prepared Lidar Package Into Unity (V4)
📺 Importing Your Prepared Lidar Package Into Unity (V4)
Alternative workflow: if someone has prepared a lidar package for you, import it directly.
Terrain Theory
Deeper dive into Unity terrain concepts and optimization.
12. HillShade Techniques (Advanced)
HillShade is a powerful technique for aligning satellite overlays precisely with lidar terrain.
HillShade Intro and Theory
Understanding what HillShade is and why it's useful for alignment.
HillShade Benefits:
- Visualizes terrain relief
- Shows shadows and contours
- Helps align satellite imagery to actual terrain
- Reveals details hidden in flat satellite images
How to Create a HillShade in QGIS
📺 How to Create a HillShade in QGIS
Generate a HillShade layer from your lidar heightmap.
Using HillShade to Align Your Satellite Overlays
📺 Using HillShade to Align your Satellite Overlays
Use HillShade as a reference layer to perfectly align satellite imagery.
Workflow:
- Generate HillShade from lidar
- Overlay satellite image in QGIS
- Adjust satellite image transparency
- Align features (bunkers, mounds, cart paths) with HillShade shadows
- Export aligned overlay
✅ Checklist Before Moving Forward
Before proceeding to Inkscape splining, verify:
- Downloaded lidar data for your course location
- Created inner and outer boundary shapefiles
- Generated inner and outer heightmaps (TIF and RAW)
- Generated Google and Bing satellite overlays (JPG)
- Recorded min/max elevation values
- Imported terrains into Unity successfully
- Verified terrain scale matches real-world dimensions
- Outer and inner terrains are properly aligned
Common Issues and Solutions
Problem: Lidar data not available for my course
Solution: Consider using Google Earth elevation data or lower-resolution SRTM data as fallback
Problem: Heightmaps look wrong in Unity
Solution: Double-check min/max elevation values and terrain height settings
Problem: Satellite overlays don't align with terrain
Solution: Use HillShade technique to fine-tune alignment in QGIS
Problem: Batch scripts (.bat files) not working
Solution: Watch the troubleshooting video or use the QGIS alternative method
What's Next?
With your terrain imported into Unity, you're ready to start splining your course features in Inkscape!
Next Guide: Inkscape - Splining Your Course →
Navigation:
← Back: Getting Started | Next: Inkscape Splining →
