[GRASS-user] Peak point extraction from DEM

Hello, I am trying to extract peak points from a digital elevation map.

I would like to be able to regulate the following parameters:

Minimum height of peak
Minimum drop of surrounding peaks
Minimum radius from surrounding peaks
summit points
optional hierarchy...

Are there any tools in GRASS that may be able to do such an extraction?

Thank you.

Mars

On 7/1/07 5:46 PM, "Amagine" <amagine@telus.net> wrote:

Hello, I am trying to extract peak points from a digital elevation map.

(GUI menu: raster>terrain analysis>terrain parameters)

r.param.scale input=DEM output=feature.map param=feature

This will ID peaks, ridges, passes, channels, pits, and planes

I would like to be able to regulate the following parameters:

Minimum height of peak

A topographic "peak" will have an elevation, not a range of elevations. So
I'm not sure what you mean.

Minimum drop of surrounding peaks

Not sure what you mean here too.

Minimum radius from surrounding peaks

use r.distance or convert to vector and use v.distance

summit points
optional hierarchy...

I guess these are technical mountaineering terms? So again I'm not sure what
data you are hoping to extract.

Are there any tools in GRASS that may be able to do such an extraction?

Probably a way to get all this information in GRASS

Michael

Thank you.

Mars

__________________________________________
Michael Barton, Professor of Anthropology
Director of Graduate Studies
School of Human Evolution & Social Change
Center for Social Dynamics & Complexity
Arizona State University

phone: 480-965-6213
fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

Thanks Martin, I'll have a look at terrain analysis in grass. See what I can come up with.

I would like to be able to regulate the following parameters:

Minimum height of peak

A topographic "peak" will have an elevation, not a range of elevations. So
I'm not sure what you mean.

I should have elaborated further.

Minimum height of peak, meaning do not classify any peaks below a set minimum threshold : 1000 m for instance.

Minimum drop of surrounding peaks

Not sure what you mean here too.

Meaning a peak is not extracted if there are surrounding elevations within a minimum drop amount
eg. 50m or 100m (depending on accuracy of DEM file and refinement desired of distinct peaks)

summit points
optional hierarchy...

I guess these are technical mountaineering terms? So again I'm not sure what
data you are hoping to extract.

Summit points.... The highest point on a peak.

So a peak encompasses all vertical surface areas within the "Summit" point based on the above two categories.

I suppose I define a peak as a categorical area, and a summit as a point. Perhaps there are better definitions.

Hierarchy in my mind would be to classify peaks within peaks. Based on the initial two parameters (Minimum height of peak, minimum drop of surrounding peaks)

I suppose I should draw a picture :slight_smile: probably make more sense.

Thanks!

Mars

On 1-Jul-07, at 10:03 PM, Michael Barton wrote:

On 7/1/07 5:46 PM, "Amagine" <amagine@telus.net> wrote:

Hello, I am trying to extract peak points from a digital elevation map.

(GUI menu: raster>terrain analysis>terrain parameters)

r.param.scale input=DEM output=feature.map param=feature

This will ID peaks, ridges, passes, channels, pits, and planes

__________________________________________
Michael Barton, Professor of Anthropology
Director of Graduate Studies
School of Human Evolution & Social Change
Center for Social Dynamics & Complexity
Arizona State University

phone: 480-965-6213
fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

Amagine wrote:

Thanks Martin, I'll have a look at terrain analysis in grass. See
what I can come up with.

I would like to be able to regulate the following parameters:

Minimum height of peak

A topographic "peak" will have an elevation, not a range of
elevations. So I'm not sure what you mean.

I should have elaborated further.

Minimum height of peak, meaning do not classify any peaks below a
set minimum threshold : 1000 m for instance.

You can use r.mapcalc for that, after r.param.scale, like:

r.mapcalc 'peaks_1km=if(dem>=1000,peaks,null())'

Minimum drop of surrounding peaks

Not sure what you mean here too.

Meaning a peak is not extracted if there are surrounding elevations
within a minimum drop amount eg. 50m or 100m (depending on accuracy
of DEM file and refinement desired of distinct peaks)

Maybe you could use slope, calculated from dem, to filter these out
with r.mapcalc?

summit points optional hierarchy...

I guess these are technical mountaineering terms? So again I'm not
sure what data you are hoping to extract.

Summit points.... The highest point on a peak.

pseudo-pseudo code:

r.cluster: create a raster map where each peak has a unique value
r.info -r: find out the number of peaks

for each summit do :

r.mask: set a mask to match one of the peak spots created by r.cluster
r.mapcalc: extract the peak falling into this spot
r.info -r: find out it's max value
r.mapcalc: extract the reported max (summit) into another raster

done

r.patch: patch all summits, if needed

So a peak encompasses all vertical surface areas within the "Summit"
point based on the above two categories.

I suppose I define a peak as a categorical area, and a summit as a
point. Perhaps there are better definitions.

Hierarchy in my mind would be to classify peaks within peaks. Based
on the initial two parameters (Minimum height of peak, minimum drop
of surrounding peaks)

I suppose I should draw a picture :slight_smile: probably make more sense.

I hope I got you right.

Best
Maciek

Wow, thanks Maciek!

r.mapcalc sounds like a great tool for my needs!

Yah, looks like you understand my intent.

thanks again! I never get such thorough and clear answers on the ArcGIS side.

Kudos to the GRASS community.

Mars

On 2-Jul-07, at 1:21 AM, Maciej Sieczka wrote:

Amagine wrote:

Thanks Martin, I'll have a look at terrain analysis in grass. See
what I can come up with.

I would like to be able to regulate the following parameters:

Minimum height of peak

A topographic "peak" will have an elevation, not a range of
elevations. So I'm not sure what you mean.

I should have elaborated further.

Minimum height of peak, meaning do not classify any peaks below a
set minimum threshold : 1000 m for instance.

You can use r.mapcalc for that, after r.param.scale, like:

r.mapcalc 'peaks_1km=if(dem>=1000,peaks,null())'

Minimum drop of surrounding peaks

Not sure what you mean here too.

Meaning a peak is not extracted if there are surrounding elevations
within a minimum drop amount eg. 50m or 100m (depending on accuracy
of DEM file and refinement desired of distinct peaks)

Maybe you could use slope, calculated from dem, to filter these out
with r.mapcalc?

summit points optional hierarchy...

I guess these are technical mountaineering terms? So again I'm not
sure what data you are hoping to extract.

Summit points.... The highest point on a peak.

pseudo-pseudo code:

r.cluster: create a raster map where each peak has a unique value
r.info -r: find out the number of peaks

for each summit do :

r.mask: set a mask to match one of the peak spots created by r.cluster
r.mapcalc: extract the peak falling into this spot
r.info -r: find out it's max value
r.mapcalc: extract the reported max (summit) into another raster

done

r.patch: patch all summits, if needed

So a peak encompasses all vertical surface areas within the "Summit"
point based on the above two categories.

I suppose I define a peak as a categorical area, and a summit as a
point. Perhaps there are better definitions.

Hierarchy in my mind would be to classify peaks within peaks. Based
on the initial two parameters (Minimum height of peak, minimum drop
of surrounding peaks)

I suppose I should draw a picture :slight_smile: probably make more sense.

I hope I got you right.

Best
Maciek

Maciej Sieczka wrote:

Amagine wrote:

Summit points.... The highest point on a peak.

pseudo-pseudo code:

r.cluster

That's supposed to be r.clump instead. Sorry.

: create a raster map where each peak has a unique value

Maciek

Mars,

I see that you've received several good replies. I'll add a bit more here.

On 7/2/07 12:00 AM, "Amagine" <amagine@telus.net> wrote:

Thanks Martin, I'll have a look at terrain analysis in grass. See
what I can come up with.

I would like to be able to regulate the following parameters:

Minimum height of peak

A topographic "peak" will have an elevation, not a range of
elevations. So
I'm not sure what you mean.

I should have elaborated further.

Minimum height of peak, meaning do not classify any peaks below a set
minimum threshold : 1000 m for instance.

It looks like by "peak", you mean mountain and by "summit" you mean
topographic peak.

Use r.recode (you could also use r.mapcalc or r.class) to isolate all areas
above 1000m. The recode rule would be...

1000:5000:1000:5000

...by default the rest will go to NULL, giving you a DEM with only places
above 1000m and less than 5000m.

As Maciek, suggested, you could use r.clump to give an identifier to each
area above the cutoff.

output map = peaks (see below)

Minimum drop of surrounding peaks

Not sure what you mean here too.

Meaning a peak is not extracted if there are surrounding elevations
within a minimum drop amount
eg. 50m or 100m (depending on accuracy of DEM file and refinement
desired of distinct peaks)

I'm not sure if this is needed if you are isolating everything (and only
everthing) above a certain elevation. That is, a mountain is not singled out
if it is surrounded by equally high mountains and no valleys below the
cutoff point.

summit points
optional hierarchy...

I guess these are technical mountaineering terms? So again I'm not
sure what
data you are hoping to extract.

Summit points.... The highest point on a peak.

These are the topographic peaks from r.param.scale. Use r.reclass to single
out the summits (cells with value of "peak") only.

output map = summits (see below)

Use the map calculator to make a map of summit elevations, using your summit
map and the original DEM.

r.mapcalc 'summit_elev = if(!isnull(summit),DEM,null())

So a peak encompasses all vertical surface areas within the "Summit"
point based on the above two categories.

This doesn't make sense to me. Sorry.

I suppose I define a peak as a categorical area, and a summit as a
point. Perhaps there are better definitions.

OK. So "peaks" are areas of topography above a certain elevation; "summits"
are topographic peaks within those areas.

Hierarchy in my mind would be to classify peaks within peaks. Based
on the initial two parameters (Minimum height of peak, minimum drop
of surrounding peaks)

Use r.report to list the summits within each peak.

r.report map=peaks,summit_elev units=meters

...will create a report with the elevation of each summit within each peak.

Is this similar to what you need?

Michael

I suppose I should draw a picture :slight_smile: probably make more sense.

Thanks!

Mars

On 1-Jul-07, at 10:03 PM, Michael Barton wrote:

On 7/1/07 5:46 PM, "Amagine" <amagine@telus.net> wrote:

Hello, I am trying to extract peak points from a digital elevation
map.

(GUI menu: raster>terrain analysis>terrain parameters)

r.param.scale input=DEM output=feature.map param=feature

This will ID peaks, ridges, passes, channels, pits, and planes

__________________________________________
Michael Barton, Professor of Anthropology
Director of Graduate Studies
School of Human Evolution & Social Change
Center for Social Dynamics & Complexity
Arizona State University

phone: 480-965-6213
fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

__________________________________________
Michael Barton, Professor of Anthropology
Director of Graduate Studies
School of Human Evolution & Social Change
Center for Social Dynamics and Complexity
Arizona State University

phone: 480-965-6213
fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

Amagine wrote:

Hello, I am trying to extract peak points from a digital elevation
map.

I would like to be able to regulate the following parameters:

Minimum height of peak
Minimum drop of surrounding peaks
Minimum radius from surrounding peaks
summit points
optional hierarchy...

Are there any tools in GRASS that may be able to do such an
extraction?

see wish about calculating topographic prominence:
  http://thread.gmane.org/gmane.comp.gis.grass.user/19166/focus=19173

linked wikipedia article: "The underlying mathematical theory is called
"Surface Network Modeling," and is closely related to Morse Theory."

if there is any interested topogapher in the house...

Hamish

On Sun, 2007-07-08 at 19:54 +1200, Hamish wrote:

Amagine wrote:
> Hello, I am trying to extract peak points from a digital elevation
> map.
>
> I would like to be able to regulate the following parameters:
>
> Minimum height of peak
> Minimum drop of surrounding peaks
> Minimum radius from surrounding peaks
> summit points
> optional hierarchy...
>
> Are there any tools in GRASS that may be able to do such an
> extraction?

see wish about calculating topographic prominence:
  http://thread.gmane.org/gmane.comp.gis.grass.user/19166/focus=19173

linked wikipedia article: "The underlying mathematical theory is called
"Surface Network Modeling," and is closely related to Morse Theory."

if there is any interested topogapher in the house...

This may also be of interest:
http://www.peaklist.org/theory/theory.html

--
73, de Brad KB8UYR/6 <rez touchofmadness com>

Hamish & Brad,

Yes, this is the type of mathematical surface theory I am curious about in GRASS.

My windows box has collapsed on me, and am looking at seriously using GRASS/QGIS in future projects.

I have picked up on LandSerf in the mean time also:

http://www.soi.city.ac.uk/~jwo/landserf/

Jo Wood has some exemplary information and concise maths linked there also.

The feature extraction is quite powerful.

Okay, back to rebuilding my Windows instal..

Joy!

On 8-Jul-07, at 1:08 AM, Brad Douglas wrote:

On Sun, 2007-07-08 at 19:54 +1200, Hamish wrote:

Amagine wrote:

Hello, I am trying to extract peak points from a digital elevation
map.

I would like to be able to regulate the following parameters:

Minimum height of peak
Minimum drop of surrounding peaks
Minimum radius from surrounding peaks
summit points
optional hierarchy...

Are there any tools in GRASS that may be able to do such an
extraction?

see wish about calculating topographic prominence:
  http://thread.gmane.org/gmane.comp.gis.grass.user/19166/focus=19173

linked wikipedia article: "The underlying mathematical theory is called
"Surface Network Modeling," and is closely related to Morse Theory."

if there is any interested topogapher in the house...

This may also be of interest:
http://www.peaklist.org/theory/theory.html

--
73, de Brad KB8UYR/6 <rez touchofmadness com>