Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Karthikeyan L

Pages: [1] 2 3
Data / Free GIS Data
« on: March 11, 2019, 11:38:41 PM »
The following contains information on variable wise as well as country wise free GIS datasets. A very good summary!

Professor PP Mujumdar, Department of Civil Engineering, Chairman, Interdisciplinary Centre for Water Research, Indian Institute of Science, Bangalore, has been elected as the fellow of Indian National Science Academy (INSA). Prof. Mujumdar is the first hydrologist to get this recognition.

Here is the full list of elected members:

Prof. Mujumdar's webpage can be accessed through this link:

A work carried out by Sonali Pattanayak titled "Linkage between global sea surface temperature and hydroclimatology of a major river basin of India before and after 1980" got published recently in the Environmental Research Letters.


Recently, I have published a couple of papers related to satellite microwave soil moisture research in the Advances in Water Resources Journal.

The process of retrieving soil moisture from satellite microwave sensors depends on the type of sensor i.e., active and passive microwave sensors. Over the past four decades, the microwave community has progressed in terms of improving the sensor design and retrieval algorithm so as to achieve accurate global scale soil moisture observations.

The first paper titled "Four decades of microwave satellite soil moisture observations: Part 1. A review of retrieval algorithms" gives a comprehensive overview of the developments that took place in the retrieval algorithms over the past four decades. The paper discusses the algorithmic developments of both active as well as passive sensors. We have also, for the first time, summarized the literature in the form of figures, one each for active and passive microwave soil moisture research (PFA). This review also discusses the latest developments in components of the algorithms, and also discusses the challenges that need attention in future. I can say that this paper serves as a starting point for someone who wants to venture into the field of microwave soil moisture research.

The second paper titled "Four decades of microwave satellite soil moisture observations: Part 2. Product validation and inter-satellite comparisons" is focused on assessing the accuracy of soil moisture products, which were developed over the past forty years. We have considered eight passive (SMMR, SSM/I, TMI, AMSR-E, WindSAT, AMSR2, SMOS, and SMAP), two active (ERS-Scatterometer, and MetOp-ASCAT), and one active-passive combined (ESA-CCI combined product) soil moisture products for the analysis. The Contiguous United States (CONUS) is considered as a case study. The validation is carried out using the data pertaining to 1058 stations over the CONUS, along with model soil moisture simulations obtained from the VIC land surface model. We analyzed these products in terms of daily coverage (a figure in this context is atteched with this post), temporal performance, and spatial performance. We also carried out inter-satellite comparisons to study the roles of sensor design and algorithms on the retrieval accuracy. The Part 1 serves as a prelude to this paper. Through these papers, one can get an idea about how well the satellites along with algorithms have progressed over the four decades and significantly improved the accuracy of soil moisture retrievals.

Part 1 can be downloaded for free from here: (until November 4, 2017)
Part 2 can be downloaded for free from here: (until November 17, 2017)

Here are the permanent links:
Part 1:
Part 2:

You can write an email to me at for full-text requests or any other query related to papers.

The work carried out by Ila Chawla along with Prof. P.P. Mujumdar titled "Partitioning Uncertainty in Streamflow Projections under Nonstationary Model Conditions" was recently published in the Advances in Water Resources Journal.

In this work, the authors, in a novel attempt, have addressed the possibility of nonstationary hydrological model (here they have used the VIC land surface model coupled with a routing model). They found that the hydrological model parameters, which are influenced by climate variables, vary over time, and thus may not be assumed to be stationary. Further, the work also involves attribution the total uncertainty in the streamflow projections to multiple effects such as, model parameters, GCM simulations, emission scenarios, land use scenarios, the assumption of hydrological model stationarity, along with internal variability of the model. The Upper Ganga Basin (UGB) is considered as a case study for this analysis.

Further details on the work can be found here:

Authors are glad to share their article with interested readers.

Correspondence to:

If you are dealing with huge datasets that are saved in .mat format, loading them to workspace eats lot of RAM. So, matlab has an option to read part of such files without loading them to memory. Have a look at this link:

Interesting information / A lecture by Prof. Fawwaz Ulaby
« on: January 28, 2017, 11:40:36 PM »
In this lecture Prof. Fawwaz T Ulaby, a pioneer in Radar Remote Sensing talks in a fascinating way about how Radar technology was developed in 1970s. You can see the first half of the video.

Programming / Colormaps in MATLAB
« on: January 28, 2017, 11:36:51 PM »
Toolbox below provides users to view images in MATLAB with wider range of colorbars.

Work carried out by Ms. Buvaneshwari has been published in Science of the Total Environment.

Title: Groundwater resource vulnerability and spatial variability of nitrate contamination: Insights from high density tubewell monitoring in a hard rock aquifer

Description: Agriculture has been increasingly relying on groundwater irrigation for the last decades, leading to severe groundwater depletion and/or nitrate contamination. Understanding the links between nitrate concentration and groundwater resource is a prerequisite for assessing the sustainability of irrigated systems. The Berambadi catchment (ORE-BVET/Kabini Critical Zone Observatory) in Southern India is a typical example of intensive irrigated agriculture and then an ideal site to study the relative influences of land use, management practices and aquifer properties on NO3 spatial distribution in groundwater. The monitoring of > 200 tube wells revealed nitrate concentrations from 1 to 360 mg/L. Three configurations of groundwater level and elevation gradient were identified: i) NO33 concentrations suggest that significant lateral flow prevented NO3 enrichment; iii) low NO3 concentrations, low groundwater elevation gradient and shallow groundwater indicate a large reserve. We propose that mapping groundwater level and gradient could be used to delineate zones vulnerable to agriculture intensification in catchments where groundwater from low-yielding aquifers is the only source of irrigation. Then, wells located in low groundwater elevation gradient zones are likely to be suitable for assessing the impacts of local agricultural systems, while wells located in zones with high elevation gradient would reflect the average groundwater quality of the catchment, and hence should be used for regional mapping of groundwater quality. Irrigation with NO3Citation:
Buvaneshwari, S., Riotte, J., Sekhar, M., Kumar, M. M., Sharma, A. K., Duprey, J. L., ... & Durand, P. (2017). Groundwater resource vulnerability and spatial variability of nitrate contamination: Insights from high density tubewell monitoring in a hard rock aquifer. Science of The Total Environment, 579, 838-847.

Buvaneshwari can be reached at

MATLAB has a function called 'MEX function - Matlab EXecutable function' which is used to compile your source codes written in C or C++ or Fortran and invoke them from MATLAB. It is a facility through which you can create a C/C++/Fortran wrapper code (called the MEX function in this context) which in turn is used to pass data from MATLAB to source codes which does the computations and pass the outputs back to MATLAB.

MATLAB----> Prepare your data in MATLAB ----> Pass data to MEX function ----> MEX function passes data to C/C++/Fortran codes which does computation and produces output ----> Read output in MATLAB

Effectively, once you compile the MEX function, it just acts as any other MATLAB function, although it's written in C/C++/Fortran language.

The biggest advantage of this procedure is that the computations are extremely fast because of precise memory allocations that you carry out in your C/C++/Fortran codes.

So, you can write core operations of your bulky MATLAB codes in these machine languages and call them using MEX function.

You can find further information in
MATLAB Documentation: 1) 2)

Some tutorial:

I would like to illustrate an example of this function where the task is to add two matrices. So, I write the following MEX function in C language (code's name is addmat.c) to carry out the task.

Code: [Select]
/********* addmat.c ************/
#include "mex.h"
void mexFunction( int nlhs, mxArray *plhs[],
                  int nrhs, const mxArray *prhs[])
    /* Declarations */
    double *A, *B, *C; /* A, B, C are pointers */
    int m,n,i,j;
    /************** INPUT AND OUTPUT INITIALIZATIONS *********************************/
    /* Initialization - 'mxGetPr' is used to pass data; 'mxGetM' & 'mxGetN' are used to estimate the size of matrix */
    A = mxGetPr(prhs[0]); /* Passes first input matrix using prhs[0] which is a pointer to input */
    B = mxGetPr(prhs[1]); /* Passes first second matrix using prhs[1] which is a pointer to input */
    m = mxGetM(prhs[0]);
    n = mxGetN(prhs[0]);
   /* Similar to prhs, 'plhs' are array of pointers which pass expected output to MATLAB */
   /* In the step below pointer to output matrix is being created, which is of consistent dimensions with that of A and B */
    plhs[0] = mxCreateDoubleMatrix(m, n, mxREAL);

    C = mxGetPr(plhs[0]); /* This line indicates initialization of plhs[0] pointer to that of C, this step ensures that what ever modifications we do to C will be reflected in output, i.e., we ultimately get C as the output */


    /************** CODE TO ADD TWO MATRICES *********************************/
    for (i=0;i<m;i++)
        for (j=0;j<n;j++)

Once you write this C code, its MEX function can be created by running line >> mex addmat.c in MATLAB and you get following outcome.
Code: [Select]
>> mex addmat.c
Building with 'gcc'.
MEX completed successfully.

Once MEX file is successfully compiled you can observe a file addmat.mexa64 created in your working directory. That's it! Now you can use your mex code in MATLAB the following way to add two matrices.
Code: [Select]
>> a=[1 2;3 4];b=[7 -2;6 -10];
>> a

a =

     1     2
     3     4

>> b

b =

     7    -2
     6   -10

>> c=addmat(a,b)

c =

     8     0
     9    -6

One can write much complicated C/C++/Fortran codes and invoke them from MATLAB.

Writing MEX function is the most efficient way of tackling with cumbersome algorithms. Such a facility exists in R ( and Python ( too and the concept is something very similar to that of MATLAB.

Models / VIC Model - Version 5.0.0
« on: September 07, 2016, 09:43:56 PM »
Released on September 2, 2016.

This is a major update from VIC 4. The VIC 5.0.0 release aims to have nearly identical physics as VIC 4.2 while providing a clean, refactored code base supporting multiple drivers. There are a number of new features, bug fixes, and backward incompatible changes. See the VIC Github page for more details on the changes included in this release.

Programming / MATLAB - Plotting/Graphics
« on: August 23, 2016, 08:13:45 PM »
Dear all,

I have taken a session of MATLAB Graphics primer for the first year ME students in IISc. In this process, I have prepared some scripts which will familiarize one with wide range of plotting options available in MATLAB. The link below contains rar file having scripts, sample datasets and a pdf of presentation that I have made.

There is a script in the folder by name 'spatial mapping.m' which I feel is the most useful script for researchers working on geo-spatial domains. It is based on mapping toolbox. I have even provided sample data to run the script and see the output. I want to stress the fact that MATLAB has done wonderful job in generating spatial maps. Please feel free to use the codes in your research.


Announcements / IEEE Workshop on Programming with Python
« on: August 10, 2016, 08:05:17 PM »
IEEE-IISc student branch is organizing a workshop on programming with
python language. Please avail this opportunity and have an edifying
experience with learning python.

When: 19th and 20th August 2016
Where: Golden Jubilee Hall,ECE dept,IISc
Timings: 9am-6pm

Lunch/Beverages/Snacks are offered.

The details of the workshop are as follows:

Day 1: Python Basics - Part 1

Day 1: Natural Language Processing - Part 1

Day 2: Python Basics - Part 2

Day 2: Natural Language Processing - Part 2

Day 2: Recommender Systems

The costs associated with the workshops are as follows:

1000 - For IISc student who is an IEEE member

1500 - For IISc student who is not an IEEE member

2000 - For IEEE member(who is not a student)

2500 - For non-IEEE member(who is not a student)

Please visit the link below to find the session flow of the workshop

Please visit the link below to register for the workshop

Note: Please register by august 15th.

Pages: [1] 2 3