Experimenting with MITgcm

In our OceanDSL research project, we aim to produce Domain-Specific Languages (DSLs) for scientists and technicians to support and ease their work. We learned that through a set of interviews with them that every model uses special self-made tools and methods to configure, build and run models. This makes our effort complicated. Therefore, we need a model which is fairly simple to setup, but covers all typical steps in model setup. We choose MITgcm based on a recommendation of a collaborating scientist.

MITgcm is an earth model including ocean and atmosphere. Before we can use it as a case study in our model user and model developer scenarios, we need to make us familiar with the model.

As a first step, we aimed to play with the examples of the model. Therefore, we created a setup which can run directly on a Linux machine and one to be run in a docker container. We tested both setup with the tutorial examples of MITgcm. Based on the Barotropic Ocean Gyre we created an image of the result of the model run and a video showing intermediate results of the model in an animation.

The single images where generated using Octave (as a free Matlab replacement) and transformed into a video with Mencoder.

Barotropic tutorial model result for an rectangular ocean.
# Adjust the following path
addpath ADD-HERE-FULL-PATH-TO-THE-MITGCM-MATLAB-SCRIPTS

XC=rdmds('XC'); YC=rdmds('YC');
# Select a proper value. The start value is 0
Eta=rdmds('Eta',0);

contourf(XC/1000,YC/1000,Eta,[-.04:.01:.04]);
colorbar;
colormap((flipud(hot)));
set(gca,'XLim',[0 1200]);
set(gca,'YLim',[0 1200])

The script for the animation looks like this:

# Adjust the following path
addpath ADD-HERE-FULL-PATH-TO-THE-MITGCM-MATLAB-SCRIPTS
XC=rdmds('XC'); YC=rdmds('YC');

# The number of frames depend on your setup
for m = 0:60
  out=["out" num2str(m, "%04d") ".png"];
  # The multiplier depends on your setup
  Eta=rdmds('Eta',1296*m);

  hf = figure ("visible", "off");
  contourf(XC/1000,YC/1000,Eta,[-.04:.01:.04]);
  colorbar;
  colormap((flipud(hot)));
  set(gca,'XLim',[0 1200]);
  set(gca,'YLim',[0 1200]);
  print(hf, out, "-dpng "); 
endfor

Finally, the mencoder call looks like this:

mencoder mf://out????.png -mf fps=2:type=png -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi
Animation of the example model.

The setup is available at https://git.se.informatik.uni-kiel.de/oceandsl/case-study-mitgcm

Fact Exchange: Online Kommunikation Unterstützen

Diskussionen in online Medien sind heute ein zentrales Element in der politischen Kommunikation. Durch die steigende Relevanz von Online-Plattformen und Social Media, wenden politische Parteien und Lobbyisten mehr Aufwand auf ihre Kommunikation im Internet. Insbesondere gilt dies für interaktive Angebote, wie Twitter, Facebook und Telegram. Deshalb unterliegen Online-Diskussionen multiplen Herausforderungen durch diesen gut organisierten Interessengruppen, welche versuchen die Diskussion zu dominieren und ihre Narrative durchzusetzen. Sie greifen dabei auf variantenreiche rhetorische Methoden zurück um ihre Ziele zu verfolgen. Neben persönlichen Angriffen auf Protagonisten (ad hominem), wie dies z.B. auch bei Greta Thunberg der Fall ist, nutzen Interessengruppen Angst, Verunsicherung und Zweifel um Argumente ihrer Gegner zu attackieren.

Diese Gruppen verfügen über reichliche Kampagnenmittel und Personal was ihnen einen großen Vorteil gegenüber Bürgerbewegungen und einzelnen Akteuren gibt. Sie können zielgerichtet Inhalten nutzen, erstellen und auswählen um ihre Argumente und Behauptungen zu stützen während Bürger dies mangelns Ressourcen (Zeit und Geld) dies nicht im selben Maß tun können.

Aussagen, Forderungen und Behauptungen von Interessengruppen können in der Regel auf zwei Weisen adressiert werden:

  1. Einfordern von Belegen für die Behauptung.
  2. Ein Gegenargument liefern und selbst Belege für das eigene Argument anbieten.

Der erste Ansatz funktioniert nur dann zuverlässig wenn die Behauptung keinem bereits etablierten Narrativ entspricht. Selbst wenn das Narrativ falsch ist, wie z.B. der endlose Ozean, muss zur Stützung des Gegenarguments Belege angegeben werden.

Leider können Einzelne nicht Experte in allen Disziplinen und in allen Wissensgebieten sein um solchen Behauptungen souverän zu begegnen. Die zentralen Schwächen Einzelner sind (a) der Mangel an vorbereiteten Quellen, Wissen und Inhalten auf das sie schnell zurückgreifen können um gegen Fehlinformationen vorgehen zu können. Und (b) ein Mangel an Wissen bezüglich rhetorischer Techniken, welche zur Unterbindung sachlicher Diskussionen eingesetzt werden.

Fact Exchange zielt darauf ab den Mangel an Informationen und Materialien zu beheben. Die Plattform wird soll es Nutzer:innen erlauben Fragen zu stellen und Antworten von Wissenschaftler:innen, Ingenieur:innen, Journalist:innen und Online-Aktivist:innen zu erhalten und darüber zu diskutieren. Fact Exchange soll sich dabei an bestehenden Frage-Antwort-Portalen orientieren.

Die Koordination und Entwicklung erfolgt im Moment bei GitHub (https://github.com/rju/fact-exchange). Neben dem technischen Aspekt spielt die inhaltliche Beteiligung die zentrale Rolle. Einerseits soll die Plattform offen sein um möglichst viele Beitragende zu gewinnen. Andererseits ist es jedoch wichtig auf Qualität zu achten. Wikipedia hat hier mit ähnlichen Herausforderungen zu kämpfen und es erweckt den Eindruck, dass dies dort nicht immer gelingt eine gute Balance hinzubekommen. Ich möchte deshalb viele einladen Ideen und Vorschläge einzureichen. Dies kann entweder über GitHub als Ticket für fact-exchange erfolgen oder durch eine Nachricht an mich via Twitter (@prefec2).