1 votos

Selección del nombre de la capa raster para cada punto de un shapefile (QGIS)

Tengo varios archivos ráster (por ejemplo, la elevación en los Estados Unidos) y más de 300 puntos en un shapefile de puntos separado. Cada punto se encuentra en un solo archivo raster. Me gustaría poder averiguar el nombre del archivo ráster en el que se encuentra cada punto.

En última instancia, estoy tratando de hacer una ejecución por lotes sobre todos los puntos, pero para poder hacer eso necesito un archivo raster de entrada para cada punto, de ahí que necesito una manera de asociar el nombre de un archivo raster a cada punto

¿Alguien conoce una manera fácil de hacer esto en QGIS?

1voto

Ray Koopman Puntos 111

Puedes usar el siguiente script de python para hacer el trabajo. En este ejemplo, los nombres de cada trama se almacenarán en los puntos de la capa con el campo "capa". Usted debe ajustar esto a sus pertenencias:

group =QgsProject.instance().layerTreeRoot().children()
layers = [ item.layer() for item in group ] #list of all layers
vlayer = QgsProject.instance().mapLayersByName("points")[0] #get the point layer
vlayer.startEditing()
for f in vlayer.getFeatures():
    geom = f.geometry()
    for layer in layers:
        if layer.type()==1: #check if it is a raster
            extent = layer.extent()
            if geom.intersects(extent):
                print (layer.name())
                f['layer'] = layer.name() # set layername in field 'layer'layer of point
                vlayer.updateFeature(f)
vlayer.commitChanges()

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X