Siehe auch SAR, gitbash

PyDLR34

Februar 2020

Basemap (Beispiel aus dem Buch von Jake VanderPlas, Python Data Science Handbook https://jakevdp.github.io/PythonDataScienceHandbook/04.13-geographic-data-with-basemap.html)

# Die folgenden Links enthalten Hinweise zum aufgetretenen Fehler
# https://github.com/matplotlib/basemap/issues/420
# https://github.com/conda-forge/basemap-feedstock/issues/30
# https://github.com/conda-forge/basemap-feedstock/issues/45

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

plt.figure(figsize=(8, 8))
m = Basemap(projection='ortho', resolution=None, lat_0=50, lon_0=-100)
m.bluemarble(scale=0.5);

Basemap installieren mit (basemap Version 1.2.0):

conda create -n basemap_test python=3.7.6  proj4=5.2.0 basemap pillow

In Spyder sieht man in der grafischen IPython Shell dann die Erdkugel. Das Problem liegt in höheren Versionen von proj4. Wenn man die Version von proj4 nicht explizit angibt, wird die Version 6.0.0 (oder ähnlich) verwendet. Mit dieser Version gibt es eine Fehlermeldung.

Noch ein Zusatz: Man muss die Umgebungsvariable PROJ_LIB auf den richtigen Pfad setzen. Das kann man provisorisch im obigen Python Programm machen durch die Zeilen am Anfang:

import os
os.environ['PROJ_LIB'] = r'c:\Users\schul10\AppData\Local\Continuum\miniconda3\pkgs\proj4-5.2.0-ha925a31_1\Library\share'

Dadurch ist das Programm leider nicht mehr portabel. Besser ist es, wenn man die Umgebungsvariable direkt im Windows Betriebssystem setzt. Bestimmte Teile des Pfades müssen für den konkreten Rechner geändert werden, z.B. der User (schul10) und der Wert hinter proj4-5.2.0-xxx.

Andere 3D-Welten ausser Basemap:

PyDLR33

Oktober 2019

PyDLR32

Juli 2019

PyDLR31

April 2019

# UnboundLocalError: local variable 'D' referenced before assignment
# Python Introductory Course 8.-10. April 2019
# Python 3.7

D = {}

def foo():
    if False:
        D = {}
    D["blue"] = "blau"
    print("D local:", D)
    return D


D = foo()
print(D)


# shorter:
# 1. Line '*' commented out: NameError: name 'D' is not defined
# 2. With line '*': UnboundLocalError: local variable 'D' referenced before assignment
# 3. With 'if True': works
def g():
    if False:
        D = {}  # (*)
    print(D)

g()

Explanation:

PyDLR23

Switch/Case with Python

def a():
    print("'a' was called")

def b():
    print("'b' was called")

def c():
    print("'c' was called")


D = { 'a' : a, 'b' : b, 'c' : c}

while True:
    s = input("your choice: ")
    if s in D:
        D[s]()
    else:
        break

PyDLR22

Python 3

SciPy

Pandas

PyDLR (last edited 2020-02-05 11:44:15 by HubertHoegl)

|| Kontakt