Note: Text inside shaded boxes are R commands, while all other texts are explanations. You need only run text inside shaded boxes in your R console to follow this exercise.

This script will show you how to download an SRTM Digital Elevation Model (DEM) of any country. This is accomplished using the raster package in R software.I assume that you have already install R and/or RStudio. We’ll begin the process by installing the raster package including its dependencies, which is necessary for downloading, reprojecting, and exporting the DEM. Check whether the raster package and its dependencies havebeen installed already to save installation time and if not, install them.

packages <- c('raster','rgdal','rgeos')
Warning messages:
1: multiple methods tables found for ‘crop’ 
2: multiple methods tables found for ‘extend’ 
install.packages(setdiff(packages, rownames(installed.packages())))

Now, we load the raster package and use the function getData to download the DEM.

library(raster)
package 㤼㸱raster㤼㸲 was built under R version 4.0.5Loading required package: sp

The getData function requires three major arguments (name, country, and mask). A character representing the name of the data set is provided with the name argument. The country argument uses ISO codes with three letters. You can obtain ISO code by typing getData(‘ISO3’) in the console. Mask is a logical argument for keeping or removing neighboring countries.

getData('ISO3')
getData('alt', country='NPL', mask=TRUE)
class      : RasterLayer 
dimensions : 516, 996, 513936  (nrow, ncol, ncell)
resolution : 0.008333333, 0.008333333  (x, y)
extent     : 80, 88.3, 26.2, 30.5  (xmin, xmax, ymin, ymax)
crs        : +proj=longlat +datum=WGS84 +no_defs 
source     : NPL_msk_alt.grd 
names      : NPL_msk_alt 
values     : 60, 8682  (min, max)

The SRTM DEM for Nepal has been successfully downloaded using the above code. The data has been saved in your default working directory. Use the following line to determine where it is located.

getwd()
[1] "C:/Users/amthapa/Desktop"

By using the raster function from the raster package, it is possible to import output data into R in its native raster format (.grd).

SRTM_nepal=raster('NPL_msk_alt.grd')

We’ll make a simple default plot to see how the data looks. However, you can make more sophisticated plots using packages such as ggplot2, rasterVis, sp, etc., which is beyond the scope of this exercise.

plot(SRTM_nepal)

Now, we will be reprojecting our raster from wgs84 to utm and exporting it as GeoTiff. In fact, you can transform the raster into any projection system by using the epsg code of that projection system. Let’s do this. To do this, we use the projectRaster function from the raster package. R offers help for every function by using the ? followed by the function name. In order to get help for the projectRaster* function, type ?projectRaster in the console. There are several mandatory arguments with the projectRaster function, including from (raster to be reprojected), res (output resolution), crs (coordinate reference system), and format (output raster format). You can also specify a filename if you want to save the projected raster.

?projectRaster
nepal_srtm_utm45n=projectRaster(from=SRTM_nepal, res=90, crs='+init=epsg:32645', method="bilinear", 
              filename="nepal_srtm_dem_90m_utm45n.tif",format='GTiff',overwrite=TRUE)
plot(nepal_srtm_utm45n)

The reprojected DEM can be found in your working directory as GeoTiff files. This data can be explored in any GIS software you are familiar with.

LS0tDQp0aXRsZTogIkhvdyB0byBkb3dubG9hZCwgcmVwcm9qZWN0IGFuZCBleHBvcnQgRGlnaXRhbCBFbGV2YXRpb24gTW9kZWwgdXNpbmcgUiA/Ig0Kb3V0cHV0OiBodG1sX25vdGVib29rDQphdXRob3I6IEFtcml0IFRIQVBBIChhYW1yaXRqbnVAZ21haWwuY29tKQ0KZGF0ZTogMjAyMi0wNC0xNw0KLS0tDQpOb3RlOiBUZXh0IGluc2lkZSBzaGFkZWQgYm94ZXMgYXJlIFIgY29tbWFuZHMsIHdoaWxlIGFsbCBvdGhlciB0ZXh0cyBhcmUgZXhwbGFuYXRpb25zLiBZb3UgbmVlZCBvbmx5IHJ1biB0ZXh0IGluc2lkZSBzaGFkZWQgYm94ZXMgaW4geW91ciBSIGNvbnNvbGUgdG8gZm9sbG93IHRoaXMgZXhlcmNpc2UuDQoNClRoaXMgc2NyaXB0IHdpbGwgc2hvdyB5b3UgaG93IHRvIGRvd25sb2FkIGFuIFNSVE0gRGlnaXRhbCBFbGV2YXRpb24gTW9kZWwgKERFTSkgb2YgYW55IGNvdW50cnkuICBUaGlzIGlzIGFjY29tcGxpc2hlZCB1c2luZyB0aGUgKnJhc3RlciogcGFja2FnZSBpbiAqKlIqKiBzb2Z0d2FyZS5JIGFzc3VtZSB0aGF0IHlvdSBoYXZlIGFscmVhZHkgaW5zdGFsbCAqKlIqKiBhbmQvb3IgKipSU3R1ZGlvKiouDQpXZSdsbCBiZWdpbiB0aGUgcHJvY2VzcyBieSBpbnN0YWxsaW5nIHRoZSAqcmFzdGVyKiBwYWNrYWdlIGluY2x1ZGluZyBpdHMgZGVwZW5kZW5jaWVzLCB3aGljaCBpcyBuZWNlc3NhcnkgZm9yIGRvd25sb2FkaW5nLCByZXByb2plY3RpbmcsIGFuZCBleHBvcnRpbmcgdGhlIERFTS4gQ2hlY2sgd2hldGhlciB0aGUgcmFzdGVyIHBhY2thZ2UgYW5kIGl0cyBkZXBlbmRlbmNpZXMgaGF2ZWJlZW4gaW5zdGFsbGVkIGFscmVhZHkgdG8gc2F2ZSBpbnN0YWxsYXRpb24gdGltZSBhbmQgaWYgbm90LCBpbnN0YWxsIHRoZW0uDQpgYGB7cn0NCnBhY2thZ2VzIDwtIGMoJ3Jhc3RlcicsJ3JnZGFsJywncmdlb3MnKQ0KaW5zdGFsbC5wYWNrYWdlcyhzZXRkaWZmKHBhY2thZ2VzLCByb3duYW1lcyhpbnN0YWxsZWQucGFja2FnZXMoKSkpKQ0KYGBgDQpOb3csIHdlIGxvYWQgdGhlICpyYXN0ZXIqIHBhY2thZ2UgYW5kIHVzZSB0aGUgZnVuY3Rpb24gKmdldERhdGEqIHRvIGRvd25sb2FkIHRoZSBERU0uDQpgYGB7cn0NCmxpYnJhcnkocmFzdGVyKQ0KYGBgDQpUaGUgKmdldERhdGEqIGZ1bmN0aW9uIHJlcXVpcmVzIHRocmVlIG1ham9yIGFyZ3VtZW50cyAobmFtZSwgY291bnRyeSwgYW5kIG1hc2spLiBBIGNoYXJhY3RlciByZXByZXNlbnRpbmcgdGhlIG5hbWUgb2YgdGhlIGRhdGEgc2V0IGlzIHByb3ZpZGVkIHdpdGggdGhlIG5hbWUgYXJndW1lbnQuICBUaGUgY291bnRyeSBhcmd1bWVudCB1c2VzIElTTyBjb2RlcyB3aXRoIHRocmVlIGxldHRlcnMuIFlvdSBjYW4gb2J0YWluIElTTyBjb2RlIGJ5IHR5cGluZyAqZ2V0RGF0YSgnSVNPMycpKiBpbiB0aGUgY29uc29sZS4gTWFzayBpcyBhIGxvZ2ljYWwgYXJndW1lbnQgZm9yIGtlZXBpbmcgb3IgcmVtb3ZpbmcgbmVpZ2hib3JpbmcgY291bnRyaWVzLg0KYGBge3J9DQpnZXREYXRhKCdJU08zJykNCmdldERhdGEoJ2FsdCcsIGNvdW50cnk9J05QTCcsIG1hc2s9VFJVRSkNCmBgYA0KVGhlIFNSVE0gREVNIGZvciBOZXBhbCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgZG93bmxvYWRlZCB1c2luZyB0aGUgYWJvdmUgY29kZS4gVGhlIGRhdGEgaGFzIGJlZW4gc2F2ZWQgaW4geW91ciBkZWZhdWx0IHdvcmtpbmcgZGlyZWN0b3J5LiBVc2UgdGhlIGZvbGxvd2luZyBsaW5lIHRvIGRldGVybWluZSB3aGVyZSBpdCBpcyBsb2NhdGVkLg0KYGBge3J9DQpnZXR3ZCgpDQpgYGANCkJ5IHVzaW5nIHRoZSAqcmFzdGVyKiBmdW5jdGlvbiBmcm9tIHRoZSAqcmFzdGVyKiBwYWNrYWdlLCBpdCBpcyBwb3NzaWJsZSB0byBpbXBvcnQgb3V0cHV0IGRhdGEgaW50byBSIGluIGl0cyBuYXRpdmUgcmFzdGVyIGZvcm1hdCAoLmdyZCkuDQoNCmBgYHtyfQ0KU1JUTV9uZXBhbD1yYXN0ZXIoJ05QTF9tc2tfYWx0LmdyZCcpDQpgYGANCldlJ2xsIG1ha2UgYSBzaW1wbGUgZGVmYXVsdCBwbG90IHRvIHNlZSBob3cgdGhlIGRhdGEgbG9va3MuIEhvd2V2ZXIsIHlvdSBjYW4gbWFrZSBtb3JlIHNvcGhpc3RpY2F0ZWQgcGxvdHMgdXNpbmcgcGFja2FnZXMgc3VjaCBhcyBnZ3Bsb3QyLCByYXN0ZXJWaXMsIHNwLCBldGMuLCB3aGljaCBpcyBiZXlvbmQgdGhlIHNjb3BlIG9mIHRoaXMgZXhlcmNpc2UuDQpgYGB7cn0NCnBsb3QoU1JUTV9uZXBhbCkNCmBgYA0KTm93LCB3ZSB3aWxsIGJlIHJlcHJvamVjdGluZyBvdXIgcmFzdGVyIGZyb20gd2dzODQgdG8gdXRtIGFuZCBleHBvcnRpbmcgaXQgYXMgR2VvVGlmZi4gSW4gZmFjdCwgeW91IGNhbiB0cmFuc2Zvcm0gdGhlIHJhc3RlciBpbnRvIGFueSBwcm9qZWN0aW9uIHN5c3RlbSBieSB1c2luZyB0aGUgZXBzZyBjb2RlIG9mIHRoYXQgcHJvamVjdGlvbiBzeXN0ZW0uDQpMZXQncyBkbyB0aGlzLiBUbyBkbyB0aGlzLCB3ZSB1c2UgdGhlICpwcm9qZWN0UmFzdGVyKiBmdW5jdGlvbiBmcm9tIHRoZSAqcmFzdGVyKiBwYWNrYWdlLiBSIG9mZmVycyBoZWxwIGZvciBldmVyeSBmdW5jdGlvbiBieSB1c2luZyB0aGUgKj8gZm9sbG93ZWQgYnkgdGhlIGZ1bmN0aW9uIG5hbWUuIEluIG9yZGVyIHRvIGdldCBoZWxwIGZvciB0aGUgKnByb2plY3RSYXN0ZXIqIGZ1bmN0aW9uLCB0eXBlICo/cHJvamVjdFJhc3RlciogaW4gdGhlIGNvbnNvbGUuIFRoZXJlIGFyZSBzZXZlcmFsIG1hbmRhdG9yeSBhcmd1bWVudHMgd2l0aCB0aGUgKnByb2plY3RSYXN0ZXIqIGZ1bmN0aW9uLCBpbmNsdWRpbmcgZnJvbSAocmFzdGVyIHRvIGJlIHJlcHJvamVjdGVkKSwgcmVzIChvdXRwdXQgcmVzb2x1dGlvbiksIGNycyAoY29vcmRpbmF0ZSByZWZlcmVuY2Ugc3lzdGVtKSwgYW5kIGZvcm1hdCAob3V0cHV0IHJhc3RlciBmb3JtYXQpLiBZb3UgY2FuIGFsc28gc3BlY2lmeSBhIGZpbGVuYW1lIGlmIHlvdSB3YW50IHRvIHNhdmUgdGhlIHByb2plY3RlZCByYXN0ZXIuDQpgYGB7cn0NCj9wcm9qZWN0UmFzdGVyDQpuZXBhbF9zcnRtX3V0bTQ1bj1wcm9qZWN0UmFzdGVyKGZyb209U1JUTV9uZXBhbCwgcmVzPTkwLCBjcnM9Jytpbml0PWVwc2c6MzI2NDUnLCBtZXRob2Q9ImJpbGluZWFyIiwgDQogICAgICAgICAgICAgIGZpbGVuYW1lPSJuZXBhbF9zcnRtX2RlbV85MG1fdXRtNDVuLnRpZiIsZm9ybWF0PSdHVGlmZicsb3ZlcndyaXRlPVRSVUUpDQpwbG90KG5lcGFsX3NydG1fdXRtNDVuKQ0KYGBgDQpUaGUgcmVwcm9qZWN0ZWQgREVNIGNhbiBiZSBmb3VuZCBpbiB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGFzIEdlb1RpZmYgZmlsZXMuIFRoaXMgZGF0YSBjYW4gYmUgZXhwbG9yZWQgaW4gYW55IEdJUyBzb2Z0d2FyZSB5b3UgYXJlIGZhbWlsaWFyIHdpdGguDQoNCg0KDQoNCg0KDQo=