Global Mapper Pro

Viewshed area feature elevations

Ice Age Mark
Ice Age Mark Global Mapper UserTrusted User
edited June 2014 in Suggestion Box
Howdy Mike,


Is it possible to make the viewshed function such that when it creates it's area feature, the vertices of that area feature already have per-vertex elevations, based on the transmitter elevation and the vertical slope of the transmission angle. It seems like it would just be a simple 'trig calc' or 'inverse' to each point from the transmitter point to get an elevation there. This would allow the viewshed area to render in 3D as the sloping surface in space that it really is, instead of just draped on the terrain. (This seems to be quite a chore to set up manually now, unless I'm missing something.) If one wanted the area feature on the surface, they could just update the elevations from the terrain. Seems like it would make for a better and more realistic 3D view, and it could possibly provide other useful information (like intermediate distance point elevations?).


I'm going to see if I can accomplish this with attributes and a script, but I'm not too swift at that stuff, so I thought I might suggest it being built in to GM. If someone with more knowledge has already done this, how about sharing it?


Mark

Comments

  • Ice Age Mark
    Ice Age Mark Global Mapper User Trusted User
    edited June 2014
    Howdy again,


    I did this one with brute force (deleting vertices, then updating from terrain, then calculating/editing some elevations) to show how it might look. I think most users would be very happy with something like this as an initial vector result of generating a viewshed. (Transmission angle 1 degree above the horizon.) This can be turned back into the previous form (draped w/no elevations), if desired, much easier than the previous form can be made into this.

    Mark
  • Ice Age Mark
    Ice Age Mark Global Mapper User Trusted User
    edited June 2014
    And with the extrusion limited:
  • global_mapper
    global_mapper Administrator
    edited June 2014
    I was able to do this pretty easily inside the code. Now if you have a single transmission angle the coverage areas will be 3D areas with the height of each vertex being the height based on the transmission angle.

    This looks great in 3D, with one caveat. The transmission point needs to be a vertex of the area if the area covers the transmitter. This will always be the case for something restricted to a certain range of bearings, but if you do a full circle view shed and say everything is covered, the area will just float in space at the height of each edge vertex. I'll not this in our todo item (#13913), but it would require a bit more work to fix, likely chopping up the view sheds through the transmission point, so it may not always be desirable.

    I have placed new builds with the latest changes at the links below:

    32-bit: http://www.bluemarblegeo.com/downloads/global-mapper/global_mapper15.zip
    64-bit: http://www.bluemarblegeo.com/downloads/global-mapper/global_mapper15_64bit.zip

    Simply download the .zip file for the build that you are using and extract over your existing installation files. The likely locations to extract to are as follows:

    32-bit: C:\Program Files (x86)\GlobalMapper15
    64-bit: C:\Program Files\GlobalMapper15_64bit

    Thanks,

    Mike
    Global Mapper Guru
    geohelp@bluemarblegeo.com
    Blue Marble Geographics for Coordinate Conversion, Image Reprojection and Vector Translation
  • Ice Age Mark
    Ice Age Mark Global Mapper User Trusted User
    edited June 2014
    Mike,


    This is very, very nice! Thank you so much. I think many users will like it. It's a great addition for 3D visualization of viewsheds and radio transmission. [I also use this tool for Archeoastronomy, and it will save me tons of agonizing calculation.] You can see on the attachments how well it works. The images show two vertical transmission angles (1 and 1.5 degrees). By using "no fill" or transparency, one can see multiple viewsheds inside each other. Also shown is each angle with the extrusion limited to a plane 1m thick.


    There is one small bug in the change though (one I'm sure you're familiar with!). It's only working in meters, and the elevations are rendering as such. The vertex list column heading says feet, but the values are in meters. [I honestly don't know how you cope with this aspect of programming GM, it would make me crazy!]


    GM has the best support in the universe!


    No hurry, and thanks again,


    Mark
  • global_mapper
    global_mapper Administrator
    edited June 2014
    I've fixed it so now the elevations should convert to the elevation units of the layer rather than always being set as meters. I have placed new builds with the latest changes at the links below:

    32-bit: http://www.bluemarblegeo.com/downloads/global-mapper/global_mapper15.zip
    64-bit: http://www.bluemarblegeo.com/downloads/global-mapper/global_mapper15_64bit.zip

    Simply download the .zip file for the build that you are using and extract over your existing installation files. The likely locations to extract to are as follows:

    32-bit: C:\Program Files (x86)\GlobalMapper15
    64-bit: C:\Program Files\GlobalMapper15_64bit

    Thanks,

    Mike
    Global Mapper Guru
    geohelp@bluemarblegeo.com
    Blue Marble Geographics for Coordinate Conversion, Image Reprojection and Vector Translation
  • Ice Age Mark
    Ice Age Mark Global Mapper User Trusted User
    edited June 2014
    It works perfectly now. Very useful! Thank you, sir.
Sign In or Register to comment.