2

I'm looking for a way to get a list of altitude for de point in a grid and I think that is possible using intersection points between contour lines and the grid, in a similar way that the tool MapEditor of Wasp do (https://www.wasp.dk/dataandtools#map-editor, see that image)

The desired output is something like:

[East Coord] [North Coord] [elevation]
x1 y1 z1
x2 y2 z2
....
xn yn zn

Do you know some tool to do that?

2

You have contour polylines and points and you want to find elevation of the points?

  1. Rasterize the contour lines. Use elevation field for Field to use for burn-in value
  2. Fill no data to interpolate the spaces between the rasterized lines.
  3. Drape (Set z from raster) the points on the filled raster
  4. Extract Z values to get z as attribute

enter image description here

| improve this answer | |
0

Not sure if a plugin but you might be able to build a model using some algorithms. Starting with the grid generation, you can follow this question Creating vector grid using QGIS? Once you have your grid (G) and contour lines (CL) in different layers, the algorithm in Vector Overlay --> Line Intersection should do the work of finding the intersection points between G and CL. You will end up having a layer of points. After that, you just join attributes by location from the CL to the points. In the same model, you can finally add a couple of field calculator boxes to find out the x and y coordinates of each point, (like this Assigning XY coordinates into multiple points in QGIS?)

| improve this answer | |
0

thanks for the responses, those help me to figure out

I did a script, to set points in a grid for a new layer, then use the sampling tool to get the altitude over the Terrain Hybrid

there are still some issues, I'm not be able to see the points yet, but there are there, is possible to confirm adding the column $x and $y in Open Attribute Table

here is the script, get a view in the canvas and change the value of 'l' and paste in python console:

e=iface.mapCanvas().extent()
x_f=e.xMaximum()
y_f=e.yMaximum()
x_i=e.xMinimum()
y_i=e.yMinimum()

# lengh of grid squares in m
l=10000

n_x=int((x_f-x_i)/l)
n_y=int((y_f-y_i)/l)


vl = QgsVectorLayer("Point", "Gridpoints", "memory")
from qgis.PyQt.QtCore import QVariant
pr = vl.dataProvider()
vl.updateFields()
f = QgsFeature()
for i in range(n_x):
    for j in range(n_y):
        f.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(x_i+i*l,y_i+j*l)))
        pr.addFeature(f)
        print(x_i+i*l,y_i+j*l)
        vl.updateExtents() 
QgsProject.instance().addMapLayer(vl)
| improve this answer | |

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.