Wednesday, December 17, 2008

My first JGrass modules

Finally I decided to start to work in the new JGrass developing some hydrological modules (like I did in the JGrass2.0).
Just for exercise and fun I did this two interesting modules, available from the next JGrass release:
  • r.cutout
  • h.hypsographic
This two modules are developed, as all the others in JGrass, following the OpenMI guidelines.

r.cutout

r.cutout allows the user to cut a map on the region defined by an other map that is considered as the MASK. There is also the option to invert the extraction and extract the output map as the complementary of the MASK map in the active region.
The usage is the following:

  • standard mode: jgrass r.cutout --igrass-mask adigebz_nabla --igrass-tocut ad_pit4 --ograss-cut adigebzmask_pit
  • invert mode: jgrass r.cutout --igrass-mask adigebz_nabla --igrass-tocut ad_pit4 --ograss-cut adigebzmask_pit --invert true
where:

--igrass-mask: is the name of the input raster map containing the MASK -> the map that defines the region to cut out
--igrass-tocut: is the input map to cut out
--ograss-cut: is the output cut map over the defined region
--invert is the boolean that indicates the mode of calculation, default is FALSE -> standard mode, for the complementary map use TRUE

In term of pictures.
Starting from the two maps:
  • the map of NABLA calculated on the extracted basin
  • the whole map of depitted elevations
  • obtain the map of depitted elevations on the extracted basin
  • obtain the map of depitted elevation on the extracted basin's complementary area in the active region



r.hypsographic

r.hypsographic allows the user to create the hypsographic curve of a map limited to the active region. The hypsographic curve is usually calculated starting from an elavation map and it is described by the cumulative height frequency curve for the Earth’s surface or some part thereof. A hypsometric curve is essentially a graph that shows the proportion of land area that exists at various elevations by plotting relative area against relative height (http://www.britannica.com/EBchecked/topic/280163/hypsometric-curve).
The usage is the following:
jgrass h.hypsographic --igrass-elevation bz_bacino.pit --bins 50 --ochart-hypsographic "LINE#hypsografic curve#heigth[m smm]#area[km2]#hypso"

where:

--igrass-elevation: is the name of the input raster map of elevation
--bins: is the number of bins in which divide the entire range of heigth of the raster map (default is 100)
--oscalar-hypsographic: is the output scalar set
--ochart-hypsographic: is a way to visualize the output scalar set in a chart

In the example below:
  • the input elevation map on the basin
  • the output hypsographic chart

Sunday, November 16, 2008

Flood expectancy

There is a part of a book I am reading in these days that I consider a part of my thought, since it is well written I decided to add to my blog... :-)

"There are hundreds of thousands of culverts and small bridges over which roads and highways span channel of various size. If the capacity of such culverts were too small and many of them washed out, the expense would be very great. But if overdesign were the rule, money for construction would be needlessly spent." ... "It has been decided that culverts constructed with federal money would be designed to carry without failure a flood discharge with a recurrence interval of 50 years. Such decision places an enormous buden on hydrologists. They must develop simple but dependable methods to estimate flood discharge in ungaged areas in diverse climates and topography and for various basin sizes."
...
"A different kind of social cost results from the fact that people use flood-prone areas. Despite their knowledge of the importance of flood estimates, individuals continue to build on floodplains, encroaching on parts of rivers needed to carry rather ordinary discharges. The floodplain level is equaled or exceeded about one a year. So despite the vast sums spet on controlling floods, flood damage continues to rise year after year and is measured in bilions of dollars. Per-capita flood damage increased two and a half times in the United States between 1916 and 1985."


We should think about this...

Tuesday, August 19, 2008

If you can't be a pine on the top of the hill
Be a scrub in the valley
but be the best little scrub by the side of the hill,
Be a bush
if you can't be a tree.
If you can't be a highway
just be a trail
If you can't be the sun
be a star;
It isn't by size that you win or fail...

Be the best of whatever you are.


Italian translation...

Se non puoi essere un pino sul monte,
sii una saggina nella valle,
ma sii la migliore piccola saggina sulla sponda del ruscello.
Se non puoi essere un albero,
sii un cespuglio.
Se non puoi essere un'autostrada
sii un sentiero.
Se non puoi essere il sole,
sii una stella.

Sii sempre il meglio di ciò che sei.

Martin Luther King

Friday, July 25, 2008

Back again after 3 moths...

I am back again with some JGrass tips.
Things have been really busy in this period, I think the only week I wasn't in office was the Hacking Event in Bolsena, thanks to all partecipant for the nice days.

Regarding the JGrass staff, yeah we are working on it, and we are planning to finish all the porting from the old JGrass2.0 to the new JGrass uDig plugin. So during the next month I will write some documentation (here or in the wiki) on JGrass main stuffs. The month before FOSS4G is financed by HydroloGIS and CUDAM to set up all the needed user documentation and to fix some of the known (and unknown but coming) JGrass bugs/problems/not so usable things.

If you use JGrass and have some interesting comments, please leave your comment here or use the JGrass wiki page to directly interact with our staff.
All the problems and bug reports are very wellcome.

Wednesday, April 23, 2008

How print two-sides brochure in OpenOffice

To save paper and ink when printing I love to have my documents printed with two pages in one and on both sides. Finally I found these two helpfull links to make it automatically in OpenOffice...

http://openoffice.blogs.com/openoffice/2008/03/printing-two-si.html

http://blog.dixo.net/2007/07/18/save-paper-with-openoffice-brochure-printing/

Enjoy your printing!!! :-)

Tuesday, April 22, 2008

A tribute from my hydrologic menthor

From opera "i mille fiumi" (the thousand rivers) of Arrigo Boetti and Anna-marie Sauzeau-Boetti

La classificazione per ordine di grandezza e' il metodo più comune per organizzare l'informazione relativa ad una data categoria, nel caso dei fiumi, la grandezza si puo' intendere alla potrenza uno, due, o tre., cioè può essere espressa in km, km2 o m3 (lunghezza, bacino o portata), il criterio di lunghezza e' il più arbitrario e ingenuo, ma tutt'ora il piu' diffuso, eppure e' impossibile misurare la lunghezza di un fiume per le mille e piu' perplessita' che solleva la sua esistenza fluida (per i suoi meandri e i suoi passaggi attraverso i laghi, per le sue diramazioni attorno alle isole o i suoi spostamenti nella zona del delta,, per gli interventi dell'uomo lungo il suo corso, per i confini inafferrabili tra acqua dolce e acqua salata ...) molti fiumi non sono mai stati misurati perche' le loro rive o acque sono inacessibili, persino gli spiriti dell'acqua solidarizzano a volte con la flora e fauna per tenere gli uomini a distanza, di conseguenza alcuni fiumi scorrono senza nomi, innominati per la loro realta' intoccata, o innominabili per scongiura umana (alcuni mesi fa, un pilota che volava a bassa quota sopra la foresta brasiliana scopri' un "nuovo" affluente del rio delle amazzoni). altri fiumi non possono essere misurati perche' invece hanno un nome, un nome causale dato loro dagli uomini (nome uniforme lungo il corso intero quando il fiume, navigabile diventa veicolo di comunicazione umana; nomi diversi quando il fiume, temibile, visita gruppo umani isolati); ora l'entita' di un fiume si puo' stabilire o in riferimento al suo nome (traccia dell'avventura umana), o in riferimento alla sua integalita' idrografica (avventura dell'acqua dal punto sorgente piu' remoto fino al mare, l di fuori dei nomi assegnati ai vari tratti), il problema e' che le due avventure coincidono raramente, di solito l'avventura dell'esploratore va contro corrente, partendo dal mare; quella dell'acqua invece ci finisce, l'esploratore che risale il fiume deve fare testa o croce ad ogni bivio, perche' a monte di ogni confluenza tutto si rarefa: l'acqua, a volte l'aria, ma sempre la propria certezza, mentre il fiume che scende verso il mare condensa gradualmente le sue acque e la certezza della sua strada ineluttabile, chi puo' dire di se e' meglio seguire l'uomo o l'acqua? l'acqua, dicono i moderni geografi, obiettivi e umili, e cosi' si mettono a ricomporre l'identita' dei fiumi, un esempio: il mississipi di neworleans non e' proprio l'estensione del mississipi che sorge dal lago itasca nel minnesota, come s'impara a scuola, ma di un ruscello che sorge nel montana occidentale sotto il nome di jefferson red rock e poi diventa mississipi-missouri a st louis, il numero di chilometri a monte risulta maggiore dalla parte del missouri, pero' e' un fatto che questo metodo "scientifico" viene attuato soltanto a proposito dei grandi fiumi prestigiosi, quelli suscettibili di gareggiare per primati di lunghezza, il ripensamento metodologico non si spreca per i minori (meno di 800 km) i quali continuano a chiamarsi (e misurarsi) secondo il solo nome di battesimo, anche se, nel caso che abbiano due corsi sorgenti (dotati di altri due nomi) quello piu' lungo potrebbe essere giustamente incluso nel corso principale, la presente classificazione rispecchia questo doppio metodo, esso segue la legge dell'acqua e la legge degli uomini, perche' tale si presenta l'informazione a riguardo, in breve, rispecchia il gioco parziale dell'informazione piu' che la vita fluida dell'acqua, questa classificazione fu iniziata nel 1970 e terminata nel 1973, alcuni dati furono trascritti da pubblicazioni famose, numerosi dati furono elaborati sulla materia fornita dagli istituti geografici non europei, governi, universita', centridi studi privati e singoli studiosi di tutto il mondo, questa convergenza di documentazione costituisce la sostanza e il significato del lavoro, gli innumerevoli asterischi contenuti in queste mille schede pongono innmerevoli dubbi e fanno da contrappunto al rigido metodo di classificazione, sia l'informazione parziale esistente sui fiumi, sia i problemi linguistici legati alla loro identita', sia la natura irrimediabilmente sfuggente delle acque, fanno che questa classifica come tutte le precedenti o successive sara' sempre provvisoria e illusoria

Anne-marie Sauzeau-Boetti

(n.d.t the text is published without capital letters)

Unfortunatelly I didn't find an English version of the text... maybe someone has one.

Saturday, April 5, 2008

Which values?

I will put here a lyric I read on an Environmental Declaration of an Italian institution. It is in Italian, I don't want to translate it but if someone will ask I will try... not so easy for my poor English... :-)
From the "Opera sull'acqua e altre poesie" of Erri De Luca 2002, a collection of lyrics having the theme the water, the first one...

VALORE

Considero valore ogni forma di vita,
la neve, la fragola, la mosca.

Considero valore il regno minerale,
l'assemblea delle stelle.

Considero valore il vino
finché dura il pasto,
un sorriso involontario,
la stanchezza di chi non
si è risparmiato,
due vecchi che si amano.

Considero valore quello che domani non varrà più niente
e quello che oggi vale ancora poco.

Considero valore tutte le ferite.
Considero valore risparmiare acqua,
riparare un paio di scarpe,
tacere in tempo,
accorrere a un
grido,
chiedere permesso prima di sedersi,
provare gratitudine senza ricordare di che.

Considero valore sapere in una stanza dov'è il nord,
qual è il nome del vento che sta
asciugando il bucato.

Considero valore il viaggio del vagabondo,
la clausura della monaca,
la pazienza del
condannato, qualunque colpa sia.

Considero valore l'uso del verbo amare e l'ipotesi che esista un creatore.

Molti di questi valori non ho conosciuto.

I consider a value to save water...

Friday, April 4, 2008

How to send an error log

For those that have problems in the JGrass executing and for which for some reason the mailing lists are not enough it is possible to send the error log via email.
The procedure is the following.
  • Help menu and there Submit Log..

  • at this point you a new window will appear like the one below


  • please do not complete the interface, just enlarge it (just wait when enlarge, it could use a little time to reshape all the window and the content), select all the content of the section "Log file content", copy the content and past it in a new file or email and send it to us

Think that it will be enough, please do not send errors log without before trying to solve the problem via mailing list.

Friday, March 28, 2008

How to set console environment in JGrass (Update1)

Following JGrass development some of you asked to me to update the post regarding the GRASS settings of the console environment in JGrass.
So from the last post in this field the options are less and the preferences are summarized in the following panel, as shown in the picture below.



Just fill in the blank of the main options if they are not set by default:
  1. MAPSET: the path of the mapset on which to work
  2. GRASS: the path to the GISBASE
All the other preferences are optional.

NOTE: The GISBASE is the folder in which there is the GRASS installation and it is different from the operating system and the installation type the user has done. To better simplify the things this is the folder in which there are the two main GRASS installation folders bin and lib.
This is valid in case of the user has a valid GRASS installation, and mainly for linux and mac users. For windows users there is the included GRASS executable in the JGrass plugins. By default the field of GRASS options in the preferences panel is completed with the right path, if not here the user has to write the path of the folder, in the plugins, containing the grass installation. In general it is: ... pathtoJGrassinstallationfolder\plugins\eu.hydrologis.jgrass.grass_1.0.0\windows\grass\grass\.

In addition at the windows preferences for the console the user has to set also the runtime Console preferences. The menu, shown below, is visible just right clicking on the console window and for GRASS commands the only important field is the MAPSET definition.


At this time the console environment is ready to use for GRASS commands. For example typing
  • grass r.info adige_pit
  • grass r.in.gdal --help
  • and so on...
Some nice hints to use the console editor:
  1. to run all the commands written in the console editor just right click and run
  2. to run only a selection of the written text, simply select the whole command to run and the right click and run
  3. it is possible to have some hinst form JGrass for writing the command, just wait a second after typing the "." in the commands names and after the "--" in the options.



Hope this helps the users in GRASS settings and command executing.

Hope also the develpers will not change this preferences again... :-) it will be not so exiting writing thousand post on the same topic... :-)

Thursday, March 20, 2008

GIS for sustainable development

Finally I moved and my home internet connection is working again... so from now I will be active again in this blog. :-)
In one of my breaks of internet surfing I found this website: http://www.esri.com/industries/sustainable_dev/index.html

So... reading from the website people understand that esri is helping developing countries and in their processes and projects. I don't really want to put the attention on the helping or on the projects... but I would like to read somewhere that an open source software (GIS maybe) is used for projects in developing countries.
Maybe this is still true but do open source projects have websites dedicated on developing countries? In my opinion open source and free softwares have to be used for projects in developing countries... and hopefully used by people there... but this will be the next step.

Wednesday, February 27, 2008

My first script...

Here is a script, written together with Moovida, in which I used three JGrass command in sequence to create 2 shapefiles, one withe the subbasins and the other with the numbered stream network.

In the new JGrass console editor it is possible to:
  1. declare variables
  2. use variables in the scripts
  3. put the result of a command in a variable
  4. use string like in Java
  5. ... much more that I don't know jet!! :-)
To declare variables just put the name and all the information needed and at the end of the statement put a ";". An example is below:

The string that identifies the name of the main basin:
basemap = "chiese";

The output folder for the shapefiles I will create:

outputfolder = "/home/moovida/TMP/tmp/";

The name of the input shapefile:
inputmonitoringpoints = "/home/moovida/data/hydrocareworkspace/featuredata/utm/pti_monitoraggio.shp";

To read some maps which are already saved in the location just type the name of these maps, in this case the strings are a little complicated but managing them is very easy in this way:

drain = basemap + "_drain";
net = basemap + "_net_chnum";
pit = "bacino_" + basemap + "_pit";
netflow = basemap + "_net_flow";
nethackstream = basemap + "_net_hstr";


The output variables are initialized with the string name, everything could be added here...

netnumber = basemap + "_netnumber";
basin = basemap + "_basin";
basinoutput = outputfolder + "bacino_" + basemap + ".shp";
netoutput = outputfolder + "rete_" + basemap + ".shp";

And now just use the varibles in the JGrass command lines:

jgrass {
h.netnumbering --mode 2 --igrass-flow $drain --igrass-net $net --ishapefile-pointshape $inputmonitoringpoints
--ograss-netnumber $netnumber --ograss-basin $basin
}



jgrass {
h.basinShape --igrass-pit $pit --igrass-basins $basin --oshapefile-basinshape $basinoutput
}



jgrass {
h.pfafstetter --mode 0 --igrass-flow $netflow --igrass-hacks $nethackstream --igrass-pit $pit --igrass-netnumber $netnumber --oshapefile-netshapeout $netoutput
}



Run the script with the specific RUN option in the right mouse button menu. In the console window you can see some messages to check the progress of the operations.

If someone has other interestig scripts it would be nice to put them here together.





Monday, February 25, 2008

Some JGrass commands

Before using JGrass commands you have to set the active region that is the portion of the world in which JGrass makes raster elaborations. Note that visualization is more or less independent from active region, calculations are stricktly related to it.

To kown ho to set the active region in JGrass have a lood at the moovidas blog.

Here some JGrass commands to write in the console environment. Thanks to Erica and Andreas that gave them to me. I didn't test all of them but pretty sure they runs well.

h.netnumbering

This command allows you to enumerate the stream network channels and to extract the related basins. The network will be divided in subpieces which start and end at the confluences. To dived the network also in some other interesting points you have to add a shapefile of node point.

  1. first option is the command in the basic mode: Usage mode 0: h.netnumbering --mode 0 --igrass-flow flow --igrass-net net --ograss-netnumber netnumber --ograss-basin basin
  2. second option is dividing the network in subpieces which have an area less than the threshold fixed on the tca: Usage mode 1: h.netnumbering --mode 1 --thtca value --igrass-flow flow --igrass-net net --igrass-tca tca --ograss-netnumber netnumber--ograss-basin basin
  3. third option is dividing the network in some interesting points taken from a shapefile: Usage mode 2: h.netnumbering --mode 2 --igrass-flow flow --igrass-net net --ishapefile-pointshape "filepath" -ograss-netnumber netnumber--ograss-basin basin
  4. fourth method: mixed method between second and third (tca threshold and point shapefile): Usage mode 3: h.netnumbering --mode 3 --thtca value --igrass-flow flow --igrass-net net --igrass-tca tca ishapefile-pointshape "filepath" --ograss-netnumber netnumber--ograss-basin basin

How to set Console Environment in JGrass

To satisfy Moovidas requirements... :-)
here are some screenshots, and much more, about the JGrass commands in the JGrass Console environment.

Console preferences for JGrass are in the Window - Preferences menu. The tag to select is Console, the first pannel to set is about the general preferences the one below:



The second step is to set the compiler settings that should be already pre-compiled in the installation activity.



The rt folder is the folder in which JGrass looks for the commands, if the user wants to use other commands in other folders, just specify the name of the new folder or add the new commands to the files in the rt folder.

The third panel is about the preferences for the GRASS natives commands. For unix like systems (linux and mac) the preferences are setted in this way:
1. GRASS location, mapset and database specification
2. GRASS environment and library folder (to have the GISBASE name just enter GRASS and type which r.sun
3. user information



Last panel is to set the syntax colouring, not so useful for now.

To accept the changes just press Apply and then OK to close the Preferences window.

After setting the Console preferences you have to open the console editor by clicking the correspondet icon in the tools bar.

The new JGrass editor looks like in the picture below.



Here first click with the right mouse button and set the runtime preferences with the name of the location and mapset you want to use for elaborations.



Select the options and then close the window to accept the changes.



In the JGrass console editor the commands are mainly divided in two groups:
1. JGrass commands (written in Java and directly in JGrass)
2. GRASS natives commands (written in C for GRASS and executed from JGrass)

To execute a JGrass command use the word jgrass before the command, for GRASS use the grass word before the linestring of the GRASS command.

Every JGrass command has an help string to show the main targets. This string can be visualized by writing the --help string after the command, just like in GRASS environment. For GRASS commands the syntax and the options are the same as in GRASS.

To run a script or a part of it, select from the right mouse button the option "run name_of_the_console_editor_file". If you want to execute all the script just select the run option, if you want to run only a part of the script, before running, select the string you need to execute and the run with the right mouse button.

For example to know how you can use the h.pitfiller command:

jgrass h.pitfiller --help

The result is written in the console window below the console editor window as shown in picture.



There is not at present a good command line execution and so you can not see the complete list of the JGrass and GRASS commands. To see them you can have a look at the files in the rt folder of the console plugin in the JGrass installation folder.

The usage sentence contains:
  1. the name of the command
  2. the inputs of the commands that can be
    • igrass: input in the GRASS - JGrass standard format
    • igrassascii: input in the grassascii format in the related folder of the JGrass location
    • iesrigrid: input in the esri grid format in the related folder of the JGrass location
    • ifluidturtle: input in the fluidturtle format in the related folder of the JGrass location
    • ishapefile: vector input shapefile
  3. the outputs of the commands that can be
    • ograss: output in the GRASS - JGrass standard format
    • ograssascii: output in the grassascii format in the related folder of the JGrass location
    • oesrigrid: output in the esri grid format in the related folder of the JGrass location
    • ofluidturtle: output in the fluidturtle format in the related folder of the JGrass location
    • oshapefile: vector output shapefile
    • otable: writes an output file containing a table, used in commands like r.cb
    • ocolor: writes the color table file of the related raster map
    • ocats: writes the category file of the related raster map

For every input and output of the JGrass command it is possible to set the proper format. Standard format (JGrass-GRASS location) is the i/ograss format for raster maps and i/oshapefile for vector ones.

When a command has more than one input (or output) the syntax requires to define what type of input (r output) it is. So in command like r.netnumbering you can obtain:

jgrass h.netnumbering --help

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

untitled.jgrass - 1 model/s compiled, total compilation time: 26 ms

-------------------------------------------------------------------------------
Beanshell, Version 2.0b4, Copyright (C) Pat Niemeyer
------------------------------ Running model... -------------------------------
Usage:
h.netnumbering --igrass-flow flow --igrass-net net --ograss-netnumber netnumber --ograss-basin basin

Total run time: 51 ms


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

Where the --igrass-flow means that the input is a flow map in the grass format, and so on...

Friday, February 22, 2008

GRASS natives commands under JGrass

As a first attempt to use GRASS commands in the new JGrass console environment in windows, I tried to use the basical GRASS commands like g.region or something to import and create a new location (since at present JGrass hasn't the new location creation tools).

GRASS commands in JGrass console environment can be used by writing the "grass" word before the string of the GRASS command. The string of the GRASS command has to be the same as in GRASS console.

Before using GRASS commands I had to set the runtime preferences. From the right mouse button on the console window, select Set Runtime Preferences and then choose the position of the location and the name of the mapset to use.

My first step was to download from the province website the dtm (lidar dtm at a 2.5 resolution), available free at http://www.provinzia.bz.it/urbanistica/cartografia/cartografia.asp, previous registration.
So used with success the commands:
1. grass r.in.gdal input=D:\path_to_the_ascii_file.ascii output=dtm location=alto_adige
2. grass g.region -p
3. grass r.info dtm

Thursday, February 21, 2008

Why HydrologicLady?

As I already written I am an environmental engineer specialized in hydrology and GIS analysis. I will use this blog not just to put my thoughts about the world but first to write some hints about the use of GIS application in professional world.

I think I tried to use more or less all the major GIS software, since I decided to use the Open Source software, the blog will contain interesting observation about these GIS.

I will write something to help people solving problems in GIS, beginning from the three software I use much frequently: JGrass, GRASS and uDig.

About me...

First of all great thanks to my best friend Moovida who helped me to open this blog... and being honest... to choose the funny name of it.
Just a few details on who I actually am.

I grew up in a very small village (maximum 100 people) in the northern part of Italy, near the Garda Lake, a beautiful place to grow up, not so much to find something interesting for work. Since I was a child I had a passion for Africa... passion handed to me from my uncle that lives and work in Africa as a religious. I have ever thought that I could do something for helping people in the developing countries and so I decided to become and engineer. Maybe not the easiest way to do that! :-)

In 2004 I was gone to Kinshasa for more than one month. The things there are very different from how a person could imagine. At a first moment I wanted to stay there to help those people growing up and surviving, but after a billion of thoughts and conversations, I realized that for help those people I have to start from the others in the so called “first world”.
So I decided to come back to Italy and start to make something that could change the world... and met a person (my best friend) who agreed with me about the possibility to show the people that there could be a different way to live, work and manage a company taking in account of the OTHERS.
Now I am an engineer and the administrator of a small company situated in Bolzano (Italy) that calls HydroloGIS.

HydroloGIS is not simply a company, it is a different way to live and to work, it is doing something with particular regard to quality of the work, safety, environmental processes, environmental protection and at first to the person.
In the vision of collaboration and sharing of information, thinking at how we could help people in the developing countries, we decided to develop and use only open source software and to put our experience and our knowledge to make some projects in Africa.

Since 2005 I worked in that direction, maybe sometimes I lost the right way due to the very high level of efforts that a small company with an ethic and with respect to the people and to the world have to make to survive. As I wrote before, maybe this wasn't the easiest way to change the world, but in these last two months I realized that this is the right way... :-)
And that I will tell you in an other post, when I will have more informations... Hope so!

Hydrologic lady starts here!

Welcome to the blog of the Hydrologic Lady, feel free to comment all you find in this small place of thoughts about the mixture of water and IT sciences.

Cheers!