Retrieving data from spatial database infrastructures

goals of the tutorial

  • geocoding / reverse geocoding
  • OGC services
  • ESRI ArcGIS RestAPI

based on the open data of:

requirements

  • python knowledge
  • geopandas
  • gis concepts

status

looking for data


Geocoding / reverse geocoding

Setup

try:
    import geopy
except ModuleNotFoundError as e:
    !pip install geopy==2.2.0
    import geopy
if geopy.__version__ != "2.2.0":
    !pip install -U geopy==2.2.0
    import geopy
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/
Requirement already satisfied: geopy==2.2.0 in /usr/local/lib/python3.7/dist-packages (2.2.0)
Requirement already satisfied: geographiclib<2,>=1.49 in /usr/local/lib/python3.7/dist-packages (from geopy==2.2.0) (1.52)
try:
  import mapclassify
except ModuleNotFoundError as e:
  !pip install mapclassify==2.4.3
  import mapclassify

if mapclassify.__version__ != "2.4.3":
  !pip install -U mapclassify==2.4.3
try:
  import geopandas as gpd
except ModuleNotFoundError as e:
  !pip install geopandas==0.10.2
  import geopandas as gpd

if gpd.__version__ != "0.10.2":
  !pip install -U geopandas==0.10.2
  import geopandas as gpd
import geopandas as gpd
from matplotlib import pyplot as plt

GEOCODING service

  • the geopandas module is based on geopy
  • all the goecoders service are available here

NOTE

Attention to the Rate Limit in Pandas
more info here

choose the right service



visit getlon.lat

geocoding

cols = ['city']
names = [('Roma'),('Palermo'),('Trento'),('Genova'),('Bari'),('Trieste'),('Napoli'),('Cagliari'),('Messina'),('Lecce')]
cities = gpd.GeoDataFrame(names,columns=cols)
cities
city
0 Roma
1 Palermo
2 Trento
3 Genova
4 Bari
5 Trieste
6 Napoli
7 Cagliari
8 Messina
9 Lecce
geo_cities = gpd.tools.geocode(cities.city, provider="arcgis")
%time
CPU times: user 2 µs, sys: 0 ns, total: 2 µs
Wall time: 4.29 µs
geo_cities
geometry address
0 POINT (12.49565 41.90322) Roma
1 POINT (13.36112 38.12207) Palermo
2 POINT (11.11929 46.07005) Trento
3 POINT (8.93917 44.41048) Genova
4 POINT (16.86666 41.12587) Bari
5 POINT (13.77269 45.65757) Trieste
6 POINT (14.25226 40.84014) Napoli
7 POINT (9.11049 39.21454) Cagliari
8 POINT (15.55309 38.17839) Messina
9 POINT (18.16802 40.35796) Lecce
geo_cities.plot()
plt.show()

png

reverse geocoding

from geopy.geocoders import Nominatim
geo_cities
geometry address
0 POINT (12.49565 41.90322) Roma
1 POINT (13.36112 38.12207) Palermo
2 POINT (11.11929 46.07005) Trento
3 POINT (8.93917 44.41048) Genova
4 POINT (16.86666 41.12587) Bari
5 POINT (13.77269 45.65757) Trieste
6 POINT (14.25226 40.84014) Napoli
7 POINT (9.11049 39.21454) Cagliari
8 POINT (15.55309 38.17839) Messina
9 POINT (18.16802 40.35796) Lecce
point = geo_cities.geometry[2]
point.wkt
'POINT (11.119290000000035 46.07005000000004)'
type(point.x)
float
latlon = str(point.y) + "," + str(point.x)
geolocator = Nominatim(user_agent="Example for the course")

.. but better if use a user agent like

Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36

Eg

geolocator = Nominatim(user_agent=”Mozilla/5.0 (Linux; Android10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36”)

location = geolocator.reverse(latlon)
%time
CPU times: user 2 µs, sys: 0 ns, total: 2 µs
Wall time: 4.53 µs

the raw method contains all the data available from the geocoder

location.raw
{'place_id': 122464139,
 'licence': 'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright',
 'osm_type': 'way',
 'osm_id': 73293763,
 'lat': '46.070178',
 'lon': '11.119240793834841',
 'display_name': "Giovane Europa, 15, Via Torre Vanga, Bolghera, Piedicastello, Vela, Trento, Territorio Val d'Adige, Provincia di Trento, Trentino-Alto Adige/Südtirol, 38122, Italia",
 'address': {'tourism': 'Giovane Europa',
  'house_number': '15',
  'road': 'Via Torre Vanga',
  'suburb': 'Piedicastello',
  'village': 'Vela',
  'city': 'Trento',
  'municipality': "Territorio Val d'Adige",
  'county': 'Provincia di Trento',
  'ISO3166-2-lvl6': 'IT-TN',
  'state': 'Trentino-Alto Adige/Südtirol',
  'ISO3166-2-lvl4': 'IT-32',
  'postcode': '38122',
  'country': 'Italia',
  'country_code': 'it'},
 'boundingbox': ['46.0700951', '46.0703188', '11.119026', '11.1194422']}

suggestion for a good geocoding

more details you add and more fortune you have to obtain a good result

q="Via Verdi, 26"
point = gpd.tools.geocode(q, provider="arcgis")
point
geometry address
0 POINT (-38.96013 -12.25482) Via Verde
point.explore(marker_kwds={"color": "green", "radius": "10"})
Make this Notebook Trusted to load map: File -> Trust Notebook

add details like city and State

q="Via Giuseppe Verdi, 26,  Trento, Italia"
point = gpd.tools.geocode(q, provider="arcgis") 
point
geometry address
0 POINT (11.11966 46.06665) Via Giuseppe Verdi 26, 38122, Trento
point.explore(marker_kwds={"color": "green", "radius": "10"})
Make this Notebook Trusted to load map: File -> Trust Notebook

Try a different geocoder

point_nominatim = gpd.tools.geocode(q,provider="Nominatim",user_agent="Example for the course")
point_nominatim
geometry address
0 POINT (11.11971 46.06641) Dipartimento di Sociologia e Ricerca Sociale, ...
q="Via Giuseppe Verdi, 26,  Trento, Italia"
point_nominatim = gpd.tools.geocode(q, provider="Nominatim",user_agent="Example for the course")
point_nominatim
geometry address
0 POINT (11.11971 46.06641) Dipartimento di Sociologia e Ricerca Sociale, ...
point_nominatim.explore(marker_kwds={"color": "green", "radius": "10"})
Make this Notebook Trusted to load map: File -> Trust Notebook

calculate the difference between the two points

distance = point.to_crs('epsg:32632').geometry.distance(point_nominatim.geometry.to_crs('epsg:32632')).values[0]
distance
26.522713658370346

NOTE:
A geocoder can offers more as one results
Eg. Nominatim

more_values = geolocator.geocode(q,exactly_one=False)
more_values
[Location(Dipartimento di Sociologia e Ricerca Sociale, 26, Via Giuseppe Verdi, Bolghera, Centro storico Trento, Trento, Territorio Val d'Adige, Provincia di Trento, Trentino-Alto Adige/Südtirol, 38122, Italia, (46.066413499999996, 11.119705644680646, 0.0)),
 Location(26, Via Giuseppe Verdi, Bolghera, Centro storico Trento, Trento, Territorio Val d'Adige, Provincia di Trento, Trentino-Alto Adige/Südtirol, 38122, Italia, (46.066644, 11.1196548, 0.0)),
 Location(26, Via Giuseppe Verdi, Brancolino, Nogaredo, Comunità della Vallagarina, Provincia di Trento, Trentino-Alto Adige/Südtirol, 38060, Italia, (45.9106572, 11.022791830750524, 0.0)),
 Location(26/c, Via Giuseppe Verdi, Vigne, Arco, Comunità Alto Garda e Ledro, Provincia di Trento, Trentino-Alto Adige/Südtirol, 38062, Italia, (45.9220194, 10.8651408, 0.0)),
 Location(26, Giuseppe-Verdi-Straße - Via Giuseppe Verdi, Musiker-Viertel - Rione Musicisti, Meran - Merano, Burggrafenamt - Burgraviato, Bolzano - Bozen, Trentino-Alto Adige/Südtirol, 39012, Italia, (46.6766093, 11.159071, 0.0)),
 Location(26, Via Giuseppe Verdi - Giuseppe-Verdi-Straße, Pineta - Steinmannwald, Laives - Leifers, Überetsch-Unterland - Oltradige-Bassa Atesina, Bolzano - Bozen, Trentino-Alto Adige/Südtirol, 39055, Italia, (46.439843, 11.3481093, 0.0))]
more_values[1].raw
{'place_id': 7856565,
 'licence': 'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright',
 'osm_type': 'node',
 'osm_id': 941909198,
 'boundingbox': ['46.066594', '46.066694', '11.1196048', '11.1197048'],
 'lat': '46.066644',
 'lon': '11.1196548',
 'display_name': "26, Via Giuseppe Verdi, Bolghera, Centro storico Trento, Trento, Territorio Val d'Adige, Provincia di Trento, Trentino-Alto Adige/Südtirol, 38122, Italia",
 'class': 'place',
 'type': 'house',
 'importance': 0.6300999999999999}
more_values[1].point
Point(46.066644, 11.1196548, 0.0)

Summary

  • geocoding is, first of all, an NLP problem
  • geocoding services try to normalize the query by identifying the object you are looking for
  • the more information of a geographic hierarchical order the better the geocoder results
  • it is difficult to have an always updated address database
  • many geocoders, where they do not find the value, return a value inferred from the interpopulation
  • accuracy depends on what you are looking for
  • a geocoder always tries to give an answer
     an excellent geocoder also returns the value of the precision estimate

OGC Services


Catalog Service for the Web


https://siat.provincia.tn.it/geonetwork/srv/eng/catalog.search

Setup

https://geopython.github.io/OWSLib/

try:
    import owslib
except ModuleNotFoundError as e:
    !pip install owslib==0.27.2
    import owslib
    
if owslib.__version__ != "0.27.2":
    !pip install -U owslib==0.27.2
    import owslib
from owslib.csw import CatalogueServiceWeb
csw = CatalogueServiceWeb("http://geodati.gov.it/RNDT/csw")
csw.service
'CSW'
[op.name for op in csw.operations]
['GetCapabilities',
 'DescribeRecord',
 'GetRecords',
 'GetRecordById',
 'Transaction',
 'Harvest']
from owslib.fes import PropertyIsLike, BBox

fields to query

   
field description
dc:title title of the dataset
dc:description description of the dataset
dc:subject subject of the dataset
csw:AnyText in all the fields

PropertyIsLike means that you can use the LIKE syntax of SQL

Eg. %rento => each word that ends with ‘rento’

trento_query = PropertyIsLike('csw:AnyText', 'Trento')
csw.getrecords2(constraints=[trento_query],maxrecords=100)
csw.results
{'matches': 112, 'returned': 100, 'nextrecord': 101}
for rec in csw.records:
  print(rec + " - " + csw.records[rec].title)
p_tn:SECAP_APRIE_Trento - SECAP APRIE Trento
agea:00129:20090724:090446 - Ortofotocarta Trento 2003
agea:00377:20090911:093144 - Ortofotocarta Trento 2008
agea:00128:20090724:085449 - Ortofotocarta Trento 1997
p_TN:377793f1-1094-4e81-810e-403897418b23 - Limite Provinciale della Provincia Autonoma di Trento
ispra_rm:Meta_Geo_SV000056_RN - Trento topografia 25k - View Service
p_TN:09889801-a323-43c9-b336-462c28ef549d - Catasto Sorgenti della Provincia Autonoma di Trento
c_l378:toponomastica - Stradario, civici e toponimi del Comune di Trento
c_l378:ortofoto2009 - Ortofoto 2009
p_TN:71403f02-0b4e-4f02-8475-1321c04e184c - PFM - vocazione alla produzione legnosa dei boschi - (VOCPRODUZIONE)
p_TN:f93c200f-1088-4121-94fc-4e94d1a88c8b - Carta Tecnica Provinciale - CTP 2013
p_TN:2131bcc4-1a2b-46ff-a546-8c22aab0371a - Carta Tecnica Provinciale - CTP 2015
p_TN:c5c29caa-850d-43b5-8a42-4db73cf593f0 - PFM - vocazione naturalistica - (VOCNAT)
p_TN:aec4a171-ad51-49d6-ad9b-42934a2c5d43 - Toponomastica dei Centri Abitati (scala 1:10000)
p_TN:bec36f9a-0566-44aa-bdb5-1c065a3a9a28 - Carta Topografica Generale - CTP 1998
p_TN:e5d7975d-074b-4f19-a7e7-17274c9e6aa3 - Carta Tecnica Provinciale - CTP 2017
p_TN:9d1b862d-bcbf-4389-9f32-c1cf275427c0 - Carta Tecnica Provinciale - CTP 2020
p_TN:1e93bc40-a91f-49ba-891d-de3a4627b86e - Limite Comprensoriale
p_TN:fbbc1e07-0b8e-46c9-b961-a02d8bebb217 - Ortofoto PAT 1973 in scala di grigi
p_tn:SECAP_APRIE_ATOM - SECAP APRIE ATOM Download Service
p_TN:aa677704-2c39-4edd-ba64-b69282bff778 - Carta Topografica Generale - CTP 00 singole sezioni livello edifici
p_TN:8ccc0bfb-ec39-4b5e-8af3-625c2c3b47cd - Rifugi e bivacchi
p_TN:6a7806d8-63fa-4445-b009-9412c99d8fd2 - Edifici P.A.T. 3D
p_TN:6d80fcd4-1dac-40c6-8fee-d7a831d35959 - Carta Topografica Generale - CTP 00
p_TN:8d14de52-8f71-4cf1-9820-ccdc03d405a3 - MTB rete dei percorsi in mountainbike
p_TN:8131f518-c808-4a30-912f-e34892aa0f1a - Carta Topografica Generale - CTP 00 singole sezioni livello altimetria
p_TN:9905ac49-d9cc-4317-b44b-a8450cc37b20 - Carta Topografica Generale - CTP 1998 singole sezioni - livello planimetria
p_TN:cfa55552-a520-48d3-824c-2941b3c4d98d - Carta Topografica Generale - CTP 1998 singole sezioni - livello altimetria
p_TN:c11e62c6-2e67-4614-827f-8de8621ac9ee - Carta Topografica Generale - CTP 1998 singole sezioni - livello topografia
p_TN:3f9788f5-78b6-4528-900d-d600208e149e - Strutture alberghiere
p_TN:baee5106-0185-4428-bd35-b041bebc8564 - Campeggi
p_TN:f3547bc8-bf1e-4731-85d2-2084d1f4ba07 - Tracciati alpini
p_TN:fd5fe757-7b97-4b34-ab9a-16c683e52c2e - MTB divieti
p_TN:06d1bcf9-6fa0-4e5e-af34-82366110720d - LiDAR DSM - Modello Digitale delle Superfici - PAT 2006 / 2009
p_TN:2989b73f-f243-4fac-b1d0-6464863a7d1d - LiDAR DTM - Modello Digitale del Terreno - PAT 2006 / 2009
p_TN:92ca98b4-f881-41eb-a229-c16dff316489 - Piano Urbanistico Provinciale - PUP formato vettoriale
p_TN:335f1205-9d6e-4e75-b4cf-35b9385e4fae - LiDAR Padergnone 2007
p_TN:280bb887-dff4-446c-965c-43ae077a107d - Quadro d'unione sezioni 1:10.000 taglio ED50
p_TN:bb3efd89-143f-4fcf-8251-4a4b601e6d21 - LiDAR Ravina 2007
p_TN:d28bdcfc-f271-4598-84ca-318ebcaf8dfb - Carta Topografica Generale - CTP 00 singole sezioni livello topografia
p_TN:8ad3e252-0e1d-42b3-8cb5-abe9dbccc281 - Carta Topografica Generale - CTP 00 singole sezioni livello planimetria
p_TN:40091f90-ed0c-43f7-97b5-2099544a2708 - LiDAR Paneveggio 2007
p_TN:c0518563-b53e-44da-870e-8719ef4a5215 - Piano Urbanistico Provinciale - PUP formato raster
p_TN:ef82ba6c-e9b3-451d-9835-0f74b9f66650 - LiDAR Val di Sella 2007
p_TN:5a9c4323-59b0-4ef4-a3a5-6bd5b8cc2b0b - Settori catasto tracciati alpini
p_TN:628a228e-d13c-41c8-803a-272883e3931e - Quadro d'unione sezioni 1:10.000 della 1° edizione della Carta Topografica Generale taglio ED50
p_TN:5c773de5-e3a7-4024-ab4c-ea313d3ba901 - LiDAR - Soleggiamenti DTM - PAT 2006 / 2009
p_TN:1f08d6de-85b0-41f3-b2b7-b3d04a5771d7 - LiDAR - Soleggiamenti DSM - PAT 2006 / 2009
p_TN:abea13d9-c73a-46f1-b997-9c41267d06c5 - Aree di sintesi geologica
p_TN:013ef530-ee77-49d2-8f95-035b27ab1f0a - Ortofoto Val di Sella 2007 RGB
p_TN:30969cea-e488-48a0-a8c9-fc30f10221f4 - Penalità Frane
p_TN:0333828e-2a49-4f9e-88e6-fe2f2b8289e6 - Penalità LitoGeomorfologica
p_TN:7b64f844-0b34-4bcc-8415-4b1f79faf174 - Z402_L_PUP
p_TN:ea66f90c-426f-497c-9044-f870ce7a7f4b - Cave dismesse
p_TN:33db32ef-7ce4-43e3-bbf5-11440f4c9757 - Iperspettrale Padergnone 2007
p_TN:fb95e841-df80-41b5-af08-8a31896533cc - Iperspettrale Paneveggio 2007
p_TN:5c623094-9b75-4f97-9356-8ef0b6bc125f - Penalità Crolli
p_TN:152ad4d1-3263-4ae9-bce9-1265f019a784 - LiDAR DTM - Modello Digitale del Terreno - Val di Sella 2007
p_TN:4e838148-4631-4c4b-9758-798e450ca407 - LiDAR DTM - Modello Digitale del Terreno - Paneveggio 2007
p_TN:225321fc-0e6b-45d3-8dd0-58fd602bdf64 - LiDAR dato grezzo - Paneveggio 2007
p_TN:44cd8a88-ba6e-4299-8075-df9996401006 - Ortofoto Padergnone 2007 RGB
p_TN:e506ab2b-5eb6-452a-8ebb-102ffc4454b1 - Ortofoto Paneveggio 2007 RGB
p_TN:f0252045-0c4b-4ce9-8c31-5db78c3a63bd - LiDAR PAT 2006 / 2009
p_TN:054e1af3-2dd8-4496-8b83-261cccc2674c - Ortofoto Ravina 2007 RGB
p_TN:3ddfc8e1-1362-4915-ab77-8c31cee7ac82 - LiDAR DSM - Modello Digitale delle Superfici - Paneveggio 2007
p_TN:36069574-aef9-4855-ae3e-b8445cbd1319 - LiDAR dato grezzo - Ravina 2007
p_TN:b7db2c50-b463-4d30-a40f-b52ba92887ff - LiDAR DSM - Modello Digitale delle Superfici - Padergnone 2007
p_TN:3203e1b3-5d73-47d8-b04e-9ab27c8538cf - LiDAR dato grezzo - PAT 2006 / 2009
p_TN:62bc4940-4713-4677-814a-5d2077180e6d - Iperspettrale Ravina 2007
p_TN:0f944cb5-770f-44ff-aad2-36a47f24bc94 - LiDAR DSM - Modello Digitale delle Superfici - Ravina 2007
p_TN:b0cdad84-3c7d-4422-8f7a-7cb762af3da1 - LiDAR DSM - Modello Digitale delle Superfici - Val di Sella 2007
p_TN:0837bfca-dff2-4770-801f-235607f42b72 - LiDAR DTM - Modello Digitale del Terreno - Padergnone 2007
p_TN:b388eaa7-4e27-4970-9b28-b541fe480bf0 - LiDAR dato grezzo - Val di Sella 2007
p_TN:85fb88cb-80c8-47f3-9e50-4142655cf461 - LiDAR dato grezzo - Padergnone 2007
p_TN:a16182cb-16cf-4c8b-b74f-0493a8c7f445 - Iperspettrale Val di Sella  2007
p_TN:25aa8b8f-271d-406c-8f7e-ba224ec844fe - LiDAR DTM - Modello Digitale del Terreno - Ravina 2007
p_TN:f2e88f1b-05d9-4942-93ee-857a0a9e1f0b - Ortofoto PAT 2015 RGB
p_TN:441525c1-a100-405c-b6fc-1f0c319bacbb - Grotte
p_TN:04b42008-321a-4dfb-afef-7cf7be1d511f - Eventi sismici
p_TN:2df40026-5930-44b2-b6ab-6f88c7bd8420 - Stazioni sismiche
p_TN:a9108393-45b3-4b9d-a5b9-24158aa7dca4 - Penalità Deformazioni Gravitative Profonde di Versante (DGPV)
p_TN:95eb2e19-4325-4048-ae45-95278c972268 - Penalità Ghiacciai e Piccola Età Glaciale (PEG)
p_TN:2eacecb2-d78c-460e-9a4c-47b80a9f105d - Cartografia catastale numerica
p_TN:c3346748-65a0-41ef-bf93-22b6d592bb2a - Penalità Permafrost e Rock Glacier
p_TN:507a6592-918d-4299-8ee9-ca2c521bc6ec - Penalità incendi boschivi
p_TN:d24bfa28-3451-41c7-a1ac-e0a2fe4af6d9 - Rilevato arginale
p_TN:366667ac-f7d2-42cf-a1a5-7450b3e44d6a - Piazza di deposito
p_TN:ff03f2d6-6c7c-4cf6-ab11-42b2c8963cc7 - Rivestimento in alveo
p_TN:3dba066a-297b-401c-962a-e957371010a1 - Opera di consolidamento
p_TN:37139ae6-4118-4b65-9471-9d57a1f84762 - Repellente
p_TN:27c14db4-5fde-478f-a14b-a92ac3ff7602 - Vallo tomo
p_TN:13919c0d-1415-42f8-8842-b5b5e49f5e63 - Opera spondale
p_TN:0f0d2a2b-65f6-4f34-b5e0-aef7319abdbf - Cunettone
p_TN:71f65e11-5763-43c9-892c-a3d954be4fcb - Intervento di ingegneria naturalistica
p_TN:a72a2c44-0094-43a7-8bc6-8f9c20e77c0f - Rafforzamento arginale
p_TN:2dc4efe4-1441-4968-9d8a-e03a0742fe35 - Briglia di consolidamento
p_TN:9578396f-b240-4853-809f-a0044bca61fa - Carta di Sintesi della Pericolosità
p_TN:58604ed2-ac1d-4f78-a00c-514fd3562c51 - Limite Comunità di valle
adbpo:PDGPO2015GWCI:20151217 - Distretto Po - Direttiva Acque – Delimitazione dei corpi idrici sotterranei 2015
adbpo:DistrettoDR2018:20181017 - Distretto Po - Delimitazione Regioni nel Distretto 2018
p_TN:09889801-a323-43c9-b336-462c28ef549d - Catasto Sorgenti della Provincia Autonoma di Trento 

water source cadastre of the Autonomous Province of Trento

s="p_TN:8d14de52-8f71-4cf1-9820-ccdc03d405a3" #mountain bike paths
record = csw.records[s]
record.title
'MTB rete dei percorsi in mountainbike'
record.abstract
"Il dataset contiene l'individuazione della rete provinciale dei percorsi in mountainbike  presente sul territorio della Provincia di Trento."
for reference in record.references:
  print(reference['scheme'])
  print(reference['url'])
urn:x-esri:specification:ServiceType:ArcIMS:Metadata:Server
https://idt.provincia.tn.it/idt/vector/p_TN_8d14de52-8f71-4cf1-9820-ccdc03d405a3.zip
urn:x-esri:specification:ServiceType:ArcIMS:Metadata:Document
https://geodati.gov.it/geoportalRNDTPA/csw?getxml=%7B2F3325FA-B94E-4B3F-8CD7-A2B46C7BC9AF%7D
mtb_paths = gpd.read_file('https://idt.provincia.tn.it/idt/vector/p_TN_8d14de52-8f71-4cf1-9820-ccdc03d405a3.zip')
mtb_paths.head(5)
classid numero tipo denominazi id_ambito atto loc_ini loc_fine lunghezza dataagg objectid datafine geometry
0 TUR002_63 865 A Dosso di Segonzano 3 det. STS n. 45 dd. 15/02/2017 Bedollo Bedollo 24456.084688 2021-01-01 00:00:00 28255 None LINESTRING (675880.012 5118897.999, 675886.315...
1 TUR002_407 1802 A Monte Casale 11 det. STS n. 74 dd. 26/02/2021 Comano Comano 22225.408654 2021-01-01 00:00:00 28256 None LINESTRING (646302.434 5099628.802, 646312.012...
2 TUR002_2 822 A Bertoldi - Lanzino - Albertini 8 det. STS n. 378 dd. 01/12/2016 Lavarone Bertoldi Lavarone Bertoldi 3742.833597 2021-01-01 00:00:00 28257 None LINESTRING (675380.115 5091046.983, 675377.258...
3 TUR002_4 907 A Tour 208 5 det. STS n. 379 dd. 01/12/2016 Pozza di Fassa Gardeccia 18808.595074 2021-01-01 00:00:00 28258 None LINESTRING (707340.204 5148380.666, 707318.778...
4 TUR002_5 908 None Tour 210 5 det. STS n. 379 dd. 01/12/2016 Canazei Val Duron 12973.044585 2021-01-01 00:00:00 28259 None LINESTRING (712653.191 5150516.406, 712627.693...
mtb_paths.crs
<Projected CRS: EPSG:25832>
Name: ETRS89 / UTM zone 32N
Axis Info [cartesian]:
- E[east]: Easting (metre)
- N[north]: Northing (metre)
Area of Use:
- name: Europe between 6°E and 12°E: Austria; Belgium; Denmark - onshore and offshore; Germany - onshore and offshore; Norway including - onshore and offshore; Spain - offshore.
- bounds: (6.0, 38.76, 12.0, 84.33)
Coordinate Operation:
- name: UTM zone 32N
- method: Transverse Mercator
Datum: European Terrestrial Reference System 1989 ensemble
- Ellipsoid: GRS 1980
- Prime Meridian: Greenwich
mtb_paths.plot()
plt.show()

png

we can search by bounding box

https://boundingbox.klokantech.com/

csw = CatalogueServiceWeb("http://www.pcn.minambiente.it/geoportal/csw")
csw = CatalogueServiceWeb("http://geodati.gov.it/RNDT/csw")
bbox_query = BBox([11.188617,45.965651,11.376758,46.073412])
csw.getrecords2(constraints=[bbox_query],maxrecords=100)
csw.results
{'matches': 2013, 'returned': 100, 'nextrecord': 101}
for rec in csw.records:
  print(rec + " - " + csw.records[rec].title)
p_TN:bb9e5a5c-36bd-46a0-b7b5-67613b178777 - IFF2007 nel BACINO DEL FIUME BRENTA
c_l378:ortofoto2009 - Ortofoto 2009
c_l378:ct2000 - Carta Tecnica 1:2.000 alta risoluzione
c_l378:4e54a476-38a7-4c75-a692-c5c270b3c091-carta_semplificata - Carta Semplificata
c_l378:prg_vigente - PRG vigente
c_l378:toponomastica - Stradario, civici e toponimi del Comune di Trento
p_TN:c743e9d8-7055-417e-a47b-269460a83d74 - Zone Speciali di Conservazione
p_TN:0e38a95f-807f-433a-be97-8280d81d6e31 - LiDAR DSM Modello Digitale di Superficie -  Campolongo 2011
p_TN:bae2cf41-7d41-4b36-b564-6fd2a6240175 - LiDAR Soleggiamenti DSM  -  Campolongo 2011
p_TN:d59f3fde-0edc-4718-aab5-e00612da95b6 - LiDAR  DTM Modello Digitale del Terreno - Campolongo 2011
p_TN:bf2f0861-d710-4993-b4ab-465d60bda2a2 - LiDAR Campolongo 2011
p_TN:3ac3a9ca-764d-4b31-9939-b6330467a475 - LiDAR Soleggiamenti  DTM - Campolongo 2011
p_TN:013ef530-ee77-49d2-8f95-035b27ab1f0a - Ortofoto Val di Sella 2007 RGB
p_TN:33db32ef-7ce4-43e3-bbf5-11440f4c9757 - Iperspettrale Padergnone 2007
p_TN:fb95e841-df80-41b5-af08-8a31896533cc - Iperspettrale Paneveggio 2007
p_TN:335f1205-9d6e-4e75-b4cf-35b9385e4fae - LiDAR Padergnone 2007
p_TN:bb3efd89-143f-4fcf-8251-4a4b601e6d21 - LiDAR Ravina 2007
p_TN:152ad4d1-3263-4ae9-bce9-1265f019a784 - LiDAR DTM - Modello Digitale del Terreno - Val di Sella 2007
p_TN:4e838148-4631-4c4b-9758-798e450ca407 - LiDAR DTM - Modello Digitale del Terreno - Paneveggio 2007
p_TN:225321fc-0e6b-45d3-8dd0-58fd602bdf64 - LiDAR dato grezzo - Paneveggio 2007
p_TN:44cd8a88-ba6e-4299-8075-df9996401006 - Ortofoto Padergnone 2007 RGB
p_TN:e506ab2b-5eb6-452a-8ebb-102ffc4454b1 - Ortofoto Paneveggio 2007 RGB
p_TN:054e1af3-2dd8-4496-8b83-261cccc2674c - Ortofoto Ravina 2007 RGB
p_TN:3ddfc8e1-1362-4915-ab77-8c31cee7ac82 - LiDAR DSM - Modello Digitale delle Superfici - Paneveggio 2007
p_TN:36069574-aef9-4855-ae3e-b8445cbd1319 - LiDAR dato grezzo - Ravina 2007
p_TN:b7db2c50-b463-4d30-a40f-b52ba92887ff - LiDAR DSM - Modello Digitale delle Superfici - Padergnone 2007
p_TN:40091f90-ed0c-43f7-97b5-2099544a2708 - LiDAR Paneveggio 2007
p_TN:62bc4940-4713-4677-814a-5d2077180e6d - Iperspettrale Ravina 2007
p_TN:0f944cb5-770f-44ff-aad2-36a47f24bc94 - LiDAR DSM - Modello Digitale delle Superfici - Ravina 2007
p_TN:b0cdad84-3c7d-4422-8f7a-7cb762af3da1 - LiDAR DSM - Modello Digitale delle Superfici - Val di Sella 2007
p_TN:0837bfca-dff2-4770-801f-235607f42b72 - LiDAR DTM - Modello Digitale del Terreno - Padergnone 2007
p_TN:ef82ba6c-e9b3-451d-9835-0f74b9f66650 - LiDAR Val di Sella 2007
p_TN:b388eaa7-4e27-4970-9b28-b541fe480bf0 - LiDAR dato grezzo - Val di Sella 2007
p_TN:85fb88cb-80c8-47f3-9e50-4142655cf461 - LiDAR dato grezzo - Padergnone 2007
p_TN:a16182cb-16cf-4c8b-b74f-0493a8c7f445 - Iperspettrale Val di Sella  2007
p_TN:25aa8b8f-271d-406c-8f7e-ba224ec844fe - LiDAR DTM - Modello Digitale del Terreno - Ravina 2007
p_TN:9a752343-1cf3-41ae-8389-f21fccb8d91f - Siti non oggetto di procedimento di bonifica
p_TN:98cf2d99-1064-429b-823a-5cc7bd057c0e - Corpi idrici lacuali (Aggiornamento dicembre 2017 PTA triennio 2014-2016)
p_TN:122a50a3-ea4b-43fa-a4eb-58ca80a5d9b7 - Corpi idrici fluviali (Aggiornamento dicembre 2017 PTA triennio 2014-2016)
p_TN:2540c4d3-f331-4f8c-9b88-17b64e0222bf - CRZ - Centri di Raccolta Zonale
p_TN:de05e7fe-7a12-4768-bc8a-23064f780cac - Siti oggetto di procedimento di bonifica
p_TN:03c272a6-bc5b-43d7-bef7-6c12723de8af - CRM - Centri di Recupero Materiali
p_TN:9019c7fc-b723-42b7-862e-aa2c476a7acf - Valanghe - fotointerpretazione
agea:00129:20090724:090446 - Ortofotocarta Trento 2003
agea:00377:20090911:093144 - Ortofotocarta Trento 2008
agea:00128:20090724:085449 - Ortofotocarta Trento 1997
p_TN:ff4bf7da-e6f1-4f96-a082-7bad864100f2 - Uso del Suolo Reale Urbanistica (ed 08/2003)
p_TN:fbbc1e07-0b8e-46c9-b961-a02d8bebb217 - Ortofoto PAT 1973 in scala di grigi
p_TN:c63df140-ae50-4d52-a8aa-2d614e0abbef - Ricchezza di specie per le pareti rocciose sotto gli 800 m
p_TN:203ed47b-b521-402b-a136-427f34a37a22 - Carta del paesaggio - PUP
p_TN:06d1bcf9-6fa0-4e5e-af34-82366110720d - LiDAR DSM - Modello Digitale delle Superfici - PAT 2006 / 2009
p_TN:0678166b-b744-41b5-9e4c-ef5ac087b364 - Carta delle tutele paesistiche - PUP
p_TN:c11e62c6-2e67-4614-827f-8de8621ac9ee - Carta Topografica Generale - CTP 1998 singole sezioni - livello topografia
p_TN:aa677704-2c39-4edd-ba64-b69282bff778 - Carta Topografica Generale - CTP 00 singole sezioni livello edifici
p_TN:4267f42e-8ad5-49b0-b205-828c86836ae1 - Ricchezza di specie per i boschi perifluviali
p_TN:38b74796-3060-4441-b143-e120a9504fc0 - Ricchezza di specie per le colture arboree
p_TN:5c773de5-e3a7-4024-ab4c-ea313d3ba901 - LiDAR - Soleggiamenti DTM - PAT 2006 / 2009
p_TN:f93c200f-1088-4121-94fc-4e94d1a88c8b - Carta Tecnica Provinciale - CTP 2013
p_TN:f942572a-7ab9-46ba-9722-0e787ac0ab18 - Ricchezza di specie per le zone di alta quota
p_TN:29db8577-29dd-4b85-b824-fddffe4d9383 - Sistema insediativo e Reti infrastrutturali - PUP
p_TN:d28bdcfc-f271-4598-84ca-318ebcaf8dfb - Carta Topografica Generale - CTP 00 singole sezioni livello topografia
p_TN:6d80fcd4-1dac-40c6-8fee-d7a831d35959 - Carta Topografica Generale - CTP 00
p_TN:0f0e6057-d7e6-4cc0-9772-2be66e9449ea - Sistema delle Aree Agricole - PUP
p_TN:8131f518-c808-4a30-912f-e34892aa0f1a - Carta Topografica Generale - CTP 00 singole sezioni livello altimetria
p_TN:f0252045-0c4b-4ce9-8c31-5db78c3a63bd - LiDAR PAT 2006 / 2009
p_TN:8ad3e252-0e1d-42b3-8cb5-abe9dbccc281 - Carta Topografica Generale - CTP 00 singole sezioni livello planimetria
p_TN:76a8815e-9a69-45e7-88b3-deae583c3a2c - Ricchezza di specie per le zone contigue ad elevata biodiversità
p_TN:9905ac49-d9cc-4317-b44b-a8450cc37b20 - Carta Topografica Generale - CTP 1998 singole sezioni - livello planimetria
p_TN:29926ab5-3271-4d06-9b4c-255b10b59ca1 - Ricchezza di specie per gli ambienti aperti
p_TN:3203e1b3-5d73-47d8-b04e-9ab27c8538cf - LiDAR dato grezzo - PAT 2006 / 2009
p_TN:c0518563-b53e-44da-870e-8719ef4a5215 - Piano Urbanistico Provinciale - PUP formato raster
p_TN:60706e11-b9e9-49d5-9c05-e068f009c662 - Ricchezza di specie per i boschi di conifere
p_TN:d05f5fd3-6bef-440c-9712-7f6d36451bcf - Uso del Suolo Pianificato PRGUSO
p_TN:2131bcc4-1a2b-46ff-a546-8c22aab0371a - Carta Tecnica Provinciale - CTP 2015
p_TN:e7aa12be-f621-410b-8df4-869c394b8038 - Reti ecologiche ambientali - PUP
p_TN:1f08d6de-85b0-41f3-b2b7-b3d04a5771d7 - LiDAR - Soleggiamenti DSM - PAT 2006 / 2009
p_TN:cfa55552-a520-48d3-824c-2941b3c4d98d - Carta Topografica Generale - CTP 1998 singole sezioni - livello altimetria
p_TN:2989b73f-f243-4fac-b1d0-6464863a7d1d - LiDAR DTM - Modello Digitale del Terreno - PAT 2006 / 2009
p_TN:bec36f9a-0566-44aa-bdb5-1c065a3a9a28 - Carta Topografica Generale - CTP 1998
p_TN:5c69a8ed-fdb0-4bbb-b7c8-d3f76ed50212 - Ricchezza di specie per i boschi di latifoglie
p_TN:a203d267-b325-46a2-a088-f5f6f407b4fa - Ricchezza relativa della biodiversità faunistica
p_TN:7b638ec8-f96a-497c-8369-966ca453a346 - Uso del Suolo Pianificato
p_TN:3feec4de-18fa-40a8-9e95-8e8e4150c684 - Ricchezza di specie per le aree umide di fondovalle
p_TN:55f781c3-52d3-4d83-88a4-3bcbca30271a - Inquadramento strutturale - PUP
p_TN:629ccdc8-e046-411c-95b0-326cb0bdc656 - Ortofoto PAT 1994 in scala di grigi
p_TN:e5d7975d-074b-4f19-a7e7-17274c9e6aa3 - Carta Tecnica Provinciale - CTP 2017
p_TN:9d1b862d-bcbf-4389-9f32-c1cf275427c0 - Carta Tecnica Provinciale - CTP 2020
p_TN:a3376447-7886-4975-ae97-01f3fdf405a5 - Ricchezza di specie per gli ambienti perifluviali
p_TN:f2e88f1b-05d9-4942-93ee-857a0a9e1f0b - Ortofoto PAT 2015 RGB
p_TN:805326dd-d8f0-4fce-8ae8-648c5f3e6b3c - Carta penalità valanghe
p_TN:cba26768-ace4-4432-81e6-b50d4ebacd1e - Nuove aree con potenziale pericolo di valanghe
p_TN:0cba9a72-3410-4ef1-84b5-a56a6676b9fd - Campagne fotografiche
p_TN:6e2bc7c3-5c14-4060-b6d1-63a1701c9b67 - Valanghe - inchiesta sul terreno
p_TN:45b5adff-ff03-4750-a16c-ea6d5e510df0 - Carta pericolosità valanghe
p_TN:42f109d6-171c-432a-a287-b887e7ccc0d3 - Valanghe - bacini valanghivi
p_TN:c3c63da0-db6c-420e-8d20-7519f6f71aac - Distretti forestali
p_TN:ba808331-43e5-42d9-a28d-2215da1ab392 - gestione del cinghiale
p_TN:b97e9019-2b1b-4884-83ca-a8c7e9632f75 - riserve di caccia
p_TN:8241b215-4a48-4ca3-97ba-e9eb2b3af90f - Stazioni forestali
p_TN:84785271-71e9-4d3a-9d46-e9e88c06945c - acque ferme - Carta Ittica
s="p_TN:42f109d6-171c-432a-a287-b887e7ccc0d3"
record = csw.records[s]
record.title
'Valanghe - bacini valanghivi'
record.abstract
'Suddivisione del territorio provinciale in zone omogenee dal punto di vista del potenziale pericolo di valanghe'
for reference in record.references:
  print(reference['scheme'])
  print(reference['url'])
urn:x-esri:specification:ServiceType:ArcIMS:Metadata:Server
http://www.territorio.provincia.tn.it/
urn:x-esri:specification:ServiceType:ArcIMS:Metadata:Server
https://idt.provincia.tn.it/idt/vector/p_TN_42f109d6-171c-432a-a287-b887e7ccc0d3.zip
urn:x-esri:specification:ServiceType:ArcIMS:Metadata:Document
https://geodati.gov.it/geoportalRNDTPA/csw?getxml=%7BF428E20F-B20E-4635-ADC6-0562EEB217B7%7D

WFS

from owslib.wfs import WebFeatureService
url="http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Bacini_idrografici.map&Service=WFS"

wfs = WebFeatureService(url=url,version="1.1.0") #version can be: 1.0.0, 1.1.0, 2.0.0
wfs.contents
{'ID.ACQUEFISICHE.BACINIIDROGRAFICI.PRINCIPALI': <owslib.feature.wfs110.ContentMetadata at 0x7f5f28d3a5d0>,
 'ID.ACQUEFISICHE.BACINIIDROGRAFICI.SECONDARI': <owslib.feature.wfs110.ContentMetadata at 0x7f5f28d3a290>}
wfs.identification.title
'Bacini idrografici principali e secondari'
[operation.name for operation in wfs.operations]
['GetCapabilities', 'DescribeFeatureType', 'GetFeature']
list(wfs.contents)
['ID.ACQUEFISICHE.BACINIIDROGRAFICI.PRINCIPALI',
 'ID.ACQUEFISICHE.BACINIIDROGRAFICI.SECONDARI']
capabilities = wfs.getcapabilities().read()
capabilities
<WFS_Capabilities xmlns="http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" xmlns:ows="http://www.opengis.net/ows" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1.0" xmlns:inspire_common="http://inspire.ec.europa.eu/schemas/common/1.0" xmlns:inspire_dls="http://inspire.ec.europa.eu/schemas/inspire_dls/1.0" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd http://inspire.ec.europa.eu/schemas/inspire_dls/1.0 http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd">
<ows:ServiceIdentification>
<ows:Title>Bacini idrografici principali e secondari</ows:Title>
<ows:Abstract>Sulla base dello strato informativo dei bacini idrografici a scala nazionale 1:250.000, congruente con il reticolo idrografico, sono stati individuati, secondo quanto previsto dal D.Lgs.152/99 e successivamente dalla Direttiva Quadro sulle Acque 2000/60/CE, i bacini e i sottobacini idrografici dei corsi d\'acqua scolanti a mare con superficie maggiore o uguale a 200 Kmq. Risoluzione 1:10000</ows:Abstract>
<ows:ServiceType codeSpace="OGC">OGC WFS</ows:ServiceType>
<ows:ServiceTypeVersion>1.1.0</ows:ServiceTypeVersion>
<ows:Fees>Nessuna condizione applicata</ows:Fees>
<ows:AccessConstraints>Nessuno</ows:AccessConstraints>\n  </ows:ServiceIdentification>\n  <ows:ServiceProvider>
<ows:ProviderName>Geoportale Nazionale - Ministero dell\'Ambiente e della Tutela del Territorio e del Mare</ows:ProviderName>
<ows:ProviderSite xlink:href="http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Bacini_idrografici.map" xlink:type="simple" />
<ows:ServiceContact>
<ows:IndividualName>Geoportale Nazionale - Ministero dell\'Ambiente e della Tutela del Territorio e del Mare</ows:IndividualName>
<ows:PositionName>Distributore</ows:PositionName>
<ows:ContactInfo>
  <ows:Phone>
    <ows:Voice>+390657223140</ows:Voice>
    <ows:Facsimile />
  </ows:Phone>
  <ows:Address>
    <ows:DeliveryPoint>Via Cristoforo Colombo, 44</ows:DeliveryPoint>
    <ows:City>Roma</ows:City>
    <ows:AdministrativeArea>RM</ows:AdministrativeArea>
    <ows:PostalCode>00147</ows:PostalCode>
    <ows:Country>Italia</ows:Country>
    <ows:ElectronicMailAddress>pcn@minambiente.it</ows:ElectronicMailAddress>
  </ows:Address>
  <ows:OnlineResource xlink:href="http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Bacini_idrografici.map" xlink:type="simple" />
  <ows:HoursOfService />
  <ows:ContactInstructions />  
</ows:ContactInfo>
<ows:Role />

</ows:ServiceContact>\n  </ows:ServiceProvider>\n  <ows:OperationsMetadata>
<ows:Operation name="GetCapabilities">
<ows:DCP>
  <ows:HTTP>
    <ows:Get xlink:href="http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Bacini_idrografici.map&amp;" xlink:type="simple" />
    <ows:Post xlink:href="http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Bacini_idrografici.map&amp;" xlink:type="simple" />
  </ows:HTTP>
</ows:DCP>
<ows:Parameter name="service">
  <ows:Value>WFS</ows:Value>
</ows:Parameter>
<ows:Parameter name="AcceptVersions">
  <ows:Value>1.0.0</ows:Value>
  <ows:Value>1.1.0</ows:Value>
</ows:Parameter>
<ows:Parameter name="AcceptFormats">
  <ows:Value>text/xml</ows:Value>
</ows:Parameter>
</ows:Operation>
<ows:Operation name="DescribeFeatureType">
<ows:DCP>
  <ows:HTTP>
    <ows:Get xlink:href="http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Bacini_idrografici.map&amp;" xlink:type="simple" />
    <ows:Post xlink:href="http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Bacini_idrografici.map&amp;" xlink:type="simple" />
  </ows:HTTP>
</ows:DCP>
<ows:Parameter name="outputFormat">
  <ows:Value>XMLSCHEMA</ows:Value>
  <ows:Value>text/xml; subtype=gml/2.1.2</ows:Value>
  <ows:Value>text/xml; subtype=gml/3.1.1</ows:Value>
</ows:Parameter>
</ows:Operation>
<ows:Operation name="GetFeature">
<ows:DCP>
  <ows:HTTP>
    <ows:Get xlink:href="http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Bacini_idrografici.map&amp;" xlink:type="simple" />
    <ows:Post xlink:href="http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Bacini_idrografici.map&amp;" xlink:type="simple" />
  </ows:HTTP>
</ows:DCP>
<ows:Parameter name="resultType">
  <ows:Value>results</ows:Value>
  <ows:Value>hits</ows:Value>
</ows:Parameter>
<ows:Parameter name="outputFormat">
  <ows:Value>text/xml; subtype=gml/3.1.1</ows:Value>
</ows:Parameter>
</ows:Operation>\n  <ows:ExtendedCapabilities><inspire_dls:ExtendedCapabilities><inspire_common:ResourceLocator xsi:type="inspire_common:resourceLocatorType"><inspire_common:URL>http://wms.pcn.minambiente.it/cgi-bin/mapserv.exe?map=/ms_ogc/wfs/Bacini_idrografici.map</inspire_common:URL><inspire_common:MediaType>application/vnd.ogc.wfs_xml</inspire_common:MediaType></inspire_common:ResourceLocator><inspire_common:ResourceType>service</inspire_common:ResourceType><inspire_common:TemporalReference><inspire_common:DateOfCreation>2011-09-20</inspire_common:DateOfCreation></inspire_common:TemporalReference><inspire_common:TemporalReference><inspire_common:DateOfPublication>2011-09-20</inspire_common:DateOfPublication></inspire_common:TemporalReference><inspire_common:TemporalReference><inspire_common:DateOfLastRevision>2013-01-23</inspire_common:DateOfLastRevision></inspire_common:TemporalReference><inspire_common:Conformity><inspire_common:Specification><inspire_common:Title>REGOLAMENTO (UE) N. 1089/2010 DELLA COMMISSIONE del 23 novembre 2010 recante attuazione della direttiva 2007/2/CE del Parlamento europeo e del Consiglio per quanto riguarda l\'interoperabilit&#224; dei set di dati territoriali e dei servizi di dati territoriali</inspire_common:Title><inspire_common:DateOfPublication>2010-12-08</inspire_common:DateOfPublication><inspire_common:URI>OJ:L:2010:323:0011:0102:IT:PDF</inspire_common:URI><inspire_common:ResourceLocator><inspire_common:URL>http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2010:323:0011:0102:IT:PDF</inspire_common:URL><inspire_common:MediaType>application/pdf</inspire_common:MediaType></inspire_common:ResourceLocator></inspire_common:Specification><inspire_common:Degree>notConformant</inspire_common:Degree></inspire_common:Conformity><inspire_common:MetadataPointOfContact><inspire_common:OrganisationName>Ministero dell\'Ambiente e della Tutela del Territorio e del Mare - Geoportale Nazionale</inspire_common:OrganisationName><inspire_common:EmailAddress>pcn@minambiente.it</inspire_common:EmailAddress></inspire_common:MetadataPointOfContact><inspire_common:MetadataDate>2011-04-28</inspire_common:MetadataDate><inspire_common:SpatialDataServiceType>Download</inspire_common:SpatialDataServiceType><inspire_common:MandatoryKeyword><inspire_common:KeywordValue>infoFeatureAccessService</inspire_common:KeywordValue></inspire_common:MandatoryKeyword><inspire_common:Keyword xsi:type="inspire_common:inspireTheme_ita"><inspire_common:OriginatingControlledVocabulary><inspire_common:Title>GEMET - INSPIRE themes</inspire_common:Title><inspire_common:DateOfPublication>2008-06-01</inspire_common:DateOfPublication></inspire_common:OriginatingControlledVocabulary><inspire_common:KeywordValue>Idrografia</inspire_common:KeywordValue></inspire_common:Keyword><inspire_common:Keyword><inspire_common:KeywordValue>Acque interne</inspire_common:KeywordValue></inspire_common:Keyword><inspire_common:Keyword><inspire_common:OriginatingControlledVocabulary><inspire_common:Title>GEMET - Concepts, version 2.4</inspire_common:Title><inspire_common:DateOfPublication>2010-01-13</inspire_common:DateOfPublication></inspire_common:OriginatingControlledVocabulary><inspire_common:KeywordValue>Bacino idrografico</inspire_common:KeywordValue></inspire_common:Keyword><inspire_common:SupportedLanguages><inspire_common:DefaultLanguage><inspire_common:Language>ita</inspire_common:Language></inspire_common:DefaultLanguage><inspire_common:SupportedLanguage><inspire_common:Language>ita</inspire_common:Language></inspire_common:SupportedLanguage></inspire_common:SupportedLanguages><inspire_common:ResponseLanguage><inspire_common:Language>ita</inspire_common:Language></inspire_common:ResponseLanguage></inspire_dls:ExtendedCapabilities></ows:ExtendedCapabilities></ows:OperationsMetadata>\n  <FeatureTypeList>
<Operations>
<Operation>Query</Operation>
</Operations>
<FeatureType>
<Name>ID.ACQUEFISICHE.BACINIIDROGRAFICI.PRINCIPALI</Name>
<Title>Bacini idrografici principali</Title>
<Abstract>Sulla base dello strato informativo dei bacini idrografici a scala nazionale 1:250.000, congruente con il reticolo idrografico, sono stati individuati, secondo quanto previsto dal D.Lgs.152/99 e successivamente dalla Direttiva Quadro sulle Acque 2000/60/CE, i bacini idrografici dei corsi d\'acqua scolanti a mare con superficie maggiore o uguale a 200 Kmq. La tabella associata contiene le seguenti informazioni: dgc_codice, informazione non disponibile; id_bacino, identificativo del bacino idrografico; nome_bac, nome del bacino idrografico; nome_corso, nome del corso d\'acqua di riferimento; foglio_igm, foglio IGM di riferimento; ordine, ordine gerarchico; codifica, informazione non disponibile; autorita, autorit&#224; competente del bacino.</Abstract>
<ows:Keywords>
  <ows:Keyword>Idrografia</ows:Keyword>
  <ows:Keyword> Bacino idrografico</ows:Keyword>
</ows:Keywords>
<DefaultSRS>urn:ogc:def:crs:EPSG::4326</DefaultSRS>
<OutputFormats>
  <Format>text/xml; subtype=gml/3.1.1</Format>
</OutputFormats>
<ows:WGS84BoundingBox dimensions="2">
  <ows:LowerCorner>6 34.5</ows:LowerCorner>
  <ows:UpperCorner>19 49</ows:UpperCorner>
</ows:WGS84BoundingBox>
<MetadataURL format="ISO19115:2003" type="text/xml">http://www.pcn.minambiente.it/geoportal/csw?SERVICE=CSW&amp;VERSION=2.0.2&amp;REQUEST=GetRecordById&amp;outputSchema=http%3A%2F%2Fwww.isotc211.org%2F2005%2Fgmd&amp;elementSetName=full&amp;ID=m_amte:8HCH2C:f50c35ae-b0cf-4064-81f7-3556d0973157</MetadataURL>
</FeatureType>
<FeatureType>
<Name>ID.ACQUEFISICHE.BACINIIDROGRAFICI.SECONDARI</Name>
<Title>Bacini idrografici secondari</Title>
<Abstract>Sulla base dello strato informativo dei bacini idrografici a scala nazionale 1:250.000, congruente con il reticolo idrografico, sono stati individuati, secondo quanto previsto dal D.Lgs.152/99 e successivamente dalla Direttiva Quadro sulle Acque 2000/60/CE, i sottobacini relativi ai corsi d\'acqua affluenti del I ordine con superficie maggiore o uguale a 200 Kmq. La tabella associata contiene le seguenti informazioni: dgc_codice, informazione non disponibile; id_bacino, identificativo del bacino idrografico; nome_bac, nome del bacino idrografico; nome_corso, nome del corso d\'acqua di riferimento; foglio_igm, foglio IGM di riferimento; ordine, ordine gerarchico; codifica, informazione non disponibile; autorita, autorit&#224; competente del bacino.</Abstract>
<ows:Keywords>
  <ows:Keyword>Idrografia</ows:Keyword>
  <ows:Keyword> Bacino idrografico</ows:Keyword>
</ows:Keywords>
<DefaultSRS>urn:ogc:def:crs:EPSG::4326</DefaultSRS>
<OutputFormats>
  <Format>text/xml; subtype=gml/3.1.1</Format>
</OutputFormats>
<ows:WGS84BoundingBox dimensions="2">
  <ows:LowerCorner>6 34.5</ows:LowerCorner>
  <ows:UpperCorner>19 49</ows:UpperCorner>
</ows:WGS84BoundingBox>
<MetadataURL format="ISO19115:2003" type="text/xml">http://www.pcn.minambiente.it/geoportal/csw?SERVICE=CSW&amp;VERSION=2.0.2&amp;REQUEST=GetRecordById&amp;outputSchema=http%3A%2F%2Fwww.isotc211.org%2F2005%2Fgmd&amp;elementSetName=full&amp;ID=m_amte:8HCH2C:81df4cb9-67e3-4fd0-abe5-91d1ce3e6e9d</MetadataURL>
</FeatureType>\n  </FeatureTypeList>\n  <ogc:Filter_Capabilities>
<ogc:Spatial_Capabilities>
<ogc:GeometryOperands>
  <ogc:GeometryOperand>gml:Point</ogc:GeometryOperand>
  <ogc:GeometryOperand>gml:LineString</ogc:GeometryOperand>
  <ogc:GeometryOperand>gml:Polygon</ogc:GeometryOperand>
  <ogc:GeometryOperand>gml:Envelope</ogc:GeometryOperand>
</ogc:GeometryOperands>
<ogc:SpatialOperators>
  <ogc:SpatialOperator name="Equals" />
  <ogc:SpatialOperator name="Disjoint" />
  <ogc:SpatialOperator name="Touches" />
  <ogc:SpatialOperator name="Within" />
  <ogc:SpatialOperator name="Overlaps" />
  <ogc:SpatialOperator name="Crosses" />
  <ogc:SpatialOperator name="Intersects" />
  <ogc:SpatialOperator name="Contains" />
  <ogc:SpatialOperator name="DWithin" />
  <ogc:SpatialOperator name="Beyond" />
  <ogc:SpatialOperator name="BBOX" />
</ogc:SpatialOperators>
</ogc:Spatial_Capabilities>
<ogc:Scalar_Capabilities>
<ogc:LogicalOperators />
<ogc:ComparisonOperators>
  <ogc:ComparisonOperator>LessThan</ogc:ComparisonOperator>
  <ogc:ComparisonOperator>GreaterThan</ogc:ComparisonOperator>
  <ogc:ComparisonOperator>LessThanEqualTo</ogc:ComparisonOperator>
  <ogc:ComparisonOperator>GreaterThanEqualTo</ogc:ComparisonOperator>
  <ogc:ComparisonOperator>EqualTo</ogc:ComparisonOperator>
  <ogc:ComparisonOperator>NotEqualTo</ogc:ComparisonOperator>
  <ogc:ComparisonOperator>Like</ogc:ComparisonOperator>
  <ogc:ComparisonOperator>Between</ogc:ComparisonOperator>
</ogc:ComparisonOperators>
</ogc:Scalar_Capabilities>
<ogc:Id_Capabilities>
<ogc:EID />
<ogc:FID />
</ogc:Id_Capabilities>\n  </ogc:Filter_Capabilities>\n</WFS_Capabilities>
for layer, meta in wfs.items():
    print(meta.__dict__)
    print(meta.title)
    print(meta.abstract)
    print(meta.crsOptions)
    print(meta.outputFormats)
    
{'auth': <Authentication shared=False username=None password=None cert=None verify=True auth_delegate=None>, 'headers': None, 'id': 'ID.ACQUEFISICHE.BACINIIDROGRAFICI.PRINCIPALI', 'title': 'Bacini idrografici principali', 'abstract': "Sulla base dello strato informativo dei bacini idrografici a scala nazionale 1:250.000, congruente con il reticolo idrografico, sono stati individuati, secondo quanto previsto dal D.Lgs.152/99 e successivamente dalla Direttiva Quadro sulle Acque 2000/60/CE, i bacini idrografici dei corsi d'acqua scolanti a mare con superficie maggiore o uguale a 200 Kmq. La tabella associata contiene le seguenti informazioni: dgc_codice, informazione non disponibile; id_bacino, identificativo del bacino idrografico; nome_bac, nome del bacino idrografico; nome_corso, nome del corso d'acqua di riferimento; foglio_igm, foglio IGM di riferimento; ordine, ordine gerarchico; codifica, informazione non disponibile; autorita, autorità competente del bacino.", 'keywords': ['Idrografia', ' Bacino idrografico'], 'boundingBoxWGS84': (6.0, 34.5, 19.0, 49.0), 'crsOptions': [urn:ogc:def:crs:EPSG::4326, urn:ogc:def:crs:EPSG::3035], 'verbOptions': [], 'outputFormats': ['text/xml; subtype=gml/3.1.1'], 'metadataUrls': [{'type': 'text/xml', 'format': 'ISO19115:2003', 'url': 'http://www.pcn.minambiente.it/geoportal/csw?SERVICE=CSW&VERSION=2.0.2&REQUEST=GetRecordById&outputSchema=http%3A%2F%2Fwww.isotc211.org%2F2005%2Fgmd&elementSetName=full&ID=m_amte:8HCH2C:f50c35ae-b0cf-4064-81f7-3556d0973157'}], 'styles': None, 'timepositions': None, 'defaulttimeposition': None}
Bacini idrografici principali
Sulla base dello strato informativo dei bacini idrografici a scala nazionale 1:250.000, congruente con il reticolo idrografico, sono stati individuati, secondo quanto previsto dal D.Lgs.152/99 e successivamente dalla Direttiva Quadro sulle Acque 2000/60/CE, i bacini idrografici dei corsi d'acqua scolanti a mare con superficie maggiore o uguale a 200 Kmq. La tabella associata contiene le seguenti informazioni: dgc_codice, informazione non disponibile; id_bacino, identificativo del bacino idrografico; nome_bac, nome del bacino idrografico; nome_corso, nome del corso d'acqua di riferimento; foglio_igm, foglio IGM di riferimento; ordine, ordine gerarchico; codifica, informazione non disponibile; autorita, autorità competente del bacino.
[urn:ogc:def:crs:EPSG::4326, urn:ogc:def:crs:EPSG::3035]
['text/xml; subtype=gml/3.1.1']
{'auth': <Authentication shared=False username=None password=None cert=None verify=True auth_delegate=None>, 'headers': None, 'id': 'ID.ACQUEFISICHE.BACINIIDROGRAFICI.SECONDARI', 'title': 'Bacini idrografici secondari', 'abstract': "Sulla base dello strato informativo dei bacini idrografici a scala nazionale 1:250.000, congruente con il reticolo idrografico, sono stati individuati, secondo quanto previsto dal D.Lgs.152/99 e successivamente dalla Direttiva Quadro sulle Acque 2000/60/CE, i sottobacini relativi ai corsi d'acqua affluenti del I ordine con superficie maggiore o uguale a 200 Kmq. La tabella associata contiene le seguenti informazioni: dgc_codice, informazione non disponibile; id_bacino, identificativo del bacino idrografico; nome_bac, nome del bacino idrografico; nome_corso, nome del corso d'acqua di riferimento; foglio_igm, foglio IGM di riferimento; ordine, ordine gerarchico; codifica, informazione non disponibile; autorita, autorità competente del bacino.", 'keywords': ['Idrografia', ' Bacino idrografico'], 'boundingBoxWGS84': (6.0, 34.5, 19.0, 49.0), 'crsOptions': [urn:ogc:def:crs:EPSG::4326, urn:ogc:def:crs:EPSG::3035], 'verbOptions': [], 'outputFormats': ['text/xml; subtype=gml/3.1.1'], 'metadataUrls': [{'type': 'text/xml', 'format': 'ISO19115:2003', 'url': 'http://www.pcn.minambiente.it/geoportal/csw?SERVICE=CSW&VERSION=2.0.2&REQUEST=GetRecordById&outputSchema=http%3A%2F%2Fwww.isotc211.org%2F2005%2Fgmd&elementSetName=full&ID=m_amte:8HCH2C:81df4cb9-67e3-4fd0-abe5-91d1ce3e6e9d'}], 'styles': None, 'timepositions': None, 'defaulttimeposition': None}
Bacini idrografici secondari
Sulla base dello strato informativo dei bacini idrografici a scala nazionale 1:250.000, congruente con il reticolo idrografico, sono stati individuati, secondo quanto previsto dal D.Lgs.152/99 e successivamente dalla Direttiva Quadro sulle Acque 2000/60/CE, i sottobacini relativi ai corsi d'acqua affluenti del I ordine con superficie maggiore o uguale a 200 Kmq. La tabella associata contiene le seguenti informazioni: dgc_codice, informazione non disponibile; id_bacino, identificativo del bacino idrografico; nome_bac, nome del bacino idrografico; nome_corso, nome del corso d'acqua di riferimento; foglio_igm, foglio IGM di riferimento; ordine, ordine gerarchico; codifica, informazione non disponibile; autorita, autorità competente del bacino.
[urn:ogc:def:crs:EPSG::4326, urn:ogc:def:crs:EPSG::3035]
['text/xml; subtype=gml/3.1.1']
layer = list(wfs.contents)[0]
layer 
'ID.ACQUEFISICHE.BACINIIDROGRAFICI.PRINCIPALI'
response = wfs.getfeature(typename=layer, bbox=(11.069141,46.038151,11.19823,46.112459),srsname='urn:ogc:def:crs:EPSG::4326')
%time
CPU times: user 2 µs, sys: 0 ns, total: 2 µs
Wall time: 5.01 µs
basins_inbbox = gpd.read_file(response)
ERROR:fiona._env:HTTP error code : 404
basins_inbbox.head()
gml_id dgc_codice id_bacino nome_bac nome_corso foglio_igm ordine codifica autorita geometry
0 ID.ACQUEFISICHE.BACINIIDROGRAFICI.PRINCIPALI.1 7.0 0 ADIGE FIUME ADIGE VENEZIA 1 ADB ADIGE MULTIPOLYGON (((46.53332 10.45039, 46.53329 10...
1 ID.ACQUEFISICHE.BACINIIDROGRAFICI.PRINCIPALI.7 3.0 0 BRENTA FIUME BRENTA VENEZIA 1 ADB ALTO ADRIATICO MULTIPOLYGON (((45.88110 11.80038, 45.87744 11...
basins_inbbox.explore()
Make this Notebook Trusted to load map: File -> Trust Notebook

There is a problem with the orientation of the axes
This is a false problem because the official order of coordinates in EPSG:4326 is latitude and longitude.
Usually Geopandas corrects it alone.
In this case we need an operation to change the axes orientation
This function is supplied in the shapely package.

import shapely

example with a geometry

basins_inbbox.geometry[0]

svg

shapely.ops.transform(lambda x, y: (y, x),basins_inbbox.geometry[0])

svg

creation of a function to be use in the apply method of pandas

def swapxy(geometry):
  geometry = shapely.ops.transform(lambda x, y: (y, x),geometry)
  return geometry
swapxy(basins_inbbox.geometry[0])

svg

basins_inbbox['geometry'] = basins_inbbox['geometry'].apply(lambda geometry: swapxy(geometry))
basins_inbbox.explore()
Make this Notebook Trusted to load map: File -> Trust Notebook

Summary WFS

  • there are different versions
  • from the version 1.1.0 you can have the problem of the axis inverted
  • check always the boundary: more is big and more you have to wait.. more you have to wait and more the connection can go in timeout
  • if the dataset is available as geojson you can load directly in geopandas
  • otherwise you need to download in another format (eg. gml), save it and load as normal file

OGG API is the future!!!

visit

examples

ESRI ArcGIS Online RESTAPI

http://opendatadpc.maps.arcgis.com/apps/opsdashboard/index.html#/b0c68bce2cce478eaac82fe38d4138b1

https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services

Documentation of the ESRI API’s
https://developers.arcgis.com/rest/

try:
    import shapefile
except ModuleNotFoundError as e:
    !pip install pyshp==2.1.3
    import shapefile

if shapefile.__version__ != "2.1.3":
    !pip install -U pyshp==2.1.3
    import shapefile
import os
os.environ['RESTAPI_USE_ARCPY'] = 'FALSE'

try:
    import restapi
except ModuleNotFoundError as e:
    !pip install bmi-arcgis-restapi==2.2.2
    import restapi

if restapi.__version__ != "2.2.2":
    !pip install -U bmi-arcgis-restapi==2.2.2
    import restapi

import restapi
import requests

session = requests.Session()
client = restapi.RequestClient(session)
restapi.set_request_client(client)

# Disable verification
client.session.verify = False

bmi-arcgis-restapi can use arcpy (proprietary software) o pyshp (opensource).

pyshp faster but with the basic functions

rest_url = 'https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services'
ags = restapi.ArcServer(rest_url)
ags.services
[{
   "name": "campi_scuola_2018",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/campi_scuola_2018/FeatureServer"
 }, {
   "name": "CampiScuola_2019",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/CampiScuola_2019/FeatureServer"
 }, {
   "name": "campiscuola2018_def",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/campiscuola2018_def/FeatureServer"
 }, {
   "name": "CapoluoghiProvincia",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/CapoluoghiProvincia/FeatureServer"
 }, {
   "name": "Comuni_Terremotati",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Comuni_Terremotati/FeatureServer"
 }, {
   "name": "Comuni_terremoto",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Comuni_terremoto/FeatureServer"
 }, {
   "name": "ComuniAgricIndus",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/ComuniAgricIndus/FeatureServer"
 }, {
   "name": "ComuniDemografia",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/ComuniDemografia/FeatureServer"
 }, {
   "name": "ComuniIstruzione",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/ComuniIstruzione/FeatureServer"
 }, {
   "name": "ComuniTurismo",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/ComuniTurismo/FeatureServer"
 }, {
   "name": "Container_finale",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Container_finale/FeatureServer"
 }, {
   "name": "COVID19__Regioni",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/COVID19__Regioni/FeatureServer"
 }, {
   "name": "COVID19_andamento",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/COVID19_andamento/FeatureServer"
 }, {
   "name": "COVID19_Andamento_Nazionale",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/COVID19_Andamento_Nazionale/FeatureServer"
 }, {
   "name": "COVID19_AREE",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/COVID19_AREE/FeatureServer"
 }, {
   "name": "DPC_COVID19_Andamento_Nazionale",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/DPC_COVID19_Andamento_Nazionale/FeatureServer"
 }, {
   "name": "DPC_COVID19_Andamento_Nazionale_new",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/DPC_COVID19_Andamento_Nazionale_new/FeatureServer"
 }, {
   "name": "DPC_COVID19_dataset_NOTE",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/DPC_COVID19_dataset_NOTE/FeatureServer"
 }, {
   "name": "DPC_COVID19_Note_new1",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/DPC_COVID19_Note_new1/FeatureServer"
 }, {
   "name": "DPC_COVID19_Province",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/DPC_COVID19_Province/FeatureServer"
 }, {
   "name": "DPC_COVID19_Province_new2022",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/DPC_COVID19_Province_new2022/FeatureServer"
 }, {
   "name": "DPC_COVID19_Regioni",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/DPC_COVID19_Regioni/FeatureServer"
 }, {
   "name": "DPC_dati_COVID19_andamento_nazionale",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/DPC_dati_COVID19_andamento_nazionale/FeatureServer"
 }, {
   "name": "DPC_dati_COVID19_andamento_nazionale_2",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/DPC_dati_COVID19_andamento_nazionale_2/FeatureServer"
 }, {
   "name": "DPC_dati_COVID19_Province",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/DPC_dati_COVID19_Province/FeatureServer"
 }, {
   "name": "dpc_province_covid19",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/dpc_province_covid19/FeatureServer"
 }, {
   "name": "dpc_province_covid19_new",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/dpc_province_covid19_new/FeatureServer"
 }, {
   "name": "dpc_regioni__covid_19_new2",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/dpc_regioni__covid_19_new2/FeatureServer"
 }, {
   "name": "dpc_regioni_covid_19_new1",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/dpc_regioni_covid_19_new1/FeatureServer"
 }, {
   "name": "dpc_regioni_covid19",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/dpc_regioni_covid19/FeatureServer"
 }, {
   "name": "Interventi_Strade",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Interventi_Strade/FeatureServer"
 }, {
   "name": "istituti_scolastici",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/istituti_scolastici/FeatureServer"
 }, {
   "name": "Limiti_regionali_ISTA_2019",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Limiti_regionali_ISTA_2019/FeatureServer"
 }, {
   "name": "LimitiProvince",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/LimitiProvince/FeatureServer"
 }, {
   "name": "Localita_terremoto",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Localita_terremoto/FeatureServer"
 }, {
   "name": "MesseSicurezza_MIBACT",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/MesseSicurezza_MIBACT/FeatureServer"
 }, {
   "name": "MiBACT_LuoghiCultura",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/MiBACT_LuoghiCultura/FeatureServer"
 }, {
   "name": "Neiflex_2018_piazzeINR",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Neiflex_2018_piazzeINR/FeatureServer"
 }, {
   "name": "Neiflex_2018_scenari",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Neiflex_2018_scenari/FeatureServer"
 }, {
   "name": "Neiflex_2018_scenariBBCC",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Neiflex_2018_scenariBBCC/FeatureServer"
 }, {
   "name": "Neiflex_2018_sediesercitative",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Neiflex_2018_sediesercitative/FeatureServer"
 }, {
   "name": "Progetti_L_B100",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Progetti_L_B100/FeatureServer"
 }, {
   "name": "Progetti_L_B500",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Progetti_L_B500/FeatureServer"
 }, {
   "name": "Progetti_Lineari",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Progetti_Lineari/FeatureServer"
 }, {
   "name": "Progetti_P_B100",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Progetti_P_B100/FeatureServer"
 }, {
   "name": "Progetti_P_B500",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Progetti_P_B500/FeatureServer"
 }, {
   "name": "Progetti_Puntuali_ANAS",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Progetti_Puntuali_ANAS/FeatureServer"
 }, {
   "name": "Progetti_Riepilogo",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Progetti_Riepilogo/FeatureServer"
 }, {
   "name": "Progetti_RIEPILOGO5",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Progetti_RIEPILOGO5/FeatureServer"
 }, {
   "name": "riepilogo_province",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/riepilogo_province/FeatureServer"
 }, {
   "name": "SAE_Comunicazione_1",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/SAE_Comunicazione_1/FeatureServer"
 }, {
   "name": "Servizio_Container",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Servizio_Container/FeatureServer"
 }, {
   "name": "Servizio_Demografia",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Servizio_Demografia/FeatureServer"
 }, {
   "name": "Servizio_Sfondo",
   "type": "FeatureServer",
   "url": "https://services6.arcgis.com/L1SotImj1AAZY1eK/ArcGIS/rest/services/Servizio_Sfondo/FeatureServer"
 }]
# access "CapoluoghiProvincia" service 
ags_service = ags.getService('CapoluoghiProvincia')
ags_service.list_layers()
['CapoluoghiProvincia']
provincial_capitals = ags_service.layer("CapoluoghiProvincia")
provincial_capitals.list_fields()
['FID',
 'OBJECTID',
 'COD_ISTAT',
 'COD_REG',
 'COD_PRO',
 'PRO_COM',
 'LOC2011',
 'LOC',
 'TIPO_LOC',
 'DENOMINAZI',
 'ALTITUDINE',
 'CENTRO_CL',
 'POPRES',
 'MASCHI',
 'FAMIGLIE',
 'ABITAZIONI',
 'EDIFICI',
 'Shape_Leng',
 'Shape_Area',
 'FID_1',
 'COD_RIP',
 'COD_REG_1',
 'COD_PROV',
 'COD_CM',
 'COD_PCM',
 'DEN_PROV',
 'DEN_CM',
 'DEN_PCM',
 'SIGLA',
 'Shape_Le_1',
 'Shape_Ar_1',
 'ORIG_FID']
# export layer to shapefile in WGS 1984 projection
provincial_capitals.export_layer('italian_provincial_capitals.shp', outSR=4326)
Created: "italian_provincial_capitals.shp"





'italian_provincial_capitals.shp'
provincial_capitals
<FeatureLayer: "CapoluoghiProvincia" (id: 0)>
gpd_provincial_capitals = gpd.read_file('italian_provincial_capitals.shp')
gpd_provincial_capitals.plot()
plt.show()

png


Exercises

  • identify the location of these address with a geocoder
    • Piazza Castello, Udine
    • Piazza Italia, Trento
    • Piazza Foroni, Torino
  • find the administrative border of “comunità di valle” (community of valley) of Province Autonomous of Trento
  • identify all the rivers inside the smallest community of valley of Trentino
  • repeat the same exercise with the layer “Comuni Terremotati” (municipalities affected by earthquake) of the italian Civil Protection by choosing the smallest municipality contained on the layer

Updated: