I would like to know if in ArcGIS Desktop 10 there is some tool/algorithm which can be used to perform the same analysis that r.geomorphon does in GRASS 7.
2 Answers
I don't have an elegant answer but have a couple ideas that may send you in the right direction. Skyline in conjunction with Skyline Graph could get you close (requires 3D Analyst extension). Skyline uses the same line of sight principle. Search radius can be set (max_horizon_radius) and azimuth values should work to enforce the 8-tuple, but the tricky part is having it stop at the relief threshold. Slyline graph will give you the zenith from Skyline, which accounts for the plus case. The minus case might work this way to give a zenith below the horizon if it is the only visible location within the radius, but to get all the visible minus locations try inverting the elevations (min becomes max, I'd test results against a viewshed). You could iterate through each cell using a gradually broader radius and obtaining a zenith value for each, stopping at your desired relief threshold. Another option would be to run Viewshed (requires Spatial Analyst extension) and then use trig to get the zenith angle between the two elevations. If it were me I would just use GRASS, even if you get it worked out in ArcGIS it isn't one fluid step and I expect its slow. Geomorphon relates to openness which can be calculated in Arc as part of the Geomorphometry Tool, it might be worth contacting the author to see if it could be adapted. Lastly, I'm curious how ridgeline and more hydrologic analysis would compare to the line of sight approach used (i.e. whats the los if you just do this using trig between the points rather than line of sight?).
ArcGIS Pro has this tool now, you can find more details in the help file here. Require Spatial Analyst extension.