Cartopy-kortdata download gennem en proxy
Konfigurér Python-downloaderen til manglende kortdata, eller skaf de datafiler, som Cartopy forventer, før du plotter offline.
Et kort kan genereres lokalt, mens dets kystlinjer eller andre referencedata stadig skal downloades. Hvis Cartopy ikke kan finde en påkrævet ressource, kan standard-Downloader hente den, før plottet er færdigt.
Den downloader bruger Pythons urllib.request.urlopen. Til en HTTP-videresendelsesproxy, der betjener begge destinationsskemaer, start plotprocessen med et miljø som:
export http_proxy=http://proxy.example:8080
export https_proxy=http://proxy.example:8080Proxyen skal ligge i det miljø, som den faktiske Python-proces arver. En notebook-kernel eller et desktop-IDE, der allerede kører, kan have brug for sin egen startkonfiguration. Til Jupyter skal du konfigurere den valgte kernels opstartsmiljø før dataindsamlingen. HTTPS-variablen kan stadig indeholde en HTTP-proxy-URL. Offentlige downloads af referencedata kan bruge en HTTP-post fra HTTP-proxylisten, hvor den rute er tilladt, og der ikke er konfigureret en proxykonto.
Se på den anmodede data-URL i downloadadvarslen eller undtagelsen. En manglende dataressource, en proxy-udfordring og en HTTPS-tillidsfejl opstår forskellige steder; en ændret projektion reparerer ikke downloaderens netværksrute.
Til en maskine, der skal forblive offline
Skaf det krævede datasæt på forhånd, og peg Cartopy mod dets rod:
from pathlib import Path
import cartopy
cartopy.config['pre_existing_data_dir'] = Path('/srv/map-data')Mappen skal have det layout, den relevante downloader forventer, inklusive de komplette datasætfiler. En mappe med et vilkårligt arkiv er ikke automatisk den ressourcevej, Cartopy leder efter.
pre_existing_data_dir kontrolleres før data_dir. Hvis ressourcen mangler begge steder, kan et downloadbart element stadig udløse hentning til data_dir, som skal være skrivbar. At sætte den forudgående mappe er derfor et søgevalg, ikke en global kontakt til «brug aldrig netværket».
Forbered hver opløsning og hver funktion, som de planlagte plots kræver. Et tidligere vellykket groft kort beviser ikke, at en mere detaljeret kystlinje allerede er tilgængelig. Fliseservices og brugerdefinerede downloadere kan have deres egne hentemåder.