 Hello, this is Hans van der Kwas senior lecturer at IHH Delft Institute for Water Education. Somebody recently asked me on my YouTube channel if I could make a video on how to make a hypsometric curve in QGIS. This video will demonstrate how to do that. A hypsometric curve can be used to estimate the percentage of a study area that is above a certain elevation. For this task we need a catchment boundary polygon, we need a digital elevation model and I added here a hill shade just to get a nice visualization of the starting point of this demonstration. There are other videos that show how to delineate a catchment. The first step is to calculate the total catchment area. I go to the attribute table of the catchment polygon, toggle the editing and I go to the field calculator. I create a new output field name catch area which is a decimal and I keep it as 10 digits and 3 decimals and I use the dollar area function and there I have the catchment area in square meters and I save it. The next step is to divide our digital elevation model into classes and then for each class we will determine the area. The easy way to do that is to go to the styling panel, make sure that you have the actual numbers of minimum and maximum values in the DEM and you have chosen min max and there we switch it to discrete. Then you see that the classes are discrete boundaries and we change to equal interval and we choose the number of classes that we want. I just choose here 9, so we have 9 points later. I export this color file as a text file because I can use the numbers later to do the classification of the raster using a table. We can close the layer styling panel and open the processing toolbox. There is search for classification and I choose the reclassify by table tool. Now I open the classes.text file because I need those class boundaries to be used in the reclassification table. I click on the three dots to open the reclassification table and I add 9 rows for 9 classes. And now I'm going to copy the class boundary values. I use the lower boundaries as the reclassification value and I change the settings here as shown in the video and I save the output, let's call it the reclass and we run it and there we have our reclassified DEM. The next step is to polygonize these raster classes. So I can use vector geometry polygonize. The problem is if I use that one that it will only use the integer values and I don't have control on having the DEM numbers as float or as integer. So that's not what I need so I'm going to use the other one, raster pixels to polygons which preserves the data type. I change the field name to elevation and I save the output. Let's call it DEM classes and I run. This will take a long time. If you would have used the other method it's much quicker but then you will only have integer elevation values. Once it's done we can open the attribute table. They will take a lot of time because it generated a lot of polygons. So the next step is that we are going to dissolve. Go to vector, geo processing tools, dissolve. So it will make all the classes a unique polygon for which we can later calculate the area. Let's call it DEM classes dissolved, save it, run it, it will take a while. When it's done, if we check the attribute table then we see that for each elevation class we have one polygon. So the next step is to add the area. So create a new output field name, call it class area. We choose that it's a decimal number, real and we keep the defaults and then we add this function dollar area again to calculate the area for each polygon and it will use the map unit. So here we have the class areas for each elevation class in square meters. I'm going to copy the whole catchment area value because I need that to calculate the percentage. Go back to the field calculator and I call it percentage area, again a decimal number. Keep the field length and position as it was and then class area divided by the area of the polygon. I change here the comma to a dot, that's because of my language settings because it needs a dot here, times 100.0 to calculate the percentage and there is the percentage of each polygon. Let's save the attribute table. Next step is to export the attribute table to a CSV file. So go to export, save features as, make sure you choose CSV file and give it a file name, call it hypsometry dot CSV and I choose that it has no geometry because there are no coordinates in it and make sure to uncheck add saved file to map because we first going to edit this in a spreadsheet program. So open it with LibreOffice and those settings seem okay. So here it is, I'm going to sort the first column, there it is and then from high to low elevation and I add a column called cumulative where I'm going to calculate the cumulative percentages. So 2.126% is higher than 620 meters and then I'm going to add those percentages to get the cumulative values so it adds up to 100%. Save the file, use the CSV format and close LibreOffice and now I'm going to add the CSV file using the delimited text importer just to make sure that all the settings are okay. Use no geometry and there it's added as a table. Can open the table and there you see that all the values are there that we need to create our curve. Now to create a graph we can use the data plotly plugin, I install it. We open the data plotly plugin using the button. Make sure you choose scatter plot and the hypsometry table. For the X field we choose cumulative and the Y field is the elevation. Can change this to points and lines and then let's give it a title, hypsometric curve. You don't need a legend or the X label, cumulative area, percentage, elevation, meters above sea level and let's create the plot and there is the final result. Basically the plot shows the percentage of area above a certain elevation, so above zero is 100%, well above the others it's less. Hope you've enjoyed the video, if you like these videos please subscribe to my YouTube channel and if you want more free materials on GIS please have a look at IHC Delft Open Corsair at GISOpenCorsair.org.