WMS CATASTO ADE: ESTRARRE I DATI CON IL FIELD CALC DI QGIS

Il 24 settembre 2020 è una data storica e rimarrà impressa nella mente di molte persone in quanto le mappe catastali, usufruibili tramite servizio WMS del AdE, diventano utilizzabili grazie alla modifica della licenza da  CC BY-NC-ND 4.0 a CC BY 4.0.

Per scaricare i dati dal WMS esistono vari metodi ma, in questo blog post, descriverò solo quello utilizzabile in QGIS, la logica è presa in prestito dal blog post di Andrea Borruso (grazie mille):

QGIS

Metodo GetFeatureInfo e output in HTML:

Funzione personalizzata da usare nel Calcolatore di campi di QGIS:

# -*- coding: utf-8 -*-
"""
/***************************************************************************
WMS Catasto Agenzia delle Entrate CC BY 4.0
——————-
copyright : (C) 2020 by Giulio Fattori
email : giulio.fattori@tin.it
***************************************************************************/
"""
from qgis.core import *
from qgis.gui import *
import requests
@qgsfunction(args='auto', group='Custom')
def get_parcel_info2(xx, yy, EPSG, feature, parent):
"""
<h1>WMS Catasto Agenzia delle Entrate CC BY 4.0:</h1><br>
La funzione, tramite una richiesta GetFeatureInfo, restituisce le informazioni utili sulla particella che ricade sotto il pixel di mio interesse:
<h2>Esempio:</h2>
<ul>
<li>get_parcel_info(355461.5,4222490.7,'EPSG:3045') -> 'IT.AGE.PLA.G273_0033A0.673'</li>
<li>get_parcel_info("fieldX", "fieldY",'EPSG:3045') -> 'IT.AGE.PLA.G273_0033A0.673'</li>
<li>get_parcel_info("fieldX", "fieldY",@project_crs) -> 'IT.AGE.PLA.G273_0033A0.673'</li>
</ul>
<h2>NB: le coordinate X e Y devono essere espresse nel EPSG utilizzato (gli EPSG disponibili sono:6706,4258,25832/3/4,3044/5/6)</h2>
"""
req = "https://wms.cartografia.agenziaentrate.gov.it/inspire/wms/ows01.php?REQUEST=GetFeatureInfo&SERVICE=WMS&SRS=&quot;+EPSG+"&STYLES=&VERSION=1.1&FORMAT=image/png&BBOX="+str(xx1)+","+str(yy1)+","+str(xx+1)+","+str(yy+1)+"&HEIGHT=9&WIDTH=9&LAYERS=CP.CadastralParcel&QUERY_LAYERS=CP.CadastralParcel&INFO_FORMAT=text/html&X=5&Y=5"
r = requests.get(req, auth=('user', 'pass'))
a = r.text.partition("InspireId localId</th><td>")[2]
b = a.partition("</td>")[0]
return b
view raw WMS_catasto.py hosted with ❤ by GitHub

il file zippato è scaricabile cliccando qui.

Dove mettere il file

Scaricare lo script WMS_catasto.py e metterlo nella seguente cartella:

Per Windows:
C:\Users\nomeUtente\AppData\Roaming\QGIS\QGIS3\profiles\default\python\expressions

Per OSX:
/Users/[NAME USER]/Library/Application Support/QGIS/QGIS3/profiles/default/python/expressions

al riavvio di QGIS, trovate la funzione nel calcolatore di campi di QGIS nel gruppo Custom:

Come usare la funzione personalizzata

La funzione è get_parcel_info(), come da esempio nella guida in linea, richiede due argomenti (le coordinate X e Y) ovvero è possibile dargli in pasto due campi che contengono le coordinate X e Y.

In questo video è spiegato tutto: nella InfoBox trovate i marcatori di capitolo:


NOTE FINALI: Per favore non abusare di questo servizio, con questo metodo descritto sopra potrai mandare in tilt i server dell AdE e rischiare di far chiudere il servizio.

Un ringraziamento particolare ad Andrea Borruso, che ha pensato, realizzato e condiviso questi metodi.

Nel gist trovate le espressioni utilizzate per i campi virtuali.


RINGRAZIAMENTI

RIFERIMENTI


Se il blog post vi è piaciuto cliccate su ‘Mi piace’, grazie!!!
if you liked the blog post click on ‘Like’, thank you !!!

SE IL POST VI È STATO UTILE CONTRIBUITE A MANTENERLO AGGIORNATO PAYPAL


27 pensieri su “WMS CATASTO ADE: ESTRARRE I DATI CON IL FIELD CALC DI QGIS

  1. Provato…funziona perfettamente….grazie
    Una domanda: come si potrebbe modificare la procedura per estrarre dati di un gruppo di particella senza doverle cliccare una ad una??

    Piace a 1 persona

  2. Grazie delle informazioni chiare e puntuali che ci concedi…
    Ho provato la funzione sopra indicata, ed opera egregiamente…DOMANDA: sarebbe possibile ottimizzare la funzione per un estrazione del dato catastale su un ingombro poligonale o lineare?

    "Mi piace"

  3. Ciao Totò,
    se abbiamo ad esempio l’ingombro di una strada di 3 mt di larghezza e mt 100 di lunghezza che attraversa una serie di particelle, sarebbe possibile estrarre le informazioni dal wms catastale relativamente alle particelle intersecate dal tracciato? non avremmo più quindi dei punti con delle coordinate x-y ma uno shape poligonale o lineare georeferenziato.
    pensavo ad una possibile applicazione per le procedure di esproprio ricavando i dati foglio e particella dal wms catastale incrociandoli con i dati .ter ecc. dell’agenzia delle entrate automatizzando in questo modo la ricerca delle proprietà, tipologia della coltura etc.

    (ps. attualmente procedo con la rototraslazione dei fogli .cxf convertendoli poi in shape ed intersecandoli con un eventuale tracciato, ma non sempre i fogli .cxf sono disponibili o aggiornati)

    Piace a 1 persona

  4. Buongiorno sono un GeoDataAnalyst e mi sto approcciando da poco alle tematiche catastali. Volevo sapere se c’è modo di estrarre dal WMS le bounding box dei fogli e delle particelle in automatico presenti in una regione o in tutta Italia direttamente? Senza dover mettere io dei punti a definire quali voglio scaricare. Grazie in anticipo

    "Mi piace"

    1. Buongiorno Mattew,
      che io sappia dal WMS è possibile estrarre i BBOX delle particelle, per i foglio non lo so.

      Il WMS però è sottoposto a token con validità di circa 10 minuti e valido per provincia.

      saluti

      "Mi piace"

  5. Buongiorno, è possibile tramite una tabella in input, contenente i dati di comune, foglio e mappale risalire alla posizione in modo automatico della particella sulla mappa wms e contrassegnarla con un elemento vettoriale. Mi si pone il problema, in quanto dovrei individuare la posizione di parecchie decine di particelle sulla mappa. Grazie

    Piace a 1 persona

  6. ciao, ho provato e riprovato ma non sembra funzionare. il campo catasto non vuol saperne di popolarsi. ho provato con diversi EPSG calcolando il campo con get_parcel_info2( “x” , “y” , ‘EPGS:6706’ ), get_parcel_info2( “x” , “y” , ‘EPGS:3045’ ) oppure get_parcel_info2( “x” , “y” , @project_crs ) (la funzione è copiata tal quale dal tuo tutorial) ma il campo resta vuoto….

    "Mi piace"

      1. ciao, grazie per la risposta. ho testato il tutto con EPGS 3045 come suggerito, impostandolo come sr del progetto e del layer ma purtroppo non ne vuol sapere di funzionare…

        "Mi piace"

      2. Scusami, ma EPSG:3045 è quello usato nei test e nel video, quindi funziona, guarda bene i valori che scrivi, per esempi vedo che tu usi EPGS al posto di EPSG, forse è questo uno dei problemi.

        "Mi piace"

  7. Ciao,
    intendo i vertici che delimitano l’area in cui è inserito il poligono (l’area rossa che si crea selezionando la particella catastale dalla geometria).

    Grazie

    "Mi piace"

  8. Domanda banale forse, perdono: collegandomi al wms catasto AdE ottengo “vestizioni, particelle, etc” ma non uno shape puntuale “catasto”. Mi manca l’inizio quindi per seguire il ragionamento. Mi dareste una spinta ? Grazie mille !

    "Mi piace"

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.