contextily
¶This blog post goes with a blog post.
contextily
is a simple library focused on getting static tiled maps of a given area. This can have data and similar things overlaid, as well as getting the map of an area.
We will create a geological map of Nova Scotia, starting with import contextily
.
# Uncomment this if you are running this notebook on mybinder.org
# !pip install contextily
import contextily as ctx
import matplotlib.pyplot as plt
Contextily works with tiled maps. These are made up of small images (usually in .png
format) which are static. These can then be prerendered and have different styles applied, depending on the planned usage of the map.
Contextily provides a number of built-in sources of map tiles, many of which are available for free. Many of them are built on OpenStreetMap's data.
A full listing can be accessed by looking at the providers
dictionary, which details the maximum zoom, the attribution, and the URL. Some tiles are only available within given bounds, while others are worldwide. This depends on the coverage of the provider.
ctx.providers.OpenStreetMap.Mapnik
{'url': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', 'max_zoom': 19, 'attribution': '(C) OpenStreetMap contributors', 'name': 'OpenStreetMap.Mapnik'}
ctx.providers
{'OpenStreetMap': {'Mapnik': {'url': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', 'max_zoom': 19, 'attribution': '(C) OpenStreetMap contributors', 'name': 'OpenStreetMap.Mapnik'}, 'DE': {'url': 'https://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png', 'max_zoom': 18, 'attribution': '(C) OpenStreetMap contributors', 'name': 'OpenStreetMap.DE'}, 'CH': {'url': 'https://tile.osm.ch/switzerland/{z}/{x}/{y}.png', 'max_zoom': 18, 'attribution': '(C) OpenStreetMap contributors', 'bounds': [[45, 5], [48, 11]], 'name': 'OpenStreetMap.CH'}, 'France': {'url': 'https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', 'max_zoom': 20, 'attribution': '(C) Openstreetmap France | (C) OpenStreetMap contributors', 'name': 'OpenStreetMap.France'}, 'HOT': {'url': 'https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', 'max_zoom': 19, 'attribution': '(C) OpenStreetMap contributors, Tiles style by Humanitarian OpenStreetMap Team hosted by OpenStreetMap France', 'name': 'OpenStreetMap.HOT'}, 'BZH': {'url': 'https://tile.openstreetmap.bzh/br/{z}/{x}/{y}.png', 'max_zoom': 19, 'attribution': '(C) OpenStreetMap contributors, Tiles courtesy of Breton OpenStreetMap Team', 'bounds': [[46.2, -5.5], [50, 0.7]], 'name': 'OpenStreetMap.BZH'}}, 'OpenSeaMap': {'url': 'https://tiles.openseamap.org/seamark/{z}/{x}/{y}.png', 'attribution': 'Map data: (C) OpenSeaMap contributors', 'name': 'OpenSeaMap'}, 'OpenPtMap': {'url': 'http://openptmap.org/tiles/{z}/{x}/{y}.png', 'max_zoom': 17, 'attribution': 'Map data: (C) OpenPtMap contributors', 'name': 'OpenPtMap'}, 'OpenTopoMap': {'url': 'https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png', 'max_zoom': 17, 'attribution': 'Map data: (C) OpenStreetMap contributors, SRTM | Map style: (C) OpenTopoMap (CC-BY-SA)', 'name': 'OpenTopoMap'}, 'OpenRailwayMap': {'url': 'https://{s}.tiles.openrailwaymap.org/standard/{z}/{x}/{y}.png', 'max_zoom': 19, 'attribution': 'Map data: (C) OpenStreetMap contributors | Map style: (C) OpenRailwayMap (CC-BY-SA)', 'name': 'OpenRailwayMap'}, 'OpenFireMap': {'url': 'http://openfiremap.org/hytiles/{z}/{x}/{y}.png', 'max_zoom': 19, 'attribution': 'Map data: (C) OpenStreetMap contributors | Map style: (C) OpenFireMap (CC-BY-SA)', 'name': 'OpenFireMap'}, 'SafeCast': {'url': 'https://s3.amazonaws.com/te512.safecast.org/{z}/{x}/{y}.png', 'max_zoom': 16, 'attribution': 'Map data: (C) OpenStreetMap contributors | Map style: (C) SafeCast (CC-BY-SA)', 'name': 'SafeCast'}, 'Thunderforest': {'OpenCycleMap': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'cycle', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.OpenCycleMap'}, 'Transport': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'transport', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.Transport'}, 'TransportDark': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'transport-dark', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.TransportDark'}, 'SpinalMap': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'spinal-map', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.SpinalMap'}, 'Landscape': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'landscape', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.Landscape'}, 'Outdoors': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'outdoors', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.Outdoors'}, 'Pioneer': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'pioneer', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.Pioneer'}, 'MobileAtlas': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'mobile-atlas', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.MobileAtlas'}, 'Neighbourhood': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'neighbourhood', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.Neighbourhood'}}, 'OpenMapSurfer': {'Roads': {'url': 'https://maps.heigit.org/openmapsurfer/tiles/{variant}/webmercator/{z}/{x}/{y}.png', 'max_zoom': 19, 'variant': 'roads', 'attribution': 'Imagery from GIScience Research Group @ University of Heidelberg | Map data (C) OpenStreetMap contributors', 'name': 'OpenMapSurfer.Roads'}, 'Hybrid': {'url': 'https://maps.heigit.org/openmapsurfer/tiles/{variant}/webmercator/{z}/{x}/{y}.png', 'max_zoom': 19, 'variant': 'hybrid', 'attribution': 'Imagery from GIScience Research Group @ University of Heidelberg | Map data (C) OpenStreetMap contributors', 'name': 'OpenMapSurfer.Hybrid'}, 'AdminBounds': {'url': 'https://maps.heigit.org/openmapsurfer/tiles/{variant}/webmercator/{z}/{x}/{y}.png', 'max_zoom': 18, 'variant': 'adminb', 'attribution': 'Imagery from GIScience Research Group @ University of Heidelberg | Map data (C) OpenStreetMap contributors', 'name': 'OpenMapSurfer.AdminBounds'}, 'ContourLines': {'url': 'https://maps.heigit.org/openmapsurfer/tiles/{variant}/webmercator/{z}/{x}/{y}.png', 'max_zoom': 18, 'variant': 'asterc', 'attribution': 'Imagery from GIScience Research Group @ University of Heidelberg | Map data ASTER GDEM', 'min_zoom': 13, 'name': 'OpenMapSurfer.ContourLines'}, 'Hillshade': {'url': 'https://maps.heigit.org/openmapsurfer/tiles/{variant}/webmercator/{z}/{x}/{y}.png', 'max_zoom': 18, 'variant': 'asterh', 'attribution': 'Imagery from GIScience Research Group @ University of Heidelberg | Map data ASTER GDEM, SRTM', 'name': 'OpenMapSurfer.Hillshade'}, 'ElementsAtRisk': {'url': 'https://maps.heigit.org/openmapsurfer/tiles/{variant}/webmercator/{z}/{x}/{y}.png', 'max_zoom': 19, 'variant': 'elements_at_risk', 'attribution': 'Imagery from GIScience Research Group @ University of Heidelberg | Map data (C) OpenStreetMap contributors', 'name': 'OpenMapSurfer.ElementsAtRisk'}}, 'Hydda': {'Full': {'url': 'https://{s}.tile.openstreetmap.se/hydda/{variant}/{z}/{x}/{y}.png', 'max_zoom': 18, 'variant': 'full', 'attribution': 'Tiles courtesy of OpenStreetMap Sweden -- Map data (C) OpenStreetMap contributors', 'name': 'Hydda.Full'}, 'Base': {'url': 'https://{s}.tile.openstreetmap.se/hydda/{variant}/{z}/{x}/{y}.png', 'max_zoom': 18, 'variant': 'base', 'attribution': 'Tiles courtesy of OpenStreetMap Sweden -- Map data (C) OpenStreetMap contributors', 'name': 'Hydda.Base'}, 'RoadsAndLabels': {'url': 'https://{s}.tile.openstreetmap.se/hydda/{variant}/{z}/{x}/{y}.png', 'max_zoom': 18, 'variant': 'roads_and_labels', 'attribution': 'Tiles courtesy of OpenStreetMap Sweden -- Map data (C) OpenStreetMap contributors', 'name': 'Hydda.RoadsAndLabels'}}, 'MapBox': {'url': 'https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}{r}.png?access_token={accessToken}', 'attribution': '(C) Mapbox (C) OpenStreetMap contributors Improve this map', 'subdomains': 'abcd', 'id': 'mapbox.streets', 'accessToken': '<insert your access token here>', 'name': 'MapBox'}, 'Stamen': {'Toner': {'url': 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}{r}.{ext}', 'attribution': 'Map tiles by Stamen Design, CC BY 3.0 -- Map data (C) OpenStreetMap contributors', 'subdomains': 'abcd', 'min_zoom': 0, 'max_zoom': 20, 'variant': 'toner', 'ext': 'png', 'name': 'Stamen.Toner'}, 'TonerBackground': {'url': 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}{r}.{ext}', 'attribution': 'Map tiles by Stamen Design, CC BY 3.0 -- Map data (C) OpenStreetMap contributors', 'subdomains': 'abcd', 'min_zoom': 0, 'max_zoom': 20, 'variant': 'toner-background', 'ext': 'png', 'name': 'Stamen.TonerBackground'}, 'TonerHybrid': {'url': 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}{r}.{ext}', 'attribution': 'Map tiles by Stamen Design, CC BY 3.0 -- Map data (C) OpenStreetMap contributors', 'subdomains': 'abcd', 'min_zoom': 0, 'max_zoom': 20, 'variant': 'toner-hybrid', 'ext': 'png', 'name': 'Stamen.TonerHybrid'}, 'TonerLines': {'url': 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}{r}.{ext}', 'attribution': 'Map tiles by Stamen Design, CC BY 3.0 -- Map data (C) OpenStreetMap contributors', 'subdomains': 'abcd', 'min_zoom': 0, 'max_zoom': 20, 'variant': 'toner-lines', 'ext': 'png', 'name': 'Stamen.TonerLines'}, 'TonerLabels': {'url': 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}{r}.{ext}', 'attribution': 'Map tiles by Stamen Design, CC BY 3.0 -- Map data (C) OpenStreetMap contributors', 'subdomains': 'abcd', 'min_zoom': 0, 'max_zoom': 20, 'variant': 'toner-labels', 'ext': 'png', 'name': 'Stamen.TonerLabels'}, 'TonerLite': {'url': 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}{r}.{ext}', 'attribution': 'Map tiles by Stamen Design, CC BY 3.0 -- Map data (C) OpenStreetMap contributors', 'subdomains': 'abcd', 'min_zoom': 0, 'max_zoom': 20, 'variant': 'toner-lite', 'ext': 'png', 'name': 'Stamen.TonerLite'}, 'Watercolor': {'url': 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}.{ext}', 'attribution': 'Map tiles by Stamen Design, CC BY 3.0 -- Map data (C) OpenStreetMap contributors', 'subdomains': 'abcd', 'min_zoom': 1, 'max_zoom': 16, 'variant': 'watercolor', 'ext': 'jpg', 'name': 'Stamen.Watercolor'}, 'Terrain': {'url': 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}{r}.{ext}', 'attribution': 'Map tiles by Stamen Design, CC BY 3.0 -- Map data (C) OpenStreetMap contributors', 'subdomains': 'abcd', 'min_zoom': 0, 'max_zoom': 18, 'variant': 'terrain', 'ext': 'png', 'name': 'Stamen.Terrain'}, 'TerrainBackground': {'url': 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}{r}.{ext}', 'attribution': 'Map tiles by Stamen Design, CC BY 3.0 -- Map data (C) OpenStreetMap contributors', 'subdomains': 'abcd', 'min_zoom': 0, 'max_zoom': 18, 'variant': 'terrain-background', 'ext': 'png', 'name': 'Stamen.TerrainBackground'}, 'TopOSMRelief': {'url': 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}.{ext}', 'attribution': 'Map tiles by Stamen Design, CC BY 3.0 -- Map data (C) OpenStreetMap contributors', 'subdomains': 'abcd', 'min_zoom': 0, 'max_zoom': 20, 'variant': 'toposm-color-relief', 'ext': 'jpg', 'bounds': [[22, -132], [51, -56]], 'name': 'Stamen.TopOSMRelief'}, 'TopOSMFeatures': {'url': 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}{r}.{ext}', 'attribution': 'Map tiles by Stamen Design, CC BY 3.0 -- Map data (C) OpenStreetMap contributors', 'subdomains': 'abcd', 'min_zoom': 0, 'max_zoom': 20, 'variant': 'toposm-features', 'ext': 'png', 'bounds': [[22, -132], [51, -56]], 'opacity': 0.9, 'name': 'Stamen.TopOSMFeatures'}}, 'Esri': {'WorldStreetMap': {'url': 'https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}', 'variant': 'World_Street_Map', 'attribution': 'Tiles (C) Esri -- Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012', 'name': 'Esri.WorldStreetMap'}, 'DeLorme': {'url': 'https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}', 'variant': 'Specialty/DeLorme_World_Base_Map', 'attribution': 'Tiles (C) Esri -- Copyright: (C)2012 DeLorme', 'min_zoom': 1, 'max_zoom': 11, 'name': 'Esri.DeLorme'}, 'WorldTopoMap': {'url': 'https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}', 'variant': 'World_Topo_Map', 'attribution': 'Tiles (C) Esri -- Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community', 'name': 'Esri.WorldTopoMap'}, 'WorldImagery': {'url': 'https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}', 'variant': 'World_Imagery', 'attribution': 'Tiles (C) Esri -- Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community', 'name': 'Esri.WorldImagery'}, 'WorldTerrain': {'url': 'https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}', 'variant': 'World_Terrain_Base', 'attribution': 'Tiles (C) Esri -- Source: USGS, Esri, TANA, DeLorme, and NPS', 'max_zoom': 13, 'name': 'Esri.WorldTerrain'}, 'WorldShadedRelief': {'url': 'https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}', 'variant': 'World_Shaded_Relief', 'attribution': 'Tiles (C) Esri -- Source: Esri', 'max_zoom': 13, 'name': 'Esri.WorldShadedRelief'}, 'WorldPhysical': {'url': 'https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}', 'variant': 'World_Physical_Map', 'attribution': 'Tiles (C) Esri -- Source: US National Park Service', 'max_zoom': 8, 'name': 'Esri.WorldPhysical'}, 'OceanBasemap': {'url': 'https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}', 'variant': 'Ocean_Basemap', 'attribution': 'Tiles (C) Esri -- Sources: GEBCO, NOAA, CHS, OSU, UNH, CSUMB, National Geographic, DeLorme, NAVTEQ, and Esri', 'max_zoom': 13, 'name': 'Esri.OceanBasemap'}, 'NatGeoWorldMap': {'url': 'https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}', 'variant': 'NatGeo_World_Map', 'attribution': 'Tiles (C) Esri -- National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC', 'max_zoom': 16, 'name': 'Esri.NatGeoWorldMap'}, 'WorldGrayCanvas': {'url': 'https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}', 'variant': 'Canvas/World_Light_Gray_Base', 'attribution': 'Tiles (C) Esri -- Esri, DeLorme, NAVTEQ', 'max_zoom': 16, 'name': 'Esri.WorldGrayCanvas'}}, 'OpenWeatherMap': {'Clouds': {'url': 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png?appid={apiKey}', 'max_zoom': 19, 'attribution': 'Map data (C) OpenWeatherMap', 'apiKey': '<insert your api key here>', 'opacity': 0.5, 'variant': 'clouds', 'name': 'OpenWeatherMap.Clouds'}, 'CloudsClassic': {'url': 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png?appid={apiKey}', 'max_zoom': 19, 'attribution': 'Map data (C) OpenWeatherMap', 'apiKey': '<insert your api key here>', 'opacity': 0.5, 'variant': 'clouds_cls', 'name': 'OpenWeatherMap.CloudsClassic'}, 'Precipitation': {'url': 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png?appid={apiKey}', 'max_zoom': 19, 'attribution': 'Map data (C) OpenWeatherMap', 'apiKey': '<insert your api key here>', 'opacity': 0.5, 'variant': 'precipitation', 'name': 'OpenWeatherMap.Precipitation'}, 'PrecipitationClassic': {'url': 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png?appid={apiKey}', 'max_zoom': 19, 'attribution': 'Map data (C) OpenWeatherMap', 'apiKey': '<insert your api key here>', 'opacity': 0.5, 'variant': 'precipitation_cls', 'name': 'OpenWeatherMap.PrecipitationClassic'}, 'Rain': {'url': 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png?appid={apiKey}', 'max_zoom': 19, 'attribution': 'Map data (C) OpenWeatherMap', 'apiKey': '<insert your api key here>', 'opacity': 0.5, 'variant': 'rain', 'name': 'OpenWeatherMap.Rain'}, 'RainClassic': {'url': 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png?appid={apiKey}', 'max_zoom': 19, 'attribution': 'Map data (C) OpenWeatherMap', 'apiKey': '<insert your api key here>', 'opacity': 0.5, 'variant': 'rain_cls', 'name': 'OpenWeatherMap.RainClassic'}, 'Pressure': {'url': 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png?appid={apiKey}', 'max_zoom': 19, 'attribution': 'Map data (C) OpenWeatherMap', 'apiKey': '<insert your api key here>', 'opacity': 0.5, 'variant': 'pressure', 'name': 'OpenWeatherMap.Pressure'}, 'PressureContour': {'url': 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png?appid={apiKey}', 'max_zoom': 19, 'attribution': 'Map data (C) OpenWeatherMap', 'apiKey': '<insert your api key here>', 'opacity': 0.5, 'variant': 'pressure_cntr', 'name': 'OpenWeatherMap.PressureContour'}, 'Wind': {'url': 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png?appid={apiKey}', 'max_zoom': 19, 'attribution': 'Map data (C) OpenWeatherMap', 'apiKey': '<insert your api key here>', 'opacity': 0.5, 'variant': 'wind', 'name': 'OpenWeatherMap.Wind'}, 'Temperature': {'url': 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png?appid={apiKey}', 'max_zoom': 19, 'attribution': 'Map data (C) OpenWeatherMap', 'apiKey': '<insert your api key here>', 'opacity': 0.5, 'variant': 'temp', 'name': 'OpenWeatherMap.Temperature'}, 'Snow': {'url': 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png?appid={apiKey}', 'max_zoom': 19, 'attribution': 'Map data (C) OpenWeatherMap', 'apiKey': '<insert your api key here>', 'opacity': 0.5, 'variant': 'snow', 'name': 'OpenWeatherMap.Snow'}}, 'HERE': {'normalDay': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.day', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.normalDay'}, 'normalDayCustom': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.day.custom', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.normalDayCustom'}, 'normalDayGrey': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.day.grey', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.normalDayGrey'}, 'normalDayMobile': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.day.mobile', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.normalDayMobile'}, 'normalDayGreyMobile': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.day.grey.mobile', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.normalDayGreyMobile'}, 'normalDayTransit': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.day.transit', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.normalDayTransit'}, 'normalDayTransitMobile': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.day.transit.mobile', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.normalDayTransitMobile'}, 'normalNight': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.night', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.normalNight'}, 'normalNightMobile': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.night.mobile', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.normalNightMobile'}, 'normalNightGrey': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.night.grey', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.normalNightGrey'}, 'normalNightGreyMobile': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.night.grey.mobile', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.normalNightGreyMobile'}, 'normalNightTransit': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.night.transit', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.normalNightTransit'}, 'normalNightTransitMobile': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.night.transit.mobile', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.normalNightTransitMobile'}, 'reducedDay': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'reduced.day', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.reducedDay'}, 'reducedNight': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'reduced.night', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.reducedNight'}, 'basicMap': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.day', 'max_zoom': 20, 'type': 'basetile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.basicMap'}, 'mapLabels': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'normal.day', 'max_zoom': 20, 'type': 'labeltile', 'language': 'eng', 'format': 'png', 'size': '256', 'name': 'HERE.mapLabels'}, 'trafficFlow': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'traffic', 'variant': 'normal.day', 'max_zoom': 20, 'type': 'flowtile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.trafficFlow'}, 'carnavDayGrey': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'carnav.day.grey', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.carnavDayGrey'}, 'hybridDay': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'aerial', 'variant': 'hybrid.day', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.hybridDay'}, 'hybridDayMobile': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'aerial', 'variant': 'hybrid.day.mobile', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.hybridDayMobile'}, 'hybridDayTransit': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'aerial', 'variant': 'hybrid.day.transit', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.hybridDayTransit'}, 'hybridDayGrey': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'aerial', 'variant': 'hybrid.grey.day', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.hybridDayGrey'}, 'pedestrianDay': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'pedestrian.day', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.pedestrianDay'}, 'pedestrianNight': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'base', 'variant': 'pedestrian.night', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.pedestrianNight'}, 'satelliteDay': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'aerial', 'variant': 'satellite.day', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.satelliteDay'}, 'terrainDay': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'aerial', 'variant': 'terrain.day', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.terrainDay'}, 'terrainDayMobile': {'url': 'https://{s}.{base}.maps.api.here.com/maptile/2.1/{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?app_id={app_id}&app_code={app_code}&lg={language}', 'attribution': 'Map (C) 1987-2019 HERE', 'subdomains': '1234', 'mapID': 'newest', 'app_id': '<insert your app_id here>', 'app_code': '<insert your app_code here>', 'base': 'aerial', 'variant': 'terrain.day.mobile', 'max_zoom': 20, 'type': 'maptile', 'language': 'eng', 'format': 'png8', 'size': '256', 'name': 'HERE.terrainDayMobile'}}, 'FreeMapSK': {'url': 'http://t{s}.freemap.sk/T/{z}/{x}/{y}.jpeg', 'min_zoom': 8, 'max_zoom': 16, 'subdomains': '1234', 'bounds': [[47.204642, 15.996093], [49.830896, 22.576904]], 'attribution': '(C) OpenStreetMap contributors, vizualization CC-By-SA 2.0 Freemap.sk', 'name': 'FreeMapSK'}, 'MtbMap': {'url': 'http://tile.mtbmap.cz/mtbmap_tiles/{z}/{x}/{y}.png', 'attribution': '(C) OpenStreetMap contributors & USGS', 'name': 'MtbMap'}, 'CartoDB': {'Positron': {'url': 'https://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}{r}.png', 'attribution': '(C) OpenStreetMap contributors (C) CARTO', 'subdomains': 'abcd', 'max_zoom': 19, 'variant': 'light_all', 'name': 'CartoDB.Positron'}, 'PositronNoLabels': {'url': 'https://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}{r}.png', 'attribution': '(C) OpenStreetMap contributors (C) CARTO', 'subdomains': 'abcd', 'max_zoom': 19, 'variant': 'light_nolabels', 'name': 'CartoDB.PositronNoLabels'}, 'PositronOnlyLabels': {'url': 'https://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}{r}.png', 'attribution': '(C) OpenStreetMap contributors (C) CARTO', 'subdomains': 'abcd', 'max_zoom': 19, 'variant': 'light_only_labels', 'name': 'CartoDB.PositronOnlyLabels'}, 'DarkMatter': {'url': 'https://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}{r}.png', 'attribution': '(C) OpenStreetMap contributors (C) CARTO', 'subdomains': 'abcd', 'max_zoom': 19, 'variant': 'dark_all', 'name': 'CartoDB.DarkMatter'}, 'DarkMatterNoLabels': {'url': 'https://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}{r}.png', 'attribution': '(C) OpenStreetMap contributors (C) CARTO', 'subdomains': 'abcd', 'max_zoom': 19, 'variant': 'dark_nolabels', 'name': 'CartoDB.DarkMatterNoLabels'}, 'DarkMatterOnlyLabels': {'url': 'https://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}{r}.png', 'attribution': '(C) OpenStreetMap contributors (C) CARTO', 'subdomains': 'abcd', 'max_zoom': 19, 'variant': 'dark_only_labels', 'name': 'CartoDB.DarkMatterOnlyLabels'}, 'Voyager': {'url': 'https://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}{r}.png', 'attribution': '(C) OpenStreetMap contributors (C) CARTO', 'subdomains': 'abcd', 'max_zoom': 19, 'variant': 'rastertiles/voyager', 'name': 'CartoDB.Voyager'}, 'VoyagerNoLabels': {'url': 'https://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}{r}.png', 'attribution': '(C) OpenStreetMap contributors (C) CARTO', 'subdomains': 'abcd', 'max_zoom': 19, 'variant': 'rastertiles/voyager_nolabels', 'name': 'CartoDB.VoyagerNoLabels'}, 'VoyagerOnlyLabels': {'url': 'https://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}{r}.png', 'attribution': '(C) OpenStreetMap contributors (C) CARTO', 'subdomains': 'abcd', 'max_zoom': 19, 'variant': 'rastertiles/voyager_only_labels', 'name': 'CartoDB.VoyagerOnlyLabels'}, 'VoyagerLabelsUnder': {'url': 'https://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}{r}.png', 'attribution': '(C) OpenStreetMap contributors (C) CARTO', 'subdomains': 'abcd', 'max_zoom': 19, 'variant': 'rastertiles/voyager_labels_under', 'name': 'CartoDB.VoyagerLabelsUnder'}}, 'HikeBike': {'HikeBike': {'url': 'https://tiles.wmflabs.org/{variant}/{z}/{x}/{y}.png', 'max_zoom': 19, 'attribution': '(C) OpenStreetMap contributors', 'variant': 'hikebike', 'name': 'HikeBike.HikeBike'}, 'HillShading': {'url': 'https://tiles.wmflabs.org/{variant}/{z}/{x}/{y}.png', 'max_zoom': 15, 'attribution': '(C) OpenStreetMap contributors', 'variant': 'hillshading', 'name': 'HikeBike.HillShading'}}, 'BasemapAT': {'basemap': {'url': 'https://maps{s}.wien.gv.at/basemap/{variant}/normal/google3857/{z}/{y}/{x}.{format}', 'max_zoom': 20, 'attribution': 'Datenquelle: basemap.at', 'subdomains': ['', '1', '2', '3', '4'], 'format': 'png', 'bounds': [[46.35877, 8.782379], [49.037872, 17.189532]], 'variant': 'geolandbasemap', 'name': 'BasemapAT.basemap'}, 'grau': {'url': 'https://maps{s}.wien.gv.at/basemap/{variant}/normal/google3857/{z}/{y}/{x}.{format}', 'max_zoom': 19, 'attribution': 'Datenquelle: basemap.at', 'subdomains': ['', '1', '2', '3', '4'], 'format': 'png', 'bounds': [[46.35877, 8.782379], [49.037872, 17.189532]], 'variant': 'bmapgrau', 'name': 'BasemapAT.grau'}, 'overlay': {'url': 'https://maps{s}.wien.gv.at/basemap/{variant}/normal/google3857/{z}/{y}/{x}.{format}', 'max_zoom': 19, 'attribution': 'Datenquelle: basemap.at', 'subdomains': ['', '1', '2', '3', '4'], 'format': 'png', 'bounds': [[46.35877, 8.782379], [49.037872, 17.189532]], 'variant': 'bmapoverlay', 'name': 'BasemapAT.overlay'}, 'highdpi': {'url': 'https://maps{s}.wien.gv.at/basemap/{variant}/normal/google3857/{z}/{y}/{x}.{format}', 'max_zoom': 19, 'attribution': 'Datenquelle: basemap.at', 'subdomains': ['', '1', '2', '3', '4'], 'format': 'jpeg', 'bounds': [[46.35877, 8.782379], [49.037872, 17.189532]], 'variant': 'bmaphidpi', 'name': 'BasemapAT.highdpi'}, 'orthofoto': {'url': 'https://maps{s}.wien.gv.at/basemap/{variant}/normal/google3857/{z}/{y}/{x}.{format}', 'max_zoom': 20, 'attribution': 'Datenquelle: basemap.at', 'subdomains': ['', '1', '2', '3', '4'], 'format': 'jpeg', 'bounds': [[46.35877, 8.782379], [49.037872, 17.189532]], 'variant': 'bmaporthofoto30cm', 'name': 'BasemapAT.orthofoto'}}, 'nlmaps': {'standaard': {'url': 'https://geodata.nationaalgeoregister.nl/tiles/service/wmts/{variant}/EPSG:3857/{z}/{x}/{y}.png', 'min_zoom': 6, 'max_zoom': 19, 'bounds': [[50.5, 3.25], [54, 7.6]], 'attribution': 'Kaartgegevens (C) Kadaster', 'variant': 'brtachtergrondkaart', 'name': 'nlmaps.standaard'}, 'pastel': {'url': 'https://geodata.nationaalgeoregister.nl/tiles/service/wmts/{variant}/EPSG:3857/{z}/{x}/{y}.png', 'min_zoom': 6, 'max_zoom': 19, 'bounds': [[50.5, 3.25], [54, 7.6]], 'attribution': 'Kaartgegevens (C) Kadaster', 'variant': 'brtachtergrondkaartpastel', 'name': 'nlmaps.pastel'}, 'grijs': {'url': 'https://geodata.nationaalgeoregister.nl/tiles/service/wmts/{variant}/EPSG:3857/{z}/{x}/{y}.png', 'min_zoom': 6, 'max_zoom': 19, 'bounds': [[50.5, 3.25], [54, 7.6]], 'attribution': 'Kaartgegevens (C) Kadaster', 'variant': 'brtachtergrondkaartgrijs', 'name': 'nlmaps.grijs'}, 'luchtfoto': {'url': 'https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts/1.0.0/2016_ortho25/EPSG:3857/{z}/{x}/{y}.png', 'min_zoom': 6, 'max_zoom': 19, 'bounds': [[50.5, 3.25], [54, 7.6]], 'attribution': 'Kaartgegevens (C) Kadaster', 'name': 'nlmaps.luchtfoto'}}, 'NASAGIBS': {'ModisTerraTrueColorCR': {'url': 'https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{max_zoom}/{z}/{y}/{x}.{format}', 'attribution': 'Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.', 'bounds': [[-85.0511287776, -179.999999975], [85.0511287776, 179.999999975]], 'min_zoom': 1, 'max_zoom': 9, 'format': 'jpg', 'time': '', 'tilematrixset': 'GoogleMapsCompatible_Level', 'variant': 'MODIS_Terra_CorrectedReflectance_TrueColor', 'name': 'NASAGIBS.ModisTerraTrueColorCR'}, 'ModisTerraBands367CR': {'url': 'https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{max_zoom}/{z}/{y}/{x}.{format}', 'attribution': 'Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.', 'bounds': [[-85.0511287776, -179.999999975], [85.0511287776, 179.999999975]], 'min_zoom': 1, 'max_zoom': 9, 'format': 'jpg', 'time': '', 'tilematrixset': 'GoogleMapsCompatible_Level', 'variant': 'MODIS_Terra_CorrectedReflectance_Bands367', 'name': 'NASAGIBS.ModisTerraBands367CR'}, 'ViirsEarthAtNight2012': {'url': 'https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{max_zoom}/{z}/{y}/{x}.{format}', 'attribution': 'Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.', 'bounds': [[-85.0511287776, -179.999999975], [85.0511287776, 179.999999975]], 'min_zoom': 1, 'max_zoom': 8, 'format': 'jpg', 'time': '', 'tilematrixset': 'GoogleMapsCompatible_Level', 'variant': 'VIIRS_CityLights_2012', 'name': 'NASAGIBS.ViirsEarthAtNight2012'}, 'ModisTerraLSTDay': {'url': 'https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{max_zoom}/{z}/{y}/{x}.{format}', 'attribution': 'Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.', 'bounds': [[-85.0511287776, -179.999999975], [85.0511287776, 179.999999975]], 'min_zoom': 1, 'max_zoom': 7, 'format': 'png', 'time': '', 'tilematrixset': 'GoogleMapsCompatible_Level', 'variant': 'MODIS_Terra_Land_Surface_Temp_Day', 'opacity': 0.75, 'name': 'NASAGIBS.ModisTerraLSTDay'}, 'ModisTerraSnowCover': {'url': 'https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{max_zoom}/{z}/{y}/{x}.{format}', 'attribution': 'Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.', 'bounds': [[-85.0511287776, -179.999999975], [85.0511287776, 179.999999975]], 'min_zoom': 1, 'max_zoom': 8, 'format': 'png', 'time': '', 'tilematrixset': 'GoogleMapsCompatible_Level', 'variant': 'MODIS_Terra_Snow_Cover', 'opacity': 0.75, 'name': 'NASAGIBS.ModisTerraSnowCover'}, 'ModisTerraAOD': {'url': 'https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{max_zoom}/{z}/{y}/{x}.{format}', 'attribution': 'Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.', 'bounds': [[-85.0511287776, -179.999999975], [85.0511287776, 179.999999975]], 'min_zoom': 1, 'max_zoom': 6, 'format': 'png', 'time': '', 'tilematrixset': 'GoogleMapsCompatible_Level', 'variant': 'MODIS_Terra_Aerosol', 'opacity': 0.75, 'name': 'NASAGIBS.ModisTerraAOD'}, 'ModisTerraChlorophyll': {'url': 'https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{max_zoom}/{z}/{y}/{x}.{format}', 'attribution': 'Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.', 'bounds': [[-85.0511287776, -179.999999975], [85.0511287776, 179.999999975]], 'min_zoom': 1, 'max_zoom': 7, 'format': 'png', 'time': '', 'tilematrixset': 'GoogleMapsCompatible_Level', 'variant': 'MODIS_Terra_Chlorophyll_A', 'opacity': 0.75, 'name': 'NASAGIBS.ModisTerraChlorophyll'}}, 'NLS': {'url': 'https://nls-{s}.tileserver.com/nls/{z}/{x}/{y}.jpg', 'attribution': 'National Library of Scotland Historic Maps', 'bounds': [[49.6, -12], [61.7, 3]], 'min_zoom': 1, 'max_zoom': 18, 'subdomains': '0123', 'name': 'NLS'}, 'JusticeMap': {'income': {'url': 'http://www.justicemap.org/tile/{size}/{variant}/{z}/{x}/{y}.png', 'attribution': 'Justice Map', 'size': 'county', 'bounds': [[14, -180], [72, -56]], 'variant': 'income', 'name': 'JusticeMap.income'}, 'americanIndian': {'url': 'http://www.justicemap.org/tile/{size}/{variant}/{z}/{x}/{y}.png', 'attribution': 'Justice Map', 'size': 'county', 'bounds': [[14, -180], [72, -56]], 'variant': 'indian', 'name': 'JusticeMap.americanIndian'}, 'asian': {'url': 'http://www.justicemap.org/tile/{size}/{variant}/{z}/{x}/{y}.png', 'attribution': 'Justice Map', 'size': 'county', 'bounds': [[14, -180], [72, -56]], 'variant': 'asian', 'name': 'JusticeMap.asian'}, 'black': {'url': 'http://www.justicemap.org/tile/{size}/{variant}/{z}/{x}/{y}.png', 'attribution': 'Justice Map', 'size': 'county', 'bounds': [[14, -180], [72, -56]], 'variant': 'black', 'name': 'JusticeMap.black'}, 'hispanic': {'url': 'http://www.justicemap.org/tile/{size}/{variant}/{z}/{x}/{y}.png', 'attribution': 'Justice Map', 'size': 'county', 'bounds': [[14, -180], [72, -56]], 'variant': 'hispanic', 'name': 'JusticeMap.hispanic'}, 'multi': {'url': 'http://www.justicemap.org/tile/{size}/{variant}/{z}/{x}/{y}.png', 'attribution': 'Justice Map', 'size': 'county', 'bounds': [[14, -180], [72, -56]], 'variant': 'multi', 'name': 'JusticeMap.multi'}, 'nonWhite': {'url': 'http://www.justicemap.org/tile/{size}/{variant}/{z}/{x}/{y}.png', 'attribution': 'Justice Map', 'size': 'county', 'bounds': [[14, -180], [72, -56]], 'variant': 'nonwhite', 'name': 'JusticeMap.nonWhite'}, 'white': {'url': 'http://www.justicemap.org/tile/{size}/{variant}/{z}/{x}/{y}.png', 'attribution': 'Justice Map', 'size': 'county', 'bounds': [[14, -180], [72, -56]], 'variant': 'white', 'name': 'JusticeMap.white'}, 'plurality': {'url': 'http://www.justicemap.org/tile/{size}/{variant}/{z}/{x}/{y}.png', 'attribution': 'Justice Map', 'size': 'county', 'bounds': [[14, -180], [72, -56]], 'variant': 'plural', 'name': 'JusticeMap.plurality'}}, 'Wikimedia': {'url': 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}{r}.png', 'attribution': 'Wikimedia', 'min_zoom': 1, 'max_zoom': 19, 'name': 'Wikimedia'}, 'GeoportailFrance': {'parcels': {'url': 'https://wxs.ign.fr/{apikey}/geoportail/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE={style}&TILEMATRIXSET=PM&FORMAT={format}&LAYER={variant}&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}', 'attribution': 'Geoportail France', 'bounds': [[-75, -180], [81, 180]], 'min_zoom': 2, 'max_zoom': 20, 'apikey': 'choisirgeoportail', 'format': 'image/png', 'style': 'bdparcellaire', 'variant': 'CADASTRALPARCELS.PARCELS', 'name': 'GeoportailFrance.parcels'}, 'ignMaps': {'url': 'https://wxs.ign.fr/{apikey}/geoportail/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE={style}&TILEMATRIXSET=PM&FORMAT={format}&LAYER={variant}&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}', 'attribution': 'Geoportail France', 'bounds': [[-75, -180], [81, 180]], 'min_zoom': 2, 'max_zoom': 18, 'apikey': 'choisirgeoportail', 'format': 'image/jpeg', 'style': 'normal', 'variant': 'GEOGRAPHICALGRIDSYSTEMS.MAPS', 'name': 'GeoportailFrance.ignMaps'}, 'maps': {'url': 'https://wxs.ign.fr/{apikey}/geoportail/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE={style}&TILEMATRIXSET=PM&FORMAT={format}&LAYER={variant}&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}', 'attribution': 'Geoportail France', 'bounds': [[-75, -180], [81, 180]], 'min_zoom': 2, 'max_zoom': 18, 'apikey': 'choisirgeoportail', 'format': 'image/jpeg', 'style': 'normal', 'variant': 'GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-EXPRESS.STANDARD', 'name': 'GeoportailFrance.maps'}, 'orthos': {'url': 'https://wxs.ign.fr/{apikey}/geoportail/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE={style}&TILEMATRIXSET=PM&FORMAT={format}&LAYER={variant}&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}', 'attribution': 'Geoportail France', 'bounds': [[-75, -180], [81, 180]], 'min_zoom': 2, 'max_zoom': 19, 'apikey': 'choisirgeoportail', 'format': 'image/jpeg', 'style': 'normal', 'variant': 'ORTHOIMAGERY.ORTHOPHOTOS', 'name': 'GeoportailFrance.orthos'}}, 'OneMapSG': {'Default': {'url': 'https://maps-{s}.onemap.sg/v3/{variant}/{z}/{x}/{y}.png', 'variant': 'Default', 'min_zoom': 11, 'max_zoom': 18, 'bounds': [[1.56073, 104.11475], [1.16, 103.502]], 'attribution': '![](https://docs.onemap.sg/maps/images/oneMap64-01.png) New OneMap | Map data (C) contributors, Singapore Land Authority', 'name': 'OneMapSG.Default'}, 'Night': {'url': 'https://maps-{s}.onemap.sg/v3/{variant}/{z}/{x}/{y}.png', 'variant': 'Night', 'min_zoom': 11, 'max_zoom': 18, 'bounds': [[1.56073, 104.11475], [1.16, 103.502]], 'attribution': '![](https://docs.onemap.sg/maps/images/oneMap64-01.png) New OneMap | Map data (C) contributors, Singapore Land Authority', 'name': 'OneMapSG.Night'}, 'Original': {'url': 'https://maps-{s}.onemap.sg/v3/{variant}/{z}/{x}/{y}.png', 'variant': 'Original', 'min_zoom': 11, 'max_zoom': 18, 'bounds': [[1.56073, 104.11475], [1.16, 103.502]], 'attribution': '![](https://docs.onemap.sg/maps/images/oneMap64-01.png) New OneMap | Map data (C) contributors, Singapore Land Authority', 'name': 'OneMapSG.Original'}, 'Grey': {'url': 'https://maps-{s}.onemap.sg/v3/{variant}/{z}/{x}/{y}.png', 'variant': 'Grey', 'min_zoom': 11, 'max_zoom': 18, 'bounds': [[1.56073, 104.11475], [1.16, 103.502]], 'attribution': '![](https://docs.onemap.sg/maps/images/oneMap64-01.png) New OneMap | Map data (C) contributors, Singapore Land Authority', 'name': 'OneMapSG.Grey'}, 'LandLot': {'url': 'https://maps-{s}.onemap.sg/v3/{variant}/{z}/{x}/{y}.png', 'variant': 'LandLot', 'min_zoom': 11, 'max_zoom': 18, 'bounds': [[1.56073, 104.11475], [1.16, 103.502]], 'attribution': '![](https://docs.onemap.sg/maps/images/oneMap64-01.png) New OneMap | Map data (C) contributors, Singapore Land Authority', 'name': 'OneMapSG.LandLot'}}}
Because it is a nested dictionary, in some cases multiple maps from one provider are grouped, for example Thunderforest:
ctx.providers.Thunderforest
{'OpenCycleMap': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'cycle', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.OpenCycleMap'}, 'Transport': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'transport', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.Transport'}, 'TransportDark': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'transport-dark', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.TransportDark'}, 'SpinalMap': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'spinal-map', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.SpinalMap'}, 'Landscape': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'landscape', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.Landscape'}, 'Outdoors': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'outdoors', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.Outdoors'}, 'Pioneer': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'pioneer', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.Pioneer'}, 'MobileAtlas': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'mobile-atlas', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.MobileAtlas'}, 'Neighbourhood': {'url': 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}', 'attribution': '(C) Thunderforest, (C) OpenStreetMap contributors', 'variant': 'neighbourhood', 'apikey': '<insert your api key here>', 'max_zoom': 22, 'name': 'Thunderforest.Neighbourhood'}}
Note that the URLs are all of the form example.com/{z}/{x}/{y}.png
. These are standard for tiled webmaps. {z}
gets replaced by the zoom level, while {x}
and {y}
refer to the specific tile required.
Should a map not be freely available, then the {apikey}
needs to be supplied as well.
It is possible that you know of a tileserver that is not part of this listing, but we can easily add one, using the same sort of format. For our map, we will use two: the Stamen Toner map which is a good monochrome background, and the base geology from Macrostrat. The latter we can supply as a string.
geology_tiles = 'https://tiles.macrostrat.org/carto/{z}/{x}/{y}.png'
basemap = ctx.providers.Stamen.Toner
We then need to choose where we are interested in. The easiest way to do so is to use the Places
API in contextily. This allows us to give a string of a particular place, which will be converted into a location. These can be varied, but pretty much anything that is available in OpenStreetMap will work.
Examples:
We can change the the source that the place needs to use when plotted, in this case to our geology tiles. We will create a geological map of Nova Scotia.
location = 'Nova Scotia'
place = ctx.Place(location, source=geology_tiles)
C:\Users\mtb\Miniconda3\envs\cartothings\lib\site-packages\PIL\Image.py:960: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images "Palette images with Transparency expressed in bytes should be "
ctx.Place(location, source=ctx.providers.CartoDB.Positron).plot()
ctx.Place(location, source=ctx.providers.CartoDB.Voyager).plot()
<matplotlib.axes._subplots.AxesSubplot at 0x240241f0b88>
Now that we have our location and our basemaps, we can start using them. First, we can do a simple plot of the place. This will use the desired source
, as defined above.
place.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x24016973e48>
We are also able to edit the source
arg to use our desired basemap, and we need to add the attribution of where our data comes from, in this case for both of the maps that we are using. The prebuilt maps will have one, that we can access easily, but we will need to write our own for the Macrostrat data.
base_ax = place.plot()
ctx.add_basemap(ax=base_ax, source=basemap, alpha=0.5)
ctx.add_attribution(ax=base_ax, text=basemap.attribution + ' | Geological data courtesy of MacroStrat.org (CC-BY)')
Text(0.005, 0.005, 'Map tiles by Stamen Design, CC BY 3.0 -- Map data (C) OpenStreetMap contributors | Geological data courtesy of MacroStrat.org (CC-BY)')
Combining everything into one cell, we then get the following block of code:
geology_tiles = 'https://tiles.macrostrat.org/carto/{z}/{x}/{y}.png'
basemap = ctx.providers.Stamen.Toner
location = 'Nova Scotia'
place = ctx.Place(location, source=geology_tiles)
base_ax = place.plot()
ctx.add_basemap(ax=base_ax, source=basemap, alpha=0.5)
ctx.add_attribution(ax=base_ax, text=basemap.attribution + ' | Geological data courtesy of MacroStrat.org (CC-BY)')
plt.show()
We might have data, not just a place. This can be easily plotting using geopandas and adding a basemap via contextily. For more on loading and saving geographical data formats such as .shp
, check out the 05_Read_and_write_SHP.ipynb notebook.
import geopandas as gpd
wells = gpd.read_file('../data/offshore_wells_2011_Geographic_NAD27.shp')
wells.head()
Well_No_ | D__ | Well_Name | Well_Nam_1 | Company | Drilling_U | Spud_Date | Well_Termi | RT_Elevati | Water_Dept | Total_Dept | Total_De_1 | Well_Type | Well_Symb | geometry | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1.0 | 1.0 | Sable Island | C-67 | Mobil et al | Bawden Rig 18 | 1967-06-07 | 1968-01-02 | 8.2 | 3.9 | 4604.0 | 15106.0 | Exploratory | Plugged dry hole | POINT (-59.91705 43.93470) |
1 | 2.0 | 2.0 | Onondaga | E-84 | Shell | Sedneth 1 | 1969-09-01 | 1969-11-11 | 25.9 | 57.9 | 3988.0 | 13085.0 | Exploratory | Plugged gas well | POINT (-60.22144 43.72115) |
2 | 3.0 | 3.0 | Oneida | O-25 | Shell | Sedneth 1 | 1969-11-16 | 1970-02-10 | 25.9 | 82.3 | 4120.0 | 13516.0 | Exploratory | Plugged dry hole | POINT (-61.56014 43.24927) |
3 | 4.0 | 4.0 | Naskapi | N-30 | Shell | Sedneth 1 | 1970-02-16 | 1970-03-19 | 26.0 | 95.1 | 2205.0 | 7235.0 | Exploratory | Plugged dry hole | POINT (-62.56654 43.49633) |
4 | 5.0 | 5.0 | Mohawk | B-93 | Shell | Sedco H | 1970-05-03 | 1970-05-23 | 31.4 | 117.0 | 2126.0 | 6975.0 | Exploratory | Plugged dry hole | POINT (-64.73153 42.70292) |
We can plot a GeoDataFrame bby using a given column, in this case total depth.
wells.plot(column='Total_Dept', cmap='Blues')
<matplotlib.axes._subplots.AxesSubplot at 0x2401ae17808>
Something to bear in mind is that the tiled maps can only use the Web Mercator (EPSG: 3857), so we will need to reproject our data to use that when we plot:
plotted_wells = wells.to_crs(epsg=3857).plot(column='Total_Dept',
cmap='inferno_r', marker='+', edgecolor='k',
)
ctx.add_basemap(ax=plotted_wells, source=geology_tiles)
plt.title('Position of offshore wells near Nova Scotia, Canada')
C:\Users\mtb\Miniconda3\envs\cartothings\lib\site-packages\PIL\Image.py:960: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images "Palette images with Transparency expressed in bytes should be "
Text(0.5, 1, 'Position of offshore wells near Nova Scotia, Canada')
© Agile Scientific 2020, licensed CC-BY