Lesson 03
Retrieving data from spatial database infrastructures
goals of the tutorial
- geocoding / reverse geocoding
- OGC services
- ESRI ArcGIS RestAPI
based on the open data of:
- national repertoire of territorial data
- national cartographic portal
- geoportal of Trentino
- italian civil protection department
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
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()
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"})
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"})
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"})
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()
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&" xlink:type="simple" />
<ows:Post xlink:href="http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Bacini_idrografici.map&" 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&" xlink:type="simple" />
<ows:Post xlink:href="http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Bacini_idrografici.map&" 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&" xlink:type="simple" />
<ows:Post xlink:href="http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Bacini_idrografici.map&" 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à 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à 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&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</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à 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&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</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()
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]
shapely.ops.transform(lambda x, y: (y, x),basins_inbbox.geometry[0])
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])
basins_inbbox['geometry'] = basins_inbbox['geometry'].apply(lambda geometry: swapxy(geometry))
basins_inbbox.explore()
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
- https://ogcapi.ogc.org/
- OGC API Features
- learning OGC API features
- OGC API SensorThings
- OGC API Records
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()
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