Ich fasse kurz zusammen: ChatGPT hat die Frage nach der Meeresspiegelkarte schnell verstanden. Die KI bot mir mehrere Möglichkeiten an, das zu berechnen, u.a. mit einem riesigen Programmpaket, mit dem professionelle Karten erstellt werden und das frei ist (!). Ich habe das 50 GB-Paket installiert (irgendwas mit Geo..), aber letztlich war mir das zu kompliziert, weil dazu NASA- und andere Daten in für mich kryptischen Datenformaten eingelesen und bearbeitet werden müssen.
Der ebenfalls von der KI kommende Vorschlag, ETOPO-Daten zu nehmen, hat sie in Form eines Python-Scripts ebenfalls erstaunlich gut umgesetzt.
Im Gegensatz zu einem Script zu Papierberechnung, funktionierte das Script auf Anhieb, hatte Kommentare und sogar ein Minimal-Windows-GUI-Fenster, mit dem ich die ETOPO-Karte einlesen konnte. Also kein Kommandozeilen-Getippe. Da würde ich der KI die volle Punktzahl geben. Das mangelhafte PDF-Script entschuldigte die KI mit den Adobe-Maßvorgaben für PDF, womit sie nicht klarkam.
Man muss bei KI aufpassen, dass sie sich nicht in Alternativen verzettelt. Dieses: „Ich weiß da noch was anderes...“ sollte man tunlichst ignorieren und standhaft auf EINEM Lösungsweg beharren. Sie ist übereifrig. Man hat mir Claude empfohlen, das besser sein soll, aber dazu müsste ich mich erst registrieren. Für die paar Versuchsballone, die ich mit Chat-KI mache, brauche ich das nicht.
Bei mathematischen Fragen (wir hatten hier schon die Umrechnung in verschiedene Dezimalsysteme) scheint KI nur eingeschränkt hilfreich zu sein. Das zeigte sich in gravierenden Fehlern und hier, beim letzten Mal, offenbar im Unverständnis, was sie eigentlich rechnen soll. Sie hängte sich komplett auf. Natürlich muss man sich die Prompts sinnvoll zurechtlegen. Das erfordert aber eine VORplanung, und da sind wir beim Sparringpartner: Die exakte Formulierung der Frage ist maßgeblich. Wenn man sieht, dass die KI in die falsche Richtung einschwenkt, liegt es doch meistens an missverständlichen Formulierungen. Man muss sehr linear bleiben, weil Abwanderungen in Nebensätze und Möglichkeiten (die im Alltag ja doch vorkommen) oft falsch interpretiert werden. Menschen können verschiedene Dinge gleichzeitig denken... Man sollte für bestimmte Terme immer dieselben Begriffe verwenden und - wie im menschlichen Diskurs - auch mal Begriffsdefinitionen abklären. Die KI bestätigt das meist als richtig oder falsch verstanden. Bei mir hatte sie den Begriff „Apfelsinenstücke“ für die Gores am Ende richtig verstanden, OBWOHL das ja ein ziemlich menschlicher Ausdruck ist.
Da die Python-Scripte im allgemeinen technisch einwandfrei laufen, scheint die KI sich aus einer großen Datenbank existierender und funktionierender Lösungen zu bedienen. Andere ITler haben mir das bestätigt: was Scripte angeht, ist die KI nicht schlecht. Nur die Umsetzung der Fragestellungen beruht auf den Fähigkeiten des Nutzers... aber ist das im normalen Computerprogramm nicht auch so?
Bei den erforderlichen Bibliotheken für Python war die KI dann wieder etwas schwammig (siehe oben: abwandern in Alternativen). Wie soll ich jetzt was installieren? Was brauche ich? Da muss man dann „klare Kante“ zeigen: mache mir eine Liste der erforderlichen Bibliotheken, wo ich sie finde, wie ich sie herunterladen und wo, und am besten: mach es gleich selbst für mich...

kurz...
Hier ist das Script für den Meeresspiegel. Ein paar Sachen habe ich für aber schon verändert, insbesondere Farben.
Code: Alles auswählen
#!/usr/bin/env python3
"""
Erzeugt Weltkarten mit verändertem Meeresspiegel aus ETOPO 2022.
Benötigt:
pip install rasterio numpy pillow
Datei:
etopo.tif
Ausgabe:
flood_10m_klein.png
flood_20m.png
flood_50m.png
"""
import numpy as np
import rasterio
from rasterio.enums import Resampling
from PIL import Image
# ---------------------------------------------------
# Einstellungen
# ---------------------------------------------------
ETOPO = "etopo.tif"
OUTPUT_WIDTH = 3000
OUTPUT_HEIGHT = 1500
SEA_LEVELS = [0, 1, 2, 5, 10, 15, 20, 25, 30, 40, 50, 70, 100, 150, 200, 250, 300, 350, 400, 500, 1000]
# Farben
DEEP_WATER = np.array([25, 70, 170], dtype=np.uint8)
SHALLOW_WATER = np.array([90, 160, 255], dtype=np.uint8)
LOWLAND = np.array([170, 185, 120], dtype=np.uint8)
HIGHLAND = np.array([120, 105, 85], dtype=np.uint8)
MOUNTAIN = np.array([245, 245, 245], dtype=np.uint8)
# ---------------------------------------------------
# Hilfsfunktion
# ---------------------------------------------------
def blend(c1, c2, t):
return (c1 * (1 - t) + c2 * t).astype(np.uint8)
# ---------------------------------------------------
# ETOPO laden
# ---------------------------------------------------
print("Lade ETOPO...")
with rasterio.open(ETOPO) as src:
elev = src.read(
1,
out_shape=(OUTPUT_HEIGHT, OUTPUT_WIDTH),
resampling=Resampling.bilinear,
)
print("Größe:", elev.shape)
# ---------------------------------------------------
# Karten erzeugen
# ---------------------------------------------------
for sea in SEA_LEVELS:
print(f"Erzeuge +{sea} m")
rgb = np.zeros((OUTPUT_HEIGHT, OUTPUT_WIDTH, 3), dtype=np.uint8)
water = elev <= sea
land = ~water
# ---------------------------
# Wasser
# ---------------------------
depth = np.clip((sea - elev) / 6000.0, 0, 1)
rgb[water] = blend(
SHALLOW_WATER,
DEEP_WATER,
depth[water][:, None]
)
# ---------------------------
# Land
# ---------------------------
h = np.clip((elev - sea) / 4000.0, 0, 1)
low = h < 0.5
high = ~low
land_index = np.where(land)
hh = h[land]
colours = np.empty((hh.size, 3), dtype=np.uint8)
a = hh < 0.5
colours[a] = blend(
LOWLAND,
HIGHLAND,
(hh[a] * 2)[:, None]
)
colours[~a] = blend(
HIGHLAND,
MOUNTAIN,
((hh[~a] - 0.5) * 2)[:, None]
)
rgb[land_index] = colours
outfile = f"flood_{sea}m_klein.png"
Image.fromarray(rgb).save(outfile)
print("Gespeichert:", outfile)
print("Fertig.")