---
title: 'LRS, Linear Reference System in QGIS con layer virtuali'
url: 'https://www.faunalia.eu/it/blog/2019-05-14_lrs'
markdown: 'https://www.faunalia.eu/it/blog/2019-05-14_lrs.md'
lang: it
date: '2019-05-14'
description: 'LRS, Linear Reference System in QGIS con layer virtuali'
taxonomy:
  category:
    - blog
  tag:
    - qgis
    - lrs
  archives_month:
    - may_2019
  archives_year:
    - '2019'
---

[ Faunalia ](https://www.faunalia.eu/it)     [ Blog ](https://www.faunalia.eu/it/blog)      LRS, Linear Reference System in QGIS con layer virtuali    

## [LRS, Linear Reference System in QGIS con layer virtuali](https://www.faunalia.eu/it/blog/2019-05-14_lrs)

    14th May 2019

  [qgis](https://www.faunalia.eu/it/blog/tag:qgis) [lrs](https://www.faunalia.eu/it/blog/tag:lrs)  

# Concetti

LRS (Linear Reference System) è un metodo di riferimento spaziale dove i luoghi lungo una linea sono descritti in termini di misurazioni rispetto a un punto preciso, come le pietre miliari lungo la strada.

Si immagini il seguente scenario:

- layer lineare di fiumi
- tabella (non spaziale) con descrizione del tipo di intervento (sfalcio, potatura, ecc) eseguita per ogni fiume

Si vogliono generare automaticamente 3 diversi layer **per ogni** nuovo intervento aggiunto, ovvero aggiungendo solamente una nuova riga alla tabella dei lavori (tabella non spaziale):

1. layer puntuale di inizio intervento
2. layer puntuale di fine intervento
3. layer lineare che collega l'inizio e la fine di ogni intervento

![LRS concepts in QGIS](https://www.faunalia.eu/user/pages/08.blog/2019-05-14_lrs/layout.png)

## Struttura dei dati

I layer di base per questo lavoro sono solamente `fiumi` e `tabella_lavori`.

È importante che le due tabelle degli attributi abbiano un campo comune che identifica il fiume, in questo esempio `nome_fiume` per il layer `fiumi` e `route` per la tabella `tabella_lavori`.

![LRS Attribute Tables](https://www.faunalia.eu/user/pages/08.blog/2019-05-14_lrs/tables.png)

## Creazione Layer Virtuali

I layer virtuali sono stati introdotti diverso tempo fa in QGIS e permettono di lanciare query SQL a tutti gli effetti su qualunque tipologia di dato. Quindi anche se i layer in input sono degli shapefile, si possono creare layer virtuali senza nessun problema.

Il grande vantaggio? I layer virtuali si comportano come le [viste](https://www.postgresql.org/docs/9.2/sql-createview.html) di un database: quindi al cambiamento di valori e attributi dei layer sorgenti, le viste si aggiornano di cosenguenza.

Un altro grande vantaggio? Le viste sono delle interrogazioni di tabelle esistenti quindi non viene occupato spazio nuovo su disco.

Utilizzando una combinazione delle funzioni [ST\_Line\_Interpolate\_Point](https://postgis.net/docs/manual-1.5/ST_Line_Interpolate_Point.html)e [ST\_Length](https://postgis.net/docs/ST_Length.html) otteniamo i tre layer virtuali che ci interessano.

Con una corretta e furba gestione dei moduli personalizzati di QGIS possiamo quindi aggiungere una riga alla `tabella_lavori` e avremo un aggiornamento continuo dei layer virtuali di nostro interesse:

 [  Articolo precedente ](https://www.faunalia.eu/it/blog/2019-05-01-dataplotly_extended) [Prossimo articolo  ](https://www.faunalia.eu/it/blog/2019-05-23_a_bug_story)

#### Articoli correlati

- 100 

     [Grafici nel compositore di stampe di QGIS — DataPlotly Beta è pronto!](https://www.faunalia.eu/it/blog/2019-09-26-dataplotly-beta "Grafici nel compositore di stampe di QGIS — DataPlotly Beta è pronto!")
- 100 

     [Campagna di Crowdfunding per miglioramento compositore di stampe di QGIS](https://www.faunalia.eu/it/blog/2019-03-13_dataplotly "Campagna di Crowdfunding per miglioramento compositore di stampe di QGIS")
- 90 

     [Un ottimo inizio anno](https://www.faunalia.eu/it/blog/2020-01-01_nuovo_anno "Un ottimo inizio anno")
- 80 

     [QGIS Day 2019 - Firenze](https://www.faunalia.eu/it/blog/2019-12-09-qgis-day "QGIS Day 2019 - Firenze")
- 80 

     [A Bug's Death](https://www.faunalia.eu/it/blog/2019-05-23_a_bug_story "A Bug's Death")

#### Tag popolari

  [qgis](https://www.faunalia.eu/it/blog/tag:qgis) [dataplotly](https://www.faunalia.eu/it/blog/tag:dataplotly) [open source](https://www.faunalia.eu/it/blog/tag:open%20source) [python](https://www.faunalia.eu/it/blog/tag:python) [crowdfunding](https://www.faunalia.eu/it/blog/tag:crowdfunding) [online](https://www.faunalia.eu/it/blog/tag:online) [processing](https://www.faunalia.eu/it/blog/tag:processing) [lrs](https://www.faunalia.eu/it/blog/tag:lrs) [ecw](https://www.faunalia.eu/it/blog/tag:ecw) [bug](https://www.faunalia.eu/it/blog/tag:bug) [grib](https://www.faunalia.eu/it/blog/tag:grib) [faunalia](https://www.faunalia.eu/it/blog/tag:faunalia) [plotly](https://www.faunalia.eu/it/blog/tag:plotly) [flask](https://www.faunalia.eu/it/blog/tag:flask) [dash](https://www.faunalia.eu/it/blog/tag:dash) [remote](https://www.faunalia.eu/it/blog/tag:remote) [pyqgis](https://www.faunalia.eu/it/blog/tag:pyqgis) [gdal](https://www.faunalia.eu/it/blog/tag:gdal) [plugin](https://www.faunalia.eu/it/blog/tag:plugin)  

#### Archivio

- [ 1 October 2022  ](https://www.faunalia.eu/it/blog/archives_month:oct_2022)
- [ 1 August 2022  ](https://www.faunalia.eu/it/blog/archives_month:aug_2022)
- [ 1 May 2021  ](https://www.faunalia.eu/it/blog/archives_month:may_2021)
- [ 1 March 2021  ](https://www.faunalia.eu/it/blog/archives_month:mar_2021)
- [ 4 February 2021  ](https://www.faunalia.eu/it/blog/archives_month:feb_2021)
- [ 1 December 2020  ](https://www.faunalia.eu/it/blog/archives_month:dec_2020)
- [ 1 May 2020  ](https://www.faunalia.eu/it/blog/archives_month:may_2020)
- [ 2 April 2020  ](https://www.faunalia.eu/it/blog/archives_month:apr_2020)
- [ 1 March 2020  ](https://www.faunalia.eu/it/blog/archives_month:mar_2020)
- [ 2 January 2020  ](https://www.faunalia.eu/it/blog/archives_month:jan_2020)
- [ 1 December 2019  ](https://www.faunalia.eu/it/blog/archives_month:dec_2019)
- [ 1 October 2019  ](https://www.faunalia.eu/it/blog/archives_month:oct_2019)

---

## Navigation

- Parent: [Blog](https://www.faunalia.eu/it/blog.md)
- Previous: [A Bug's Death](https://www.faunalia.eu/it/blog/2019-05-23_a_bug_story.md)
- Next: [Prolungamento campagna di raccolta fondi per grafici in QGIS](https://www.faunalia.eu/it/blog/2019-05-01-dataplotly_extended.md)
