MATLAB Examples

View Cyclone Track Data in Geographic Density Plot

This example shows how to view cyclone tracking data in a geographic density plot. The data records observations of cyclones over an 11 year period, between 2007-2017.

Load the cyclone track data and display the first few rows. The data, produced by the Japan Meteorological Agency, records the location, pressure (in hPa), and wind speed (knots) of cyclones at six-hour intervals. Each row in the table represents the record of an observation of a particular cyclone, identified by a name and an ID number.

load cycloneTracks
head(cycloneTracks)
ans =

  8x8 table

    ID        Name               Time            Grade    Latitude    Longitude    Pressure    WindSpeed
    ___    __________    ____________________    _____    ________    _________    ________    _________

    701    "KONG-REY"    30-Mar-2007 12:00:00      2         5.8        158.2        1008          0    
    701    "KONG-REY"    30-Mar-2007 18:00:00      2         6.3        158.1        1004          0    
    701    "KONG-REY"    31-Mar-2007 00:00:00      2         6.7        157.9        1006          0    
    701    "KONG-REY"    31-Mar-2007 06:00:00      2         7.1        156.6        1004          0    
    701    "KONG-REY"    31-Mar-2007 12:00:00      2         7.6        155.5        1004          0    
    701    "KONG-REY"    31-Mar-2007 18:00:00      2         8.8        154.2        1002          0    
    701    "KONG-REY"    01-Apr-2007 00:00:00      3         9.7        152.8        1000         35    
    701    "KONG-REY"    01-Apr-2007 06:00:00      3        10.2        152.1         996         40    

To understand the data, plot the tracks of three cyclones, using the geoplot function. Get the data records for three cyclones, identified by ID number and name. Each observation record provides the latitude and longitude. Plot all the three cyclone tracks on one map by turning hold on.

figure
latMalakas = cycloneTracks.Latitude(cycloneTracks.ID == 1012);
lonMalakas = cycloneTracks.Longitude(cycloneTracks.ID == 1012);
geoplot(latMalakas,lonMalakas,'.-')
geolimits([0 60],[100 180])
hold on
latMegi = cycloneTracks.Latitude(cycloneTracks.ID == 1013);
lonMegi = cycloneTracks.Longitude(cycloneTracks.ID == 1013);
geoplot(latMegi,lonMegi,'.-')
latChaba = cycloneTracks.Latitude(cycloneTracks.ID == 1014);
lonChaba = cycloneTracks.Longitude(cycloneTracks.ID == 1014);
geoplot(latChaba,lonChaba,'.-')

View the density of all cyclones tracked over this 11-year period using geodensityplot. In this plot, instead of a seeing the track of a particular cyclone, view all the records at every point for all the cyclones. geodensityplot calculates a cumulative probability distribution surface using contributions from the individual locations. The surface transparency varies with density.

figure
latAll = cycloneTracks.Latitude;
lonAll = cycloneTracks.Longitude;
geodensityplot(latAll,lonAll)

By default, geodensityplot uses a single color to represent all density values, using transparency to represent density variation. You can also use multiple colors with geodensityplot to represent areas of varying density. To do this, set the 'FaceColor' property.

geodensityplot(latAll,lonAll,'FaceColor','interp')

A density plot can apply weights to individual data points. The weights multiply the contribution of individual points to the density surface.

windspeedAll = cycloneTracks.WindSpeed;
geodensityplot(latAll,lonAll,windspeedAll,'FaceColor','interp')

Reference: This cyclone track data was modified for use in this example by MathWorks from the RSMC Best Track Data by the Japan Meteorological Agency (http://www.jma.go.jp/jma/jma-eng/jma-center/rsmc-hp-pub-eg/RSMC_HP.htm).