I am planning out the creation of a web service for DTM editing. I can think of two ways of handling the DTM data on the backend, but are there better methods?

  1. Have a base dataset of DTM tiles. Elevation queries would come from here and edits would directly affect these files. Problems: Tiles would need to be rendered on the fly in order to handle the changing data. This could be slow. A cache would overcome this, but then you would need to have a mechanism to update affected cached tiles when the underlying data changes..so their may be a significant lag between creating an edit and actually being able to see it! There is also the problem of supporting multiple resolutions. By tiling the base data, you could potentially have different resolutions (on a per tile basis), but you would then need to interpolate when rendering, slowing down the render more!

  2. Store the data as points and serve it directly to the the browser as vector tiles. This would mean no round-tripping to see edits or query points, plus you could easily support variable resolution (since there is no 'resolution' in vector data). However I would be concerned about the potentially massive amounts of data that might need to be transmitted (depending on the zoom level).

Any thoughts of implementing data editing services like these?

Further info: The idea is to allow manual editing (draw a line/polygon and increase/decrease elevation in it by some delta) over a 2D map (DTM displayed with colorscale and/or hillshading)

Most/all edits would typically take place over a small area - these would be fine edits of e.g. waterways to prepare the DTM as input to modelling procedures.

  • 1
    hmm what kind of editing do you have in mind? procedural, like calculating slope denudation, or manually 'drawing' (seems silly but...)? and are you, for example, planning to render in 3D via, lets say, three.js or cesium? or will this be an image based visualisation (in the sense of png tiles showing height values as color/greyscale)? – ThingumaBob May 25 '17 at 10:10
  • yes manual 'drawing'! A simple draw a line then adjust height along it up or down. Not planning for 3D vis - simple colorscale/shading. Idea is to allow manual editing of fine features which affect waterways to allow collaborative preparation of dem as input to numerical models – James May 25 '17 at 10:14
  • 1
    And what about the scope? Will this be for static scenes (like one region/dataset of interest) or are you planning to cover larger areas? I ask because I am working on a related project which covers static scenes (region wide). I use three.js to render and mainly webworkers to do the calculations clientside (and respective database updates). Advantage is to have the terrain interpolated as meshs in the renderer with (self implemented) adjustable resolution (level of detail) and immediate effects. A LiDAR cloud with 800k vertices as float32array is downloaded in like 2 seconds, – ThingumaBob May 25 '17 at 10:47
  • @ThingumaBob. Yes, I imagine most/all edits would be taking place over small areas - sub catchment size or smaller. So you simply have the client download the data for some selected region and render it in the browser? I imagine this is similar to option 2. – James May 25 '17 at 10:51
  • 1
    Please Edit the question in response to requests for clarification. It's not fair to those who would answer to need to mine the comments for critical information. – Vince May 25 '17 at 10:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.