Jet is dead, long live parula! The criticism of MATLAB’s former default colormap is all around. Jet is perceptually non-uniform. Our brains tend to detect changes between particular kinds of colors better than the transition between others. The colormap jet is thus misguiding, it accentuates parts of your data and thus misrepresents it.
I have to admit that I used jet for quite a while. And it was the default colormap of imageschs, one of the core visualization tools in TopoToolbox. These days are over now. The default colormap is now parula which you’ll find in the folder colormaps. In addition, you’ll find other colormaps:
– and a whole bunch of terrain coloring maps in ttcmap
And the good thing: Now you can have multiple colormaps in one figure…
DEM = GRIDobj('srtm_bigtujunga30m_utm11.tif'); subplot(2,2,1); imageschs(DEM,,'colormap','landcolor','ticklabels','nice') title('DEM - landcolor') subplot(2,2,2); G = gradient8(DEM); imageschs(DEM,G,'colormap',flipud(magmacolor(255)),'ticklabels','nice') title('Gradient - magmacolor') subplot(2,2,3); FD = FLOWobj(DEM); A = flowacc(FD); A = dilate(A,ones(5)); imageschs(DEM,sqrt(A),'colormap','flowcolor','ticklabels','nice') title('Flow accumulation - flowcolor') subplot(2,2,4) [clr,lims] = ttcmap(DEM,'cmap','gmtglobe'); imageschs(DEM,,'colormap',clr,'caxis',lims,'ticklabels','nice') title('DEM - gmtglobe')
Of course, you can use all kinds of colormaps with imageschs such as hot, spring, etc. If you use custom colormaps, remember that
- imageschs requires colormaps with less than or equal 256 colors or 255 if there are nans in the data.
- you can easily flip colormaps, e.g. flipud(gray(255)).
- you can easily build your own colormaps using colormapeditor.
Do you have a favourite colormap that you want to share with others and that should be included in a future release of TopoToolbox. TopoToolbox could need a bipolar colormap for displaying curvature, for example.
Here is an advertisement for an open PhD position at the University of Roma for a project led by Paolo Ballato and Claudio Faccenna. I am collaborating in the project.
Ph.D. position at the Department of Science (Section Geology) of the University of Roma
Deciphering the Mantle Contribution on Surface uplift in the Atlas-Meseta system (Morocco).
The idea that mantle flow dynamics may contribute to the topographic development of orogens has changed our vision on mountain building processes and inspired an increasing number of modelling studies. Isolating and documenting such a contribution however, has been proved to be difficult, especially in continental settings where the paleontological record is not as determinant as in marine systems. This research proposal aims to decipher the influence of mantle flow on the topographic growth of the Atlas-Meseta system of Morocco. There, the occurrence of several hundred of meters of mantle driven uplift, offers the possibility to investigate magnitude, timing and rates of surface uplift, by means of a multidisciplinary approach involving recent advancements on stratigraphy, geomorphology, geochronology, and low-temperature thermochronology. The outcome of this field- and laboratory-based approach will be finally integrated for developing an analogue geodynamic model and gain more insights into the mechanisms of mantle flow. Specifically, the candidate student will quantify longitudinal and latitudinal spatio-temporal patterns of surface uplift and regional tilting induced by mantle flow along two transects across the Atlas-Meseta system. In addition, the expected results will provide geological information that will be used for calibrating a final geodynamic analogue model, which will be of general interest for unravelling the evolution of mountain belts that are not supported by orogenic roots.
The successful candidate must have high motivation, a MSc degree in Geology, Earth Sciences or equivalent, solid basic knowledge in field geology, geomorphology, stratigraphy and tectonics. Basic knowledge in ArcGIS and MATLAB are also required. Applicants must be also proficient in spoken and written English and have teamwork skills.
Information and application
To apply, please send a cover letter clarifying your overall motivation together with your curriculum vitae and names, telephone numbers, and e-mail addresses of two referees to Paolo Ballato (email@example.com), before June 18th.
Conditions of employment
The project will start on November 1st as part of the University of Roma Tre Ph.D. programme (34th cycle) and will last 3 years. The scholarship has an annual amount of 13.638,47 Euro (social security fee included) and is increased (+50%) for periods of study or research abroad.
This year’s EGU featured a new and interesting event format: SC1.29/GM12.1 Crowd-solving problems in earth science research organized by the early-career geomorphologists Anne Voigtländer, Anna Schoch, Elisa Giaccone, Harry Sanders, Richard Mason and Johannes Buckel. I was among the lucky participants.
In their blog post, the organizers summarize the event and highlight its role in stimulating active participation and communication. When I was a young PhD, active participation and communication was something I missed at these large conferences. Rather, I found myself consuming talks rather than being an active part of the discussion. After a few years I now feel more at ease, I actively contribute, and the EGU assembly has become a place to meet colleages and friends.
I think that an event format like the crowd-sourcing session could stimulate this process in particular for young researchers. This doesn’t mean, however, that — if the session was happening next year — only young researchers should attend. Rather, this event would benefit a lot from the exchange of the young and experienced scientists. I’ll definitely take part next year, and I hope you’ll do so, too.
Today, I finally installed MATLAB 2018a. As always, I am quite excited about the software releases shipped every 6 months. One of the release notes on performance particularly caught my interest.
Loops that contain mainly indexing and scalar math operations execute faster due to execution engine optimizations. (see here)
TopoToolbox contains a number of tight loops with scalar math and thus I expect that this release should make TopoToolbox generally faster. I tested this using the function flowacc with a large DEM (SRTM-3, 90 m resolution, about 239 Millionen pixels). flowacc has been coded to be fast and thus there is also a C-coded MEX-file available for benchmarking. However, the code can also be run as pure MATLAB code which I have done in 2017b and 2018a. I measured run-times with tic-toc using 20 repetitions. The results are shown below.
M-code in 2018a takes about 77% of the time required in 2017b. That is a major improvement. Moreover, run-times are close to the C-code benchmark (118%). Can it get much better than this?
Now let’s put this in relation to other software. What we have looked at are flow accumulation run-times for the entire Himalayan range at a resolution of 90 m. 4-6 seconds is quite fast, I guess. In ArcGIS, the same operation would take hours*. But I am a bit reluctant to test this in detail.
*Note that ArcGIS doesn’t keep data in the main memory. Thus, much of the time may be used to swap data between the main memory and the hard drive. A direct comparison is thus not fair.
Alexandru T. Codilean, Henry Munack and their colleagues have just released their Open and Global Database of Cosmogenic Radionuclide and Luminescence measurements in fluvial sediment (OCTOPUS). This is a great open and accessible resource of data!
The cosmogenic radionuclide (CRN) part of the database consists of Be-10 and Al-26 measurements in fluvial sediment samples along with ancillary geospatial vector and raster layers, including sample site, basin outline, digital elevation model, gradient raster, flow direction and flow accumulation rasters, atmospheric pressure raster, and CRN production scaling and topographic shielding factor rasters. The database also includes a comprehensive metadata and all necessary information and input files for the recalculation of denudation rates using CAIRN, an open source program for calculating basin-wide denudation rates from Be-10 and Al-26 data.
The luminescence part of the database consists of thermoluminescence (TL) and optically stimulated luminescence (OSL) measurements in fluvial sediment samples from stratigraphic sections and sediment cores from across the Australian continent and includes ancillary vector and raster geospatial data.
OCTOPUS can be accessed at: https://earth.uow.edu.au
The developers of OCTOPUS also submitted a manuscript describing the database in detail to the open access journal Earth System Science Data (Discussions). The paper is now accessible and open for interactive public discussion until 01 May 2018 at:
You are invited to download the data and take part in the discussion.
I am increasingly using MATLAB to create maps. I simply find the workflow cumbersome that combines TopoToolbox, ArcGIS or QGIS. This is among the reasons why I implemented a new function in TopoToolbox that helps you coloring DEMs, particularly those that include topography and bathymetry. The function is ttcmap and you’ll find it in the colormaps folder.
Here is an example application of this function. I’ll use a DEM that covers one of the world’s steepest topographic gradients from the Andes down to the Peru-Chile deep-sea trench.
Before you run the function, choose a colormap. Calling ttcmap without input arguments displays a table that shows the different colormaps and their respective elevation ranges.
ttcmap Colormap_Name Min_Elevation Max_Elevation _____________ _____________ _____________ 'gmtrelief' -8000 7000 'france' -5000 4000 'mby' -8000 4000 'gmtglobe' -10000 9500
Now here are three colormaps that span the elevation range in our DEM. Note that ttcmap outputs the array zlimits which is required as input to imageschs so that the land-sea boundary is exactly at zero. ttcmap is similar to the mapping toolbox function demcmap but more precisely sets the land-sea transition to the zero value.
[cmap,zlimits] = ttcmap(DEM,'cmap','gmtrelief'); imageschs(DEM,,'caxis',zlimits,'colormap',cmap)
[cmap,zlimits] = ttcmap(DEM,'cmap','mby'); imageschs(DEM,,'caxis',zlimits,'colormap',cmap)
[cmap,zlimits] = ttcmap(DEM,'cmap','gmtglobe'); imageschs(DEM,,'caxis',zlimits,'colormap',cmap)
I downloaded the colormaps from cpt-city, a great resource for colormaps.
TopoToolbox version 2.3 will have a better documentation. With the latest commits to our github repository, you are now able to take a glance at our work-in-progress. Just download it, follow the instruction in the readme file, and then type
in the command window. MATLAB’s documentation browser will pop up and the landing page will have a new entry in the section Supplemental Software. The link will bring you to the TopoToolbox documentation.
The documentation features a Getting Started section, numerous guides, and a function reference (which is, however, not linking to the individual help functions).
Moreover, you can now search the documentation which will hopefully make it much easier to find the right tools.
The documentation is not yet complete. We are still working on including the help sections of each function into the documentation, which will make the functionality even more accessible and browsable.
**** addendum January 15, 2018 ****
After permanently setting the paths, you might need to restart MATLAB in order to be able to view the documentation in the help browser.