Een kaart kan lokaal worden gegenereerd terwijl de kustlijnen of andere referentiegegevens nog moeten worden gedownload. Als Cartopy een benodigde bron niet vindt, kan de standaard-Downloader die ophalen voordat de plot klaar is.

Die downloader gebruikt urllib.request.urlopen van Python. Voor een HTTP-doorstuurproxy die beide bestemmingsschema's bedient, start je het plotproces met een omgeving zoals:

export http_proxy=http://proxy.example:8080
export https_proxy=http://proxy.example:8080

De proxy hoort in de omgeving die het werkelijke Python-proces erft. Een al draaiende notebook-kernel of desktop-IDE heeft mogelijk een eigen startconfiguratie nodig. Voor Jupyter configureer je de startomgeving van de gekozen kernel voordat gegevens worden opgehaald. De HTTPS-variabele mag nog steeds een HTTP-proxy-URL bevatten. Openbare referentiegegevens-downloads kunnen een HTTP-item uit de HTTP-proxylijst gebruiken waar die route is toegestaan en er geen proxyaccount is geconfigureerd.

Kijk naar de opgevraagde gegevens-URL in de downloadwaarschuwing of de uitzondering. Een ontbrekende gegevensbron, een proxy-uitdaging en een HTTPS-vertrouwensfout treden op verschillende punten op; een andere projectie herstelt de netwerkroute van de downloader niet.

Voor een machine die offline moet blijven

Lever de benodigde dataset vooraf en wijs Cartopy naar de hoofdmap ervan:

from pathlib import Path
import cartopy

cartopy.config['pre_existing_data_dir'] = Path('/srv/map-data')

De map moet de indeling hebben die de betreffende downloader verwacht, inclusief de volledige datasetbestanden. Een map met een willekeurig archief is niet automatisch het bronpad dat Cartopy zoekt.

pre_existing_data_dir wordt vóór data_dir gecontroleerd. Ontbreekt de bron op beide plaatsen, dan kan een downloadbaar item alsnog verwerving naar data_dir veroorzaken, die schrijfbaar moet zijn. Het instellen van de bestaande map is dus een zoekkeuze, geen algemene schakelaar «gebruik nooit het netwerk».

Bereid elke resolutie en elk object voor die de geplande plots vereisen. Een eerder geslaagde grove kaart bewijst niet dat een gedetailleerdere kustlijn al beschikbaar is. Tilediensten en aangepaste downloaders kunnen hun eigen ophaalafspraken hebben.

Gerelateerde artikelen