- Adjust lat_res and lon_res according to the desired resolution and the size of your dataset.
- Set num_days to reflect the actual number of days your data covers.
How to make a density map (per square km per year)
2 views (last 30 days)
Show older comments
I have a .mat file where the 7th (latitude) and 8th (longitudes) columns are the lightning stroke counts. How to make a density map ( Lightning Strokes / square km/ day) using Matlab R2017a?
0 Comments
Answers (1)
AKennedy
on 2 Jan 2025
You can modify this code and try it to get a density map.
% Load the .mat file
data = load('file.mat');
% Extract latitude and longitude columns
latitudes = data(:, 7);
longitudes = data(:, 8);
% Define the grid
lat_min = min(latitudes);
lat_max = max(latitudes);
lon_min = min(longitudes);
lon_max = max(longitudes);
% Define the resolution of the grid (e.g., 0.1 degree)
lat_res = 0.1;
lon_res = 0.1;
% Create the grid
lat_edges = lat_min:lat_res:lat_max;
lon_edges = lon_min:lon_res:lon_max;
% Count the number of strokes in each grid cell
counts = histcounts2(latitudes, longitudes, lat_edges, lon_edges);
% Calculate the area of each grid cell in square kilometers
% Approximation: 1 degree latitude ~ 111 km, 1 degree longitude ~ 111 km * cos(latitude)
lat_km = 111; % km per degree latitude
lon_km = @(lat) 111 * cosd(lat); % km per degree longitude
% Calculate the area of each grid cell
[lat_grid, lon_grid] = meshgrid(lat_edges(1:end-1) + lat_res/2, lon_edges(1:end-1) + lon_res/2);
cell_area_km2 = lat_km * lat_res * lon_km(lat_grid) * lon_res;
% Calculate density (strokes per square km per day)
% Assume you have data for a certain number of days, e.g., 30 days
num_days = 30;
density = counts ./ (cell_area_km2 * num_days);
% Plot the density map
figure;
imagesc(lon_edges, lat_edges, density);
set(gca, 'YDir', 'normal'); % Correct the Y-axis direction
colorbar;
xlabel('Longitude');
ylabel('Latitude');
title('Lightning Stroke Density (strokes/km^2/day)');
0 Comments
See Also
Categories
Find more on Map Display in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!