No need to reinvent the wheel. TauDEM offers a rich suite of hydrology tools including the ability to generate catchment areas using raster surface models. TauDEM is FOSS4G. TauDEM will be an available processing tool in QGIS - or addable to QGIS - depending on your QGIS version.
ArcGIS - Spatial Analyst Tool-Hydrology Tools offers a similar (...
Geospatial data doesn't usually come with the software, but what you need is probably available for free. As others have mentioned, the data you need is called a digital elevation model, or DEM.
If in the US, you can get DEMs and lots of other data from the National Map Viewer.
The UK has the Ordnance Survey
For many other sources of geospatial data, have ...
Depends upon what do you mean by free and which data set it available to you?
There are tons of software (free as in freedom) which could be used for this purpose. Here is a list which I have personally worked with. All software are free although some may cost money and are listed for the sake of completeness and are not recommendation (e.g. MATLAB) Let me ...
You could use proj4.js. Just install it using npm install proj4.
From the documentation:
var firstProjection = 'PROJCS["NAD83 / Massachusetts Mainland",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0....
Have a look at OpenDroneMap.
Drone Mapping Software
Generate maps, point clouds, 3D models and DEMs from drone, balloon or kite images.
Open Source Toolkit for Processing Aerial Imagery
ODM turns simple
point-and-shoot camera images into two and three dimensional
geographic data that can be used in combination with other geographic