 Okay, we're about to get started. There will be more people coming in but we will first do some intro slides. So hopefully there will be more people joining later. So welcome to this second webinar, QGIS Hydro webinar together with Kurt. For seven weeks long, we will show you some tips and tricks from the book QGIS for Hydrological Applications. And we're now in the second one. And of course, at the end, we'll have our GeoBears like last week was great fun. So let me first introduce myself for the people who are new. So I'm Hans van der Quest. I'm a physical geographer from background. I studied at Utrecht University in the center of the Netherlands. I also did my PhD there and I studied the integration of satellite information in soil moisture modeling with field studies in Morocco and Spain. And then I started working as a researcher at the Flemish Institute for Technological Research in Belgium. I was in environmental modeling unit where we worked on water quality and land use change models. And since 2012, I work at IHE Delft Institute for Water Education as a lecturer in ecological modeling and teaching GIS there, of course, and modeling classes and do the field work. I'm also a board member of the Dutch QGIS user group. And in my work, my main interests are, of course, open source GIS and modeling. Like Kurt, I'm a QGIS certified instructor. So all the courses that I give with QGIS, the participants can get the official QGIS certificates. And in that way, you contribute also to QGIS because certificate is worth 20 euros donation to QGIS and for us as an institute is a way to support QGIS. I'm also very much interested in remote sensing for hydrology. We do a lot about that at IHE at the moment for water accounting and water productivity. They also have a lot of nice open materials at different channels. In my capacity development projects, I work a lot on data sharing and fostering or promoting the use of open data for the water sector, also through spatial data infrastructures and we use a lot GeoNode, which is a nice software stack that integrates all the components of spatial data infrastructures that you need to share the data. And of course, fieldwork. You always think that we are nerds and we are nerds, but the data collected in the field is very important. So you also need to know what's going out there. And I find that a lot of GIS people are out in the field. And of course, in these times of the corona crisis, we feel a bit stuck in the office. The combination of fieldwork and GIS is really a nice one. And there are also nice tools like from Lutra Consulting with the input app that you can collect data in the field and connect it to QGIS, that's all very nice stuff. By the way, Lutra Consulting is sponsoring this event by supporting a big amount of users to take part in these webinars. If you want to get in touch with me, you can send me an email or connect to social media. Happy to be in touch with you. I'll give the floor to Kurt. Hi everyone. My name is Kurt Menke and I have a master's from the University of New Mexico. And I run my own GIS consulting business named VerdiView. I'm based in Albuquerque, New Mexico in the United States. I also have a fairly new venture that I started with some colleagues about a year ago called the Q Cooperative and it's myself and half a dozen developers and power users and teachers providing QGIS support services. So if people need a new QGIS feature or a custom plug-in or something like that, we can help. I'm also an OSGO charter member and it's hard to believe, but at this point I've written six books and the latest two are Discover QGIS 3x, which is a really large 400 page complete treatment of QGIS with 32 different lab exercises that people can go through. And QGIS for hydrological applications with Hans, which we're gonna go through the second chapter of today. And I do a mix of just about everything. I focus mainly on ecological conservation and public health. And I'm definitely a Phosphor G advocate. And if you're interested in messaging me or following me, I'm Kurt at birdsiviewgis.com or you can find me at geominkey on Twitter. Thanks Kurt. So there are seven webinars. So we also want to get you through these tough times that we're all a bit locked in in our house, but yeah, never waste a good crisis and learn some good new skills. And we also like to meet you and through the internet. I think it's a great opportunity. So the first one was on preparing data from hard copy maps and digitizing. The video is on my YouTube channel. If you still wanna watch that first webinar, today we're gonna talk about importing tabular data into QGIS. Next time we'll demonstrate how to do spatial analysis with map algebra. So mostly with raster data. Then the fourth webinar is about stream and catchment delineation. Very important topic for people in hydrology. In the fifth webinar, we'll show how to add open data to the catchment from all kinds of web map services and from open street map. Then the sixth seminar is about, webinar is about calculating the percentage of land cover per subcatchment where we'll introduce a lot of vector analysis tools. Then the last one is, yeah, how do you design a very nice map like the one that we have on the cover of our book? And using all the great tools that are available in QGIS for that. And Kurt will get you through that part of the webinars. It's always a good idea to have the book next to the webinars because all the steps are explained in the book. And if you want to order the book, you can go to this link, locatepress.com slash hit. And there you find the information to buy the ebook or the hard copy. So for today, we will import tabular data. And with QGIS, you can import tabular data from comma separated files. And then it comes with a native importer, which is this symbol. I'll demonstrate that later in the QGIS itself. But what's also useful is use the spreadsheet layers plugin to import spreadsheets like from Excel. And that's what I'm going to demonstrate too. What is important if you want to import tables into QGIS is that you need, of course, tables with coordinates. Only with coordinates, we can put the rows that we have in our table on the map. What's also important because a table or a spreadsheet is not QGIS is that we need to know what the projection is of those coordinates because they are not always stored in the table. So there needs to be some metadata or you need to in some way find out from the headers of the columns, what kind of coordinates are in the tables that you want to import. And then after importing those tables, you need to convert it to an appropriate GIS format that you can further handle in GIS. That's one thing that we're gonna do. The second thing is we will, in this exercise, have two tables and one table has the coordinates, as you can see here on the right. And the other one has the temperatures but in some strange units on purpose for this exercise. And we see that they both have a common column. And what we want is, of course, to link the coordinates to the temperatures and put them in the GIS and to do further analysis with them. So basically what we do is, that's called a join operation. So based on this station number, we can in GIS easily combine the two tables, join them and then work further with that joint at your table. And there's some corrections on that. So like here you see missing data and you see that the units of the temperatures need to be converted. So we're gonna work on those things today. And then the last step of this exercise is to go from our point data to rusters because for hydrology, it's often in our models, important to work raster based and meteorological data, like in this case, temperature, but it can also be rainfall or other kinds of data is collected at points and you want to interpolate it to rusters. There are many methods we will introduce a few and give you some hints where to find more. And on the way, we'll also style this data so you in the end see a map similar to this. We'll also discuss the two interpolation methods to interpret them, but also to discuss which one is now the best to use. So I hope you're ready for that. Then we can switch to QGIS. If you have any questions during the demonstrations then please put it in the chat. At the end, we will have some plenary where we can summarize things. And after that, we will have the GeoBeers. First of all, when you want to import spreadsheets, it is important that you look at the spreadsheets yourself. So I'm gonna go to a folder where I have the spreadsheets. So we're gonna first look at the two Excel sheets that I'm going to import into QGIS. There's one which is called KMI stations. And it's just an Excel file. And there indeed we see the station numbers. We see long lot, that's longitude latitude. So we have the coordinates and we can put them on the map. There's altitude and there's the names of the stations. And then the other one contains here the station numbers and the temperatures. And then those temperatures we can convert. Of course, we can already join these tables in Excel and correct the values. But I will show you that it's also very powerful to do those things in GIS. And later I'll show you how to import the CSV. So I'm gonna switch to QGIS. For importing spreadsheets, we need to install plugin. So I go to the plugins menu and manage and install plugins. Connects to the repository. And then I'm going to look for the spreadsheet layers plugin, this one. In my case, it's already installed and checked. And this will add here under layers, add layer, add spreadsheet layer. So I can browse to the spreadsheet and I'm gonna first import the one that has the coordinates and that's KMI stations. When I open it, it fills in the data already in this table and you can choose if it has different sheets, you can choose here which sheet you want to look at. And here you can modify the layer name that will be displayed in your layers list. So just call this table because it's not yet in a GIS format when I imported some virtual file which will be stored in the same folder. But to not get confused, I call it table. And this one has a geometry and it guesses already that the X comes from the longitude and the Y from the latitude, so that's okay. If you want to import also the coordinates, you can check here the box show fields in attribute table. Normally you don't want that because the geometry in the vector files are separate from the attributes. But if you need them, then you need to check that box and then those columns will also be imported in the attribute table. Then the reference system, that's very important. So it's a longitude latitude. So we need to define here that is in EPSG 4326. And last time you learned that you can just put the EPSG code here, there's a new video which shows how to find EPSG codes. But 4326 is the one that you should always remember is latitude longitude on WGS84. So now when we import it, the layer will have this projection. Another important thing to do is to declare the data types. So the station numbers are not real, they are integer. Longitude and latitude are real numbers. The altitude is real and we have then the names of the stations and strings. That's it basically. So when I click okay, it will load the points on the map here you see it. And what is always wise to do is to check if this is really fitting with reality. And therefore we have the quick map service plugin where we can add maps from the internet. And as I said also last time, yeah, you cannot blame these worldwide maps all to be in the wrong projection, you're in the right one. So this is basically your check if your data is in the correct projection. So I opened the open street map and it should give me the contours of the Netherlands and yeah, it's there with our points on it. We're gonna make it nicer in a bit. The next step is to import the other table. We're gonna uncheck this for a while. So same way, layer at layer and add spreadsheet layer. And I'm gonna browse to the other file, this one, which doesn't have a geometry because there's no X and Y coordinates in it. It's just a station number and the date and the temperatures that we are interested in. And you see already there's some missing data. So I'm gonna rename also this layer. So I'll just call this temperature stable. So we don't get confused later of what's what. I don't check the geometry and I declare station numbers as integer. The date, we're not gonna do anything with it. So it's okay to keep it also as integer. There's a special date time format, but then you need to really have the things in the right format for here, it's not important. And the temperatures we keep them on real and then I do okay and then our table is imported. You can also drag and drop your tables in here but then you have less control on the formats and the data types. So the preferred way is to do it in this way that you're really sure what you are importing. So I can also open this attribute table to just check it. And here it is, we see it's well imported and do the same with the stations. It's there, data types are okay, it looks great. The next step is to save this one which if you hover your mouse over the layers you can see where it's stored. And this one is stored in a VRT file which is more or less a temporary file on your disk. And by clicking right and choosing export we can do two things. We will save the features in another format. So last time we used a Geo package in this webinar I'm going to use the shape file. Geo package is preferred but just to show you also the different things. In fact, you can choose your many different output file formats. They come from the GDAL library and from the OGR. So you can also save it to a Google KML file for example. Here we stick to the shape file this time. Always use these buttons to browse to the folder where you want to store it. So I'm going to store it in chapter two. Otherwise it stays in some previous used folder so it's always good to use the buttons instead of typing the file in here. And I'm going to call it KNMI patience. And it will be shape file and there will be saved in the end. In this dialogue you can also change the projection. Since we are working with data from the Netherlands meteorological data from the Met Office open data I'm going to change the projection to the Dutch one. And well, it's already in the recently used one but if you don't have it again you can type here the EPSG code of the projection that you need. So this is the one that we use in the Netherlands the national projection and I click okay. And that's all that we need to fill in here. And when I do okay it will ask for the datum transformation. We can keep the defaults here so I just do okay. And then it says it's successfully imported exported to the other format. And when I move from my mouse I can check which one is which. So if you confuse the names a bit and you're not sure then you can see here that this one is the shape file and the other one is the virtual file. To avoid further confusion I always keep my layers list clean. So I'm going to remove this, the virtual file don't remove the other one and there it is. And then I'm going to do the join because we want the temperatures of this attribute table added to the shape file. So to do that we click right and we choose properties and that brings us to the layer properties and then there's this joins button and you can add a join if you click the plus symbol and the layer I want to join because I started to join from the KNMI stations and I'm in that layer properties I'll get the join from another layer. If you have multiple you can choose it here from the list in this case it's the temperatures table and the join field is stations and the target field is also stations. So that's the common column that you're going to use for joining the attribute tables. There are a few more things you can do in this dialogue so you can choose which field you want to join. And I want to join only the temperatures I'm not interested in the other ones. And I can choose a custom field name prefix and this one is too long so I'm going to shorten it a bit and just call it 10. This is nice because then you see which columns come from the other file so they get this prefix in the attribute table. Then I do okay and here you can then see an overview of the join that I created and I do okay and there's the join. If I now go to the attribute table then I see that it has station altitude, name of the station and the temperature in the strange units from the other table. So that was the first step to join. These joins are always linked to your project but not in the file itself. So it's not the case now that KNMI stations contains these values. It will only contain its own values and what we're going to derive from the joint value. So if I'm going to add new columns, those will be in the file but the join will get lost when I close this project and I open the file in a new project or if I remove and add the file again, then the join is lost. So it's more comparable to where we laid in ArcGIS for ArcGIS users. A way to preserve the join is again to export the file then you get all the columns including the joins. It will create a copy including the join. So that's good to keep in mind when you work with joins. The next step is to clean up a bit this data because we have some no data in here. So I toggle to editing mode. Remember from last time, we can toggle to editing mode in different places and then the symbol at the layer becomes a pencil which means you're going to edit something in memory and it's only in the file as long as we click the save button. That's the same for your attribute table. So I'm going to look for these no data files and no data features. And I use the control button to select multiple of them and then I use the trash bin to remove them and now they're gone. And then I save and then it's in the file. The next thing I'm going to do is to convert these temperatures to the normal units because this is in 0.1 Celsius. So I have to add another column. That's here. If you hover over these buttons, you see what they mean. So this is to create a new field. Fields are the columns in the attribute table and I'm going to call this TDC and that is temperature in degrees Celsius. That's a decimal number and length, it means the amount of positions, the amount of characters of the number. So in this case, it's three and the position is the amount of decimals and I want one decimal because I'm going to divide this 162 for example by 10 to get 16.2. That's the conversion we're going to make. To do okay, the new column is added. What's important then is to do the calculation and I can choose here the output column. That's an important step because by default or by accident, you can have the wrong column here and then it will write the result of what we're going to make as an equation to the wrong column. It happens a lot in class. So here you always need to read this line here, the field calculator as an equation. So T C equals something. You can write the something here but you can also click this button. Let's just start the dialogue of the field calculator. The expression dialogue and what we're going to do is you're going to say that we want to divide this column by 10. So I go to fields and values where you see the list of these columns and I simply double click on the column name and then it enters it here in the dialogue with double quotes. So the fields are always in double quotes and then I can divide it by 10 or multiply it by 0.1 and you can always check the output preview if it doesn't give an error then it's a correct equation and this makes sense, 16.2. So I can continue with this one. So I do okay and now the equation is written here. So make sure it goes to the correct column and then I do update all and the equation is applied to each feature in the attribute table. So if you're happy with it, you save the file and you toggle off the editing. So what we did was correcting now the temperature values so we can proceed with that. Before I proceed with that, I'm going to show you just as a little intermezzo how to import a comma separated file. So there's a native importer in QGIS to do that but also good practice with comma separated files is that you check the CSV file. So we've created already a bunch of files here and this is CSV file and by default Excel will open it if you have your standard window settings and it even puts an Excel icon but please remember that the CSV file is a text file which you can open in any text editor. So if I click right, I can simply say open with notepad and it's very important to do that to look at your CSV files that you get out of Excel, out of your models to look at the format because they're often depending on your language settings on your computer. So if you are from non-English languages like Dutch or Spanish or French then the decimals are separated with a comma. If in Excel, your language settings are on Dutch then it will output not a comma separated file even if you choose comma separated file it will use semicolon because otherwise you have commas already here and then you get your column breaks at the wrong places. So therefore it's always wise to check what comes out of your models, your tools that use comma separated values. So here we simply see that it's separated by commas. So you don't need Excel for that. You go back to QGIS and you can find the native importer here under the open data source manager. And there you have this button, delimited text. And I can open here the CSV file, default comma separated but if you have other ones you can choose your custom delimiters and you can set whatever it is. Here I switch back to the CSV format and you see here the preview window so you see that the breaks of the columns are already at the right spots. You have the geometry, its points and it identifies the longitude and the latitude or check it and you fill in the geometry. So it's very similar to the other dialogue of the spreadsheets. And when I click okay or add in this case it will be added. And there we see also when I hover over it that is again a temporary file which you can export them to shapefile or geo package or something else before you continue. I'm going to remove this layer because we're not going to use this one. That was just a demonstration. So the join is in fact in memory and we have joined just to make clear what a join is. We have joined this one to this table and we've calculated that field. Now if I remove this table the join will be broken and let's see what happens. I'm going to remove this and open attribute table. And there you see that only what we have calculated and what was there remains. So if you want a complete attribute table including the join as I said before you need to export it first. Then it makes a copy with all the columns including the join. So that's good to remember. So this is the Netherlands with the met stations with the temperatures in the attribute table but this for people from the Netherlands this doesn't look like the Netherlands. That's because of your on the fly reprojection. It's on latitude, longitude on geographic coordinate system. So I'm going to change it, you can click here and then in this dialogue I can now choose the Dutch projection. So on the fly reprojection make sure that any layer that you load in the map canvas is on the fly reprojected to the same projection. Normally it takes the one of the layer that you use first in the map canvas. So if you later want to change it you can do it through this button or go to the project properties from the menu. Now I'm gonna style these factors a little bit before we proceed with the interpolation create some space here. So I open the live layer styling panel and move these a bit away. And a single symbol that's could be used but we want to see the temperature gradient. So I go here to graduate it and I need to choose the column and of course that's the TC column, the temperatures column and I need to choose a color ramp. So there are many ramps provided and we can use the spectral one but the problem is that the spectral one starts from red and goes to blue which is not really intuitive because we associate cold with blue and red with one. So if you click right on the ramp you can invert the color ramp to classify it again. And then now we see that red is warm and blue is cold. That's all we want here. I'm gonna create some labels and I'm going to use a single label and by default it takes now the field of the name of the map stations but I'm going to do something a bit more sophisticated I'm gonna show you also the temperatures. So we can also plot the temperatures here but what if we want the name and the temperatures and the units? Then we can go to this button here to open again the dialogue for editing the expressions. I'm gonna remove our was there. So what I would like to see is the name of the station so go to fields and values. I double click on name. You see in double quotes now the name is added and the preview gives there the name of the first field it's a Valkenburg and I'm going to concatenate. So you learned last time that you can add strings, connect strings using this button. We also learned that we can go to a new line with this button. So that's what we're gonna do. So on one line in the label I will have the name of the station on the next line I will have the units. So I'm gonna concatenate and I can type a string here with single quotes. So now we have C but in between of course I need to put the temperature here. So now we have Valkenburg 16.2 C. It's not yet degree Celsius and now a little trick for that that's a little extra that you get. We don't have it in the book. If you want a degree symbol that's not a standard symbol on your keyboard but there is this string function. So you can browse to all these functions here. You can do quite a lot with this like calculating the length of a line or the area of a polygon. You find these on the geometry. But in this case, we need one string function and there's this character function and it returns a character associated with a unicode code. So character 81 is Q if you want to write QGIS in these unicode characters which is a bit complicated to do but then you use this character. So there's one for degree Celsius too. So I can add it here and double click on character and the number for that is 176 if I remember well close the brackets and concatenate with the string. And now I don't want the space anymore. So here we have it, Falkenberg 16.2 degrees Celsius. Do okay. Now we see that it's adapted and I'm gonna change a few settings here. I would like to have another font here. Let's use Calibri and I want it bold. 10 points is okay. And we go here to the placement. I would like to see here that the alignment is centered. See that looks nicer. Now we have the temperature centered under the name of the station. Also want to draw a little buffer to make it clear. And we can work on the distance. We can make it a bit larger. You can play with this. You can see it live changing. Make it two units and it's a bit further away. And you learned last time that with this button here you can go to some extra automated placement engine options and here you can remove this, allow truncated labels on edges of the map. None of much will change, but if I remove this here, then it will make sure that the label moves to the side. If I didn't have that box checked, then it will just move out of the map. Now I can show that to you. So now move this here. You see now it's overlapping with the window. So that's also important for when you want to style your map that this button is unchecked and then your labels will be moved automatically. There's some manual adjustment methods for labels that you can explore. Then the next step is to interpolate these points through raster. And therefore I'm gonna change a few settings that are also applying to the next webinars. If you go to the processing toolbox, in my case they are already changed, but just to show you, go here to the settings, to the general menu. Then there is here, we see that there's here, prefer output file name for layer names. This one is by default unchecked. But since my good practice is that you always save your files and then for clarity, especially if you have several trials, it is much easier to use the file name in your layers list instead of the name of the tool that you use. If you do, for example, reclassify, then if you do it three times, you will have three layers called reclassify here. If you check this box, you will get the name of the file in which you store the result. So that's something that might be helpful. Now we are gonna do the interpolations and you find them here in the raster menu. And they're under analysis. And the first one that we're going to do is a simple nearest neighbor interpolation. So I have here the KNMI stations and I keep all the things at default, but I have to choose here the Z value. That's the value you're gonna interpolate. So that's very important to fill in something, otherwise it will still run, but with an empty map as a result. We keep the rest as default. You see here that it prints the GDAL command. So GDAL or GUDAL is a very important tool in GIS. And basically QGIS has all kinds of dialogues built around GDAL commands. And if you are more fluent with GDAL, you can read this, you can use this in your own scripts. And for some things it's really useful to use scripting, but that would be a completely different webinar course. So I'm gonna save here the interpolated result and go to chapter two. And I call this TNM from nearest neighbor and then I'm going to run it. And there it is. And you see that it takes the convex hull of your points and that might not be what you want. So there are other interpolation tools in the toolbox where you can set the extent. I'm not gonna demonstrate it, but that's what you could try. So you can use the IDW, which I'm not going to demonstrate from the menu, but you can also use these ones. And in these functions, these tools, it's possible to set the extent to the canvas extent or to the extent of another layer or manually by putting the coordinates. If you use it from the menu, it will by default just set the convex hull of your points. Now, this doesn't look really beautiful yet. So I'm gonna style this one. First, I'm gonna drag my points on top. You see that the labels will remain on top, but not your points. So that's always important. And I'm gonna style this using the layers styling panel. And it looks discrete, but it's continuous data because the definition of continuous data, and you can see that in my video on the theory of raster data, is that it's discrete data as integer and continuous data as decimals. And here, clearly, we have to deal with decimals. So we use single-band pseudo-color. And we have to invert the ramp again. So it goes from cool to warm. And this is what we in hydrology call decent polygons or for annoyed tessellation. Basically, what it does is assign the temperature of the station to the closest pixel. So therefore you get these sharp boundaries. That's what we often do when we interpolate the math data for models. Now I'm going to show you another interpolator. I'm gonna uncheck this one. So we start again from the points and that's the inverse distance weighing. That is an exponential decay function with a weight, so a higher weight to when it's near the station and then the weight of the value decreases when you're further from the net station. To go into analysis and I choose inverse distance to a power. By default, it's quadratic exponential but you can increase or lower that. So that's if you increase it, then it goes to the third power with the weight. And if you lower it, it goes to the first power which doesn't make much sense. So also here we choose the Z value as temperatures and output data type. You don't need to change it because it's floating point. So that's okay. And I'm gonna save it. It's the same GDoc command but then with some different options to get in first distance. There it is. I'm gonna run this and there it is. There's also a rule of thumb that you never should believe the automatic legends that come out because the software doesn't know what you are looking at and how you want it to be styled. It might even estimate the minimum and maximum value. So never draw conclusions based on the legends that it automatically produces. The good way is to just go to the layer styling panel. If you want to know the distribution of your values you go here, compute the histogram then you get the real minimum and maximum. You can also see it here. These are the minimum and maximum settings. We're going to play a lot with that in other sessions. It's for stretching the colors over a certain range. Here we go to a single-band pseudo color and we can again invert the color ramp. And now we have a more smooth image. So not like the T-some polygons but more smooth because of the exponential relation. That's nice, but now we don't see the map in the background and there are some ways to solve that. So let me go to the styling panel. So the classic way is to use the transparency so you can play here with the opacity. But that works a bit like a haze so you can see. A better way to do that and that's really nice about QGIS is that it has implemented these blending modes. There are many ways of doing blending but if you want to simply mix one layer with another then you use multiply and now we can see our open street map layer through the temperature roster. It's mixed and we don't get this haze that we have with the transparency. So that's a nice result. Can do the same with the nearest neighbor. So one thing that you can do is to copy the style that should make the legends exactly the same, so paste style. And I check this off and put this on. So it's also with the blending with the same color ranges. And now the question is which interpolator is the best? Now, when you're with me in class we will have some discussion about it interactively. I will not do that now but you can put your answers in the chat and we can see in the end which you think is better. Is it the decent polygons which is simply assigning the closest value, the station's temperature to the closest pixel or is it inverse distance weighing? Which says well, okay, if we're closed it's probably more like the temperature and then exponentially the weight of the case when we're further from the station. I'm going to give you the answer in a bit. You can still answer in the chat, keep it a bit exciting because we're first going to interpret the results because that's important with click, click, click in GIS you can always create a lot of maps and people create a lot of fake news by inverting color ranges using wrong colors. So it's always important to look at the interpretation. And what we see here is that it's warmer at the coast and it's colder, more inland. Why is that? Well, if you're in hydrology and know about water we know that the heat capacity of water is much higher than of land. So in this case we can even guess the season. In Netherlands has a temperate sea climate and that means that in summer it takes a long time for the water to heat up and when it gets autumn it takes some time for the water to cool down. So given the gradient we are here in autumn and also given the temperatures well if you're not from the Netherlands you might not know this but this is not very warm like in summer but it's also not very cold like in winter and it's in fact early autumn and we've seen if you check the attribute table you'll find that there was a date field in the table and it's in September. So that makes sense. So that's a way we can explain this gradient from warm to cold from the sea to the land. When we are in spring we have the opposite signal where the land warms up faster and the sea is still cool. Now the cliffhanger, yeah what was the best one? In order to demonstrate that I'm going to switch to another QGIS project that I prepared before and we're going to use the 3D viewer of QGIS. That was developed by Lutra Consulting the same ones that sponsored these sessions and that's really great to visualize your data in a different way. I had to manipulate the data a bit because temperatures are not elevation but what I want to show you is how you can display these temperatures as elevation. So high temperature, high elevation, low temperature, low elevation and I'm going to show that. So I'm going to turn this one and this is the inverse distance weighing and what you see is all these strange mountains and valleys in your map. You see this color station just close to that station the pixels become very similar to the value of that station and then it averages out, it smooths until it comes at the next station and here it goes up again. Now yeah, the main question is is this more natural than teeson? In my personal opinion it's not. It is inverse distance weighing works very well when you have a much denser grid of measurement points but if you don't have any assumption on your data then the teeson polygon with this sparse set of data is good enough and then your best assumption is also that the temperature is like the closest station of any location in your study area. If you know about a trend like us you can modify this model and include the spatial trend in it. If you're in areas with elevation which is not the Netherlands obviously then you can add the lapse rates to an equation where you incorporate also the, there you can also incorporate the gradient of the elevation. Kurt asked if I can also show the other one in 3D well I didn't do those conversions but we have time I can calculate it. You will see steps. Things can go wrong as a live demo and I didn't test this part so we can give it a try but I'm gonna close this window then to create a bit of memory because it's quite intensive and what I have to do is interpolate this one. So if you wanna know the trick now I'm gonna give away some secrets. That's the lucky 88 people here in the virtual room. So use the attribute table. I used a much larger number for temperatures in order for the 3D viewer to understand that this is elevation otherwise the differences are too small and then I put also a 99 times exaggeration on it to make it clear. That's not producing fake news for you but that is just to make the visualization better. So I start from the same attribute table to do then the nearest neighbors. It's also good you see how I do that again. So that was under analysis and then nearest neighbor and then I have to choose the column, this one, the big one and I'm gonna save it and I'm gonna call this one the TNM1000 the TNM1000 motif and raster file and I run it and there it is. So it looks the same but the values are much higher and I go to view. Sorry, I'm first gonna uncheck this one because I don't wanna see it like that. Then I'm gonna switch this one on and I'm gonna display this with the elevation from the nearest neighbor. So I'm going to go to the 3D viewer. New 3D map view, you find it on a view. There it is. And what you always need to do also like an arc scene is to define the elevation and I want a DEM and we fool it we say that's our TNM1000 and I'm gonna exaggerate the scale to 99 that's needed for this visualization otherwise you don't see much and it renders and now you see don't look too much at the colors but now you see the steps. The colors are a bit disturbing it. Let me just remove the colors but you don't see these strange depressions but you see steps. So still the question which is more realistic I still think this one is more realistic when you have no other assumption and you do a quick interpolation. But we can discuss that over the GeoBears of course. Some other interpolators that you can use can be found in the processing toolbox. So many people ask about cringing. Don't do that when you have so little points please. Cringing it sounds fancy and like that's the best interpolator. No, it only works when you have really a dense number of points and all these more advanced methods work very well when you have many points. Otherwise you should just stick to simple interpolators or build your own interpolation model with the DEM and lapse rates and those kind of things. So this was I think the whole content. I'm gonna switch back to the main screen. Yeah, here we are. I'm gonna unmute Kurt. So we can start the plenary. Okay, there I am. Were there any questions from the audience Kurt that you would like to discuss in the plenary? I see people help each other. That's great. Yeah, well there were some good discussions about the coordinate system you used and why you didn't use UTM. So you might want to address that. You used a Dutch CRS. Yeah, so there's a nice video on projections which I will put as a card in YouTube when we are at this point in the video that is recorded. So you can simply click on that in the video. Basically choosing your projections is a very important topic. If it's in latitude longitude in geographic coordinate system you can't really use it for DEM analysis for example because your units are in degrees and your X and Y units and your Z from the DEM is in meters. And if you do analysis and use the processing tools then many things can go wrong because some tools assume that they are in the same units. There's also problems with distances and other things. So the best way is to re-project your data to a projection. Then you have many choices. There are so many projections that you can use. Your first choice if you work for a country for the government then of course you use the projection from the government from the national projection. So in the Netherlands everybody working in the authorities or working for authorities use this HAMS4RD new projection. If you have transboundary what we will have in the catchment delineation webinar that will come up in two sessions then you need to choose something that is more globally applicable and then we normally use UTM. Also if your country doesn't have a specific national projection then you can also use UTM or any other global one. So that's important to keep in mind. If it's transboundary you don't use a national one. If you don't have a national one you can also use one of these global projections like UTM. But be aware one UTM projection is not the same as the other because the data also matters as I discussed last time. That one was in NAD in many places we use WGS84 in East Africa close to the equator. We use ARK 1960 so be careful. Even UTM is not always UTM. And then if your zones are, if your area spread over different zones then you have to choose one zone and that's where the largest part of your studies are located. You cannot mix zones. Yeah, that's where there's a nice feature in QGIS that gives you a preview of the valid extent of a CRS and so you can see if your study area fits squarely within the valid extent for that CRS or not. And you can use that to help determine which CRS might be the best choice for your project. Yeah, maybe I can show that. So I can show that with the projection property. So if I click here on the EPSG code then we get into that projection selector and you see these boxes. So you can see that UTM zone 31 is over the Netherlands. 32 is more on Germany. So you can simply check all these zones and see where they are on the globe. So you get these previews here. Yeah, there was just a question on how to automate what you just went through. And so a couple of us answered in chat that you could use the graphical modeler. So you can find that from the processing menu in QGIS and it opens up a new window where you can drag data sets and algorithms and recreate an entire workflow. And in so doing you create basically a custom processing algorithm that you can then run on any number of data sets to repeat that process. Yeah, this is how it looks like. So here you see all kinds of functions and you can connect them and play around with it. Quartz book really describes very well how to build these things. And we're not seeing it. It may be hidden. Oh, that is strange, let me see. I'll share it again. It says that it's sharing. Something's wrong with the word. I think it's because I didn't share the full screen. Here it is. See it now? Yep. So this is the modeler. You find it in the processing toolbox. Also in the processing menu, there's graphical modeler. There you can select it. And there was another question about Google and Ogre or GDAL and OGR, depending on how you like to pronounce those. And I described it that those are basically libraries for reading and writing vector and raster data sets. So Google works with raster and OGR works with vector. And those are, you know, the fact that those are kind of underneath the hood of QGIS is why QGIS can read and writes just the silly number of file formats that it can. And so the processing algs that Hans was showing for creating the nearest neighbor surface or the IDW surface are basically gooey representations of the command line utilities that come with GDAL, for example. So they're super handy and those utilities like come with these command line utilities that you can open up in a command prompt and execute. And when Hans ran that tool, he pointed out that it gives you the command line syntax for what you're about to run. So you can use that to kind of begin to learn how that syntax might look and you could copy and paste it into the command line to try running it in that environment. So people use those utilities quite a bit for processing data. You can set them up in loops and things like that so that you can process multiple data sets quite rapidly. So that's kind of a quick and dirty explanation of what Google and OGR are. Yeah, thanks, Kurt. That's also, I have a free course on my OpenCourseWare GIS OpenCourseWare.org on GDAL and OGR, Goodall and Ogre. And I think it's an essential skill in universities to do scripting, especially if you're in engineering or in geography and dealing with GIS. So in that course, you learn how to loop over outputs from a model and convert the whole folder from one file format and projection to another file format and another projection just in a short time. And that's a very important topic. So I'll show it when we will do our plugs after this. Anything else that came up that we need to discuss? I don't think so. No, I think that pretty much covers it. If someone has something they'd like us to discuss, you can certainly put it into the chat. Okay, yeah, sure. Go ahead with discussing and in the GeoBears, we will even open the microphones because they'll ask you your questions. So get me back to the PowerPoint. Kurt and I just want to point out also materials that we also have for you to use. So there's free course materials at IHGDAL OpenCourseWare. The link I already mentioned, GISOpenCourseWare.org. There you can find a lot of tutorials on QGIS, on Python and on GDAL. Also on the input app for using the fields. There are video tutorials. All these videos are also on my YouTube channel. At IHGDAL, we also organize physical face-to-face courses like our upcoming short course in September on QGIS for hydrological applications. Last two years, Kurt joined as a guest lecturer and it was great fun. Very diverse group from all over the world and we had a mapathon and processed the data from OpenStreetMap like you also do in another webinar. And apart from that, we also have online courses and for those short course and online courses, you can also get the official QGIS certificate and you get our full support, of course. I just want to show you briefly, the OpenCourseWare website. It will load the site from the IHGDAL OpenCourseWare. There are a lot of other OpenCourseWare on the platform but this is the site that I maintain. Gives you here some information that you can find out, but here you find QGIS for hydrological applications, tutorial with course data, et cetera. It's not as good as the book. The book is really worked out in detail and very neat and with nice explanations of everything. This is also nice stuff, but it's for free and this OpenCourseWare comes with the disclaimer that it comes without support. So you're free to use it but yeah, be a bit hesitant with asking us all the time for solutions. We can of course answer simple questions when you post it on social media but we cannot do private consultancy. They will take all our time that we want to spend on developing good material and teaching. So this is the one on the good old that I explained. So you can find here course materials on batch conversion of files. There's a Python 3 tutorial. Very useful to learn Python, especially if you're in GIS and there are a lot of other resources mentioned here that you can take a look at. If you just wanna start like your first time with Python, you can use this Jupyter notebook for your binder. You don't need to install anything and you just go ahead with it. Very nice are the tutorials for hydrologists from Hatari Labs, from Sol Montaya on linking groundwater to GIS and Python. Really fantastic what he's doing is organizing a lot of free webinars too. But also from the other queues colleagues and PC Raster, very nice tool to do a map algebra. So the things you're gonna do next week we can easily do it also in PC Raster but then through scripting, command line base or in Python. So have a look at that if you're interested in. And the field surveys that I mentioned, I developed this with Saber from Lutra Consulting and it's basically a full click through tutorial how to set up a project for using the field. Synchronize it to the merchant cloud and how to use the app on your smartphone to collect data. Yeah, really full tutorial including videos. So I hope you're gonna use also these materials and gonna go back to the presentation and Kurt can also present some of his work. Oh yeah, so I just wanted to do a quick announcement. I've been building this program called Community Health Maps with the US National Library of Medicine for several years. It's been very successful but the US government is ending support for this program. So they've turned all the materials over to me and I've set up a new website, communityhealthmaps.org and going forward I'm gonna be managing this program myself. And this is basically setting up tools like QGIS and other open source tools for doing community health mapping, public health sorts of applications. And I'm planning on doing a webinar in the next month on community health maps to introduce it to people. And I might even think about some way of incorporating COVID-19 into this to show people how we could work with some of the data that's out there with COVID-19 and QGIS as an example. There'll also be open courseware available on this site. There are some lab exercises up there right now that need to be updated. But I also have a two-day course on vector-borne disease surveillance using QGIS that will be posted to this site in the coming weeks. So I just wanted to point that out, make everyone aware of it and it will be growing over the summer as I'm able to work on it. That's great Kurt, thanks. So before we go to the GeoBears, for next week we're going to do chapter three of the book if you want to prepare it a bit. There's also videos about the topic on the YouTube channel. It's about spatial analysis using map algebra, basically an exercise to check the proximity to certain land use features and to do Boolean logic, work a lot at Boolean maps to find out which wells in the study area are less accessible for the people who live there. A short note on the timing next week because we switched here this weekend to summertime in Europe. So we are not on CET anymore, but in CEST. So that will be UTC plus two, I guess. So anyways, you need to check the time. We'll be again with webinar at 9 p.m. CEST, European summertime. So it's time for GeoBears. It was great fun last time. So I'm going to open up the floor for you to discuss.