Suppose we have temporal data of a particular river from the past 10 years; it would take a long time outlining the rivers and than perform river change detection. So can we automatically classify those river using a programming platform?
One step back: the method to use (regardless of the software you implement it in) depends on the size and characteristics of the river in relation to the spatial resolution and spectral characteristics of the sensor. If you go for mapping the open water of the river (and the image resolution in relation to the size of the river permits it), then you could use a supervised classification and train with water pixels or use the NIR band (band 4 in landsat, but NIR is also available in SPOT, ASTER and most other optical satellites). You could take a derivative, like NDVI or NDWI, as suggested above. Both are vegetation indices, where NDWI gives more emphasis to the water content of the leaves. Note that for NDWI you need a SWIR band, which is not available on all optical satellites. The above does not work when the riverbed is dry or when the river is too narrow in relation to the resolution. In the latter case, I'd use something with edge enhancement and extraction of linear features.
If you want to automate and reduce the workload, have you considered focussing on change detection between images first and then classifying the changes?
It is very easy to delineate the river area automatically from the satellite image using region growing tool of ERDAS. Try it. If not get back, I will tell you the process.
you could try the NDVI method to classify the river easily. because the river has the different values compared with the other types. it could be done by ERDAS, ENVI, and so on.
Using ERDAS imagine, you can use model bilder towrite script to detect only the water especially if you are using landsat images and i can send you this script if you want.
I agree with previous scholars. You could consider the knowledge engineer in ERDAS to incorporate more information to constrain the classification. Of course there are many more approaches available ... you eventually have to make the choice.
Of course, you should think about how to "automatically" extract water areas from multitemporal images applying supervised classification or specific thresholds inside a model procedure. The feature to detect water could be one of the different bands of the satellite images or a calculated index like the suggested NDVI. You need to find out the value range of the specific feature, using it to assign the water class to the pixels. Then integrate this process in a model, applying it to the multiple images. Last but not least, you can compare your different outputs.
The selection of a software, depends on your taste or availability of resources. I would always recommend trying open source software like SAGA, QGIS, GvSIG or R to name few.
One step back: the method to use (regardless of the software you implement it in) depends on the size and characteristics of the river in relation to the spatial resolution and spectral characteristics of the sensor. If you go for mapping the open water of the river (and the image resolution in relation to the size of the river permits it), then you could use a supervised classification and train with water pixels or use the NIR band (band 4 in landsat, but NIR is also available in SPOT, ASTER and most other optical satellites). You could take a derivative, like NDVI or NDWI, as suggested above. Both are vegetation indices, where NDWI gives more emphasis to the water content of the leaves. Note that for NDWI you need a SWIR band, which is not available on all optical satellites. The above does not work when the riverbed is dry or when the river is too narrow in relation to the resolution. In the latter case, I'd use something with edge enhancement and extraction of linear features.
If you want to automate and reduce the workload, have you considered focussing on change detection between images first and then classifying the changes?
Automatic classification of rivers Is not an easy task because rivers can have different spectral response due to their depth, sediment load, algae, structure, etc.
Why not to try a combined method using Digital Elevation Models?
this tends to be particularly difficult when the river is partly obscured by vegetation or shadow, or carries little water. In such cases using auxiliary topographic information becomes useful. You can for example calculate a Strahler stream network, which then identified where the river should be, even if it not always visible. This in turn can be used in the classification process. For an example search for the following paper on ResearchGate: "Characterising spectral, spatial and morphometric properties of landslides for semi-automatic detection using object-oriented methods" (Martha et al.)
hi Norman, we can check the stream by using swipe tool. digitizing the streams from toposheets and then overlaying on the classified image would be long process.
As indicated earlier, there are several variables in the stream/river system that would make the mapping effort a multi-step process. I would use an existing stream network data or depending on the level of detail derive one from a DEM using the stream network delineation routines in ArcGIS. Using this network as a guide, you could use the unsupervised and or supervised classification routines in ERDAS or other software to further classify the pixels. If you observe areas of vegetation camouflaging the water body, simply use a AOI (can be generated from the buffered stream network) to do a quick reclass of the vegetation pixels to water pixels. Good Luck!
I know of no automatic method, tho I'm a GIS expert not a hydrology one, so here are some ideas:
- in the Esri world you can use Model builder (I turned a hydrologic model upside down to mimic subsurface reservoir depletion as an inverted surface water runoff)
Limiting factors to using satellite are certainly river size (in comparison to pixel size for the sensor), water quality, satellite viewing angle with relationship to the sun, and clearly visible water surface with no vegetation/land obstructions and shadows. For the past 6 years, I've been involved in the development and testing of automated software to derive water body shape files (and associated raster files). I'm not in a position to provide too many details, however, I can point you to the company web site ( www.discoveraai.com, more specifically for water body delineation http://www.discoveraai.com/innovation.htm#auto) if you're interested in learning more. Good luck with your work.
I think it would be better to combine both automated and manual techniques. For the large rivers, you can use supervised classification by taking representative samples as to the diversity of the water ( deep, shallow, clear, turbid etc) i.e you can form different classes of water accordingly in order to take representative samples provided that the spatial resolution of the image is adequate to show the rivers as areal features. However, for the smaller streams that cannot shown as areal features in the image, it would be better to digitize using ArcGIS or any other software. Finally you can combine both information to see the changes.
There are a lot of software that may help you to extract water surface, but I think ER MAPPER is one of the better, because let you apply any mathematic model to limit surfaces with any reflectance capacity. So, later of apply a serie of model transformations to calibrate the image, If you know or identify a range value or treshold, this algorithm may be saved. And if you need, later modified and saved, and so on.
In your case you can do that by using auxiliary topographic information. Calculate a stream network by using GIS, then identified where the river should be if the river is dry or have little amount of water. You can use as well the ENVI or ERDAS softwares for the classifications. You can suggest different scenarios for different time in your study
Large river delineation is not difficult. NDWI or MNDWI transformation is good enough to discern water pixels from image background. However, narrow river delineation in remotely sensed imagery is a tough task, commonly requiring appropriate enhancement processing. I published a paper named "River Delineation from Remotely Sensed Imagery Using a Multi-Scale Classification Approach" in IEEE JSTARS (2014), which focused on automatic complete river network delineation. This method is easy to use, and I'm pleased to share the codes.
By the way, several people suggested you to delineate rivers using DEM data instead of remotely sensed imagery. This is a fine suggestion, but we should notice that sometimes DEM data is not accurate enough to delineate rivers. In addition, some features may also impact the formation of river networks, leading to significant differences between image-mapped river networks and DEM-derived drainage networks. For example, numerous moulins form on the ice sheet, which can flow meltwater into the ice sheet, thus the mapping supraglacial river network greatly differs from the DEM-modeled drainage network. If you're interested, see the paper I published in IEEE GSRL "Supraglacial Streams on the Greenland Ice Sheet Delineated From Combined Spectral–Shape Information in High-Resolution Satellite Imagery" (2013)
You can also use Watershed module of Grass . It is also come as plugin in QGIS , handy and easy to use with some clicks. Its only need DEM image to find out the stream networks.
In addition to these described above, I suggest you to use images of the dry season in order to differentiate the water body in the river from other land covers provided that the target rivers flow throughout the year. Again, if the rivers are wide enough to be seen on the satellite image according to the resolution, you can easily interpret the rivers by displaying the image in the NIR band or you can also calculate the NDVI to easily identify water bodies and you can use supervised classification followed by image difference to detect the changes over time. However, if the rivers are too narrow which cannot be seen on the image, i suggest you to make field survey to digitize using GPS and then overlay on the image.
Is there anybody mapped ephemeral water bodies in arid and semi-arid regions? I have just used NDWI indices with Landsat image and I have captured few.Is there any algorithm which is better than NDWI for detection of small surface water bodies?
we have very high resolution data (R,G,B,NIR) so no SWIR but we are interested in detecting small waterholes. Anyone have a good suggestion on an enhancement or treatment? Ok, NIR band works ok but is there something else?
Try NDWI when SWIR band is absence. It may perform a little better than NIR band.
Also, does the spectral information of the small waterholes vary over space? If yes, a global threshold may not perform very well and some adaptive local methods are required. Basic idea of these local methods is to identify target (waterhole in your case) first and create a local region to conduct classification. See "J. Li, and Y. Sheng, “An automated scheme for glacial lake dynamics mapping using Landsat imagery and digital elevation models: a case study in the Himalayas,” Int. J. Remote Sens., vol. 33, no. 16, pp. 5194-5213, Feb, 2012." for an example.
Moreover, the size of those waterholes matters (~XXX pixels?).
In sum, try NDWI first; then, maybe some local classification methods perform better.
@ Aurelie: Why dont you use Object based image analysis for even detecting small water holes? OBIA provides you a very good control on segments specially for very high resolution data.