The American Michiganian Dakotian Californian Brahmin Nitin Kulkarni–Adich Laakh Dollars!

Posted in Uncategorized | Leave a comment

Micro-level water-resources engineering—5

Important Update added on 2015.04.22!

See near the end of this post.

* * * * *   * * * * *   * * * * *

Today is (Sanskrit) “akshay tritiya.” In the Khandesh area of North Maharashtra (in which the Shirpur town of the famous Shirpur pattern falls), in the local lingo, the day is known as “aakhaaji.” In Khandesh, it is a festival of women visiting their (Marathi) “maaher” (i.e. their parents’ home, or the home before marriage). There are traditional songs in the local “AhiraNi” dialect, and dance of the Gujarathi garbaa style, but played only by women. When I was a school-boy in that region, the dance would be done with “Tipri”s, but as far as I remember, without any dhols (i.e. drums), loud-speakers, or any large-scale organization, even if all the streets of the town would overflow with women playing “Tipri”s. I don’t know what the situation is like today.

Festivals mark days of relief. But otherwise, summer is a time of gruelling hard work for rural women. Maharashtra’s population is already 11.4 crores. Even if you take only 20% population as drought-affected, that makes it about 2 crores. (In the 2013 drought, the estimates were about 3 crores.) That means about 1 crore drought-affected women. So, as a rough estimate, there must be at least about 50–75 lakh women facing water-scarcity in a normal year—e.g., right now! Imagine, some tens of lakhs of women having to daily carry pots on their heads for several kilometers a day, just for fetching water—often only poor quality and soily/brackish water, but something that allows them at least cooking food for their families for their barest sustenance. What can we do to spare them the hardship? Obvious.

Find out cost-effective water resources strategies and solutions that can be within their means, without remaining dependent either on government or even on charity.

* * * * *   * * * * *   * * * * *

I have been browsing a lot of material, but have found that in this area, even some of the simplest questions are so hard to answer.

For instance, the data about the local geology. Or, even the data about local morphology—I mean, maps with contour lines having 1, 2, or even 5 m resolution, and not 20 or 30 m resolution. Digital DEMs with say 5 m resolution are impossible to find, and so, some creative solutions have to be found out. Here, I first thought of an idea, and later on found a part of it mentioned in a Marathi official document for irrigation department that my father gave me. I will write about it, and address many such questions some time later in this series.

In this post, instead, let me touch upon another simple question.

* * * * *   * * * * *   * * * * *

How much of the fallen rainwater really runs off the ground to the rivers? Why don’t some of the dams fill up every monsoon?

In Maharashtra, Marathwada is the region of the lowest rainfall (about 65 cm/annum). The river Godavari flows through this region. There is a big dam called the Jayakwadi project [^]; the reservoir is called “Naath Saagar;” it is named after the great Marathi poet-saint Eknath Maharaj.

The simple question is this: Why does the Naath Saagar reservoir does not fill up to its full capacity every rainy season?

An easy answer would be to say: “Because the rainfall is deficient.”

Let us see whether, starting from some simple basic assumptions, this answer turns out to make any sense or not. Let’s try to do a quick, back-of-the-envelop estimate for how much water should flow into the Jayakwadi dam every year. (My objective behind working out this simple exercise was to get some kind of a datum for the small check dams.)

The basic source of water is the rainfall. To estimate the total water received via rainfall, we have to know the watershed area of the dam. The Wiki page on the Jayakwadi dam [^] notes the catchment area as 21,750 square km. Referring to the rainfall for the upstream catchment area of this dam [I used the map in the book River Basins of India (p. 66)], I estimate the average rainfall for this region as about 65 cm (which also is the figure quoted by P. R. Pisharoty as noted in an earlier post in this series). So, the total annual water received via rainfall in the Jayakawadi watershed is about 1.41375E10 cubic m. Raghunath’s text on hydrology [^] on page 5 notes that for India’s total annual rainfall water of 370 million ha-m, the total runoff into all the rivers is 167 million ha-m. Thus, the runoff to the biggest river in a basin should be about 45% of the total water received from the skies. Assuming that a similar figure applies here, I get the runoff calculations as the following Python code shows:

# Assumed data
dRainfall = 0.65 # meter, assumed
dRunoffCoefficient = 0.45 # for all India
dCatchmentArea = 21750.0*1000*1000 # meters
# Calculations
dRainwaterVolume = dRainfall*dCatchmentArea
dEvaporationLoss = dRainwaterVolume/3.0
dRunoff = dRunoffCoefficient*dRainwaterVolume
dSeepageIntoSubsoil = dRainwaterVolume - dEvaporationLoss - dRunoff
print ("Total Volume: %E, Runoff: %E, Evaporation Loss: %E Seepage: %E" % (dRainwaterVolume, dRunoff, dEvaporationLoss, dSeepageIntoSubsoil))

On Ubuntu, open a terminal, type “python” in it, and at the Python prompt (say >>>) copy-paste the above lines, and hit enter. (On Windows, you will have to install a suitable Python environment first.) Or, use the online interactive Python terminal here [^].

Thus, the total quantity of water rushing into the Jayakawadi dam every year should be 6.36E9 m^3 (i.e. cubic meters). The Wiki page on the Jayakwadi dam notes that the total capacity of the dam is just 2.91E9 m^3.

Thus, the total quantity of water flowing into the dam should be about 2.1 times the dam reservoir capacity. The dam should more than overflow every year.

Yet, the dam doesn’t even fully fill up every year—it does so only about 2–3 times in a decade.

Even if we take a lower runoff coefficient, say as low as 0.35 (e.g., to factor in the presence of the relatively smaller dams upstream, and also an increased forest cover—which must be a very unrealistic assumption), and even if we take the annual rainfall in the watershed region to be as drastically low as just 40 cm (i.e. the worst drought situation, because they declare a drought if the rainfall is 20% lower [^], and the average for the catchment area of Jayakawadi is above 65 cm), you should still get some 3.045E9 m^3 of water into the Jayakawadi reservoir—more than enough to fill it up fully.

Indeed, there is a further irony. This dam has already gathered a lot of silt (because it is situated in a relatively flatter region, with more loose soil), and the live storage has gone down by 14% (as per Wiki).

[Incidentally, there has been some criticism that the project was moved 100 km upstream. Chances are, the reservoir then would have covered even a flatter area of loose topsoil.]

All of which means that the Naath Saagar reservoir should fill up and overflow even in the worst drought-hit years.

In practice, it doesn’t.

What gives? Any idea? I have no clue.

There must be something the wrong with the way the run-off calculations are performed—they are going off the mark by some 250%. That is too big an error. Has anyone looked into this aspect more carefully?

Exercise: Undertake the same exercise for the Ujjani dam. It is supposed to supply water to another severely drought-prone region in Maharashtra, viz. that of the Solapur district and the nearby areas. It too doesn’t fill up every year.

Realize that big dams like Jayakwadi and Ujjani have comparatively huge catchment areas. For a check dam, the catchment area (or the watershed area) is very small—and therefore, subject to even wider fluctuations from year to year. This is one sobering point we must keep in mind in our enthusiasm for the micro-level projects.

* * * * *   * * * * *   * * * * *

The Evaporation Loss, the High Intensity Rains, and Seepage vs. Storage:

As Raghunath’s book [^] shows on page 5, the water balance equation is:

total rainfall = evaporation loss + runoff + seepage into sub-soil.

The item of seepage into subsoil is further split into two parts: (i) a slightly bigger part (53%) of the contribution to moisture (which is the part that is used by the shrubs and the trees in their life-processes; this is the part that is ultimately released to the atmosphere via transpiration), and (ii) a smaller part (47%) of the recharge into groundwater.

Thus, the biggest items here are (1) runoff and (2) evaporation.

This primary importance of the runoff quantity in the overall quantitative scheme was the reason why I decided to check whether the simple runoff factors or calculations are realistic or not. If they were to be OK, I could use them as they are, in my detailed calculations concerning computational watershed modelling.  But as the above example of the Jayakwadi dam showed, at least at a gross scale, the runoff factors are not reliable. Now, even if there are some more detailed (say GIS based) models and micro-models for computing runoffs, I am not sure how reliable they would be. And, if the runoff factor itself is wrong, we are basically regressing back to the stage of empirical data collecting and validation, and so, coarsening out of the micro-models to macro-models (even if using GIS) would be an even more distant a step … Anyway, to proceed further….

For India, the runoff figure is several times higher than the total groundwater recharge.

Further, in the Deccan trap basalt region of Maharashtra, the seepage mechanism is not as efficient as it is in the alluvial soils (for instance, of Aravali region of Rajasthan, or in the Tapi and Purna basins of Maharashtra (the area of the Shirpur pattern)).

Recall Pisharoty’s paper I quoted in my last post in this series [^]. In Maharashtra, half of the annual rainfall occurs within only 15 to 20 high-intensity hours, which occur sometime over only 35–45 days of any actual rainfall.

Thus, in the Deccan trap region of Maharashtra, first there is an overall inefficiency of seepage. It is further compounded worse due to the infrequent high intensity bursts of rains. If the same amount of rainfall were to occur as a slow drizzle over a long period of time, say a continuous stretch of weeks, then such a rainfall pattern would be better conducive to seepage. On the other hand, a sporadic high intensity pattern implies less seepage and more runoff.

Hence, in the Deccan trap regions of Maharashtra, it is the surface storage strategy which is likely to prove better than the underground seepage strategy.

For the above reasons, our solutions should be able to handle arresting the high intensity runoff, for storage.

Next, in India in general, evaporation also is several times higher than the groundwater recharge.

Evaporation is a really bad factor in hot climates like India. At the level of large-scale dams and even for check dams, there is precious little that can be done about it. (Solutions have been sought, e.g., spreading some chemicals on top of the water, but their side effects is a worry.)

Realize that evaporation is a surface phenomenon. Dams with a shallow and wide-spread reservoir (e.g. Jayakwadi) tend to have a relatively higher percentage of evaporation losses, as compared to the deeper dams. Ditto, also for check dams. (That is the reason why the nallah-deepening aspect of the Shirpur pattern makes good sense—provided the cost of excavation is low enough. For the time being, let’s focus on evaporation.)

Evaporation maps for Maharashtra show losses as high as 1.5 m to even 2.5 m per year. Thus, if you build a check-dam with a 3 m high wall, expect to lose more than half of the water to evaporation alone. (The famous bund of the bund-garden in the Pune city used to be actually shallow; it would hold a nice expanse of water simply because the bigger Khadakvasla dam upstream would periodically release water into the river.)

For the same reason of evaporation, most nallah-bunding and contour-trenching works, such as those by Anna Hazaare in Ralegan Siddhi, or those typically undertaken under the socialist programs like MNREGA, don’t translate to anything at all for storage, or for that matter even seepage. Typically, the bunds are less than 1 m tall, and theoretically, water in them is expected to plain evaporate out right before December. Practically, that anyway is the observation! No matter what Anna Hazare might tell you, it is a waste of money and effort.

* * * * *   * * * * *   * * * * *

Farm Ponds:

Before closing, let me mention farm ponds as an effective storage strategy, apart from check-dams.

One big advantage with check dams as compared to conventional dams is that there is no cost incurred in the acquisition of land, and for rehabilitation of the displaced people. Speaking purely costs-wise, I read somewhere (or heard in Suresh Khanapurkar’s interviews) that about half of the cost of the conventional dams is on just these two counts.

However, in the case of check dams, if the natural depth of the river gorge is not sufficient (try the small software I wrote earlier in this series), then in order to reduce the percentage loss due to evaporation and thus to make the project economical, some extra expenditure may become necessary in deepening the nallahs.

Now, in the Deccan trap region of Maharashtra, since small rivers and nallahs tend to run through regions of hard rocks (the top soil layer can be as thin as just 0.5 to 1 m or even zero, in them), the excavation work to deepen the nallahs can easily prove to be too costly—this is a factor going against the Shirpur pattern. (More on the economics of excavation in check dams, and of farm ponds, in a later post.)

An advantage with the farm ponds, when compared to check dams, is that since they are built in the field, i.e. in a deeper layer of soft soil, deepening the ditch turns out to be much more economical.

On the downside, as compared to check dams, the storage capacity of farm ponds is much smaller. They also eat up what otherwise could have been a productive farm land.

But, as we saw, a deeper water body means lower percentage of evaporation losses.

Thus, overall, costs-wise, there are many oppositely directed factors, and it’s not possible to draw general conclusions. It’s the cost balance that really determines whether a farm pond makes sense in a given location or not, or is it a check dam for storage, or a check dam for seepage. (I will write another post covering the economics of check dams vs. farm ponds vs. conventional dams).

Second, as far as evaporation is concerned, there is an incredibly creative solution which I ran into only today. It suggests that if you cover a farm pond with a floating layer of the used plastic bottles, then the evaporation loss (at least for very small experimental ponds) can be cut by up to 40%! [(1.7 MB .PDF file) ^]. The work has been done at the well-known Vigyaan Aashram at PaabaL near Pune; guess they also have some kind of collaboration with COEP and MIT (USA). Anyway, coming back to evaporation losses, this is a huge, huge advantage at a throw-away price! The suggestion right now is only at a preliminary stage. I think it should be seriously taken up for studies on a larger scale of a realistic pond. But yes, as an engineer, I simply marvel at this idea—it again takes a perceived problem (“Gee, even Indians have started buying bottled water, huh?” and “Now how do we deal with this mess of all this plastic waste!”), turns it around on its head, and provides a cost-effective solution to another pressing problem. Neat!

BTW, the farm ponds need not always get only“naturally” filled, i.e., with the surface-running rain-water falling from the sky on the same field. Sometimes a combination of a lift-irrigation scheme + a farm pond can also be cost-effective.

Further, as has been practically demonstrated at many sites (e.g. in the Ahmednagar district, by actually practising farmers) a farm pond can also be very easily used for farming fish, as a side business (read side income)! Farming for fish requires relatively little labour—mostly, only some aeration (if at all required) and throwing food into the pond regularly (like twice/thrice a week or so), that’s all. Fish is not only very tasty food, it also is a very high quality and easily digested protein.

The side-walls of the farm-ponds can be also be planted with the kind of trees that give lush green shadow while making do with less water demand. A welcome sight, and a welcome spot for rest, on a hot summer afternoon.

Finally, talking of water bodies, trees, and how beautiful and (literally) cool a surroundings they can go on to make, and of side-businesses, and of creativity, here is yet another creative side-business that has come out of a bigger farm pond; check out the Saguna Baug in Neral near Mumbai [^].

* * * * *   * * * * *   * * * * *

Important Update added on 2015.04.22:

Python scripts for predicting the extent to which the Jayakwadi and Ujjani dams should fill, at a given rainfall level. Also, analysis of results, and some comments:

Since writing this post yesterday, I studied more closely the topic of the rainfall–runoff relationships in standard textbooks on hydrology.

There are quite a few models that allow you to calculate the expected runoff volume from the rainfall extent. These are specific to soil types, gradients, type of surface, etc. For Maharashtra, there is a well-known model by Inglis and De Souza (1929); e.g. see p. 180 here [^]. This is an empirical (curve-fitted) model that gives you two separate equations.

For the ghat region:
R = 0.85P - 30.5

and for the Deccan plateau:
R = \dfrac{1}{254} P \left( P - 17.8\right)

where R is the annual runoff and P is the annual rainfall, both in cm.

Since the formulae seemed to give far lower values for the runoff coefficient, and hence the runoff volume even for the average rains, I decided to write a Python script to find out the extent to which the Jayakwadi (and later, also Ujjani) dam would fill up, given different levels of rainfall.

Here is a link to a zip containing the Python script files and their outputs, in the CSV format [^]. In my code, I calculate the R parameter using both the above equations and take their average. Effectively, I assume that half of the watershed region is of the ghat region, and the other half is of the Deccan plateau. Though the zip file doesn’t show it, there aren’t very glaring differences in the values of R as estimated via the two equations.

The files make it clear that at the average rainfall level of 65 cm in the watershed (i.e. the catchment) region, the Jayakwadi dam is expected to fill only to 89.6%. If there is a drought year and so the watershed region receives some 45 cm rains, this dam would fill only to 21%!! For this dam to fill 100%, an above average rainfall of 67–68 cm would be necessary. Little wonder that the dam has filled only rarely.

The figures for the Ujjani dam are not much different, only slightly different. For instance, it would take 77–78 cm rain in its catchment area for it to fill up. The catchment area of the Ujjani dam does receive a somewhat higher rain, and so, let’s say the normal rainfall there is 70 cm. At this level, the Ujjani dam is expected to fill only to 73% of its full capacity!

There are other methods to estimate runoff too. But given the informal general knowledge about these dams, Inglis and De Souza’s correlations would seem to hold well.

I am no expert in dams design. To my lay engineer’s eyes, these are decidedly wasteful designs. After all, bigger-than-necessary designs imply greater-than-necessary expenditures, too. The Wiki page informs us that Jayakwadi project has cost more than Rs. 10,000 crores by now. … What portion of this huge amount are wasteful?

Among the Maharashtrian “intellectual,” “chattering” etc. classes  (and also among the NRI community, esp. that settled in the USA, esp. in California), it has become a fashion to blame politicians for every conceivable ill concerning water scarcity in Maharashtra.

Do you think that these civil engineering designs were done by politicians? Do you think that, for instance, say Vasantrao Naik, would have knowingly ordered a deliberately bigger and costlier dam, just to score some political high point for himself or his party? (I mention him because the Wiki informs us that the Jayakwadi dam design was finalized when he was the CM. Similarly, the Ujjani dam got designed when he was the CM.)

If you think such things are possible—things like increasing a dam size just to score some political high point for oneself or one’s party—then I would say that you just don’t know the way a typical politician thinks and operates. Yes, even in a mixed economy.

Yes, it’s important for a typical politician in a mixed economy (regardless of the party to which he belongs) to show that he is doing something meaningful, whether something actually meaningful gets done or not; yes, it is possible that given a choice, he would always pick up that choice which benefits his own constituency; yes, it is possible that he might even bring a bit of pressure on the officers to tweak solutions so that his constituency benefits. (They even publicly admit if not boast about such things.)

But a deliberate increase of size of a dam for absolutely no conceivable benefit to anyone? No way. No politician even in a mixed economy—and esp. in reference to a country like India—ever operates that way.

Here, if you say that an increased dam size means an increased budget, and therefore greater bribes to him/his party-men, then I would say, you just don’t understand the system. Even if I grant you the premise that every politician is always on principle on the look-out for kickbacks and bribes, granted that, a typical politician still wouldn’t want to increase a dam’s size, because—and get this right—he doesn’t have to. He can easily use the same amount of the additional (wasteful) budget on some other project without ever affecting the total quantum of his bribe, so why should he insist on making just one dam/project bigger than necessary, at the expense of all other possible dams/projects? If he can build two dams in the same budget—note, the amount of bribe has stayed the same—since he stands to get double the publicity with the same budget-money, he would rather go in for that.

Thus, all this “logic” is simply the smart “white-collared” Indian’s way of saving the “behind” of his own—or of groups of people he regards similar to him—nothing else.

Are bureaucrats and even engineers ever going to admit there might have been some mistakes here? More importantly, how many Indians of the “intellectual” kind are going to be willing to even think of such a possibility? (Even Anna Hazaare’s all-water-vaporizing nallah-bunds seem almost innocuous by comparison; they must have involved relatively smaller amounts, say of a mere few hundreds of crores. In contrast, wasteful big projects like these would involve thousands of crores.)

And, even more importantly, is there anyone willing to have an honest second look about the socialistic nature of the system that produces costly errors of this kind? (Not just costs. Since a wrong datum for the capacity of the dam has been established, now there also are fights: Marathwada people think that if the Jayakwadi dam doesn’t fill up fully, the reason must be that the smaller dams upstream have been criminally diverting water that is rightfully theirs… Think of the bigger and bigger mess it all gets into.)

…Anyway, since I can’t do anything about it, let me wind down on that topic, and instead, let me focus on what I can do.

What this exercise means is that I can use some of these even simple text-book methods to build computational models for the check dams/farm ponds with acceptable enough accuracy; they would be accurate at least to a first-order. (After all, Inglis and De Souza’s second equation shows that a quadratic dependence of the runoff on the rainfall. Also, the other rainfall-runoff models show different kinds of nonlinear relations. So, they should be accurate at least to the first order in further usage.)

One more point before we close. Let me note a couple of good links on the topic of farm ponds. Here they are:

“Farm Ponds: A Climate Resilient Technology for Rainfed Agriculture: Planning, Design and Construction” [(13.1 MB PDF) ^]

“Rainwater Harvesting and Reuse through Farm Ponds: Experiences, Issues and Strategies” [(5.4 MB PDF) ^]

Also, a useful reference on the topic of evaporation: “Potential Evapotranspiration Estimation for Indian Conditions: Improving accuracy through calibration coefficients” [(3.8 MB PDF) ^]

* * * * *   * * * * *   * * * * *

A Song I Like:

[I recently randomly stumbled on a listing of this song, and then listened to it after a long, long time—long enough that reading only through the words, I was not able to place the song; I had to listen to it to “get” it back…  A relaxed tempo, and a beautiful melody by SD. … I don’t know if RD assisted SD for this song or not (this one is from 1963), but going by the orchestration, there is at least a hint of the young RD here, esp. in those interludes of the sax and guitar. I doubt if Dada Burman, in 1963, could have given that much of a freedom to Manohari Singh (an assistant and the probable sax player) sans RD’s presence. The tune, of course, is unmistakably SD’s own. … It’s the kind of a tune which you inadvertently catch yourself humming aloud sometime later, perhaps even a few days later, and it still surprises you, and it still makes you want to re-listen to the song…  Shailendra is at his lyrical best… And yes, it’s Suman Kalyanpur, not Lata.  Enjoy the brilliant simplicity of SD (possibly with a small assistance coming from RD)…]

(Hindi) “ye kis ne geet chheDaa…”
Music: S. D. Burman
Singers: Mukesh, Suman Kalyanpur
Lyrics: Shailendra

 

[PS: Though the content will not change much, tomorrow, I might come back and add just a few links to some good documents on design/experience/economics of farm ponds that I have downloaded. Done. Also added Python scripts for computing the percentage of dam capacity to which the Jayakwadi and Ujjani dams would fill up, at various levels of rainfall in their respective catchment areas.]

Posted in Uncategorized | Tagged , , , , , , , , , , , , | Leave a comment

Hail Python well MATE

Hail Python! (Yes, I have converted):

As you know, I’ve been using Ubuntu LTS (currently 14.04.01). These days it has even become the OS of my primary usage. I like the current Ubuntu as much as I had liked NT4 and Win2K when they were in vogue.

I began moving away from the Windows mainly because the one IDE that I really loved, viz. VC++ 6, got superseded by a series of software that were, increasingly, unusable by me. For instance, increasingly too complex. And, increasingly too sluggish.

There then followed a period of a kind of quantum mechanical-ness: I didn’t find either Windows + Visual Studio suitable, nor did I find any of the alternatives (e.g. RedHat + vi/emacs/whatever + configure + make + GDB + …) attractive enough.

And, for some reasons unknown to me, I’ve never found Java as “my” platform.

As to Java, no, neither the personality of Scott McNealy nor the institution of the DoJ in USA had anything to do with it. In many ways, Java is a very good language, but somehow I never found the non-C++ features of it attractive even an iota: be it the lack of genericity, or the idea of downloading the bytecodes and the flakinesses of the VMs supporting it (owing mainly to the complexity of the language), or the excessive reliance on the ‘net and the big SUN servers that it implied, or, as may be shocking to you, even the famous Java reflection! (Given the other design features of Java, and the way it was handled, I thought that it was a feature for the clueless programmer—which Java programmers anyway tend to be (even if IMO the Visual Basic programmers very strongly compete with them in that department).)

And thus, I was in a state of QM-like superposition, for a long, long, time.

Partial measurements began to occur when, sometime as late as in the ‘teens, Eclipse IMO improved to the point that it wouldn’t leave a previous instance of the debug image sneakily lurking in the OS even after you thought you had terminated it. Sometime in between, Eclipse also had begun honouring the classic keyboard short-cuts of VC++: F11 would really step into a C++ function; F10 would really execute a function call without stepping into it; etc. Good!

Still, by this time, C++ “libraries” had already become huge, very huge. A code-base of a half-million LOC was routine; some exceeded millions of LOC. Further, each library assumed or required a different make system, a different version of the GCC etc., and perhaps much more importantly, none was equally well-supported on both Linux and Windows; for examples on one or more on these counts, cf. OpenFOAM, PetSc, Boost, CGAL, ParaView, QT, TAUCS, SuperLU, et al., just to name a few. The C++ template classes had become so huge that for writing even very simple applications, say a simple dialog box based GUI doing something meaningful on the numerical side, you began drowning in countless template parameters if not also namespaces. And, of course, when it came to computational engineering, there was this permanent headache of having to write wrappers even for as simple a task as translating a vector or a matrix from one library to another, just to give you an example.

I thus had actually become a low productivity C++ programmer, despite the over-abundance of the in-principle “reusable” components and packages. … I pined for the good old days of VC++ 6 on Win2K. (Last year or so, I even tried installing VC++ 6 on Win7, and then found that forget having “support”, the IDE wouldn’t even install i.e. work on Win7.)

In the meanwhile, I had noticed Python, but as they (for instance the folks painting the backsides of auto-rickshaws and trucks) in India say, (Hindi) “samay se pahele aur bhaagya se jyaadaa/adhik…” …

… Even if you allow an innovative new idea to take root in your mind, it still has to ripen a bit before it begins to make sense.

Then, this week (as you might have guessed), I happened to have an epiphany of sorts.

And, yes, as a result, I have converted!

I have become Pythonic. Well, at least Pythetic! … Pythonewbie! (Fine. This should work.)

As you know, I was going to convert my check-dams C++ code into Python. As I said in the last update of my last post, I initially began learning the language the hard way [^]. However, being a fairly accomplished C++ programmer—apart from a professional working experience of about a decade, I had also written, e.g., a yacc-like front-end taking EBNF grammar for LALR1 languages and spitting out parser-tables, just as hobby pursued on evenings—I soon got tired of learning Python the hard way, and instead opted for a softer way. I did a lot of search, downloaded `n’ number of tutorials, codes, etc., went through the Google education [^], and quickly became, as I said, a Pythonewbie.

Let me first jot down what all the components of the Python ecosystem I have downloaded and have begun already trying: wxPython, PyQT, PyOpenGL, Pyglet, VPython, matplotlib, and of course, NumPy and SciPy. I also drool at the possibilities of using the Python bindings for OpenFOAM, VTK/ParaView, CGAL, FENICS, and many, many, many others.

Why did I convert only now? Why not earlier?

Apart from (Hindi) “samay se pahele aur bhaagya se jyaadaa/adhik,” here are some more mundane reasons, listed in no particular order:

1. I was led to believe (or at least thought) that Python was a scripting language, that it is a good alternative to, say, the shell scripts.

False.

Python is—at least at this stage of development of the language and of the entire eco-system—not a language per say, but rather an ingenious tool to glue together massive but fast C/C++/FORTRAN libraries together.

2. I was also led away from Python because it lacked the cozy, secure, protective, nurturing, etc. environment of the C/C++ “{}” blocks.

I had come to like and rely on this K&R innovation so much, that a lack of the braces was one very definite (but eventually very minor) reason that Visual BASIC (and OO FORTRAN) had turned me away. As to Python, I felt plain insecure. I had a very definite fear of the program crashes any time I made a simple mistake concerning a mere indentation. … Well, that way, the C++ code I myself wrote never had the highly irritating sloppiness of the unevenly spaced indentations. But I anyway did carry this fear. (For the same reason, I found the design of the OpenFOAM input files far more comfortable than it actually is: you see, it uses a lot of braces!)

But now, I came to realize that while the fear of going block-less isn’t without reason, practically speaking, it also is largely unfounded. … Even if in Python you don’t have the protection of the C/C++ blocks, in practice, you still can’t possibly make too many mistakes about scopes and object lifetimes for the simple reason that in Python, functions themselves become so very short! (I said scope and lifetime, not visibility. Visibility does remain a different game, with its own subtleties, in Python.)

Another virtue of Python:

Another thing. Python is small. Translation: Its interpreters are sturdy. This is one count on which Java, IMO, truly floundered, and as far as I gather from others, it still does.

(No, don’t try to convince me otherwise. I also see Java’s bugs on my own. …. Just fix, for instance, that bug in the Java VM which leads to this Eclipse CDT bug. Suppose you are working on a C++ project, and so, there are a bunch of C++ files open in various tabs of the Eclipse editor. Suppose that you then open a text file, e.g. the OutputData.txt file, in an additional Eclipse tab. Then, you go to some C++ file, edit it, build it, and debug/run the program so that the OutputData.txt file on the disk changes. You switch the tab to the text file. Naturally, the tab contents needs to refreshed. Eclipse, being written in Java, is stupid enough not to refresh it automatically; it instead tells you go to the menu File/Refresh this page. That’s what happens if the text file tab isn’t the active one. [Eclipse is in version 3.8+. [Yes, it is written in Java.]] Now, if you repeatedly do this thing (even just a couple of times or so), the menu item File/Refresh is found painted in a way as if it were disabled. As far as I can make it out, it seems to be a Java VM bug, not an Eclipse bug; it also occurs in some other Java programs (though I can’t tell you off-hand which ones). In any case, go ahead San Francisco Bay-Area i.e. Java-Loving Programmer(s), fix Your Platform first, and then think of trying to convert me.)

Python becomes reliably sturdy precisely because it recognizes that it can’t and hence shouldn’t try to be good at too many things.

Python doesn’t pretend to give you any GUI or graphics capability—not even to the extent to which TurboC/C++ did. On the other hand, Java/C# tried to be masters of everything: GUI, network, graphics…. You know where they end(ed) up. And where C and even FORTRAN continue chugging along even today. (In case you didn’t know: both remain within top 5 languages, after some 50+ and 40+ years, respectively.)

The question to pose (but usually not posed) to a recent convert:

Since I am a recent convert, you may now be tempted to probe me: “Any downside to Python?”

My answer: You are right, there are downsides. It’s just that they don’t matter to me, because they aren’t relevant to me—either my personal background or my present purposes.

Python might make learning “programming” incredibly easy and fast. But if you are going to be a serious, professional programmer, there are so many principles and rules that you must additionally learn, and far too many of these are simply not accessible while working within the Python environment. Just to give you some examples: Type safety. Object life-time management, including programmer-controlled dynamic (de)allocation. Static vs. dynamic binding. Pointer arithmetic. (As to pointers: Both God and the actual hardware use it. (That’s another point against Java, and in favour of C/C++)). Stack frames. Finite memory. Etc.  Yet, at the same time, Python also merrily exposes system calls. Think of a script-kiddie delinking a file or a folder!

Yes, Python is better (much, much better) than BASIC for teaching some of the ideas of computers and programming to kids (e.g. to CBSE Std. XI kids in India). But taken as an independent language, and for the routine programming use, it would have to rank much below average.

… But then, Python shouldn’t at all be seen that way in the first place.

As I said, Python should be seen not as a language but simply as a powerful and sturdy tool for integration of an incredible variety of the super-fast C++ (even FORTRAN) libraries, in the simplest possible manner, and with cleanest—i.e., most readable kind of—source code.

Ok. Enough about Python. … I don’t say you should become a Python programmer. I merely told you the reasons why I converted.

* * * * *   * * * * *   * * * * *

What about the MATE?

Now, a word about the MATE part of the title.

I have installed the UbuntuMATE 1.8 shell on my Ubuntu 14.04.01 LTS, replacing the Gnome Unity shell.

Good riddance!

And, I have also taken this opportunity to disable the overlaying of the scroll-bars [^] (even though doing so would have been possible also on Unity, I learned only now (“samay se pahele…”)).

I feel light. Yes. Light. … Lighter. … Lightest.

The theme I run is Redmond. This way, I get the same Windows experience which I liked and still do. [No, thanks, but I won’t like to try the tiles environment even for free, let alone out of piracy.]

MATE is neat. It should be included in the official Ubuntu distro as early as possible. (I gather that they do have a definite plan to do so.)

And, in the interests of conserving mankind’s shared resources including disk-spaces, energy usage, and most importantly, mental sanity, first, all the distributions of all versions of the Unity shell should be permanently deleted from all the servers of the world, except for an archival copy or two for reference in the studies of pathological cases of the practice of computer science. Then, this archival copy should be given a permanent resting place next to that of the Microsoft Bob.

[Oh, yes, BTW, I know, the title is slightly stupid… But what else can strike you if you write something—anything—about Unity and Microsoft Bob also in the same post? Also, Java?]

* * * * *   * * * * *   * * * * *

OK. Back to trying out the different C++ libraries, now far more easily, from within the Python environment. … I am going to have to try many libraries first (and also explore Python itself further) before I come true on the promise about the next version of that check-dams toy program.

* * * * *   * * * * *   * * * * *

A Song I Like:
(Hindi) “ik raastaa hai zindagi…”
Singers: Kishore Kumar, Lata Mangeshkar
Music: Rajesh Roshan
Lyrics: Sahir Ludhianvi

[PS: This song is from 1979—the year I was in my XII. It is, thus, some 36 years old.

Going further back by 36 years, to 1943, guess we are somewhere firmly in the “unknown” territory of Hindi film songs. Sehgal’s “baabool moraa” is from even slightly earlier times, from 1938, and it sounds so quaint. Talking of 1943 proper, even the more modern sounding Anil Biswas had this “dheere dheere aa re baadal” in the movie Kismet—do check it out, how quaint it sounds to the ears of even my generation. And I am not even talking of the other “gems” of that era!

… When I was growing up, the elders would always talk about how beautiful the old songs were—and how trashy, the new ones. But come to think of it, there was a much smaller period of just 23 years between say Chori Chori (1956) and 1979, than there is between 1979 and 2015.

Yet, this song of 1979 sounds so completely modern, at least as far as its audio goes. BTW, in case you don’t know, in this section of my blog, I primarily refer only to the audio tracks of songs. Making an exception for this song, and thus referring also to its video, except for a little oddity about the kind of clothes Shashi Kapoor is seen wearing, there is almost nothing that is 35 years old to that song. … May be because of the rural/jungle settings in which it was shot. Even Shashi Kapoor’s bike looks almost every bit modern. I don’t know which one it actually was, but going by the shape of the tank, of the headlamp, and of the front side indicators, not to mention the overall way in which it takes to the road and handles the curves, I would bet that it was a Yamaha bike. (It can’t possibly be a Rajdoot 350—which also was about the same size—because the Rajdoot 350 was launched in India, I just checked, only 4 years later, in 1983—the year I graduated from COEP.)

Conclusion? There is some sort of an underlying cultural reason why people in their 50s (like me) no longer sound or even look as old as people in their 50s used to, when we were young. … Even if we now are that old. Well, at least, “mature.” [No Hollywood actresses were harmed in the writing of this post. [Hollywood is in California, USA.]]]

[E&OE]

Posted in Uncategorized | Tagged , , , , , , , , | Leave a comment

Micro-level water-resources engineering—4

Further Update on 2015.04.13: The debugged version is online.

Here is the zip file for the debugged version [^]. I have updated the link in the main text below, too. The bug consisted of a single change: In the file CCheckDamsSeries.cpp, line 228, it should be dEX1 = dX2 - dEWaterLength; in place of dEX1 = dX2 - dWaterLength;. That’s all. (Copy-pasting codes always introduces errors of this sort.)

What I have now uploaded is only the (corrected) first version, not the entirely rewritten second version (as mentioned in the first update below). Two reasons for that: (i) The first version itself is good enough to get some overall idea of the benefits of check dams, and (ii) I have decided to try Python for the more elaborate and completely rewritten version. The reason for that, in turn, is that I just got tired of compiling the binaries on two different platforms.

That way, I am new to Python, and so, it will take a while before you get the expanded and rewritten version. I am learning it the hard way [^].  May be a couple of weeks or so for the next version… Bye for now.

Important Update on 2015.04.12: The software is buggy.

I have noticed (at least one) bug in the software I wrote (see details below). It came to my notice today, once I began completely rewriting the code with a view to study how the economics would work out at different gradients of the river (keeping all the other variables constant, that is). The bug concerns the calculation of the water volume after evaporation, in each dam.

Please give me a few days’ time, at the most a week, and I will upload a (hopefully) correct and a much better written code.

In the meanwhile, I am keeping the current buggy code at the link provided below just in case you want to debug it or play with it, in the meanwhile. Once the new code is ready, I will remove the current buggy code and replace it with the new code.

* * * * *   * * * * *   * * * * *

The last time, I had suggested an exercise to you. I had not actually undertaken that exercise myself, before writing about it on the blog.

Once I began calculating manually, I realized that the calculations were highly repetitive. I therefore decided to write a quick-and-dirty C++ program about it.

It takes a few input parameters concerning the geometrical dimensions of the highly simplified model river, generates a series of check dams, and calculates the volumes of water that would get stored.

The program also takes into consideration a thumb-rule for the evaporation losses. However, the seepage losses are not considered. That will be quite a different game.

The program also calculates the number of people whose daily personal water needs would be fully satisfied by the available water storage (after deducting the loss due to evaporation, though not by the seepage).

Finally, I also threw in a very rough-and-ready calculation for estimating the costs of building the system of check-dams, and the one-time per-capita cost (for the supported population) for the round the year availability of water (assuming that all the dams do get fully filled up during the monsoon each year).

Let me hasten to emphasize that the cost calculations here are too simplistic. Don’t rely on them; take them as just rough, preliminary and merely indicative estimates.

The cost calculations also do not include any maintenance aspects—which, IMO, is an even more serious drawback for this software. I believe that dam-maintenance must be factored in right at the stage of design—including periodic maintenance for the mechanized removal of the accumulated silt.

Further, costs for lift-irrigation or pumping of water are not included in this program.

Despite these limitations, it has turned out to be an interesting toy to play with!

I am sharing a link to a zip file (stored on Google Docs) containing the source code as well as the pre-compiled binaries for both Windows 7 and Ubuntu 14.04.01 LTS (both 64 bit), here [ (.zip, < 40 kB) ^]. Enjoy!

Things you could check out:

After altering some of the input parameters, I found that the total amount of water available (and hence the population that can be supported, and hence the per-capita expense) is highly sensitive to the depth of the river gorge at the mouth (i.e. at the extreme downstream end, where it joins a bigger river). Realize that this is a very simple model: the volume of the pyramid is directly proportional to the area of the base rectangle, and the fact of the slope restricts the possible storage volume in such a way that the depth of the river bed at the mouth then perhaps becomes the most important parameter in this model.

If you spot some other peculiarities, I would love to hear from you.

* * * * *   * * * * *   * * * * *

These days, I have been discussing these ideas with my father a bit. Not much, but I just passingly mentioned to him that I had written a blog post and that I mentioned about what he had told me about the geology of the Shirpur region.

Next day, he dug out from somewhere the proceedings of an all India seminar he had attended. Here are the details of the seminar: “Modern techniques of rain water harvesting, water conservation and artificial recharge for drinking water, afforestation, horticulture and agriculture,” jointly organized by the Rural Development Department of Government of Maharashtra and the Directorate of Ground Water Surveys and Development Agency, in Pune, on 19–21 November, 1990!

Wow! 1990! The proceedings are by now some 25 years old!

Yet, browsing through it, it first seemed to be how little things had changed. The contents of that seminar a generation ago are almost entirely relevant even today!

… Of course, there must have been some changes. What I got here was only a compilation of the abstracts and not the complete proceedings of all the full length papers. It is difficult to make out the progress (or its absence) looking only at abstracts. … I notice that a lot (even majority) of the papers are mostly of the sort: “This thing needs to be looked into” or “We have begun this study,” or “this approach seems to be promising.” Concrete, quantitative results are rare in the book. May be that’s the reason why the material looks very “modern” even today.

Other noticeable points: Only one or two papers make reference to GIS or material generated by GIS, or to the satellite imaging/remote sensing technologies. None provides any kind of a computational modelling. All the diagrams are drawn on paper—not computer generated. The book itself was printed, not produced via desktop publishing.

There was a participant from a foreign country—a lone foreign participant, I think. His affiliation was with the Cornell University, USA.

The title of this paper was “Optimization techniques to study the impact of economic and technical measures in recovering aquifers polluted by farming activities” (italics mine).

Even in the abstract, the author felt it important to highlight this part: “the importance of a government body which assumes a key regulatory role in managing the quality of the aquifers cannot be understated” (italics mine).

Immediately later, he also simply added, as if it were an unquestionable kind of a statement: “Both economic and technical measures are at the disposal of the government” (italics, once again, mine).

The author had grandly concluded his abstract thusly: “A theoretical model is developed that may assist the government in determining proper policies under various conditions of economic priorities as well as under different scenarios for relative price ratios between inputs and agricultural production” (italics emphatically are only mine).

The more things change the more…

BTW, any one for the idea that participation from Ivy League schools uplifts the quality of Indian conferences?

It’s a 140 pages book, and I haven’t finished even browsing all through it. My father gave it to me only yesterday noon, and, as you know, I have been writing this program since yesterday afternoon, and so didn’t find much time for this book.

However, I did notice one very neat abstract. So neat, that I must share it fully with you. It forms the content of the next section.

* * * * *  * * * * *   * * * * *

“Indian Rainfall and Water Conservation,” by P. R. Pisharoty, Professor Emeritus at Physical Research Laboratory, Ahmedabad.

Abstract

The average annual rainfall over the plains of India is 117 cm. The average for all the lands of the World put together is only 70 cm. per year.

In Maharashtra, 80% to 95% of the annual rainfall occurs during the monsoon period June to September. And that occurs in 85 days over the Konkan and in 35–45 days over the rest of Maharashtra. The monsoon rainfall over Konkan is 270 cm., Vidarbha 95 cm., Madhya Maharashtra 77 cm., and Marathwada 65 cm. Half of this amount (outside Konkan) falls in 15 Hours to 20 hours distributed within those 35–45 days. Being of high intensity, 3–5 cms. per hour, this half amount of total monsoon rainfall runs off the ground causing floods and much soil erosion.

This is our problem—particularly in the non-coastal Maharashtra. Only 35–45 days of any significant rain in the whole year, that too confined to the period June to September, half of the rain coming down with great intensity and running off the ground causing flood and much erosion.

We need innovative water conservation methods. We have to draw on our ancient wisdom. The characteristics of the rainfall in the European Countries and in north America are different. Their rainfall is distributed throughout the year and their intensities are not as high as those of Indian rainfall.

Construction of a very large number of water ponds, each a hectare or so in area and about 10 metres deep is one such method. It can be supplemented by check dams, underground check dams, etc. There are other water harvesting methods adopted in areas where annual rainfall is 20–30 cm. or less. Maharashtra is not that bad.

* * * * *  * * * * *   * * * * *

[In the above reproduction, I have kept the typos (15 Hours to 20 hours), the mistaken convention for writing physical units (cm. instead of cm) and the italics emphasis exactly as in the original.]

Honestly, which one of the two abstracts you liked better? Why? What kind of epistemological issues seem to be at work?

* * * * *  * * * * *   * * * * *

A Song I Like:
(Hindi) “ni sultaanaa re…”
Music: R. D. Burman
Singers: Mohamad Rafi, Lata Mangeshkar
Lyrics: Majrooh Sultanpuri

[E&OE]

 

 

 

Posted in Uncategorized | Tagged , , , , , | 1 Comment

Micro-level water-resources engineering—3

The deccan trap basalt as the most widespread feature of the geology of Maharashtra:

The geological map for India shows a large uniform portion for the deccan plateau. It consists the hard basalt rock, and not soft or sandy alluvial soils. The deccan trap basalt portion goes over Maharashtra, MP, Karnataka, and the adjacent areas from other states. (To my surprise, it seems that the geologists do not include the south Karnataka region in the same deccan trap basalt region.)

As far as regions of water-scarcity go, there is a very wide continuous band in India. Take India’s map, and mark two slanted lines: the top one going across Rajasthan, MP, Orissa, and the bottom one going across Gujarat, Maharashtra, Karnataka, Telangana and AP, even Tamil Nadu. Statistically speaking, the greatest number of the most severe droughts seem to occur in the regions falling in between these two lines.

The area of my interest is in Maharashtra. The worst drought-prone regions of Marathwada, South Maharashtra and parts of Vidarbha and Western Maharashtra all fall in between those two lines.

If Maharashtra is seen at a large, national, scale [say, 1 cm:100 km], the topmost geological layer is comprised mostly of the deccan trap basalt.

The water-seepage characteristics of the deccan trap basalt:

Speaking in general terms, if you take, say, a 10 cm X 10 cm X 10 cm cube of basalt, you will find it to be a hard, impermeable rock. You might therefore conclude that it is not very easily conducive to groundwater seepage.

However, when viewed at a larger scale, even a top-layer of basalt is not uniform either in composition or in shape (i.e. in terms of its surface morphology). First of all, there are inhomogeneities introduced and fissures formed right at the time of formation of these geological layers aeons ago. Then, there are earth-quakes, introducing cracks and fissures. Further, there also are some very slow processes that nevertheless make their effects felt over the geologically long time-scale of tens, even hundreds of thousands of years.

Due to the inhomogeneity of their composition and morphology, the daily thermal expansions and contractions experienced by the surface layers of rocks are inhomogenous. These inhomogeneities lead to thermally induced mechanical stresses. Over the geological time-scale, the repeated thermal stresses result in local fractures, especially near the surface (where the temperature gradients are the greatest). Further, the mechanical effects of erosion due to water flow leads to deposition of sand; it also serves to erode the fissure openings. The chemical action of dissolved minerals and chemicals lead to enlargement of fissures and opening of cavities at surface as well as deeper layers. Even in a nominally hard rock like basalt.

Thus, due to fracturing and weathering at the surface layers, if you consider relatively bigger patches, say those at the scale of, 10 m to a few hundreds of m (or bigger), even a top layer of a nominally hard rock like the basalt, can begin to act like the more permeable alluvial layer.

Since the cracks are highly irregular and elongated, percolation from a surface water body into the deeper underground layers is highly inhomogeneous and anisoptropic.

In the above discussion, we have considered the seepage from the surface layers. As far as the underground flow through aquifers goes, there is a presence of local sub-layering within an overall top layer of basalt. Further, fissuring and cavitation also has occurred deeper underground. Therefore, local underground aquifers are observed to exist even within an overall basalt layer. Such aquifers often are quite directional, and not too criss-cross. Hence, anisotropy (or directionality) to the local underground flow is only to be expected.

As an example of a locally restricted fracturing/fissuring, observe the groundwater falling over the passing trains and buses in the tunnels of the Khandala ghat on the Mumbai–Pune routes. (BTW, in case you have ever wondered whether these fissures/fractures pose risk, don’t worry!  Their presence is already factored in, while designing for tunnels—fracture mechanics, by now, is a fairly well understood technique.)

One notable reference here is by Prof. Deolankar of Uni. of Pune: Deolankar, S. B. (1980) “The deccan basalts of Maharashtra, India—their potential as aquifers,” Ground Water, vol. 18, no. 5, September–October 1980, pp. 434–437 [(.PDF) ^]. Note the comparisons to the basalt layers elsewhere, and the quantitative estimates for parameters such as porosity, yield, transmissivity and specific capacity.

To conclude, (i) a top layer of basalt layer also allows for seepage of water, even if (ii) the effect varies greatly from place to place (due to the inhomogeneity of fracturing) and the flow is directional (due to anisotropy).

Therefore, groundwater seepage, and therefore artificial groundwater recharge work, appears feasible even in the deccan trap region of Maharashtra. However, it is only to be expected that the seepage aspect won’t be as pronounced as in the regions having a sandy alluvial top layer.

The importance of the local geology:

Due to the local inhomogeneity and anisotropy, there also arise certain difficulties or challenges.

The main difficulty is that unless a detailed geological study of the local hydro-geology is carefully conducted, it would be impossible to tell whether any underground water recharge work would at all be feasible in a given village or not.

Artificial groundwater recharge work may lead to very impressive results in some village or a cluster of villages, but it may not at all give economical returns even in some nearby  villages—even if all of them fall under the same governmental administrative unit of a taluka (or even a block). [The same Collector; the same Block Development Officer! … Two results! (LOL!)]

Thus, in Maharashtra (and similar regions), it becomes crucially important to know what kind of local geology there is—the surface geology, as well as the geology and morphology of the underground strata.  The depth to which these features should be known would vary from place to place; it may range from 10 m to even hundreds of meters.

Unfortunately, the geological surveys in the past were conducted only at much grosser scales. The relevant geological data at the micro-level of villages (i.e. covering just 5 km X 5 km areas) are simply not available.

If experts (say GSA) are asked to conduct such surveys at the micro-level for the entire country, it would be a very time-consuming and costly process.

However, realize that what you need for the water-conservation work is not the most elaborate kinds of surveys. You don’t need surveys of the kind that GSA or the mining engineers make. You aren’t really interested in things like detailed rock-compositions, percentages of minerals, etc. Your main interest is things such as: what kind of strata run where underground, what kind of intermediate layers occur in between the layers of hard rocks and at what depths, the depth and the direction at/in which the local fissures and aquifers run, whether a given fissure extends up to surface or not, etc.

Some of this data (concerning the local geological strata) can be gathered simply by observing the traditional wells! Often-times, the wells are either not at all covered with walls, or even if there is a masonry work, it does not extend beyond a certain depth, and so, the underground layers stand adequately exposed at the traditional wells. Other data can be had by observing the exposed surfaces of nallahs, rivers, hill-sides, etc.

And, of course, data about the local underground strata can always be had by drilling observation bore-wells (though it would be a costlier method).

The economic relevance of computational modelling:

In places like Maharashtra, since the groundwater seepage, flow, and water-holding characteristics crucially involve local variations and directionality, 3D computational models should prove to be of definite use.

Use of 3D computational models would not only streamline the collection of data, it would also lead to far more accurate predictions concerning economic feasibility of projects—ahead of spending any money on them.

A case in point, here, is that of a small check-dam built at the initiative of the IIT Bombay alumni. More details can be found at the CTARA Web site. As a measure of the difficulty in making predictions for underground water flow, notice that in spite of certain geological studies (of conductivity measurements etc.) conducted by the IIT Bombay experts prior to building of this check dam, it still has not resulted in any enhanced ground-water seepage downstream. Chances are, if a 3D model were to be built by drilling observation bore-wells, either a significant amount of money could have been saved, or deployed at a more suitable location.

An apparent counter-case in point is that of the success of the Shirpur pattern, at its original location, viz., near Shirpur (where else?). No detailed micro-level 3D computational modelling was conducted for it. Still, it was successful. How come?

The local geology of the Shirpur region as not being representative of the entire state of Maharashtra:

As it so happens, my father, a retired irrigation engineer, had worked in the Shirpur area. (I thus happened to have had a considerable stint of my school education in and around Shirpur.) I had discussed the issue with my father quite a few years ago. From whatever I now recollected, he had mentioned that the local geology there indeed was more conducive to underground seepage. There were sandy soils at the top level, and some hard rock well underneath. Both these factors lead to better seepage characteristics. The strategy of deepening and widening of the nallahs, as followed in the Shirpur pattern, therefore is a good strategy. As to the rest of Maharashtra, the local geological characteristics differed, he had mentioned it.

[I guess we had this conversation some time in 2007 or 2008. I have been having this idea of not getting discouraged if there is no water at a bore-well location, but instead turn the situation on its head and use the out-coming data regarding the underlying geological strata, to build better predictive computer models at a very fine level of granularity. I have been having this idea since at least 2008, and so, our conversation must be that old. As to the appreciation of having to carefully build 3D models, I owe it to my training in materials engineering, in particular, stereology.]

Anyway, in the recent weeks, I therefore checked the local geology for the Shirpur region, consulting some of the references listed in my earlier post in this series. It turns out that the depth to the water level near Shirpur is at roughly 20–30 m bgl (i.e. below ground level); see ref. here: Aquifer Systems of India, Central Ground Water Board, Plate XXVII on page 58 [(34 MB) pdf ^]. Now, this is a region through which Taapi, a major river, flows. As any school-boy in Shirpur would know, the river has enriched the top layers with a rich black soil. What is the official geological nature of this top layer? Turns out that it is “alluvial.” The black soil does not have the best permeability. However, in the Shirpur region, the alluvial deposits also are sandy in nature, esp. as you go below a certain depth (of 1 m to a few meters). Next, check out the distinctive yellow patch of the alluvial region in this map, standing in sharp contrast to the green patch for the basalt layer for the major parts of Maharashtra [(370 kB pdf) ^].

A top layer of alluvial soil, esp. if deeper than 10 m, if it is then also supported underneath by a highly impervious layer (e.g. basalt in Maharashtra), then the approaches that seek to enhance ground-water seepage do make good sense.

In contrast, if there is a top layer of basalt itself, then, in general, it is less conducive to groundwater seepage; it is more conducive to construction of check-dams for water storage (as in contrast to water percolation/seepage), or for the Kolhapur-type weirs for both storage and redistribution, etc.

As an inevitable conclusion, the local geology holds very important implications for selection of effective water conservation strategies.

Naturally, you can’t just go ahead and apply the Shirpur pattern everywhere in Maharashtra.

“Give me the funds for a few Poclains per taalukaa, and I will make everything green,” is a statement therefore strongly reminiscent of “Give me a place to stand and with a lever I will move the whole world.” The point is not that the whole world won’t be moved; the point is the natural difficulty in providing the guy with a place to stand (complete with air to breathe etc.), not to mention the engineering difficulty of supplying him with a strong enough, and long enough, a lever. And, of course, the difficulty of arranging a place to keep the fulcrum of that lever.

Dramatic statements, both!

I will go ahead, stick my neck out, and say that the Shirpur pattern—inasmuch as it incorporates the seepage mechanism as a strategy—is not likely to be the most optimum solution at any places other than in the Tapi and the Purna river regions! Check out the map if you have not done so already [(370 kB pdf) ^]!

The idea of small dams as storage—and not seepage—devices:

Come to think of it, then, with all the due qualifications—i.e., speaking only in general terms, and only for most parts of Maharashtra (not all), and ignoring any fracturing present in the local geology—the idea of small-dams or check-dams as storage devices, rather than as a seepage devices (or as a groundwater recharge devices), has begun to make much better sense to me. …

[… Yes, the famous government-funded Poclains, and the government-funded work to be contracted out to some of the local parties, and the government funds to be timely released only to some of those parties…. The whole she-bang does stand to be applied also here; more on it, later, if at all necessary. …]

…For the time being, here is an exercise for you.

Exercise:

Take a smallish river (or a bigger nallah), say, 50 km (or 10 km) long. Build an enormously simplified geometrical model of the river, by assuming a rectangular pyramid for its water-carrying volume.

Thus, ignore all the bends in the course of the river and instead assume that the river looks like a long, acicular triangle in the plan (i.e. in the top view). Further, assume that the vertical cross-section of the river remains rectangular throughout; it goes on linearly increasing in area from zero at the origin of the river to a certain value at the end of the river.

Assume typical figures for the dimensions of the river/nallah: how about a vertical cross section that is 50 m wide and 2–3 m deep at the mid-length of the river (i.e. 25 km downstream from the origin)? Assume also a suitable slope for the river, so that water does indeed flow downstream: how about a fall in the height of the ground level of, say, 50 to 100 m, over its 50 km length?

Now, if a series of check dams were to be built on this “river” such that they would submerge some 75% of the total river area present in the plan view into water-holding areas, calculate how much total volume of water would be made available. Compare this volume to the storage capacity of a single conventional dam known to you. …

[While making your calculations, realize (i) that the max. height of the dam cannot exceed the depth of the river bed (because only the river area would go under water), (ii) that the bottom of the river slopes down, and therefore (iii) that the depth of river bed below the water surface goes on decreasing as you go upstream from the check dam location, coming to zero at some location upstream. The third factor severely delimits the total volume of water that can be held via the series of check dams.]

To put the water volume in context, assume that the per-capita consumption for daily individual consumption is some 135–150 liters. Using this assumption, determine the size of the town/city whose needs could be met by this series of check dams. (Note, this figure does not include demand for agriculture and industrial usages.)

Then, consult a practising civil engineer and find out the current cost of construction of all these check dams. Compare this cost with that of a single conventional dam.

Think about any advantages the series of check dams may have; consider water distribution, flood control, and sedimentation and maintenance aspects.

Include the costs of canal construction in the conventional approach. Include the costs of lift-irrigation schemes in the check-dams approach.

Include the fact that since check-dams won’t have a great height (say 2–4 m), the evaporation losses (estimated at about 20–30% in the conventional dams) may even lead to this circumstance: all the water in a check dam plain evaporates in the thin air even before the next summer season approaches. Realize here that, as a rule of thumb, evaporation losses over the eight non-monsoon months are as high as about 1.67 m of height loss per square m of the average of top and bottom surface areas in the plan. [To help put this figure in some kind of a context, the average annual rainfall in Maharashtra is about 110 cm—if no rainwater were to be lost to seepage, runoff or evaporation, and if all of it could be collected, a tank with a square meter of bottom surface area would hold a water body 1.1 m tall.]

Include the economics of maintenance and mechanization in the regions where there is no traditional “Rajasthan culture” of water conservation, but instead people expect government to bring them everything wherever they are.

* * * * *   * * * * *   * * * * *

I will come back later with some further notes and observations (including those on software) on this topic of micro-level water-resources engineering. In particular, I want to make a few notings related to the GIS software. However, I belong to those old-fashioned kind of engineers who, in their practical life (as in contrast to their avatars in blogosphere, for instance) always first do a quick back-of-the-envelop calculation before they switch on a computer to do any computational modelling. If you are like me, you should finish the above exercise first, so that the exploration of software is better grounded in reality.

* * * * *   * * * * *   * * * * *

A Song I Like:
(Marathi) “gangaa aali re, angaNi”
Lyrics: G. D. Madgulkar
Music: Datta Davajekar
Singers: Jayawant Kulkarni, Sharad Jambhekar, Govind Powale, H. Vasant, Aparna Mayekar

[Minor updates done right on 2015.04.08 after posting the very first version. Guess I will not make any significant revisions to this post any further. May come back and correct typos and grammatical streamlining; that’s all—no new points.]

[E&OE]

 

Posted in Uncategorized | Tagged , , , , , , , , , | Leave a comment