Tuesday, August 18, 2026

Customizing the Grid/Graticle Labels in QGIS

 To customize your grid/graticle coordinate labels to display with custom text and a unit suffix, you need to use a custom expression in the QGIS Print Layout.

For example, to achieve label format like this “10,000mE”, you will make use of this expression:

format_number(@grid_number, 0) || 'm' || if(@grid_axis = 'x', 'E', 'N')

How This Formula Works

a)    format_number(@grid_number, 0): Automatically adds thousands-separator commas to your coordinate number and removes decimal places.

b)    || 'm': Appends the letter "m" for meters directly to the number.

c)    if(@grid_axis = 'x', 'E', 'N'): Checks if the label belongs to the X-axis (Easting) or Y-axis (Northing) and dynamically attaches the correct E or N directional suffix.


Steps to Use a Custom Expression

a)    Open your Print Layout and select your map frame.

b)    Go to the Item Properties panel on the right.

c)    Scroll down to Grids, select your UTM grid, and click Modify Grid...

d)    Scroll down to Draw Coordinates and ensure the box is checked.

e)    Change the Format dropdown menu from Decimal to Custom.

f)     Click the Expression button (ε) right next to the format dropdown.

 Enter the Custom Formatting Formula

Delete any existing text in the expression box and paste the following formula: format_number(@grid_number, 0) || 'm' || if(@grid_axis = 'x', 'E', 'N')


Common Custom Label Formats

Here are the most common custom label formats used for map grids in QGIS, along with the exact expressions you can paste into the expression editor (ε).

 1. Stripped UTM Grid (Standard Topographic Format)

This format drops the last three trailing zeros (thousands) to keep the map border clean and uncluttered (e.g., 450 instead of 450,000).

  • Example Output: 450
  • Expression: 
substr(to_string(@grid_number), 1, length(to_string(@grid_number)) - 3)

2. Full Kilometers with Suffix

This format converts meter values into kilometers and adds a directional suffix (e.g., 450 km E).

  • Example Output: 450 km E
  • Expression:
(@grid_number / 1000) || ' km ' || if(@grid_axis = 'x', 'E', 'N')

3. Abbreviated Geographic Degrees (Decimal Degrees)

This format rounds standard decimal degrees to a clean precision and adds traditional cardinal directions instead of negative numbers.

  • Example Output: 12.35° N or 74.10° W
  • Expression:
format_number(abs(@grid_number), 2) || '° ' || 
if(@grid_axis = 'x', if(@grid_number < 0, 'W', 'E'), if(@grid_number < 0, 'S', 'N'))

4. Hybrid Meter/Kilometer Topo Style

This mimics military or official survey maps by showing the full value but making the key thousands digits stand out (e.g., showing just the km value with the remainder as a superscript, formatted here as text).

  • Example Output: 450km (000)
  • Expression:
floor(@grid_number / 1000) || 'km (' || right(to_string(@grid_number), 3) || ')'

5. Clear Text Hemispheres for Lat/Long

This provides a highly readable, non-abbreviated text layout for geographic coordinates.

  • Example Output: Latitude 45.5° North
  • Expression:
if(@grid_axis = 'x', 'Longitude ', 'Latitude ') || 
format_number(abs(@grid_number), 1) || '° ' || 
if(@grid_axis = 'x', if(@grid_number < 0, 'West', 'East'), if(@grid_number < 0, 'South', 'North'))



6. Padding Leading Zeros

Useful for local grid systems where all labels must match a fixed character length for visual alignment.

  • Example Output: 004500
  • Expression:
lpad(to_string(@grid_number), 6, '0')

7. Standard DMS with Directional Suffix (available by default)

This clean, universal format splits the coordinate into degrees (°), minutes ('), and seconds ("), adding a cardinal direction indicator instead of negative math symbols. This format is available by default as "Degree, Minute, Second with Suffix" when you set 'Coordinate Precision' to one decimal place.

  • Example Output: 45° 30' 15" N or 122° 15' 45" W
  • Expression:
with_variable('abs_val', abs(@grid_number),
  floor(@abs_val) || '° ' || 
  floor((@abs_val - floor(@abs_val)) * 60) || char(39) || ' ' || 
  format_number((((@abs_val - floor(@abs_val)) * 60) - floor((@abs_val - floor(@abs_val)) * 60)) * 60, 1) || '" ' || 
  if(@grid_axis = 'x', if(@grid_number < 0, 'W', 'E'), if(@grid_number < 0, 'S', 'N'))
)



8. Compact DMS (No Spaces)

Ideal for tight margins or crowded map borders, this removes inner spaces and rounds seconds to the nearest whole integer.

  • Example Output: 45°30'15"N
  • Expression:
with_variable('abs_val', abs(@grid_number),
  floor(@abs_val) || '°' || 
  floor((@abs_val - floor(@abs_val)) * 60) || char(39) || 
  format_number((((@abs_val - floor(@abs_val)) * 60) - floor((@abs_val - floor(@abs_val)) * 60)) * 60, 0) || '"' || 
  if(@grid_axis = 'x', if(@grid_number < 0, 'W', 'E'), if(@grid_number < 0, 'S', 'N'))
)




9. Padded DMS (Consistent Character Width)

This expression adds a leading zero to single-digit minutes and seconds. It ensures all labels are exactly the same physical width, preventing jagged alignments along your map frame.

  • Example Output: 05°09'02" S
  • Expression:
with_variable('abs_val', abs(@grid_number),
  lpad(to_string(floor(@abs_val)), 2, '0') || '°' || 
  lpad(to_string(floor((@abs_val - floor(@abs_val)) * 60)), 2, '0') || char(39) || 
  lpad(to_string(format_number((((@abs_val - floor(@abs_val)) * 60) - floor((@abs_val - floor(@abs_val)) * 60)) * 60, 0)), 2, '0') || '" ' || 
  if(@grid_axis = 'x', if(@grid_number < 0, 'W', 'E'), if(@grid_number < 0, 'S', 'N'))
)



Happy Mapping

Saturday, August 15, 2026

Adding Multiple Grids/Graticles Labels on a Map in QGIS

 Most likely you have come accross a map (similar to the two below) that has more that one Grids/Graticles labelled lines and you are wondering what they are and why they have to include multiple Grids/Graticles labels.

The first map has Grids (UTM) labels inside the frame and Graticles (WGS 84) labels outside the frame. While the second map has Grids (UTM) labels on top and right-hand sides of the frame, and Graticles (WGS 84) labels on the bottom and left-hand side of the frame.




Before we learn how to add multiple Grids/Graticles to a map in QGIS, let understand the difference between Grids/Graticles and why it is necessary to sometime have multiple Grids/Graticles labels on a map.

The fundamental difference between a grid and a graticule is the shape of the surface they represent: a graticule maps a curved, 3D spherical surface (the Earth), while a grid maps a flat, 2D projected surface (a piece of paper or computer screen).

Summary Comparison Table



Maps display two or more different grids (a projected grid and a geographic graticule) simultaneously to serve different navigation, measurement, and reference needs on a single sheet.

1. Cross-Agency and Multi-User Compatibility

Different organizations, military branches, and emergency services use different reference systems.

a)    Search and Rescue: Ground teams might use local UTM meters for precise land navigation, while helicopter pilots require WGS84 Latitude/Longitude degrees for aviation GPS.

b)    Civilian vs. Military: Civilian map users generally rely on standard national grids, while international or defense groups require the Military Grid Reference System (MGRS).

 

2. Balancing Local Distance with Global Position

No single coordinate system does everything perfectly on a flat piece of paper.

a)    The Projected Grid (UTM/State Plane): Uses a flat XY grid measured in meters or feet. It allows users to quickly calculate real-world distances, areas, and angles using simple math.

b)    The Geographic Graticule (Lat/Long): Uses a curved grid measured in degrees. It tells the user exactly where they are on the global sphere, making it easy to cross-reference with international maps or global tracking systems.

 

3. Historical Data and Map Archiving

When updating older maps or combining historical surveys with modern data, dual grids preserve accuracy.

a)    Legacy Systems: Older physical maps often retain their original historical grid system (like the UK OSGB36) on the boundary.

b)    Modern Overlays: Cartographers print a modern global grid (WGS84) over the old map so modern GPS coordinates can still be used accurately.

 

4. Transition Zones and Border Mapping

When a mapped region sits right on the edge of a coordinate boundary, a secondary grid maintains continuity.

a)    UTM Zone Boundaries: If a park sits on the border of UTM Zone 15 and UTM Zone 16, using one zone distorts the other half. Adding both grids lets users work seamlessly across the border.


How to add a Grid and Graticles to a map in QGIS

To add two separate grids to a map in QGIS, open your Print Layout, select your map item, and navigate to the Item Properties panel. Scroll down to the Grids section, click the green plus (+) button twice to create two individual grid entries, and configure each one with its own distinct styling, interval, or coordinate system (CRS).

 

Setting Up the First Grid

a)    Select your map item in the layout canvas.

b)    Find the Grids dropdown in Item Properties and click the + button.

c)    Double-click the newly created grid (e.g., Grid 1) to rename it (e.g., UTM Grid or Projected).

d)    Click Modify Grid... to set your preferred CRS (such as your project's local projected coordinate system), line style (solid, cross, or markers), and X/Y intervals.

e)    Enable Draw Coordinates if you want annotations displayed for this primary grid.

 

Adding and Configuring the Second Grid

a)    Click the green plus (+) button again in the Grids menu to create Grid 2.

b)    Rename it to avoid confusion (e.g., Geographic Grid or Lat-Long).

c)    Click Modify Grid... to adjust its properties independently.

d)    Change the CRS to a different system if needed (e.g., EPSG:4326 for latitude/longitude degrees).

e)    Adjust the interval values, select a different appearance (like using subtle crosses instead of solid lines), or disable line rendering entirely while keeping frame ticks and coordinates active to prevent visual clutter.


Thank you for reading.

Saturday, August 8, 2026

How to Create ArcGIS Pro project packages (.ppkx files)

 An ArcGIS Pro project is saved as a .aprx file, along with a dedicated system folder containing a default geodatabase and toolbox. You can save ongoing changes by clicking the Save button on the Quick Access Toolbar, pressing Ctrl+S, or going to the Project tab and selecting Save Project.

The .aprx file is not the same as .ppkx file. The core difference is that an .aprx is a project file that contains links to data, while a .ppkx is a compressed package that contains the actual data.

a)  .aprx (ArcGIS Pro Project File): This file stores your map configurations, layouts, symbology, and connections. It does not store your geographic data (like shapefiles or geodatabases); it only points to where they live on your computer or network. If you move the data files, the .aprx will show broken links.

b)     .ppkx (Project Package): This is a single, compressed file used for sharing. It bundles the .aprx file and copies all the referenced datasets into one package. Anyone can open it on another computer, and all maps and data will display perfectly without broken links.


You need a .ppkx because an .aprx only works on your computer. If you send just the .aprx file to a colleague, they will see empty maps with red exclamation marks because they do not have your local data files.

To create an ArcGIS Pro project package (.ppkx), go to the Share tab on the top ribbon, click Project in the Package group, select Save package to file, fill out the required summary and tags, run Analyze to check for errors, and click Package.



Steps to Create a .ppkx File

a)     Open your project in ArcGIS Pro.

b)     Click the Share tab on the top menu ribbon.

c)     Find the Package group and click Project.

d)     Select Save package to file in the project package pane.

e)     Browse and select the destination folder location on your device.

f)      Enter a file name for your package.

g)     Add a Summary and Tags (both are required fields).

h)     Click Analyze at the bottom to check for any data errors or warnings.

i)      Fix any listed errors, then click Package to generate the file.


When You Must Use a .ppkx

a)    Sharing with Others: Send one file to a coworker or client, and they instantly get your maps and your data.

b)    Working Remotely: Use it to move your entire project from your office desktop to a home laptop.

c)    Project Archiving: Freeze a project in time so all data remains bundled together in storage, safe from accidental deletion.

d)    Submitting Assignments: Easily hand in complete, working GIS projects to instructors or managers.

That is it!

Wednesday, August 5, 2026

10 Examples of Susceptibility and Suitability Mapping

Core Definition

Susceptibility: The propensity or predisposition to be affected by a negative factor, risk, or harm (e.g., landslide susceptibility, disease vulnerability).

Suitability: The degree of appropriateness or fitness of a given site or subject for a specific, intended positive purpose (e.g., agricultural land suitability, habitat allocation).

Susceptibility and suitability are distinct analytical concepts: susceptibility measures the likelihood of experiencing a negative event (like a hazard or disease), while suitability measures how well an area or option fulfills positive requirements (like a land use or habitat).

The process of creating susceptibility and suitability maps in GIS is conceptually identical but differs significantly in how criteria are defined, weighted, and interpreted. Both workflows rely on Multi-Criteria Evaluation (MCE), but susceptibility maps model negative risks, while suitability maps model positive potential.

The Shared GIS Workflow
Both maps follow the exact same technical steps in software like ArcGIS or QGIS:

  1. Data Acquisition: Gathering spatial layers (raster or vector) like slope, soil, and land cover.
  2. Reclassification: Converting different data scales into a common standardized scale (e.g., 1 to 5).
  3. Weighting: Assigning importance to each layer using methods like the Analytic Hierarchy Process (AHP).
  4. Overlay Analysis: Combining layers using tools like Weighted Overlay or Weighted Sum.
  5. Final Categorization: Slicing the output into final classes (e.g., Low, Medium, High).


10 Examples of Susceptibility Mapping
Susceptibility maps predict where a hazard or negative event is likely to occur based on the physical characteristics of the environment.
  • Landslide Susceptibility Mapping: Models slope, soil type, and rainfall to identify hillsides prone to collapsing.
  • Flood Susceptibility Mapping: Uses elevation, proximity to rivers, and drainage density to locate areas naturally vulnerable to water accumulation.
  • Wildfire Susceptibility Mapping: Combines vegetation density (fuel), aspect, wind patterns, and dryness to map zones prone to catching fire.
  • Groundwater Contamination Susceptibility Mapping: Assesses soil permeability, water table depth, and rock type to find aquifers vulnerable to pollution from the surface.
  • Soil Erosion Susceptibility Mapping: Evaluates rainfall erosivity, slope length, and lack of vegetation to pinpoint land at risk of losing topsoil.
  • Sinkhole/Karst Susceptibility Mapping: Tracks underground limestone features, drainage, and bedrock stability to forecast where the ground might collapse.
  • Coastal Erosion Susceptibility Mapping: Analyzes wave energy, shoreline geology, and sea-level rise data to identify beaches and cliffs at risk of washing away.
  • Urban Heat Island (UHI) Susceptibility Mapping: Uses concrete density, lack of tree canopy, and wind blocks to map urban neighborhoods prone to extreme heat retention.
  • Disease Vector Susceptibility Mapping: Models humidity, standing water, and temperature to map environments where malaria-carrying mosquitoes or ticks are highly likely to breed.
  • Liquefaction Susceptibility Mapping: Uses seismic data, loose sandy soils, and high groundwater tables to identify areas where the ground will turn to quicksand during an earthquake.

Source: Kohno, M., & Higuchi, Y. (2023). Landslide susceptibility assessment in the Japanese archipelago based on a landslide distribution map. ISPRS International Journal of Geo-Information, 12(2), 37.

10 Examples of Suitability Mapping
Suitability maps identify the best or most optimal locations for a specific human activity or ecological need based on positive criteria and constraints.
  • Agricultural Crop Suitability Mapping: Evaluates soil pH, temperature, and rainfall to find the best land for growing a specific crop like wheat or coffee.
  • Solar Farm Suitability Mapping: Combines solar radiation levels, flat terrain, and proximity to power grids to find ideal spots for solar panels.
  • Habitat Suitability Mapping (Species Distribution): Models forest cover, climate, and distance from human threats to identify areas where an endangered animal can survive.
  • Landfill Site Suitability Mapping: Uses geology, distance from rivers, and distance from residential zones to find safe places to build a city dump.
  • Wind Farm Suitability Mapping: Maps consistent high wind speeds, high elevations, and areas outside of bird migratory routes to place wind turbines.
  • Urban Residential Development Suitability Mapping: Finds ideal land for housing by looking for stable ground, proximity to utilities, schools, and existing roads.
  • Rainwater Harvesting Suitability Mapping: Identifies rooftops, terrains, or community zones best shaped to capture and store rainwater efficiently.
  • Ecotourism Suitability Mapping: Looks for scenic landscapes, proximity to cultural sites, and low-impact transport options to plan sustainable tourism zones.
  • Aquaculture (Fish Farming) Suitability Mapping: Analyzes water temperature, current speeds, and water quality to select optimal coastal or lake zones for fish cages.
  • Logistics and Distribution Center Suitability Mapping: Evaluates proximity to major highways, railways, airports, and large consumer populations to place shipping warehouses.


Thank you for reading.