Heatmap on World Map

31 visualizzazioni (ultimi 30 giorni)
MCM
MCM il 8 Ott 2018
Commentato: jonas il 8 Ott 2018
Hello,
I have a heatmap and I want to overlay it onto a World Map. My data is commercial air traffic tracks. I created a world grid (example 1x1 lat/long squares) and counted how many times an aircraft flew through each lat/long polygon. Specifically. I've created a two position arrays, lat and long (center points of each polygon) and corresponding array C which contains the counts. Easy to produce heatmap from there. The problem is overlaying the heatmap onto a World Map.
This seems like it should be super simple; especially since I have the mapping toolbox. But I have been doing research for DAYS and haven't found anything that works.
This post (https://www.mathworks.com/matlabcentral/answers/259878-plot-heat-map-on-map-using-latitude-longitude-and-my-data-value) is close but I don't know how to make the MarkerSize equal to the area covered by lat/long polygon. This example (https://www.mathworks.com/help/thingspeak/create-heatmap-overlay-image.html) also looked promising by the size of worldmap('world') is [1,1,1}.
Please HELP! This seems like a few lines of code at this point but I can't make it work.
Thanks
  2 Commenti
jonas
jonas il 8 Ott 2018
Modificato: jonas il 8 Ott 2018
You need some shapefile, I dont know which ones that are available from the mapping toolbox but you can find anything on arcgis
After that its a two line code with shaperead and geoshow
MCM
MCM il 8 Ott 2018
I wish it were that simple. You can't put a shapefile on a heatmap. It causes an error
  • When I create a world map first using the 'landareas.shp' shapefile and then try to add heatmap, I get "Adding HeatmapChart to axes is not supported"
  • When I create the heatmap first and then try to add the shapefile, I get "Patch cannot be a child of HeatmapChart

Accedi per commentare.

Risposta accettata

jonas
jonas il 8 Ott 2018
Modificato: jonas il 8 Ott 2018
Here's some code from an old script of mine. Here's where I got the shapefile ( naturalearthdata.com, the first link)
worldmap('world')
Borders_shp=shaperead('ne_10m_admin_0_countries.shp')
LandBorders=geoshow(gca,[Borders_shp.Y],[Borders_shp.X],'linewidth',0.25);
  4 Commenti
MCM
MCM il 8 Ott 2018
Thank you so much! Two lines of code with hist3. I knew it had to be that easy but I was ripping my hair out with heatmap object. :)
jonas
jonas il 8 Ott 2018
Cheers! :)

Accedi per commentare.

Più risposte (0)

Community

Più risposte nel  ThingSpeak Community

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by