Thursday, January 22, 2015

Aerosols generated by rain drops impacts (a.k.a. the scent of rain)

Yesterday it came to my attention this paper on Nature Communications about aerosols generated by the impact of rain drops. Literally is the science of the scent of rain! The paper by Young Soo Joung and Cullen R. Buie can be found here.

I found a treatment of the subject in some chemistry posts.

(From the Italian Chemist's blog):
…… We feel the rainstorm coming and with it the scent of rain. Is a smell of earth, stale but it's still a nice smell. From what is due?
In 1964, in a paper published in Nature by Bear and Thomas treated oils that plants produce as exudate, especially during dry spells. These oils are absorbed by the soil and rocks, and their components become, when moved by the rain drops, volatile compounds and fill the air with fragrance. The two scientists gave the name of petrichor to this set of substances, which includes several products among which in particular geosmin and 2-methyl isoborneol (MIB). The name petrichor is built from ancient greek and is based on petros (stone) and ichor (golden liquid in the veins of the gods). Also the name geosmin the name comes from the greek, from combination of ge (earth) and Osme (smell) and refers to the property of transmitting the smell of the earth.
Geosmin and MIB are therefore the main odor components that rain moves from the soil on which the plants stands. They are odors that  we usually do not like, especially when transmitted to the stream waters which the plants growclose to, and even the fish that live in them. Fortunately,  the two compounds are tertiary alcohols and react with acids and as such losing a water molecule, thus becoming no more odorous compounds. This reaction is also used when cooking freshwater fish such as carp, catfish, mullet: a few drops of vinegar, or lemon, are enough to make disappear the smell which is not particularly pleasant. 
The geosmin is also sought in the formulation of some perfumes, in small amounts, to give the smell of the earth pleasant and exciting. It is also present in beets and its derivatives, always in adequate quantities for a pleasant use.

The smell of geosmin can be appreciated by humans at very low 0.7 parts per billion. It seems that camels in the desert can feel it, even from distances of 10-15 km it, and chase it until they get to the oasis they search for drinking. And while drinking  the spores of Streptomyces (the producers of geosmin) remain attached to the animals that transport you to the desert thus acting as pollinators (this is clearly an example of co-evolution). 

As said by American chemists, the smell before rain, however, has a different cause. Particularly, the smell before a thunderstorm is a consequence of the electrical charge present in the atmosphere. This causes the splitting of some oxygen molecules in the atmosphere into individual oxygen atoms, which can then combine with other oxygen molecules in the atmosphere to form ozone, O3. Ozone has a sharp odour, compared by some to that of chlorine, or of burnt wires. It’s unstable in the lower atmosphere, and is usually only found higher up – however, the downdrafts of wind produced by a storm can sweep it down from the higher atmosphere, making it possible for us to detect it, and giving the calm before a storm that ‘pre-rain’ smell.


References

Bear, I.J.; R.G. Thomas (March 1964). Nature of argillaceous odour. Nature 201 (4923): 993–995. doi:10.1038/201993a

Nature Communications,  6:6083, DOI: 10.1038/ncomms7083, 2015

Stromberg, J. What Makes Rain Smell So Good?, http://www.smithsonianmag.com/science-nature/what-makes-rain-smell-so-good-13806085/?no-ist, April 2, 2013

Yuhas D., Storm Scents: It's True, You Can Smell Oncoming Summer Rain, Scientific American, July 18, 2012



Saturday, January 10, 2015

Matching process based modelling and remote sensing

This blog post summarizes a recent discussion I have had with Luca Brocca concerning the use of remote sensing data in hydrological applications. As you know, I have expertise on the description of the hydrological processes and on the development/implementation of physically-based hydrological models (i.e., GEOtop [1,2]). Luca has experience on the use and assimilation of remote sensing products of soil moisture and rainfall into hydrological model for improving hydrological predictions (e.g. flood [3] and landslide [4] forecasting).

Our starting viewpoints on remote sensing products are quite dissimilar. Luca has a lot of confidence on satellite data and he found in his research activity that remote sensing could be highly important for improving the modelling and prediction of hydrological processes (see, e.g., his recent interview on Research Gate and [5]). On my side, I believe that remote sensing products are derived from sensors data without strong reference to reasonable hydrological modelling. In fact, most of the times, remote sensing products are not the results of assimilation (or fusion) of data with hydrological models, but the outcome of procedures that may involve strong hydrological assumptions that remain implicit. This in my view constitutes a bad practice and a source of large mismatching between the results of the two communities.

In a recent post, it is highlighted how even physically-based and fully 3D hydrological models may fail in reproducing the spatial variability of soil moisture (e.g., [6]), and similar results were found in the comparison of satellite and modelled soil moisture data (e.g. [7]). Studies that attempted to used satellite rainfall data as input (see in [8]) or assimilated satellite soil moisture data [9] into rainfall-runoff models usually found several issues that still need to be addressed.

These issues can be addressed in two ways. I told Luca that a model of the sensor should be available from the side of the hydrological models, in which the process-based models can give all the information necessary to reproduce the expected results as seen from the sensors. In this way, a more direct assimilation could be made without undeclared passages that introduce bias in the products. Luca replied on the need to improve the structure of conceptual hydrological models (usually employed in most of the studies) to better fit what is measured from satellite sensors (see the discussion paragraph in [3]). In both cases, we are suggesting that the two communities, hydrologists and remote sensing scientists, should start a stronger and closer collaboration. It should not happen that hydrologists use satellite data simply as end-user without giving feedback to remote sensing scientists, and viceversa remote sensing scientists should take care of the suggestions and criticism made by hydrologists. From the close collaboration both communities can highly benefit providing improved models and satellite products each other!

REFERENCES

[1] Rigon, R., Bertoldi, G., and T.M. Over,  GEOtop: A distributed hydrological model with coupled water and energy budgets, Jour. of Hydrommet. , 7(3), 371-388, 2006

[2] Endrizzi, S., Gruber, S., Dall'Amico, M., and Rigon, R. (2014). GEOtop 2.0: simulating the combined energy and water balance at and below the land surface accounting for soil freezing, snow cover and terrain effect. Geosci. Model Dev., 7, 2831-2857, doi:10.5194/gmd-7-2831-2014.

[3] Brocca, L., Moramarco, T., Melone, F., Wagner, W., Hasenauer, S., Hahn, S. (2012). Assimilation of surface and root-zone ASCAT soil moisture products into rainfall-runoff modelling. IEEE Transactions on Geoscience and Remote Sensing, 50(7), 2542-2555, doi:10.1109/TGRS.2011.2177468.

[4] Brocca, L., Ponziani, F., Moramarco, T., Melone, F., Berni, N., Wagner, W. (2012). Improving landslide forecasting using ASCAT-derived soil moisture data: A case study of the Torgiovannetto landslide in central Italy. Remote Sensing, 4(5), 1232-1244, doi:10.3390/rs4051232.

[5] Brocca, L., Ciabatta, L., Massari, C., Moramarco, T., Hahn, S., Hasenauer, S., Kidd, R., Dorigo, W., Wagner, W., Levizzani, V. (2014). Soil as a natural rain gauge: estimating global rainfall from satellite soil moisture data. Journal of Geophysical Research, 119(9), 5128-5141, doi:10.1002/2014JD021489.

[6] Cornelissen, T., Diekkrüger, B. Bogena, H.R. (2014). Significance of scale and lower boundary condition in the 3D simulation of hydrological processes and soil moisture variability in a forested headwater catchment. Journal of Hydrology, 516, 140-153, doi: 10.1016/j.jhydrol.2014.01.060.

[7] Li, B. and Rodell, M. (2013). Spatial variability and its scale dependency of observed and modeled soil moisture over different climate regions. Hydrol. Earth Syst. Sci., 17, 1177-1188, doi:10.5194/hess-17-1177-2013.

[8] Alvarez-Garreton, C., Ryu, D., Western, A. W., Su, C.-H., Crow, W. T., Robertson, D. E., and Leahy, C. (2014). Improving operational flood ensemble prediction by the assimilation of satellite soil moisture: comparison between lumped and semi-distributed schemes. Hydrol. Earth Syst. Sci. Discuss., 11, 10635-10681, doi:10.5194/hessd-11-10635-2014.

Friday, January 9, 2015

Critical Zone


I came to know about the Critical Zone through the Critical Zone Observatories. Poor me ! So I was looking for its definition. And here it is

The Earth’s Critical Zone (CZ) is defined as "the heterogeneous, near surface environment in which complex interactions involving rock, soil, water, air, and living organisms regulate the natural habitat and determine the availability of life-sustaining resources [1]".

It is not difficult to understand that studying it will be one of the most intriguing topics of the next years. Well beyond the actual way ecohydrology has arrived.

From Quijano and Ling, I simply copy:

"The CZ is the result of complex interactions of physical, chemical, and biological processes that have taken place over an evolutionary time scale [2]. These interactions have been driven by energy, mass, entropy, and information fluxes, and the result is heterogeneous but organized structures that regulate the flow of energy down the gradients of various kinds [2,3]. "

Do not have very much to add right know (but studying it is one of the original motivation of GEOtop, at larger scales of JGrass-NewAGE). Thermodynamics plays a fundamental role in it - see also here, which makes it even more interesting to me).

References

Lin, H. Earth’s Critical Zone and hydropedology: Concepts, characteristics, and advances. Hydrol. Earth Syst. Sci. 2010, 14, 25–45.

Quijano, J., & Lin, H,. Entropy in the Critical Zone: A Comprehensive Review. Entropy, 16(6),  2014 , 3482–3536. doi:10.3390/e16063482

Rasmussen, C.; Troch, P.A.; Chorover, J.; Brooks, P.; Pelletier, J.; Huxman, T.E. An open system framework for integrating critical zone structure and function. Biogeochemistry 2011, 102, 15–29.

Wednesday, January 7, 2015

Top 18 design patterns interview questions in Java to know

This is verbatim from the Java67 blog.

Design pattern interview question are integral part of any good list of core Java interview questions. Java is a popular Object oriented programming language and have lots of design pattern and design principles, contributed by many developers and open source framework. As a Java programmer it is expected from you to know OOPS concept like Abstraction, Encapsulation and polymorphism, what is design pattern in Java, some popular Java design pattern and, most importantly, when to use those design pattern in Java application. Purpose of asking design pattern interview question in Java is to check whether a Java programmer is familiar to those essential design patterns or not. Design patterns in Java interviews are as important as multi-threading, collection and programming questions. If you are senior or experienced Java programmer than expect more complex and tough design pattern in Java interview, e.g. Chain of responsibility design pattern, and solving real time software design questions.



Top Java design pattern questions and answers

Here is my list of top 10 design pattern interview question in Java. I have also provided answer of those Java design pattern question as link. no matter which level of Javainterview are you going e.g. programmer, software engineer, senior software engineer inJava, you can expect few question from Java design pattern.

1. When to use Strategy Design Pattern in Java?

Strategy pattern in quite useful for implementing set of related algorithms e.g. compressionalgorithms, filtering strategies etc. Strategy design pattern allows you to create Context classes, which uses Strategy implementation classes for applying business rules. This pattern follow open closed design principle and quite useful in Java. One example of Strategy pattern from JDK itself is a Collections.sort() method and Comparator interface, which is a strategy interface and defines strategy for comparing objects. Because of this pattern, we don't need to modify sort()method (closed for modification) to compare any object, at same time we can implement Comparator interface to define new comparing strategy (open for extension).


A more detailed review of the Strategy pattern, in the same blog,  is here.

2. What is Observer design pattern in Java? When do you use Observer pattern in Java?

This is one of the most common Java design pattern interview question. Observer pattern is based upon notification, there are two kinds of object Subject and Observer. Whenever there is change on subject's state observer will receive notification. See What is Observer design pattern in Java with real life example for more details.

3. Difference between Strategy and State design Pattern in Java?

This is an interesting Java design pattern interview questions as both Strategy and State pattern has same structure. If you look at UML class diagram for both pattern they look exactly same, but there intent is totally different. State design pattern is used to define and mange state of object, while Strategy pattern is used to define a set of interchangeable algorithm and let's client to choose one of them. So Strategy pattern is a client driven pattern while Object can manage there state itself.

4. What is Decorator pattern in Java? Can you give an example of Decorator pattern?

Decorator pattern is another popular java design pattern question which is common because of its heavy usage in java.io package. BufferedReader and BufferedWriter are good example of decorator pattern in Java. See How to use Decorator pattern in Java fore more details.

5. When to use Composite design Pattern in Java? Have you used previously in your project?

This design pattern question is asked on Java interview not just to check familiarity with Composite pattern but also, whether candidate has real life experience or not. Composite pattern is also a core Java design pattern, which allows you to treat both whole and part object to treat in similar way. Client code, which deals with Composite or individual object doesn't differentiate on them, it is possible because Composite class also implement same interface as there individual part. One of the good example of Composite pattern from JDK is JPanel class, which is both Component and Container. When paint() method is called on JPanel, it internally called paint() method of individual components and let them draw themselves. On second part of this design pattern interview question, be truthful, if you have used then say yes, otherwise say that you are familiar with concept and used it by your own. By the way always remember, giving an example from your project creates better impression.

6. What is Singleton pattern in Java?

Singleton pattern in Java is a pattern which allows only one instance of Singleton class available in whole application. java.lang.Runtime is good example of Singleton pattern in Java. There are lot's of follow up questions on Singleton pattern see 10 Java singleton interview question answers for those followups

7. Can you write thread-safe Singleton in Java?

There are multiple ways to write thread-safe singleton in Java e.g by writing singleton using double checked locking, by using static Singleton instance initialized during class loading. By the way using Java enum to create thread-safe singleton is most simple way. See Why Enum singleton is better in Java for more details.

8. When to use Template method design Pattern in Java?

Template pattern is another popular core Java design pattern interview question. I have seen it appear many times in real life project itself. Template pattern outlines an algorithm in form of template method and let subclass implement individual steps. Key point to mention, while answering this question is that template method should be final, so that subclass can not override and change steps of algorithm, but same time individual step should be abstract, so that child classes can implement them.

9. What is Factory pattern in Java? What is advantage of using static factory method to create object?
Factory pattern in Java is a creation Java design pattern and favorite on many Javainterviews.Factory pattern used to create object by providing static factory methods. There are many advantage of providing factory methods e.g. caching immutable objects, easy to introduce new objects etc. See What is Factory pattern in Java and benefits for more details.

10. Difference between Decorator and Proxy pattern in Java?

Another tricky Java design pattern question and trick here is that both Decorator and Proxy implements interface of the object they decorate or encapsulate. As I said, many Java design pattern can have similar or exactly same structure but they differ in there intent. Decorator pattern is used to implement functionality on already created object, while Proxy pattern is used for controlling access to object. One more difference between Decorator and Proxy design pattern is that, Decorator doesn't create object, instead it get object in it's constructor, while Proxy actually creates objects.

11. When to use Setter and Constructor Injection in Dependency Injection pattern?

Use Setter injection to provide optional dependencies of an object, while use Constructor injection to provide mandatory dependency of an object, without which it can not work. This question is related to Dependency Injection design pattern and mostly asked in context of Spring framework, which is now become an standard for developing Java application. Since Spring provides IOC container, it also gives you way to specify dependencies either by using setter methods or constructors. You can also take a look my previous post on same topic.

12. What is difference between Factory and Abstract factory in Java

see here to answer this Java design pattern interview question.

13. When to use Adapter pattern in Java? Have you used it before in your project?

Use Adapter pattern when you need to make two class work with incompatible interfaces. Adapter pattern can also be used to encapsulate third party code, so that your application only depends upon Adapter, which can adapt itself when third party code changes or you moved to a different third party library. By the way this Java design pattern question can also be asked by providing actual scenario.

14. Can you write code to implement Producer Consumer design pattern in Java?

Producer consumer design pattern is a concurrency design pattern in Java which can be implemented using multiple way. if you are working in Java 5 then its better to use Concurrency util to implement producer consumer pattern instead of plain old wait and notify in Java. Here is a good example of implementing producer consumer problem using BlockingQueue in Java.

15. What is Open closed design principle in Java?

Open closed design principle is one of the SOLID principle defined by Robert C. Martin, popularly known as Uncle Bob. This principle advices that a code should be open for extension but close for modification. At first this may look conflicting but once you explore power of polymorphism, you will start finding patterns which can provide stability and flexibility of this principle. One of the key example of this is State and Strategy design pattern, where Context class is closed for modification and new functionality is provided by writing new code by implementing new state of strategy. Seethis article to know more about Open closed principle.

16. What is Builder design pattern in Java? When do you use Builder pattern ?

Builder pattern in Java is another creational design pattern in Java and often asked in Java interviews because of its specific use when you need to build an object which requires multiple properties some optional and some mandatory. See When to use Builder pattern in Java for more details

17. Can you give an example of SOLID design principles in Java?

There are lots of SOLID design pattern which forms acronym SOLID, read this list of SOLID design principles for Java programmer to answer this Java interview question.

18. What is difference between Abstraction and Encapsulation in Java?

I have already covered answer of this Java interview question in my previous post as Difference between encapsulation and abstraction in Java. See there to answer this question.

This was my list of 10 popular design pattern interview question in Java. I have not included MVC (Model View Controller) design pattern because that is more specific to J2EE and Servlet JSP interview, but if you are going for any Java interview which demands experience in J2EE than you must prepare MVC design pattern. That's all on Java design pattern interview question and answers. Please let us know if you have any other interesting question on Java design pattern.

Saturday, January 3, 2015

Potential Evapotranspiration

Potential Evapotranspiration (pET) is the keystone of many papers about evaporation and ecohydrology. It is usually believed that it can be established as “a reference condition” (not to be confused with a reference evapotranspiration - rET) that can subsequently be used to determine or frame the actual evapotranspiration (aET) by introducing “resistances” that limit the potential fluxes. 

However, as Brutsaert  says, the concept is a slippery one, and actually as reported by Mac Mahon et al. “there have been many definitions and redefinitions of the term potential evaporation or evapotranspiration“. Granger [1989a, 1989b] seems to have reported at least five of these definitions “but considered only three to be useful”. 
  • the first is defined as the evaporation rate that would occur from a saturated surface with a constant energy supply to the surface 
  • the second is defined as the evaporation rate that would occur from a saturated surface with constant energy supply to, and constant atmospheric conditions over, the surface 
  • the third is defined as the evaporation rate that would occur from a saturated surface with constant atmospheric conditions and constant surface temperature 
Dingman’s (1992, Sect. 7.7.1) definition of potential evapotranspiration says that it “. . . is the rate at which evapotranspiration would occur from a large area completely and uniformly covered with growing vegetation which has access to an unlimited supply of soil water, and without advection or heating effects.” ^1

My definition of pET would be probably simpler than Dingman's one. Consider  a surface under  stationary (i.e. Fixed) meterological/thermodynamical conditions, including wind speed, air humidity, atmospheric and air temperature, and the roughness parameters. I would intend as pET the evapo(transpi)ration happening from the surface as if water supply would be unrestricted and unlimited, like if the surface were a bulk water reservoir, even if the roughness conditions would not be realistic for a water body.

To make the latter statement,  I have formulas in my mind.  Do not blame me if I do not consider as reasonable those empirical definitions of pET which, derived from observation in natural landscapes,  are based on variable thermodynamics, forcings, and turbulence. pET definition requires those conditions fixed, and, while they could be in principle determined experimentally in laboratories' cases, not in the field,  keeping all the fluxes  controlled I have information of only one successful experiment of this type, performed  by Dani Or at ETH.

Back to my equations, the starting point can be the Dalton equation (Deq, I do not claim that it is true, just saying that it is usually believed so, and I am starting from this assumption, but see, for instance here to start thinking to something different):

In Dalton’s equation, pET is when resistance is just the aerodynamic one. So in Deq, pET is pretty well defined.  
In Penman-Monteith (PM) approach, Dalton equation is simplified (for a derivation, see, for instance Entekhabi, 1997 (pg. 4-25), assuming no storage of energy, and no net advection:

So also in PM (which we can consider an approximation of Deq), pET  has a clear interpretation, which is, the ET you obtain by putting any resistance, rg (either representing soil or vegetation, indeed), to zero. Excluding the resistance (and, in case, considerations about roughness) there is no way to distinguish, either in Deq and PM a soil surface from a vegetated surface from a water body. Therefore, my definition of pET is, according to these formulas, universal. 

Unfortunately this is not the same in Priestley-Taylor (PT), which can be seen as a further simplification of PM formula, where the resistance terms simply are not present:

where everything is lumped in the alpha coefficient. What people did in this case, I think, to assess alpha in pET (say alpha_pt) was to measure ET in the field's conditions supposed to be those in which pET realizes, a modus operandi on which, I already said I am skeptic.  ( I confess I did not went into the detail of that literature, see for instance the overview by Cristea et al, 2012 or also Flint and Childs, 1991 and Eichinger et al, 1996). Once your get alpha_pt you can estimate pET. remarkably.  if we are interested in aET, the passage through pET could be not necessary, if we would have a method to directly determine the (mean) PT alpha that correspond to aET directly.

Another step to do is to remind which is the spatial and temporal validity of the above Deq, PM and PT equations. In principle, Deq should be valid over a short period of time (for which statistical turbulence characteristics can be considered assessed), so should be PM and PT. However, in literature daily, weekly and monthly abuse of them is often made without a real theoretical treatment. Especially PM (in its FAO version, Allen et al., 1998) and PT are, in fact, used as formula to regress against data, and various values of the parameter are presented as reliable. But, as we know, the more we go far away from the consistent physical origin of  equations, the more uncertainty we have in our forecasting. 

To be continued ;-). To see some shy hint to what happens when one average in space, see this previous post. To see some more though about Evapotranspiration, here is the whole collection of posts.

^1 - (All of these definitions were grabbed from the Mac Mahon’s paper, that is a source also of reference historical papers - see below)


References


Allen, R. G., Pereira, L. S., Raes, D., and Smith, M.: Crop evapo- transpiration Guidelines for computing crop water requirements, FAO Irrigation and Drainage Paper 56, Food and Agriculture Organization of the United Nations, 1998.

Cristea, N.C.; Kampf, S. K. ; and Burges, Stephen J., F.ASCE, Revised Coefficients for Priestley-
Taylor and Makkink-Hansen Equations for Estimating Daily Reference Evapotranspiration, Journal of Hydrologic Engineering, Vol. 18, No. 10, October 1, 2013. ISSN 1084-0699/2013/10- 1289-1300

Dingman, S. L.: Physical Hydrology, Prentice Hall, Upper Savage, New Jersey, 1992.

Eichinger, W.E.; Parlange, M.B.; and Stricker, H., On the concept of equilibrium evaporation and the value of Priestley-Taylor coefficient, Water Resour. Res., vol 32, No. 1, 161-164, 1996

Entekabhi, D, Land surface Processes: basic tools and concepts, p. 4-25, in Marani, M and Rigon R, Hydrometeorology and climatology, Istituto Veneto di Scienze, Lettere ed Arti, Ve, 1997

Flint, A.L.; and Childs, S.W.; Use of Priestley-Taylor evaporation equation for soil water limited conditions in a small forest clearcut, Agricultural and Forest Meteorology, 56, 247-260, 1991

Granger, R. J. and Gray, D. M.: Evaporation from natural nonsaturated surfaces, J. Hydrol., 111, 21–29, 1989.

Granger, R. J.: A complementary relationship approach for evaporation from nonsaturated surfaces, J. Hydrol., 111, 31–38, 1989b.

McMahon,T.A.; Peel, M. C.; Lowe, L.; Srikanthan, R. and T. R. McVicar, Estimating actual, potential, reference crop and pan evaporation using standard meteorological data: a pragmatic synthesis, Hydrol. Earth Syst. Sci., 17, 1331–1363, 2013 www.hydrol-earth-syst-sci.net/17/1331/2013/ doi:10.5194/hess-17-1331-2013

Monday, December 29, 2014

Lost and (not yet) found

Recently I posted the history of JGrass-NewAGE, and I was wondering where the old material of JGrass-NewAGE version 0 was. All was more than prototypical and quite operative (with maybe some flaws in the science) and  worth to remain  alive. Wasn't the use of OMS etc. looking to some reproducibility and maintainability ?
Finally I recovered in my HD the part of the documentation of that version which can be downloaded from here (unfortunately is in Italian).

The database developed in PostgreSQL/PostGIS referred in the "manual" was found stored in a computer accessible trough the password "idrologia", and we are going to see if it is still usable and extendable. Actually, as apparent from my previous post, most of the components of the project can be considered obsolete, enhanced by those available with JGrass-NewAGE version 1. However, at least one component is still missing, and I hope to be able to get it back on-line: the one integrating the de Saint-Venant Equation in 1-D. It was actually saved in a public repository (so, it should be), but the repository was changed, and not maintained anymore. So people have to look at old backups to get it back.

Lessons learned: 1 - there should be an explicit will to maintain old stuff (quite an obvious conclusion) and not to make it vanish as vapour in summer. 2 - Even if the project was produced as Open Source, if it is not maintained, or at least left in a public site which is maintained unaltered, the effort is meaningless.   Useful stuff can be easily lost. 3 - Data can be lost even easier than software. A repository - Github-like for data should be mandatory. We'll see what we can do.

MeteoIO

As known, we use MeteoIO in our GEOtop 2.0. Despite the fact that we implemented most of the same capabilities inside GEOtop directly. And despite we also reimplemented the same (and in some case more articulate possibilities inside JGrass-NewAGE). Many the reasons: having alternatives to compare is good; it is not possible to keep pace in every subject necessary to built a modeling system, and having someone doing things for you is the essence of the success of a open source project; the JGrass-NewAGE system is not yet at the stage to be interoperable with GEOtop tools. In any case Mathias Bavey and Thomas Egger did an excellent work in documenting MeteoIO with this paper appeared in GMD, one of our journals of election.

The project is open source, well designed, constantly maintained and evolved, in C++. Have a nice reading.