Woodz
Lieutenant
- Registriert
- Apr. 2009
- Beiträge
- 689
Hallo.
Ich erstelle in einer Prozedur ca. 60 Karten in die ich Messwerte plotte. Das sind ca. 400 Messwerte pro Karte.
Ich benutze bereits Multiprozessing (3 Prozesse) um die Erstellung etwas anzutreiben, aber ich brauche immer noch ca. 5 Minuten für alle Karten.
Die Frage ist nun, ob ich das Ganze noch weiter Beschleunigen kann (Außer mehr Prozesse zu nutzen (was auch geplant ist )). Zum Einen stört mich die Nutzng der for-Schleife noch gewaltig. Zudem frage ich mich, ob es möglich wäre die cartopy-basemap abzuspeichern und jedes mal neu zu laden, anstatt sie jedes mal neu erstellen zu müssen.
Für weitere Inspirationen wäre ich sehr dankbar!
Hier der vereinfachte Code den ich zum Erstellen der Karten nutze:
Ich erstelle in einer Prozedur ca. 60 Karten in die ich Messwerte plotte. Das sind ca. 400 Messwerte pro Karte.
Ich benutze bereits Multiprozessing (3 Prozesse) um die Erstellung etwas anzutreiben, aber ich brauche immer noch ca. 5 Minuten für alle Karten.
Die Frage ist nun, ob ich das Ganze noch weiter Beschleunigen kann (Außer mehr Prozesse zu nutzen (was auch geplant ist )). Zum Einen stört mich die Nutzng der for-Schleife noch gewaltig. Zudem frage ich mich, ob es möglich wäre die cartopy-basemap abzuspeichern und jedes mal neu zu laden, anstatt sie jedes mal neu erstellen zu müssen.
Für weitere Inspirationen wäre ich sehr dankbar!
Hier der vereinfachte Code den ich zum Erstellen der Karten nutze:
Code:
import matplotlib.pyplot as plt
import cartopy
import cartopy.crs as ccrs
import cartopy.feature as cfeature
res = '10m'
lllon=6.00
lllat=47.0
urlon=15.4
urlat=55.10
central_lon = (lllon + urlon)/2
central_lat = (lllat + urlat)/2
proj = ccrs.TransverseMercator(central_longitude = central_lon, central_latitude = central_lat)
list = ["Niederschlag", "Temperatur", "Schneehoehe", etc..]
for parameter in list:
# create map
ax = plt.axes(projection=proj)
ax.set_extent([lllon, urlon, lllat, urlat])
land = cfeature.NaturalEarthFeature('physical', 'land', res, edgecolor='face', facecolor='#1F1F1F', zorder=0)
states_provinces = cfeature.NaturalEarthFeature(category='cultural', name='admin_1_states_provinces_lines', scale='10m', facecolor='none', linewidth=0.1)
# add features
ax.add_feature(states_provinces, edgecolor='white')
ax.add_feature(land)
ax.add_feature(cartopy.feature.BORDERS.with_scale(res), linestyle='-', linewidth=0.3, edgecolor='white')
ax.add_feature(cartopy.feature.COASTLINE.with_scale(res), linestyle='-', edgecolor='#1F1F1F', linewidth=0.1)
ax.add_feature(cartopy.feature.OCEAN.with_scale(res), facecolor='grey')
# data plotting
for x, y, value in zip(data["lon"].values, data["lat"].values, data["parameter"].values):
ax.text(x, y, value, color='silver', size=3, transform = ccrs.Geodetic())
plt.title("Title")
plt.savefig("Example.png", format="png")
plt.clf()
Zuletzt bearbeitet: